Code Monkey home page Code Monkey logo

fluentd-ui's Introduction

fluentd-ui

Build Status Gem Version Code Climate

fluentd-ui is a browser-based fluentd and td-agent manager that supports following operations.

  • Install, uninstall, and upgrade Fluentd plugins
  • start/stop/restart fluentd process
  • Configure Fluentd settings such as config file content, pid file path, etc
  • View Fluentd log with simple error viewer

Official documentation | Changelog

Requirements

  • ruby 2.2.2 or later (since v1.0.0)
  • fluentd v1.0.0 or later (also supports td-agent 3)
    • Currently, fluentd v1 and td-agent 3 support is in alpha state

And some additional packages (Debian / Ubuntu)

  • build-essential
  • libssl-dev
  • libxml2-dev
  • libxslt1-dev
  • ruby-dev

How to install and run

$ gem install fluentd-ui
$ fluentd-ui setup
$ fluentd-ui start --daemonize

Access http://localhost:9292 by web browser. The default account is username="admin" and password="changeme".

Run under sub path

Use RAILS_RELATIVE_URL_ROOT environment variable.

$ RAILS_RELATIVE_URL_ROOT=/prefix fluentd-ui start --daemonize

Access http://localhost:9292/prefix by web browser.

Development

Get the source

$ git clone https://github.com/fluent/fluentd-ui
$ cd fluentd-ui

Install dependent gems

Use bundler:

$ gem install bundler --version 1.17.3
$ bundle install --path vendor/bundle

Install dependent JavaScript packages

Use yarn. See https://yarnpkg.com/en/docs/install to install it to your environment. After install it, run following command:

$ ./bin/yarn install

Run fluentd-ui

$ bin/rails server

Access http://localhost:3000 by web browser.

Run with Docker

$ docker build -t fluent/fluentd-ui:1.0.0 .
$ docker run --net=host fluent/fluentd-ui:1.0.0

Run tests

You need chromedriver or chromiumdriver to run tests.

$ npm install -g chromedriver
Or,
$ brew install chromedriver
Or,
$ sudo apt install chromium-driver

NOTE: chromedriver executable binary should be located under your $PATH.

After that you can run tests by following command:

$ bundle exec rake test

Building fluentd-ui.gem

# Generate ChangeLog.md and increment version
$ bin/rails release:prepare

# Clear tmp/, public/assets and public/packs
$ bin/rails tmp:clear assets:clobber && touch tmp/.gitkeep

# Generate pre-compiled assets
$ RAILS_ENV=production bin/rails assets:precompile

# fluentd-ui X.X.X built to pkg/fluentd-ui-X.X.X.gem.
$ RAILS_ENV=production bin/rails build

# Push to rubygems.org
$ bin/rails release

fluentd-ui's People

Contributors

ashie avatar bkayranci avatar bperel avatar cosmo0920 avatar dependabot[bot] avatar ganmacs avatar hassaku avatar kenhys avatar kiyoto avatar kou avatar kyuden avatar kzk avatar okkez avatar readmecritic avatar repeatedly avatar rthbound avatar takada-s avatar tanaka51 avatar tirthpandya avatar uu59 avatar y-ken avatar yakitorii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fluentd-ui's Issues

Create "Add Data Output" Button

Create "Add Data Output" button, to add data source to running Fluentd. The candidates for data sources are:

  • Treasure Data
  • S3
  • MongoDB
  • Forward

(Please add possible data output cc: @repeatedly)

zombie process is increased

I use fluend-ui

Started with the following command:

[root@localhost ~]# fluentd-ui start

When the fluentd start in Dashbard web,
zombie process is increased.

[root@localhost ~]# ps aux | grep ruby

root 5541 8.2 0.0 0 0 pts/1 Z+ 14:22 0:00 [ruby]
root 5541 1.0 0.0 0 0 pts/1 Z+ 14:22 0:00 [ruby]
root 5593 2.7 0.0 0 0 pts/1 Z+ 14:23 0:00 [ruby]

Please let me know the reason why it occurs.

Change Password To Default

Hi Guys,
i'm pretty new to ruby, and i got stuck at fluend-ui because i forgot my password ( i've change it from 'changeme' ) and my question is how do i reset the fluentd-ui password to default ?

Unable to input any words in regex text box at Select File Format

Problem Description

When I use Select File Format, fluentd-ui was caused the issue like the following image.
And, I can't type any words in text box.
Gyazo

Environments

  • ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0]
  • fluentd 0.10.59
  • fluentd-ui 0.3.12

Reproduce steps

  1. Select "Select File Format"
  2. Select regep as format
  3. Type words quickly in regexp text box

Unable to start fluentd on vagrant box

Not exactly an issue,but I am not a ruby rails person and did not find any docmentation on getting this to work.

I have setup fluentd on scotch box vagrant image and installed the required dependencies.
After doing

vagrant@scotchbox:/var/www/fluentd-ui$ bundle exec rails s
=> Booting Puma
=> Rails 4.2.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Puma 2.11.1 starting...
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://localhost:3000

I have setup fluentd-ui in my project directory which is under /var/www/.My structure is

  /var/www/
         |
         |__fluentd-ui (alongwith my -app directories)
                 |
                 |__all fluentd ui related files

I tried to access it via ip address using 192.168.10.33/fluentd-ui/ did not work 192.168.10.33:3000 even this did not work. port 9900 (thought this is default) did not work.
I believe I have configured it correctly,but how am I supposed to access it via the browser?

Installation redirects are taking a long time

Running the recommended
gem install -V fluentd-ui
is triggering a cascading series of
302 Temporarily Moved
redirects which are taking a huge amount of time compared to the installation itself. It does eventually complete but it would be useful to get this fixed (or looked at, at the very least).

Got gem dependency error

I Installing fluentd-ui on Amazon Linux(Amazon Linux AMI release 2014.03 / ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-linux]).

sudo yum install gcc gcc-c++ openssl-devel ruby-devel.noarch patch
sudo gem install fluentd-ui --no-ri --no-rdoc -V

But got following error.

ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: mechanize requires mime-types (~> 2.0); mail requires mime-types (~> 1.16)

Please confirm.

Update sucker_punch gem

Latest sucker_punch replaces celluloid with concurrent-ruby.
It is good for reducing gem dependencies.

Implement Editor feature for Edit Config File

Editor on Edit Config File doesn't have no text editor feature.
Feature to insert TAB and to select multiple lines, and to color for tags should be more better to editor config file.

Visualization error with \#

In the UI conf file editor, when you \# it is marked as a comment (gray colour). But when you run the agent it works correctly (not as a comment).

Installation issue around sass

On Ubuntu 12.04, I got the following error message while running gem install -V fluentd-ui

ERROR:  Error installing fluentd-ui:
        invalid gem: package metadata is missing in /home/vagrant/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/cache/sass-3.2.19.gem

I do have node installed

node --version
v0.6.12

Change some parameters on fluent-plugin-td settings

Match

Setting default value, td.*.*, seems better.

Remove parameters

These parameters are for very rare case.

  • use_ssl
  • endpoint
  • xxx_timeout

APIKEY

Can you check API Key is valid or not in this configuration process?
If it could be implemented, users avoid the invalid API key trouble.
This is not critical but support is better.

in_tail multi line support

http://docs.fluentd.org/articles/in_tail

Add new UI parts for generate such config.

format multiline
format_firstline /^Started/
format1 /Started (?<method>[^ ]+) "(?<path>[^"]+)" for (?<host>[^ ]+) at (?<time>[^ ]+ [^ ]+ [^ ]+)\n/
format2 /Processing by (?<controller>[^\u0023]+)\u0023(?<controller_method>[^ ]+) as (?<format>[^ ]+?)\n/
format3 /(  Parameters: (?<parameters>[^ ]+)\n)?/
format4 /  Rendered (?<template>[^ ]+) within (?<layout>.+) \([\d\.]+ms\)\n/
format5 /Completed (?<code>[^ ]+) [^ ]+ in (?<runtime>[\d\.]+)ms \(Views: (?<view_runtime>[\d\.]+)ms \| ActiveRecord: (?<ar_runtime>[\d\.]+)ms\)/

NoMethodError "/fluentd-ui-0.4.2/lib/fluentd-ui.rb:27:in `data_dir'"

I am using the official Fluentd Docker image, then run

RUN gem install -V fluentd-ui

When I start UI

fluentd-ui start
fluentd_1     | /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/fluentd-ui-0.4.2/lib/fluentd-ui.rb:27:in `data_dir': undefined method `+' for nil:NilClass (NoMethodError)
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/fluentd-ui-0.4.2/app/models/user.rb:11:in `<class:User>'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/fluentd-ui-0.4.2/app/models/user.rb:7:in `<top (required)>'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:457:in `load'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:457:in `block in load_file'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:647:in `new_constants_in'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:456:in `load_file'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:354:in `require_or_load'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:317:in `depend_on'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:233:in `require_dependency'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/engine.rb:472:in `block (2 levels) in eager_load!'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/engine.rb:471:in `each'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/engine.rb:471:in `block in eager_load!'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/engine.rb:469:in `each'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/engine.rb:469:in `eager_load!'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/engine.rb:346:in `eager_load!'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/application/finisher.rb:56:in `each'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/application/finisher.rb:56:in `block in <module:Finisher>'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/initializable.rb:30:in `instance_exec'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/initializable.rb:30:in `run'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/initializable.rb:55:in `block in run_initializers'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/2.2.0/tsort.rb:226:in `block in tsort_each'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/2.2.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/2.2.0/tsort.rb:429:in `each_strongly_connected_component_from'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/2.2.0/tsort.rb:347:in `block in each_strongly_connected_component'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/2.2.0/tsort.rb:345:in `each'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/2.2.0/tsort.rb:345:in `call'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/2.2.0/tsort.rb:345:in `each_strongly_connected_component'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/2.2.0/tsort.rb:224:in `tsort_each'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/2.2.0/tsort.rb:203:in `tsort_each'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/initializable.rb:54:in `run_initializers'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/railties-4.2.4/lib/rails/application.rb:352:in `initialize!'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/fluentd-ui-0.4.2/config/environment.rb:5:in `<top (required)>'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/fluentd-ui-0.4.2/config.ru:3:in `require'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/fluentd-ui-0.4.2/config.ru:3:in `block in <main>'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:55:in `instance_eval'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:55:in `initialize'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/fluentd-ui-0.4.2/config.ru:in `new'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/fluentd-ui-0.4.2/config.ru:in `<main>'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:49:in `eval'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:49:in `new_from_string'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:40:in `parse_file'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/server.rb:299:in `build_app_and_options_from_config'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/server.rb:208:in `app'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/server.rb:336:in `wrapped_app'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/server.rb:272:in `start'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/lib/rack/server.rb:147:in `start'
fluentd_1     |     from /home/ubuntu/ruby/lib/ruby/gems/2.2.0/gems/rack-1.6.4/bin/rackup:4:in `<top (required)>'
fluentd_1     |     from /home/ubuntu/ruby/bin/rackup:23:in `load'
fluentd_1     |     from /home/ubuntu/ruby/bin/rackup:23:in `<main>'

Don't render un-related parameters in plugin configuration

For example, s3 plugin generator generates following configuration with json format:

<match s3.**>
  type s3
  aws_key_id XXXXXXXXXXXXXXXXXXXXXX
  aws_sec_key XXXXXXXXXXXXXXXXXXXXXXXX
  s3_bucket fluent-plugin-s3
  path test
  format json
  include_time_key false
  add_newline false
  output_tag false
  output_time false
  store_as gzip
  use_ssl true
  buffer_type memory
  flush_interval 5s
  num_threads 2
</match>

Fluentd dumps some unused warnings when received this configuration.
So we should change render parameters for each formats.

Don't install ri and rdoc

We don't use ri and rdoc with fluentd / td-agent.
So installing gem with ri and rdoc is extra cost.

customizable header?

Just small request which would help me - can you implement "customizable header" in UI? Our "herd" of fluentd installations is growing so it would help me to see immediately with which fluentd-ui I am currently working.

Can't login with the default credentials on a Ubuntu Precise VM

I tried admin/changeme at localhost:3000/sessions but gets "Login Failed".

Here is the logs for bundle exec rails s

$ bundle exec rails s
=> Booting Puma
=> Rails 4.1.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
Puma 2.8.2 starting...
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://0.0.0.0:3000
Started POST "/sessions" for 10.0.2.2 at 2014-06-15 22:35:56 +0000
  ActiveRecord::SchemaMigration Load (0.3ms)  SELECT "schema_migrations".* FROM "schema_migrations"
Processing by SessionsController#create as HTML
  Parameters: {"utf8"=>"โœ“", "authenticity_token"=>"LHqdYnsO40CO7kFCBJiRCxVnU6rtiMQaTC7XgbJCAGw=", "session"=>{"name"=>"admin", "password"=>"[FILTERED]"}, "commit"=>"Sign in"}
  User Load (0.2ms)  SELECT  "users".* FROM "users"  WHERE "users"."name" = 'admin' LIMIT 1
  Rendered shared/_error.html.haml (1.9ms)
  Rendered sessions/new.html.haml within layouts/sign_in (32.0ms)
Started GET "/assets/sb-admin-v2/sb-admin.css?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/application.css?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/sb-admin-v2/plugins/dataTables/jquery.dataTables.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/fluent_log.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/alert.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/sb-admin-v2/plugins/dataTables/dataTables.bootstrap.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/sb-admin-v2/font-awesome/scss/font-awesome.css?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/jquery.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/bower/vue/dist/vue.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/tutorial.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/common.css?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/jquery_ujs.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/bower/es6-promise/promise.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/application.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/sb-admin-v2/bootstrap.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000
Started GET "/assets/vue_common.js?body=1" for 10.0.2.2 at 2014-06-15 22:35:57 +0000

Fix unstable Circle CI spec

Failures:

  1) Fluentd::Agent::LocalCommon #config_write keep files num up to max
  Failure/Error: expect(backup_files.size).to eq ::Settings.max_backup_files_count

    expected: 100
         got: 101

    (compared using ==)
  # ./spec/models/fluentd/agent/local_common_spec.rb:71:in `block (3 levels) in <top (required)>'

Sometimes our spec is failed on Circle CI as above. got: 101 is dancing about 100-110 range.

0.0.0.0 bind

I use fluentd-ui-0.3.19

It cannot connect to the fluentd-ui web from the outside.

only localhost connections are possible

http://localhost:9292

It cannot bind with 0.0.0.0

Please inform us what is configuration file

UndefinedConversionError

Encoding::UndefinedConversionError ("\xE5" from ASCII-8BIT to UTF-8):
app/controllers/fluentd/agents_controller.rb:33:in `log_tail'

My log contains some Chinese characters.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.