dougal / daemon_generator Goto Github PK
View Code? Open in Web Editor NEWA plugin for creating psuedo-scheduled jobs in Ruby on Rails.
Home Page: http://douglasfshearer.com/blog/cron-jobs-in-ruby-on-rails
A plugin for creating psuedo-scheduled jobs in Ruby on Rails.
Home Page: http://douglasfshearer.com/blog/cron-jobs-in-ruby-on-rails
Is it possible start a daemon script without having to perform a bundle install exec? At the moment I am working on a project where I have to perform bundle install exec to get my daemons to run. The problem with this is that it means that I have to have a full gem set installed with each project. Am I missing something obvious in my ctl file.
When I run the command above it gives me the error below.
I looked for a solution to this problem everywhere but could not find anything.
I'm running rails 2.3.8 on passenger and ruby 1.8.7. I though the problem was coming from the fact thait has been updated to rails 3. But I got the gem 1.0.10 and still ahd the same problem
here is the error message:
.../.rvm/rubies/ruby-1.8.7-p249/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- rails/generators (MissingSourceFile)
I followed all the steps and created a VERY simple worker but when I start it, I get the following error:
I'm using Rails 3.0.3 and Ruby 1.8.7 pl72. Any thoughts would be appreciated!
I, [2011-03-10T18:51:11.830355 #21570] INFO -- : *** below you find the most recent exception thrown, this will be likely (but not certainly) the exception that made the application exit abnormally ***
E, [2011-03-10T18:51:11.830562 #21570] ERROR -- : syntax error on line 35, col -1: ' (ArgumentError) /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/1.8/yaml.rb:133:in
load'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/1.8/yaml.rb:133:in load' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/specification.rb:480:in
from_yaml'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:235:in load_gemspec' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:232:in
chdir'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:232:in load_gemspec' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:337:in
load_spec_files'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:336:in each' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:336:in
load_spec_files'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:551:in load_spec_files' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:367:in
local_specs'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:536:in specs' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:147:in
resolve'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:145:in each' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:145:in
resolve'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:90:in specs' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:135:in
specs_for'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:124:in requested_specs' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/environment.rb:23:in
requested_specs'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/runtime.rb:11:in setup' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:107:in
setup'
/home/gary/RoR/tw/config/boot.rb:8
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in gem_original_require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
require'
/home/gary/RoR/tw/lib/daemons/../../config/application.rb:1
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in gem_original_require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
require'
/home/gary/RoR/tw/lib/daemons/mailer.rb:6
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:203:in load' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:203:in
start_load'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:296:in start' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/controller.rb:70:in
run'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons.rb:143:in run' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in
call'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in catch_exceptions' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons.rb:142:in
run'
./lib/daemons/mailer_ctl:25
I, [2011-03-10T18:51:11.830675 #21570] INFO -- : *** below you find all exception objects found in memory, some of them may have been thrown in your application, others may just be in memory because they are standard exceptions ***
E, [2011-03-10T18:51:11.831369 #21570] ERROR -- : failed to allocate memory (NoMemoryError)
E, [2011-03-10T18:51:11.831445 #21570] ERROR -- : stack level too deep (SystemStackError)
E, [2011-03-10T18:51:11.831516 #21570] ERROR -- : exception reentered (fatal)
E, [2011-03-10T18:51:11.836031 #21570] ERROR -- : no such file to load -- bundler (LoadError)
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in gem_original_require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
require'
/home/gary/RoR/tw/config/boot.rb:7
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in gem_original_require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
require'
/home/gary/RoR/tw/lib/daemons/../../config/application.rb:1
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in gem_original_require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
require'
/home/gary/RoR/tw/lib/daemons/mailer.rb:6
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:203:in load' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:203:in
start_load'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:296:in start' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/controller.rb:70:in
run'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons.rb:143:in run' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in
call'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in catch_exceptions' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons.rb:142:in
run'
./lib/daemons/mailer_ctl:25
E, [2011-03-10T18:51:11.837356 #21570] ERROR -- : no such file to load -- psych (LoadError)
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in gem_original_require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
require'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems.rb:676:in load_yaml' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:8 /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
gem_original_require'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/package.rb:102 /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
gem_original_require'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/format.rb:7 /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
gem_original_require'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/installer.rb:7 /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
gem_original_require'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in require' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:3 /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/dsl.rb:14:in
initialize'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/dsl.rb:6:in new' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/dsl.rb:6:in
evaluate'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:17:in build' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:136:in
definition'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:124:in load' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:107:in
setup'
/home/gary/RoR/tw/config/boot.rb:8
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in gem_original_require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
require'
/home/gary/RoR/tw/lib/daemons/../../config/application.rb:1
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in gem_original_require' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
require'
/home/gary/RoR/tw/lib/daemons/mailer.rb:6
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:203:in load' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:203:in
start_load'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:296:in start' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/controller.rb:70:in
run'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons.rb:143:in run' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in
call'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in catch_exceptions' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons.rb:142:in
run'
./lib/daemons/mailer_ctl:25
E, [2011-03-10T18:51:11.839559 #21570] ERROR -- : You have already activated activesupport 3.0.4, but your Gemfile requires activesupport 3.0.3. Consider using bundle exec. (Gem::LoadError)
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/runtime.rb:31:in setup' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in
each'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/spec_set.rb:12:in each' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/runtime.rb:17:in
setup'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:107:in setup' /home/gary/RoR/tw/config/boot.rb:8 /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
gem_original_require'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in require' /home/gary/RoR/tw/lib/daemons/../../config/application.rb:1 /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
gem_original_require'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in require' /home/gary/RoR/tw/lib/daemons/mailer.rb:6 /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:203:in
load'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:203:in start_load' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:296:in
start'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/controller.rb:70:in run' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons.rb:143:in
run'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in call' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in
catch_exceptions'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons.rb:142:in run' ./lib/daemons/mailer_ctl:25 E, [2011-03-10T18:51:11.854328 #21570] ERROR -- : syntax error on line 35, col -1:
' (ArgumentError)
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/1.8/yaml.rb:133:in load' /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/1.8/yaml.rb:133:in
load'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/specification.rb:480:in from_yaml' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:235:in
load_gemspec'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:232:in chdir' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:232:in
load_gemspec'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:337:in load_spec_files' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:336:in
each'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:336:in load_spec_files' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:551:in
load_spec_files'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:367:in local_specs' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/source.rb:536:in
specs'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:147:in resolve' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:145:in
each'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:145:in resolve' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:90:in
specs'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:135:in specs_for' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/definition.rb:124:in
requested_specs'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/environment.rb:23:in requested_specs' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler/runtime.rb:11:in
setup'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/bundler-1.0.10/lib/bundler.rb:107:in setup' /home/gary/RoR/tw/config/boot.rb:8 /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
gem_original_require'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in require' /home/gary/RoR/tw/lib/daemons/../../config/application.rb:1 /home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in
gem_original_require'
/home/gary/.rvm/rubies/ruby-1.8.7-p72/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in require' /home/gary/RoR/tw/lib/daemons/mailer.rb:6 /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:203:in
load'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:203:in start_load' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/application.rb:296:in
start'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/controller.rb:70:in run' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons.rb:143:in
run'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in call' /home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in
catch_exceptions'
/home/gary/.rvm/gems/ruby-1.8.7-p72/gems/daemons-1.1.0/lib/daemons.rb:142:in `run'
./lib/daemons/mailer_ctl:25
As a gem, I can control which version I use through bundler, rather than having to keep it in vendor/plugins.
The daemon runs, but if i I access active record it blows up.
The complete issue is outlined here:
http://stackoverflow.com/questions/5441221/custom-daemon-with-rails-3
e:/Ruby/lib/ruby/site_ruby/1.8/rubygems.rb:233:in `activate': can't activate activesupport (= 3.0.0, runtime) for ["railties-3.0.0"], already activated activesupport-2.3.8 for "rails-2.3.8"
with Kozy's new branch I tried to generate a daemon but failed since Rails 3 doesn't accept "script" command as below any longer. I installed it using "rails plugin install git://github.com/kozy/daemon_generator.git" and it seems fine.
Can someone plz help to generate it?
Thx,
./script/generate daemon
if I do "rails generate daemon dm_listener", I get the error: "Could not find generator daemon."
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.