rudde / pyroscope Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/pyroscope
License: GNU General Public License v2.0
Automatically exported from code.google.com/p/pyroscope
License: GNU General Public License v2.0
* Add up/down meter (preferably graphed).
* Number of incomplete / stopped / etc. (rtxmlrpc view_list / rtxmlrpc
view.size +0 main).
* Tracker messages.
* Events (completed, loaded, etc.).
* Log displays (expandable, show last line or last update time only, by
default).
Original issue reported on code.google.com by pyroscope.project
on 27 Mar 2011 at 7:40
What steps will reproduce the problem?
1. install all build pre-requesites listed in the install instruction
2. run ./build.sh all
What is the expected output? What do you see instead?
Properly working binary expected,
Got configure: error: Could not compile XMLRPC-C test instead
What version of the product are you using? On what operating system?
current, unbuntu 13.04
Please provide any additional information below.
This subject was discussed over and over again along the years (according to
bugzillas, mail lists archives, etc). I have not to say, that was not said
before.
Original issue reported on code.google.com by [email protected]
on 25 Aug 2013 at 11:17
What steps will reproduce the problem?
1. just run build.sh
What is the expected output? What do you see instead?
I expected that build.sh runs. Instead it gives errors (bash in different
folder, sed has problems, FreeBSD gcc misses some additional flags).
What version of the product are you using? On what operating system?
Latest build.sh version on FreeBSD 8.2.
Please provide any additional information below.
I attached a patch to make build.sh working on FreeBSD system.
Original issue reported on code.google.com by [email protected]
on 29 Jun 2011 at 1:13
Attachments:
Plugin to add torrents directly, including available metadata. See also the
existing Deluge plugin.
Original issue reported on code.google.com by pyroscope.project
on 22 Apr 2011 at 6:42
Get list of active torents and the messages via timer triggers.
1. Add a JSON renderer for the view model
2. Display the data via a JS table widget / paginator
Original issue reported on code.google.com by pyroscope.project
on 11 Jun 2009 at 7:17
Make it resizable.
Possibly combine older events, especially long-time seeds; or add them as
timed events (seeding for xx days) so that they don't stack up. Define a
constant for the cut-off point (a week or so).
Original issue reported on code.google.com by pyroscope.project
on 27 Jun 2009 at 4:05
dump the most important values to a view
Original issue reported on code.google.com by pyroscope.project
on 12 Jun 2009 at 12:07
Extend traits to provide more metadata, for:
* audio (music): the usual (from tags, cue)
* video: technical data (mediainfo)
* tv: title, season, episode (from filenames, and possibly tvdb)
* movies: needs some database like IMDB
Most of these need caching, since they're relatively expensive to compute.
Original issue reported on code.google.com by pyroscope.project
on 13 Mar 2011 at 9:47
What steps will reproduce the problem?
1. Tag a torrent by pressing ».«
2. Move to the tagged view by pressing »:«
3. Remove all torrents from the tagged view by pressing »T«
4. The flag remains.
What is the expected output? What do you see instead?
When all torrents are removed from the tagged view, they should be also
unflagged. Currently torrents which were removed from the tagged view with the
»T« key are still flagged. Those torrents cannot be retagged again with the
».« key which makes this feature unusable.
What version of the product are you using? On what operating system?
rTorrent 0.9.4/0.13.4 and pyrocore 0.4.3dev on Ubuntu 14.04
Original issue reported on code.google.com by [email protected]
on 6 Sep 2014 at 11:09
Add after the "list" views are AJAXified. Display in same page, in an
overlay, ...?
In any case, allow perma-linking (/view/torrent/{hash}) and "open in new tab".
Original issue reported on code.google.com by pyroscope.project
on 11 Jun 2009 at 7:22
Add handling of rtorrent event types, an [EVENTS] section to config with
handler lists, and some standard handlers (move, copy, delete, etc.).
Handler base class should take guard filter expressions (e.g. restrict delete
handler to certain items).
Configuration syntax in the .INI isn't totally clear, maybe start in config.py
and then try to map what's there to simple config strings.
Original issue reported on code.google.com by pyroscope.project
on 18 Mar 2011 at 7:22
Add session management (in-memory) and store the refresh time for all pages
there.
Show it in the header, and make it settable there.
Original issue reported on code.google.com by pyroscope.project
on 12 Jun 2009 at 12:59
~~~ On errors, paste EVERYTHING below ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using Python 2.7.9 (default, Apr 2 2015, 15:33:21)
[GCC 4.9.2]
Updating your installation...
Already up-to-date.
You are using pip version 6.0.8, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already up-to-date: setuptools>=0.6c11 in
./lib/python2.7/site-packages
You are using pip version 6.0.8, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already up-to-date: paver>=1.0.5 in ./lib/python2.7/site-packages
You are using pip version 6.0.8, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already up-to-date: yolk3k in ./lib/python2.7/site-packages
You are using pip version 6.0.8, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already up-to-date: Tempita>=0.5.1 in ./lib/python2.7/site-packages
You are using pip version 6.0.8, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already up-to-date: APScheduler>=2.0.2 in
./lib/python2.7/site-packages
Requirement already up-to-date: six in ./lib/python2.7/site-packages (from
APScheduler>=2.0.2)
Requirement already up-to-date: futures in ./lib/python2.7/site-packages (from
APScheduler>=2.0.2)
Requirement already up-to-date: pytz in ./lib/python2.7/site-packages (from
APScheduler>=2.0.2)
Requirement already up-to-date: tzlocal in ./lib/python2.7/site-packages (from
APScheduler>=2.0.2)
You are using pip version 6.0.8, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already up-to-date: waitress>=0.8.2 in ./lib/python2.7/site-packages
Requirement already up-to-date: setuptools in ./lib/python2.7/site-packages
(from waitress>=0.8.2)
You are using pip version 6.0.8, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already up-to-date: WebOb>=1.2.3 in ./lib/python2.7/site-packages
warning: no files found matching 'setup.py'
warning: no files found matching 'paver-minilib.zip'
You are using pip version 6.0.8, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already satisfied (use --upgrade to upgrade): Tempita>=0.5.1 in
./lib/python2.7/site-packages
You are using pip version 6.0.8, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Requirement already satisfied (use --upgrade to upgrade): APScheduler>=2.0.2 in
./lib/python2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): six in
./lib/python2.7/site-packages (from APScheduler>=2.0.2)
Requirement already satisfied (use --upgrade to upgrade): futures in
./lib/python2.7/site-packages (from APScheduler>=2.0.2)
Requirement already satisfied (use --upgrade to upgrade): pytz in
./lib/python2.7/site-packages (from APScheduler>=2.0.2)
Requirement already satisfied (use --upgrade to upgrade): tzlocal in
./lib/python2.7/site-packages (from APScheduler>=2.0.2)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Project 'pyrobase' is not initialized!
warning: no files found matching 'setup.py'
warning: no files found matching 'paver-minilib.zip'
warning: no files found matching 'setup.py'
warning: no files found matching 'paver-minilib.zip'
ln: ‘./bin’: cannot overwrite directory
/home/vigour/lib/pyroscope/update-to-head.sh: line 66: ./bin/pyroadmin: No such
file or directory
Original issue reported on code.google.com by [email protected]
on 4 May 2015 at 3:11
For example, if you run:
echo "test" > 'test file.txt'
mktor 'test file.txt' http://mytracker.tld/
You get an error:
OSError: [Errno 2] No such file or directory: 'test'
It looks like it's splitting the arguments by spaces, when it should respect
spaces in filenames and directories if the arguments are passed with spaces.
The output of 'mktor --version' is "mktor 0.4.3dev".
I'm running this on Arch Linux (x86_64).
Original issue reported on code.google.com by [email protected]
on 6 Jan 2012 at 8:43
Add optional moving mode that changes the location in the client.
Original issue reported on code.google.com by pyroscope.project
on 18 Mar 2011 at 7:15
Use Simile widget to add a faceted view of all torrents. Requires JSON
renderer.
Original issue reported on code.google.com by pyroscope.project
on 11 Jun 2009 at 7:19
~$ test -S $RT_SOCKET && ~/bin/rtcontrol --from-view complete
'realpath=*/work/*' -qo '~/bin/rtmv "$(path)s" ~/rtorrent/done//$(alias)s
--cron' | bash
bash: line 1: unexpected EOF while looking for matching ``'
bash: line 915: syntax error: unexpected end of file
-----------------------------------
Ubuntu 13.10 fresh install
Original issue reported on code.google.com by [email protected]
on 1 Mar 2014 at 12:25
Don't poll the full "main" view on each HTTP request, but keep it globally
and update by a demon thread. This is needed anyway for stats features.
Mind the threading issues!
Original issue reported on code.google.com by pyroscope.project
on 11 Jun 2009 at 7:08
Add start / stop actions at least, maybe delete.
Combine single torrent changes vs. mass management using an edit mode combo
box like "direct / mass stop / mass start / ...". Swap visibility (display:
none) between the checkboxes and normal control buttons.
Original issue reported on code.google.com by pyroscope.project
on 20 Jun 2009 at 1:00
Allow loading config from ~/.pyroscope/config.py (or from "here" for the
webapp).
Original issue reported on code.google.com by pyroscope.project
on 12 Jun 2009 at 12:14
Add the global search to scan through all relevant metadata of the items in
the "main" view. Present a paginated / faceted result.
Original issue reported on code.google.com by pyroscope.project
on 11 Jun 2009 at 7:04
Two entry fields for old and new URL. Auto-completion on the first field,
and require that the old URL is an exact match to an existing one.
Original issue reported on code.google.com by pyroscope.project
on 27 Jun 2009 at 5:29
Add templating engine, which also allows to make decisions within templates and
so create dynamically changing formats depending on each item (like showing
different info for video and audio).
http://pythonpaste.org/tempita/
Original issue reported on code.google.com by pyroscope.project
on 13 Mar 2011 at 9:35
Implement:
-t, --threads=<n> : use <n> threads for calculating hashes
default is 2
- Janak
Original issue reported on code.google.com by [email protected]
on 6 Jun 2013 at 10:15
Integrate existing QM code.
Depends on "config management" and possibly on "log file display".
Original issue reported on code.google.com by pyroscope.project
on 11 Jun 2009 at 7:15
Try to find a cover image in the files of a download, and then create a
folder.jpg from it (using PIL, or maybe better a configurable command).
In absense of such an image, try to load it from the internet.
Must be added as a completion handler since before that image files aren't
usable.
Original issue reported on code.google.com by pyroscope.project
on 13 Mar 2011 at 3:04
[deleted issue]
Manage RSS feeds and put the results into the queue / watch dir.
Have to check what's already available when it comes to feed management via
HTTP.
Original issue reported on code.google.com by pyroscope.project
on 11 Jun 2009 at 9:57
Of course others may disagree with this, but I think it would be better to have
the default colors set to work with 8 color terminals as I believe a lot of
rtorrent users are using rtorrent on remote and/or headless servers and already
have their terminals set up as they like them.
As there already is stuff in the wiki for making rtorrent look better in 256
colors terminal, wouldn't it be wiser to have the default colors working in 8
color terminals, and then instructions for those who has working 256 color
setups?
Original issue reported on code.google.com by [email protected]
on 5 Jan 2013 at 11:40
What steps will reproduce the problem?
1. Trying to compile curl under fedora 14/x64
What is the expected output? What do you see instead?
•src/rtorrent-extended/curl-7.21.1» make
[22:29:48]
Making all in lib
make[1]: Entering directory `/opt/src/rtorrent-extended/curl-7.21.1/lib'
make all-am
make[2]: Entering directory `/opt/src/rtorrent-extended/curl-7.21.1/lib'
make[2]: Leaving directory `/opt/src/rtorrent-extended/curl-7.21.1/lib'
make[1]: Leaving directory `/opt/src/rtorrent-extended/curl-7.21.1/lib'
Making all in src
make[1]: Entering directory `/opt/src/rtorrent-extended/curl-7.21.1/src'
make all-am
make[2]: Entering directory `/opt/src/rtorrent-extended/curl-7.21.1/src'
/bin/sh ../libtool --tag=CC --mode=link gcc -isystem
/home/tim/lib/rtorrent-0.8.8/include -g0 -O2 -Wno-system-headers
-L/home/tim/lib/rtorrent-0.8.8/lib -o curl main.o hugehelp.o urlglob.o
writeout.o writeenv.o getpass.o homedir.o curlutil.o os-specific.o strtoofft.o
strdup.o rawstr.o nonblock.o ../lib/libcurl.la -lz
libtool: link: gcc -isystem /home/tim/lib/rtorrent-0.8.8/include -g0 -O2
-Wno-system-headers -o .libs/curl main.o hugehelp.o urlglob.o writeout.o
writeenv.o getpass.o homedir.o curlutil.o os-specific.o strtoofft.o strdup.o
rawstr.o nonblock.o -L/home/tim/lib/rtorrent-0.8.8/lib ../lib/.libs/libcurl.so
-lz -Wl,-rpath -Wl,/usr/local/lib
/usr/bin/ld: curlutil.o: undefined reference to symbol
'clock_gettime@@GLIBC_2.2.5'
/usr/bin/ld: note: 'clock_gettime@@GLIBC_2.2.5' is defined in DSO
/lib64/librt.so.1 so try adding it to the linker command line
/lib64/librt.so.1: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[2]: *** [curl] Error 1
make[2]: Leaving directory `/opt/src/rtorrent-extended/curl-7.21.1/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/opt/src/rtorrent-extended/curl-7.21.1/src'
make: *** [all-recursive] Error 1
What version of the product are you using? On what operating system?
•/opt/src/rtorrent-extended» svn info
[22:30:49]
Path: .
URL: http://pyroscope.googlecode.com/svn/trunk/pyrocore/docs/rtorrent-extended
Repository Root: http://pyroscope.googlecode.com/svn
Repository UUID: f46b6318-5139-11de-872b-dbf177db83f9
Revision: 1594
Node Kind: directory
Schedule: normal
Last Changed Author: pyroscope.project
Last Changed Rev: 1589
Last Changed Date: 2011-06-10 21:03:45 +0300 (Fri, 10 Jun 2011)
Please provide any additional information below.
I found that using this patch works for me as well
http://comments.gmane.org/gmane.comp.web.curl.library/29278
and ./buildconf && ./configure && make
Original issue reported on code.google.com by [email protected]
on 22 Jun 2011 at 7:33
As soon as i try to use the field "message" with rtcontrol :
alias rtmsg="rtcontrol -s alias,message,name 'message=?*'
message=\!*Tried?all?trackers*"
i've got the following error :
one of my trackers has such messages : " Tracker: [Failure reason "Torrent non
enregistré"]"
How can i solve this ?
Thx
File "/home/user/bin/rtcontrol", line 8, in <module>
load_entry_point('pyrocore==0.4.3dev', 'console_scripts', 'rtcontrol')()
File "/home/user/lib/pyroscope/pyrocore/src/pyrocore/scripts/rtcontrol.py", line 639, in run
RtorrentControl().run()
File "/home/user/lib/pyroscope/pyrocore/src/pyrocore/scripts/base.py", line 236, in run
self.mainloop()
File "/home/user/lib/pyroscope/pyrocore/src/pyrocore/scripts/rtcontrol.py", line 511, in mainloop
matches = list(view.items())
File "/home/user/lib/pyroscope/pyrocore/src/pyrocore/torrent/engine.py", line 585, in items
if self.matcher.match(item):
File "/home/user/lib/pyroscope/pyrocore/src/pyrocore/util/matching.py", line 96, in match
return all(i.match(item) for i in self)
File "/home/user/lib/pyroscope/pyrocore/src/pyrocore/util/matching.py", line 96, in <genexpr>
return all(i.match(item) for i in self)
File "/home/user/lib/pyroscope/pyrocore/src/pyrocore/util/matching.py", line 188, in match
val = (getattr(item, self._name) or '').lower()
File "/home/user/lib/pyroscope/pyrocore/src/pyrocore/torrent/engine.py", line 281, in __get__
return super(OnDemandField, self).__get__(obj, cls)
File "/home/user/lib/pyroscope/pyrocore/src/pyrocore/torrent/engine.py", line 247, in __get__
return self.valtype(self._accessor(obj) if self._accessor else obj._fields[self.name])
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe8' in position
29: ordinal not in range(128)
Original issue reported on code.google.com by [email protected]
on 2 Oct 2014 at 7:34
Add code that moves/copies across devices.
Original issue reported on code.google.com by pyroscope.project
on 18 Mar 2011 at 7:16
Combine single torrent changes vs. mass management using an edit mode combo
box like "direct / mass stop / mass start / ...". Swap visibility (display:
none) between the checkboxes and normal control buttons.
Original issue reported on code.google.com by pyroscope.project
on 27 Jun 2009 at 5:25
What steps will reproduce the problem?
1. Install in Freebsd 10.1
2.
3.
What is the expected output? What do you see instead?
That it compiles and installs
What version of the product are you using? On what operating system?
0.9.4 and Freebsd 10.1
Please provide any additional information below.
I get the errors when run .build.sh all:
./build.sh: line 18: lsb_release: command not found
./build.sh: line 38: gcc: command not found
You don't have the 'g++' command available, you likely need to:
sudo apt-get install build-essential
As far as I know, Freebsd now uses clang and there is no build-essential or
lsb_release command.
Original issue reported on code.google.com by [email protected]
on 8 Mar 2015 at 11:40
The latest revision has changed culling to use 'self.fetch("is_multi_file")'
instead of 'len(item_files) > 1'. This results in an error, since fetch
prepends 'get_' to the call:
ERROR While accessing field 'is_multi_file': <Fault -506: "Method
'd.get_is_multi_file' not defined">
The proper method should be 'd.is_multi_file', without 'get_'.
Original issue reported on code.google.com by [email protected]
on 12 Sep 2011 at 8:19
Show relevant logfiles in the web interface.
Any existing WSGI apps for that?!
Original issue reported on code.google.com by pyroscope.project
on 11 Jun 2009 at 7:14
Poll relevant data in >= 1 sec intervals (probably different sets of data
at different intervals) and put them into a RRD.
Original issue reported on code.google.com by pyroscope.project
on 11 Jun 2009 at 7:12
Growl about new inserts and completions.
Possibly also add "--growl «pattern»" to rtcontrol for cron use.
Original issue reported on code.google.com by pyroscope.project
on 20 Mar 2011 at 8:43
Use libnotify to watch a directory for new files, load them and completion-move
them according to the relative path in the watch root (i.e. what ruTorrent
autotools does).
Original issue reported on code.google.com by pyroscope.project
on 26 Jun 2011 at 5:28
Add proper handling for time values (summing up deltas, and avg of delta; plus
correct output formatting).
Original issue reported on code.google.com by pyroscope.project
on 13 Mar 2011 at 10:10
Show up/down throttle etc. in the header on each page; basically the bottom
line of the rtorrent console. AJAXify it from the start.
Original issue reported on code.google.com by pyroscope.project
on 12 Jun 2009 at 12:09
see patch
Original issue reported on code.google.com by [email protected]
on 29 May 2012 at 10:05
Attachments:
What steps will reproduce the problem?
1. Running build.sh
What is the expected output? What do you see instead?
I'm trying to build rtorrent-extended on Mac OS X (Lion). When I run build.sh
all it seems to complete the build of rtorrent-vanilla (with a bunch of
errors), but is unable to compile rtorrent-extended.
It fails with: ready to configure
./configure: line 16813: syntax error near unexpected token `RT_HEX_VERSION,'
./configure: line 16813: `nAC_DEFINE(RT_HEX_VERSION, 0x000809, for CPP if
checks)nAC_DEFINE(API_VERSION, 0, api version)'
What version of the product are you using? On what operating system?
I'm compiling from svn on Mac OS X 10.7.3
Please provide any additional information below.
To get build.sh to run at all I had to change libtool to glibtool in the first
place.
Original issue reported on code.google.com by [email protected]
on 6 May 2012 at 4:25
To move completed downloads to another folder, I have the following in my
.rtorrent.rc:
directory = /export/Incoming/rTorrent/
schedule =
watch_directory_1,10,10,"load_start=/data/Torrent/Music/*.torrent,d.set_custom1=
Music,d.set_custom2=/export/Incoming/Complete/Music/"
system.method.set_key =
event.download.finished,move_complete,"d.set_directory=$d.get_custom2=;d.set_cus
tom1=Complete;execute=mv,-u,$d.get_base_path=,$d.get_custom2="
Now when I try to move one of the downloads I get:
# rtmv Some\ Dir ../Music.Final/
INFO Moving to "../Music.Final/Some Dir"...
INFO Total time: 0.124 seconds.
Traceback (most recent call last):
File "/home/media/bin/rtmv", line 8, in <module>
load_entry_point('pyrocore==0.4.3dev-r2092', 'console_scripts', 'rtmv')()
File "/home/media/lib/pyroscope/pyrocore/src/pyrocore/scripts/rtmv.py", line 231, in run
RtorrentMove().run()
File "/home/media/lib/pyroscope/pyrocore/src/pyrocore/scripts/base.py", line 234, in run
self.mainloop()
File "/home/media/lib/pyroscope/pyrocore/src/pyrocore/scripts/rtmv.py", line 213, in mainloop
assert src1 == src2, 'Item path %r should match %r!' % (src1, src2)
AssertionError: Item path u'/export/Incoming/rTorrent/Some Dir' should match
u'/export/Incoming/Complete/Music/Some Dir'!
Same result for Torrents I moved with rutorrent. I'm going to remove the
assert from rtmv.py and see were it takes me.
Original issue reported on code.google.com by [email protected]
on 23 Apr 2013 at 6:15
Feeds for various data sets, like completed torrents or severe log msgs.
Original issue reported on code.google.com by pyroscope.project
on 11 Jun 2009 at 9:55
This page is really useful:
https://code.google.com/p/pyroscope/wiki/RtXmlRpcReference
It's more complete than the original docs @ rTorrent, I wish you guys find the
time to complete it.
Original issue reported on code.google.com by [email protected]
on 28 Jul 2013 at 11:17
Implement the existing CLI skeleton interface.
Original issue reported on code.google.com by pyroscope.project
on 8 Mar 2010 at 1:12
Use YUI to make the up/down rate limits changeable.
Original issue reported on code.google.com by pyroscope.project
on 27 Jun 2009 at 5:15
If a feed contains a torrent that isn't loaded yet for the given announce URL
and the info hash is unknown, but the piece hashes match (100%, later maybe to
a certain threshold), then load that torrent for the existing data ==>
automatic cross-seeding.
Original issue reported on code.google.com by pyroscope.project
on 30 Apr 2011 at 5:29
What steps will reproduce the problem?
1. Install Debian 7.x
2. Follow instructions to "Build rtorrent and core dependencies from source"
3.
What is the expected output? What do you see instead?
I expect a working version of rtorrent and its dependencies. What I get is
"configure: error: Could not compile XMLRPC-C test."
What version of the product are you using? On what operating system?
svn
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 25 Aug 2013 at 7:33
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.