Note: this repository was part of the old Hoodie (v2.1.1) and is no longer maintained. Check out hoodiehq/hoodie to get started with the new Hoodie.
The default/welcome Hoodie app
⛔ deprecated
License: Other
The default/welcome Hoodie app
using the newer my-first-hoodie stuff my jitsu deploys fail.
I have a feeling it is because of all the command line prompts, e.g. Please set an admin password
. is there a way to set the admin password from an environment variable?
why not make a hoodie alias for npm start
? I think it would be less confusing for frontenders.
What's the process for updating a Hoodie app? The last time I did this I just manually updated the version numbers in package.json and ran npm update, but I figure there must be a more automagic way than hunting down the latest release numbers for each package?
Hi all, I followed the README tutorial and deployed my app (hh) into nodejitsu. hoodie start
in my local directory works fine (server goes up, browser test program works and gives no console error), and deploying to nodejitsu seems to work fine too.
When I try to use http://hoodie-hh.jit.su/, the interface loads correctly, but the console says:
_api/ GET 500 Internal Server Error
The nodejitsu logs are quite unuseful:
[06/24 17:29:53 GMT+0100] [users] creating skeleton/user database ??? [06/24 17:29:53 GMT+0100] [users] [Setup] /modules/users not yet setup [06/24 17:29:53 GMT+0100] [users] [Setup] creatinging object in modules database ??? [06/24 17:30:08 GMT+0100] [www] GET / 200 17ms [06/24 17:30:09 GMT+0100] [www] GET /css/main.css 200 7ms [06/24 17:30:09 GMT+0100] [www] GET /css/bootstrap.min.css 200 13ms [06/24 17:30:09 GMT+0100] [www] GET /js/hoodie.accountbar.bootstrap.js 200 5ms [06/24 17:30:09 GMT+0100] [www] GET /js/vendor/bootstrap.js 200 8ms [06/24 17:30:09 GMT+0100] [www] GET /js/vendor/hoodie.js 200 8ms [06/24 17:30:09 GMT+0100] [www] GET /js/vendor/jquery-1.9.1.js 200 9ms [06/24 17:30:09 GMT+0100] [www] GET /js/bootstrap.modalform.js 200 2ms [06/24 17:30:09 GMT+0100] [www] DELETE /_api/_session 500 74ms [06/24 17:30:09 GMT+0100] [www] GET /js/main.js 200 2ms [06/24 17:30:09 GMT+0100] [www] GET /img/pattern_130.gif 200 1ms - 3.85kb [06/24 17:30:10 GMT+0100] [www] GET /_api/ 500 73ms [06/24 17:30:16 GMT+0100] [www] GET /favicon.ico 200 2ms [06/24 17:30:16 GMT+0100] [www] GET /_api/ 500 45ms [06/24 17:30:19 GMT+0100] [www] GET /_api/ 500 43ms [06/24 17:30:23 GMT+0100] [www] GET /_api/ 500 44ms [06/24 17:30:25 GMT+0100] [www] GET /_api/ 500 45ms [06/24 17:30:29 GMT+0100] [www] GET /_api/ 500 43ms [06/24 17:30:32 GMT+0100] [www] GET /_api/ 500 45ms [06/24 17:30:35 GMT+0100] [www] GET /_api/ 500 44ms [06/24 17:30:39 GMT+0100] [www] GET /_api/ 500 47ms [06/24 17:30:42 GMT+0100] [www] GET /_api/ 500 44ms [06/24 17:30:45 GMT+0100] [www] GET /_api/ 500 43ms
my package.json is as such:
{ "name": "hh", "version": "1.0.0-1", "type": "app", "dependencies": { "hoodie-app": "git://github.com/hoodiehq/hoodie-app.git", "hoodie-worker-users": "git://github.com/hoodiehq/worker-users.git" }, "subdomain": "hoodie-hh", "domains": [ "admin.hoodie-hh.jit.su", "couch.hoodie-hh.jit.su" ], "scripts": { "start": "node node_modules/hoodie-app/bin/start" }, "engines": { "node": "0.8.x" } }
My node is v0.8.2 and npm is 1.1.36
How can I debug this behaviour?
I've pushed a new commit: 12b24a5. It fixes an issue in hoodie.js, fixed in [email protected].
I don't know how to currently release a new my-first-hoodie version, so it becomes what I get when I do hoodie new myapp
. Can we put that information somewhere accessible?
The paint() function in main.js has a cross-site scripting vulnerability:
$el.append(
'<li data-id="' + collection[i].id + '">' +
'<input type="checkbox"> <label>' + collection[i].title + '</label>' +
'<input type="text" value="' + collection[i].title + '"/>' +
'</li>'
);
How to reproduce:
Add a to-do item with the following title:
"/><script>alert(1);</script>
The text needs to be escaped (more correctly: encoded): https://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery
Hi, thanks so much for hoodie, looks really interesting. I noticed a few minor issues with the sample app.
Bug: Duplication of items on sign-up
STR: As an unauthenticated user i add three todos "A", "B", "C", then i signup and i have six todos "A", "B", "C", "C", "B", "A"
Bug: Ordering of items not fully consistent
STR: If a user signs-in and has some persisted todos (e.g. "A", "B", "C") the order of the todos can differ from the order (due to unordered sync?)
Feature Request: A todo app without the ability to mark todos done (remove them) is plain evil :)
I think a minimal (sorted) todo collection/collection view-implementation in the client would be helpful in solving both 1) and 2) and a good basis for 3) - preparing a small PR for that now.
Installed node.js, github for windows and CouchDB last night, followed by hoodie-cli.
Created a new app and came across the following error when starting hoodie:
Initializing...
CouchDB started: http://127.0.0.1:6009
Error: spawn ENOENT
at errnoException (child_process.js:1001:11)
at Process.ChildProcess._handle.onexit (child_process.js:792:34)
Stopping CouchDB...
fs.js:438
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory 'C:\nodejs\app\data\couch.pid'
at Object.fs.openSync (fs.js:438:18)
at Object.fs.readFileSync (fs.js:289:15)
at MultiCouch.stop (C:\nodejs\app\node_modules\hoodie-server\node_modules\mu
lticouch\lib\multicouch.js:114:23)
at Object.exports.stop (C:\nodejs\app\node_modules\hoodie-server\lib\couchdb
\index.js:181:11)
at process. (C:\nodejs\app\node_modules\hoodie-server\lib\couchdb
\index.js:76:13)
at process.emit (events.js:95:17)
at process.exit (node.js:711:17)
at Domain. (C:\nodejs\app\node_modules\hoodie-server\lib\index.js
:64:13)
at Domain.emit (events.js:95:17)
at ChildProcess.emit (events.js:70:21)
Originally I had installed nodejs and CouchDB in Program Files, so after a lot of searching I found the issue with spaces in directories. Stupid issue but heyho, I uninstalled nodejs and Couchdb and installed them in their own folders as you can see from the error message.
Still got the same problem when starting hoodie. So after more searching I found the issue regarding set environment variables COUCH_BIN and COUCH_DEFAULT_INI, so I added those to my system, restarted, no difference. Even added the environment variable for win_bin - again no difference.
No matter what changes I make it seems hoodie is incapable of starting a couchdb instance?
Running "hoodie start" I'm always getting an error
Initializing...
CouchDB started: http://couch.myappname.dev:80
Waiting for CouchDB [*-----] FAILED
At the time when app is waiting for CouchDB, it is reachable on other port here http://couch.myappname.dev:6003/.
Maybe I need to change couchDB port? If so, where could I do this?
“Learn from the best”, they say. I think https://github.com/bitmazk/django-reusable-app-template is a pretty good benchmark for what my-first-hoodie should be
Version: 0.4.8 (node v0.10.26, npm 1.4.3, platform: win32)
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
Could not fetch project from https://github.com/hoodiehq/my-first-hoodie.git
I have a pretty good idea looking at the C:\Program
what the error is. But I'm sure you know where it is and how to fix it. For reference, windows 7 x64, git bash:
$ where git
C:\Program Files (x86)\Git\bin\git.exe
$ where npm
c:\Program Files\nodejs\npm
c:\Program Files\nodejs\npm.cmd
$ git --version
git version 1.9.0.msysgit.0
$ npm -version
1.4.3
This is similar behavior to an earlier issue I filed, but kind of has the opposite behavior. After signup, the previously entered data is gone and the user isn't shown an signed in until a page reload (CMD+R) is triggered.
To reproduce this:
npm install hoodie-cli
hoodie cache clean
hoodie new appname
cd appname
hoodie start
I entered these items into the "new todo" input:
This is how the page looks before signup:
I clicked signup, entered in username and password (2x) and then clicked "SignUp" (blue button).
This is how the page is displayed after signup:
This is how the page looks after reload:
Just taking a glance at the source code I cannot see why this happens, but I'm pretty sure it's not hoodie.js's fault, but more the jQuery that doesn't listen to an even somewhere. Maybe it just isn't such a good idea to use jQuery as the example app. Maybe - on another issue - we should discuss what the example app for hoodie should look like and what frameworks it should use (if any).
create folders & put files in there:
css/
js/
img/
(wording optional)
I'm not sure if this is a proper bug, but...
running hoodie new myappname
following the install guide, the hoodie app is firing up and I am able to see the default app on port 6001 (Linux, Firefox 19, couchdb 1.3.x (not yet 1.3.1))
I created a test account, but the login bar didn't change. I reloaded the page, and it showed the hello testuser
message, and the logout button. I logged out, reloaded, and the bar showed the signup button. I logged in, and the button bar did not change again.
Looking at the code, I see that line 22 of hoodie.accountbar.bootstrap.js
is listening for the authenticated
event:
this.hoodie.account.on('authenticated', this.handleUserAuthenticated.bind(this))
BUT, grepping hoodie.js, I don't see where this event is firing. I see the signin
event at hoodie.js line 646, and a few lines later the reauthenticated
event, but I can't find anywhere that fires a plain authenticated
event.
I'm probably missing something, but if not, maybe you should change line 22 to be:
this.hoodie.account.on('signin reauthenticated', this.handleUserAuthenticated.bind(this))
That does the trick on my setup at least.
ps I scanned the newer, non-coffeescript branches and didn't see the authenticated event there either.
I've set up Hoodie app to nodejitsu hosting, and tried to work with external hosted app from localhost, where I've faced cross domain requests error:
Origin null is not allowed by Access-Control-Allow-Origin.
Is it possible to open app for those kind of requests? I want to make common database for development enviroment and production.
I'd like to remove https://github.com/hoodiehq/my-first-hoodie/blob/master/package.json#L14-L18 as they are only needed when and if you deploy an app to nodejitsu, which their jitsu
tool should add anyways when you try and deploy an app.
run
hoodie.account.anonymousSignUp();
then reload page
Currently. my-first-hoodie serves two purposes:
These should be covered by two distinct modules.
A change in the sample / demo app should not cause a change in the dependency chain.
Conversely, it’d be great if people’s own apps could update to a new version of the Hoodie system by installing a newer version of module 1. At which point the sample app is completely ignored, because there already is an app.
Specifically, if a dev wants to update their app today, they have to look into the package.json
of the latest version of my-first-hoodie
and find the right packages that make up the Hoodie system, and then copy and paste the version numbers into their own app’s package.json
.
Needless to say that this isn’t a very friendly operation. Given that we plan regular releases, upgrading an app should be super straightforward.
Just installed hoodie from brew on my local machine and I'm seeing this:
http://cl.ly/image/1E1X29130V0U
Not really sure if the issue is with this sample app, something elsewhere, or something I'm not doing properly, but, when I try to sign up on a newly created todo app, I see the following (full text here):
This happens when I enter my name & password and click the button.
When running through the install steps in the README, I assumed that I should probably run npm install -g local-tld
as sudo
, as I do with most other global Node module installations. When running as sudo
, the script tries to run launchctl
and asks for my sudo
password for a second time, only now my regular password does not work.
Here's a dump from my console:
npm http GET https://registry.npmjs.org/local-tld
npm http 304 https://registry.npmjs.org/local-tld
> [email protected] preuninstall /Users/adamyeats/.nvm/v0.10.5/lib/node_modules/local-tld
> ./bin/local-tld-uninstall
++ id -u
+ '[' 4294967294 -eq 0 ']'
+ SUDO=sudo
+ sudo launchctl unload /Library/LaunchDaemons/ie.hood.local-tld-firewall.plist
WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.
To proceed, enter your password, or type Ctrl-C to abort.
Password:
Sorry, try again.
Running the install without sudo
works as expected.
Install target is a Mac running 10.8.3 and Node v0.10.5.
I realise that this is not a bug with Hoodie and I am, of course, at fault as I didn't follow the instructions to the letter, however I think it's fair to assume that others will make the same mistake I have as it is often a requirement to run global module installs with sudo
.
Unless anyone can establish if this is an issue local to my machine, can I suggest a slight tweak to the docs that explicitly says not to run npm install -g local-tld
as sudo
? Happy to submit the PR myself.
Below are some ideas and concerns I have encountered trying to pull on new hoodies. To best introduce this initial app we need to see clear hoodie api calls. I think if we strip some of the UI requirements ( mostly bootstrap ) and show hoodie from a bare-bones stand point focusing on individual modules we will help new hoodie subscribers get the full scope and benefit of hoodie and its simple api.
For me it is best to start and complete an install of a new app for the first time with zero problems and zero confusion. At this moment I do not feel this is the case for the current readme in this repo. From the start local-tld is shrouded in mystery, the whole hoodie process is shrouded in mystery to someone 100% new. Homebrew installs the wrong version of couchdb ( we currently need 1.2 ) it installs 1.1.1. Homebrew also is not available on windows or linux. My couch was opening on port 5999. Some of these issues could have possibly been user error ^_^ - I did eventually get a few hacked hoodies on but could only browse the www and found that user sign up is broken. I tried to get into the admin but even when trying my username and password created in couch it failed as well because of the local-tld failure.
I am not sure the best way to improve these issues encountered but the goal for me with hoodie is to be simple install + great docs + beautiful api. It already has two of those. Maybe a better idea is to create some tutorials using this repo as a spring board to create something like my-first-hoodie-user. Given the new comer was able to install hoodie. This would be a simple vanilla user login - logout - changepassword etc app. Another cool idea could be a simple app with a themeroller that just changes some css and gives a whole new look and feel to the same code.
Any other ideas to teach / learn hoodie?
Is there an event that catches "local storage ready to work" state? If user come with empty localstorage, on hoodie.store.findAll fist I get an empty array. Only after some time, when localstorage syncs with server I could get real reasponse from findAll method.
My task is to first get information from remote, and then create new object if it isn't there yet.
follow up for hoodiehq/hoodie#36, created by @xpollen8
user logins/logouts in the default app do not refresh the browser contents using the Safari browser under 10.6.8.
one has to do a manual reload to see that state has changed.
My First Hoodie will consist of both a time tracker and a budget tracker. Each one will have data input with a form.
We would like your opinions on whether it would be nicer to have a more compact app, where both halves interact with one form or whether, for simplicity for the first time hoodie user, each half should have its own form.
Let us know what you think 😉
As already mentioned in IRC I ran into some problems with hoodie.
These are the steps to reproduce my issues (copied from shell history):
hoodie new testproject
cd testproject
hoodie start
Start $BROWSER on mentioned URL, try to create an account.
Log of "hoodie start"
https://gist.github.com/themasch/0d38aa80ba2b4b41a0cc
data/couchdb.stdout:
https://gist.github.com/themasch/0b2718fa328edf2809d8
Versions:
npm: 1.2.21
node: v0.11.2
hoodie-app: 0.8.0
hoodie-worker-user: 0.0.6
couch-db: 1.3.1
OS:
funtoo linux
kernel 3.8.7 x84_64
Did I miss anything?
Additional Information: I tired the yeoman generator like this:
mkdir testbla
cd testbla
yo hoodie
node node_modules/hoodie-app/bin/start
This behaves exact the same way.
Hello,
unfortunately Hoodie's first run fails on my machine:
$ hoodie start
npm WARN package.json [email protected] No repository field.
> [email protected] start /Users/kai/dev/hornhaut
> node node_modules/hoodie-app/bin/start
...
Initializing...
CouchDB started: http://couch.hornhaut.dev:80
Waiting for CouchDB [---*--] FAILED
ERR! Error: Timed out waiting for CouchDB. These logs may help:
ERR! /Users/kai/Library/Hoodie/Apps/hornhaut/couch.stderr
ERR! /Users/kai/Library/Hoodie/Apps/hornhaut/couch.stdout
ERR! /Users/kai/Library/Hoodie/Apps/hornhaut/couch.log
ERR! at Request._callback (/Users/kai/dev/hornhaut/node_modules/hoodie-app/lib/couch.js:129:37)
ERR! at self.callback (/Users/kai/dev/hornhaut/node_modules/hoodie-app/node_modules/request/index.js:142:22)
ERR! at Request.EventEmitter.emit (events.js:95:17)
ERR! at ClientRequest.self.clientErrorHandler (/Users/kai/dev/hornhaut/node_modules/hoodie-app/node_modules/request/index.js:246:10)
ERR! at ClientRequest.EventEmitter.emit (events.js:95:17)
ERR! at Socket.socketErrorListener (http.js:1499:9)
ERR! at Socket.EventEmitter.emit (events.js:95:17)
ERR! at net.js:813:16
ERR! at process._tickCallback (node.js:415:13)
ERR! at net.js:813:16
ERR! at process._tickCallback (node.js:415:13)
Stopping CouchDB...
couch.stderr
:
heart_beat_kill_pid = 17217
heart_beat_timeout = 11
heart: Sat May 18 18:46:35 2013: Erlang has closed.
/usr/local/Cellar/couchdb/1.3.0/bin/couchdb: line 305: echo: write error: Broken pipe
heart: Sat May 18 18:46:35 2013: Executed "/usr/local/Cellar/couchdb/1.3.0/bin/couchdb -k" -> 256. Terminating.
Im on Mac OS X 10.6.8 Snow Leopard, CouchDB 1.3.0, Node 0.10.6 and NPM v1.2.18. All installed via Homebrew.
However, I'm not shure if there still some remains from a former pkg Node installation.
I installed local-tdl
but it might not work.
~/.local-tld.json
:
{
"4001": {
"name": "hello"
}
}
I created a "Hello World" Node script that listens to that port. It works with IP + port but not with http://hello.dev.
Any ideas are much appreciated.
Kai
^0.1.4
is the current one
Would it be possible to solely deploy a hoodie backend and run the frontend somewhere else?
This would be an ideal solution for a mobile app. The hoodie backend will be deployed on a server (nodejitsu, heroku, ...) while the mobile app only uses the hoodie frontend:
hoodie = new Hoodie('http://remotehoodie/_api');
This way I can still use all my frontend boilerplate code and only need to change my backend references.
Is this possible by just deploying this app and removing the /www
folder?
MFH is the first thing new Hoodie users will see, and we have to be absolutely certain it works correctly. For this reason we'd like to implement two procedures here:
Thought I would create this issue since it wasn't exactly straightforward to pick out these pieces from the current docs. Might be worth including somewhere?
Download/Install CouchDB http://couchdb.apache.org and Node http://nodejs.org then run the following commands:
npm install -g hoodie-cli
hoodie new myapp
cd myapp
COUCH_URL=http://localhost:5984/ hoodie start
Change Username ==> Reset Password
Not sure why, not sure if it's only this version at this point.
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:23.0) Gecko/20130411 Firefox/23.0
This is how appname/.git/config looks like after creating a new app with hoodie new appname
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://github.com/hoodiehq/hoodie-app-skeleton.git
[branch "master"]
remote = origin
merge = refs/heads/master
the [remote "origin"]
should not be there
Hi,
I'm now working with hoodie integrating it in our frontend documentation engine, where we have common data for all documentation viewers. Is it okay to use common account for all users? Could hoodie work stable this way?
I just login every client to same account, and give functionality to change something for every user.
And is it already possible to use hoodie.share for this kind of tasks?
hi guys,
i m try to up the hoodie on nodejitsu, but the admin is no acessible
some one know why?
cheers couchers
gr2m/hoodstrap
Hoodie is starting to look like an alternative to Firebase, does Hoodie have the capability to share a document and have users collaborate on it together?
Here is the link to the "Firebase in Action" example: https://www.firebase.com/how-it-works.html
When I run hoodie new app && hoodie start
I get following error:
Start local couch on port: 6004
CouchDB Started
hoodie server started on port '6003'
Trace: couch_has_admin
at Request._callback (/Users/olekrueger/Development/app/node_modules/hoodie-app/lib/hoodie-installer.js:18:17)
at self.callback (/Users/olekrueger/Development/app/node_modules/hoodie-app/node_modules/request/index.js:148:22)
at Request.EventEmitter.emit (events.js:95:17)
at ClientRequest.self.clientErrorHandler (/Users/olekrueger/Development/app/node_modules/hoodie-app/node_modules/request/index.js:257:10)
at ClientRequest.EventEmitter.emit (events.js:95:17)
at Socket.socketErrorListener (http.js:1499:9)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:813:16
at process._tickCallback (node.js:415:13)
http://couch.app.dev:80/_users
{ [Error: getaddrinfo ENOTFOUND] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' }
CouchDB stop triggered by exit
Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:37:11)
at Object.onanswer [as oncomplete] (dns.js:124:16)
Installed hoodie-cli
from NPM today, went to run hoodie new <appname>
and hit the following error:
426 error Error: No compatible version found: hoodie-pocket-uikit@'^1.0.0'
426 error Valid install targets:
426 error ["1.0.0","1.0.1","1.0.2"]
426 error at installTargetsError (/Users/martinh/.nvm/v0.10.15/lib/node_modules/npm/lib/cache.js:719:10)
426 error at /Users/martinh/.nvm/v0.10.15/lib/node_modules/npm/lib/cache.js:638:10
426 error at RegClient.get_ (/Users/martinh/.nvm/v0.10.15/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:105:14)
426 error at RegClient.<anonymous> (/Users/martinh/.nvm/v0.10.15/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:41:12)
426 error at fs.js:266:14
426 error at /Users/martinh/.nvm/v0.10.15/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:103:5
426 error at Object.oncomplete (fs.js:107:15)
427 error If you need help, you may report this log at:
427 error <http://github.com/isaacs/npm/issues>
427 error or email it to:
427 error <[email protected]>
428 error System Darwin 13.1.0
429 error command "/Users/martinh/.nvm/v0.10.15/bin/node" "/Users/martinh/.nvm/v0.10.15/bin/npm" "install" "--production" "--cache-min" "99999999" "--loglevel" "silly"
430 error cwd /Users/martinh/.hoodie/cache/my-first-hoodie
431 error node -v v0.10.15
432 error npm -v 1.3.5
I've cleaned hoodie and npm caches, and get the same error. My NPM registry is set to https://registry.npmjs.org/
when creating a new hoodie app with hoodie new myapp
, remove .git
folder, then initialize a new one.
steps to reproduce:
hoodie new yap
cd yap
hoodie start yap
got to browser window, go to right port
do not log in or create account, just add todo items, say two of them.
Reload the page
add another todo item, get the item, plus a blank line.
This also happens when logged in.
On Firefox 19.0
Hello guys. I start digging into some parts of where hoodie's magic happens and it is a awesome toolkit. Thanks for keeping it open-source. You rockz
I am a AngularJS user, i use it in most of my web-apps and it will works great with hoodie because both share the same idea of single-page-app + front-end-first and are complementary to each other , so i decided to create a template for hoodie + angular, based on this one. Still working in progress but i think very soon will be done, hope you enjoy
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.