madcowfred / evething Goto Github PK
View Code? Open in Web Editor NEWDjango app to manage your burgeoning EVE Online space empire... or something.
License: BSD 2-Clause "Simplified" License
Django app to manage your burgeoning EVE Online space empire... or something.
License: BSD 2-Clause "Simplified" License
When running the importer to grab the data from the eve sde, I get the following:
python import.py
=> Region:
Traceback (most recent call last):
File "import.py", line 808, in
importer.import_all()
File "import.py", line 67, in import_all
time_func('Region', self.import_region)
File "import.py", line 57, in time_func
added = f()
File "import.py", line 106, in import_region
Region.objects.bulk_create(new)
AttributeError: 'Manager' object has no attribute 'bulk_create'
EveThing database: MySQL
EvE SDE: Sqlite3 (Inf12)
OS: Ubuntu Server 12.04
Python 2.7.3
Django 1.3.1
Running latest version of code from the develop branch
The de-facto master branch for this project is develop
. This can be represented in GitHub through use of the Settings
screens.
Setting a correct master branch will reduce the opportunity for confusion and error when visiting the project, checking out the repository, or submitting pull requests.
Install docs is missing that requests is a required module.
Hello,
In bootstrap.less you have this line :
@import "font-awesome/font-awesome.less";
but it seems there's no "font-awesome" directory and no "font-awesome.less" in the project.
Any way fixing this instead of just commenting the line ?
I hope i'm not just blind and didn't see the correct way to fix it...
Maybe having a log for completed job rather than delivered job would be more efficient though.
Fresh install, clean database. Added a character key and got the following error generated in my worker log file.
[2012-10-01 12:55:07,074: ERROR/MainProcess] Task thing.tasks.api_key_info[a9eee6a2-24fe-4ee4-8aa0-dbe64f8ce6e4] raised exception: IntegrityError(1452, 'Cannot add or update a child row: a foreign key constraint fails (`evething`.`thing_character`, CONSTRAINT `corporation_id_refs_id_5b74e5deccbfecc6` FOREIGN KEY (`corporation_id`) REFERENCES `thing_corporation` (`id`))') Traceback (most recent call last): File "/thingenv/lib/python2.7/site-packages/celery/task/trace.py", line 224, in trace_task R = retval = fun(*args, **kwargs) File "/thingenv/lib/python2.7/site-packages/celery/task/trace.py", line 403, in __protected_call__ return self.run(*args, **kwargs) File "/thingenv/evething/thing/tasks.py", line 537, in api_key_info character.save() File "/thingenv/lib/python2.7/site-packages/django/db/models/base.py", line 463, in save self.save_base(using=using, force_insert=force_insert, force_update=force_update) File "/thingenv/lib/python2.7/site-packages/django/db/models/base.py", line 551, in save_base result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw) File "/thingenv/lib/python2.7/site-packages/django/db/models/manager.py", line 203, in _insert return insert_query(self.model, objs, fields, **kwargs) File "/thingenv/lib/python2.7/site-packages/django/db/models/query.py", line 1576, in insert_query return query.get_compiler(using=using).execute_sql(return_id) File "/thingenv/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 910, in execute_sql cursor.execute(sql, params) File "/thingenv/lib/python2.7/site-packages/django/db/backends/util.py", line 40, in execute return self.cursor.execute(sql, params) File "/thingenv/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 114, in execute return self.cursor.execute(query, args) File "/thingenv/lib/python2.7/site-packages/MySQLdb/cursors.py", line 181, in execute self.errorhandler(self, exc, value) File "/thingenv/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`evething`.`thing_character`, CONSTRAINT `corporation_id_refs_id_5b74e5deccbfecc6` FOREIGN KEY (`corporation_id`) REFERENCES `thing_corporation` (`id`))')
I get the following error when importing (first time I get it...).
I tried : changing encoding of db (usually utf8 both) but don't change anything...
My versions :
python 2.7.6
mysql 5.6.17
Traceback (most recent call last):
File "import.py", line 853, in <module>
importer.import_all()
File "import.py", line 114, in import_all
time_func('Item', self.import_item)
File "import.py", line 95, in time_func
added = f()
File "import.py", line 458, in import_item
Item.objects.bulk_create(new)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/models/manager.py", line 160, in bulk_create
return self.get_queryset().bulk_create(*args, **kwargs)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/models/query.py", line 356, in bulk_create
self._batched_insert(objs_with_pk, fields, batch_size)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/models/query.py", line 838, in _batched_insert
using=self.db)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/models/manager.py", line 232, in _insert
return insert_query(self.model, objs, fields, **kwargs)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/models/query.py", line 1514, in insert_query
return query.get_compiler(using=using).execute_sql(return_id)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 903, in execute_sql
cursor.execute(sql, params)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/backends/util.py", line 69, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/utils.py", line 99, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 124, in execute
return self.cursor.execute(query, args)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
self.errorhandler(self, exc, value)
File "/Users/Kyria/Coding/evething_env/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
django.db.utils.OperationalError: (1366, "Incorrect string value: '\\xE6\\xB3\\xB0\\xE5\\x9D\\xA6...' for column 'name' at row 992")
If someone have an idea, i'd appreciate as I didn't have this problem before...
Regards
I've got this issue : one of my char is a director for his own corp. I have these API in evething :
If I add the corp API after the char API in evething : all my orders / trade history "disappear" from evething
If I add the char API after the corp API : I see these orders, but the character is linked to the corp API.
Since you said "Python >=2.6 <3.0" in readme, I tried on my deb6 which only has python 2.6...
In evething / thing / views / wallet_journal.py, it looks like you have only
from collections import OrderedDict
instead of :
try:
from collections import OrderedDict
except ImportError:
from ordereddict import OrderedDict
The Transactions page filter function is broken. When you go to the second or later results pages, any search strings containing spaces will be transformed '+' giving no result.
In template/base.html you have this javascript call at line 128 :
<script src="{{ STATIC_URL}}js/bootstrap.js"></script>
but it seems you didn't put the bootstrap.js file into /static/js/.
edit: yes, it's only for debug mode. So it doesn't really matter until we need to re-combine and minify javascripts.
Regards,
Heya,
Any idea what could be causing this?
[2013-04-21 23:56:41,435: ERROR/MainProcess] Task thing.history_updater[3bc080ed-1029-4f23-9da1-2981b52c7b79] raised exception: IntegrityError(1062, "Duplicate entry '10000002-16274-2013-04-20' for key 'thing_pricehistory_region_id_35fc85aebfeaf766_uniq'")
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/celery/task/trace.py", line 228, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/celery/task/trace.py", line 415, in __protected_call__
return self.run(*args, **kwargs)
File "/var/www/evething/evething/thing/tasks/historyupdater.py", line 65, in run
PriceHistory.objects.bulk_create(new)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 140, in bulk_create
return self.get_query_set().bulk_create(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 419, in bulk_create
self._batched_insert(objs_without_pk, fields, batch_size)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 868, in _batched_insert
using=self.db)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 203, in _insert
return insert_query(self.model, objs, fields, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 1593, in insert_query
return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 912, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python2.7/dist-packages/django/db/backends/mysql/base.py", line 114, in execute
return self.cursor.execute(query, args)
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
EVEthing is somewhat difficult to deploy. Modern containerisation can streamline this process by exposing a single container with a complete EVEthing instance inside it.
This container can expose a single web service while containing all the dependencies.
Whenever EVEthing is updated the container can be recreated and re-deployed.
This information is already readily available in the /char/WalletJournal.xml.aspx
For character name, use ownerName1 or ownerName2 as-is.
If ownerName1 or 2 = "Corporation", use the value of argName1
"I've been having a problem with the assets page. The character summary on the left of the Assets is missing three of my characters. They appear on the front page, and if I list all assets, theirs will be there under their name, but they're not appearing on the summary. The three in question are the CEO's of my alt corps, so I think this has something to do with it."
https://goonfleet.com/index.php/topic/178756-evething/page-22#entry7372183
We should really do this at some point
I know there is a "# of days _____" option right now, but would you consider the ability to add time-stamped date range filtering? It would make doing finance reporting much easier if you happen to forget to do it on an exact date (like end of month, or end of week, etc).
Awesome tool regardless of my nitpick!
The current Dockerfile builds an installation with every service provided in a single container. This is against Docker deployment guidelines.
There should be instructions for building EVEthing as individual containers and providing the linking between them. Sensible default configurations would be even more useful.
I had to edit wsgi.py so that :
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(file), '..')))
now reads
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(file))))
or I get an error
ImportError: Could not import settings 'evething.settings' (Is it on sys.path?): No module named settings
My celery is logging the following from time to time:
Traceback (most recent call last):
File "/opt/thingenv/local/lib/python2.7/site-packages/celery/task/trace.py", line 228, in trace_task
R = retval = fun(_args, *_kwargs)
File "/opt/thingenv/local/lib/python2.7/site-packages/celery/task/trace.py", line 415, in protected_call
return self.run(_args, *_kwargs)
File "/opt/thingenv/evething/thing/tasks/industryjobs.py", line 112, in run
logger.warn("industry_jobs: No matching Item %s", row.attrib['installedItemTypeID'])
NameError: global name 'logger' is not defined
Can you show the BP ML/PL in each job?
Using SQLite3 I get this:
$ python manage.py migrate --all
โฆ
> thing:0009_rename_apikey_id_to_keyid
Traceback (most recent call last):
File "manage.py", line 19, in <module>
execute_from_command_line(sys.argv)
File "evething/thingenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "evething/thingenv/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "evething/thingenv/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "evething/thingenv/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
output = self.handle(*args, **options)
File "evething/thingenv/lib/python2.7/site-packages/south/management/commands/migrate.py", line 108, in handle
ignore_ghosts = ignore_ghosts,
File "evething/thingenv/lib/python2.7/site-packages/south/migration/__init__.py", line 213, in migrate_app
success = migrator.migrate_many(target, workplan, database)
File "evething/thingenv/lib/python2.7/site-packages/south/migration/migrators.py", line 235, in migrate_many
result = migrator.__class__.migrate_many(migrator, target, migrations, database)
File "evething/thingenv/lib/python2.7/site-packages/south/migration/migrators.py", line 310, in migrate_many
result = self.migrate(migration, database)
File "evething/thingenv/lib/python2.7/site-packages/south/migration/migrators.py", line 133, in migrate
result = self.run(migration)
File "evething/thingenv/lib/python2.7/site-packages/south/migration/migrators.py", line 106, in run
dry_run.run_migration(migration)
File "evething/thingenv/lib/python2.7/site-packages/south/migration/migrators.py", line 191, in run_migration
self._run_migration(migration)
File "evething/thingenv/lib/python2.7/site-packages/south/migration/migrators.py", line 178, in _run_migration
raise exceptions.FailedDryRun(migration, sys.exc_info())
south.exceptions.FailedDryRun: ! Error found during dry run of '0009_rename_apikey_id_to_keyid'! Aborting.
Traceback (most recent call last):
File "evething/thingenv/lib/python2.7/site-packages/south/migration/migrators.py", line 175, in _run_migration
migration_function()
File "evething/thingenv/lib/python2.7/site-packages/south/migration/migrators.py", line 57, in <lambda>
return (lambda: direction(orm))
File "evething/thingenv/evething/thing/migrations/0009_rename_apikey_id_to_keyid.py", line 24, in forwards
db.add_column('thing_apikey', 'id', models.AutoField(primary_key=True))
File "evething/thingenv/lib/python2.7/site-packages/south/db/sqlite3.py", line 25, in add_column
raise ValueError("You cannot add a null=False column without a default value.")
ValueError: You cannot add a null=False column without a default value.
Reproduce:
In multiple places you have )exclude(
instead of ).exclude(
Additionaly, after fixing these types, the following error occures when viewing the assets page.
Traceback (most recent call last):
File "/.../thingenv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 115, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/.../thingenv/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 25, in _wrapped_view
return view_func(request, *args, **kwargs)
File "./thing/views/assets.py", line 96, in assets_summary
apikeys__key_type=APIKey.CORPORATION_TYPE,
File "/.../thingenv/local/lib/python2.7/site-packages/django/db/models/manager.py", line 155, in filter
return self.get_query_set().filter(*args, **kwargs)
File "/.../thingenv/local/lib/python2.7/site-packages/django/db/models/query.py", line 669, in filter
return self._filter_or_exclude(False, *args, **kwargs)
File "/.../thingenv/local/lib/python2.7/site-packages/django/db/models/query.py", line 687, in _filter_or_exclude
clone.query.add_q(Q(*args, **kwargs))
File "/.../thingenv/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1271, in add_q
can_reuse=used_aliases, force_having=force_having)
File "/.../thingenv/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1139, in add_filter
process_extras=process_extras)
File "/.../thingenv/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1337, in setup_joins
"Choices are: %s" % (name, ", ".join(names)))
FieldError: Cannot resolve keyword 'apikeys' into field. Choices are: alliance, character, contract, corporationstanding, corpwallet, division1, division2, division3, division4, division5, division6, division7, id, industryjob, journalentry, name, ticker, transaction
While working on getting this up and running to have my own look at it, I've gotten stuck at:
python import.py
it returns
django.db.utils.DatabaseError: no such table: mapRegions
what, in my own idiocy, did i miss?
More a question than an issue but I would like to know why you've written this for Python 2.7 ro more specifically what features of 2.7 are required.
I've been playing around with this on a RPi and it works fine but my main box has CentOS 6 on it which only has v2.6 python. I'm having no luck getting 2.7 on this box so I wonder if there's any way I can get this to work with 2.6
Issue to track things that need improving in the docs.
The current build system primes the data dump as part of first-run initialization. The database is also created at this point.
These two processes should be separated so that the EVE static data dump can be refreshed without going through database initialization.
Have a partially trained skill be in a skill plan but not currently training, the skill plan will show the full length of the train for that skill regardless of how many SP you have in it.
./transactions/{myid}/all/
will only display transactions linked to a corp, not personal transactions.
== I am a failure and it seems that I had the readme from one branch, and the repo cloned from the other. Please ignore this. Closing issue now ==
I've just installed a fresh copy of everything into a Ubuntu 12.04 VM, following the install guide. I get to step 4 (python manage.py migrate thing --fake (so South knows what state the database is in for future migrations).) however I get the error "Unknown command: 'migrate'".
I've tried adding South into the INSTALLED_APPS list in settings.py (/evething) but that gives a different error - (The app 'thing' does not appear to use migrations.)
System:
Ubuntu 12.04 Server
Installed via Aptitude:
python2.7
python-django
python-django-mptt
python-django-south
python-jinja
python-mysqldb
python-setuptools
Coffin was installed by using git clone and then "python setup.py install"
Using MySQL on localhost.
Can you create an export link, to export the data on this page into a CSV?
So, I was using sqlite, but import.py generates queries which return over 1000 items and the standard install of sqlite apparently had a magic number limit there ( see http://stackoverflow.com/questions/7106016/too-many-sql-variables-error-in-django-witih-sqlite3 ). I didn't want to recompile sqlite so I switched to postgresql. Got a bunch of errors, but read http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS and fixed it
For corp orders, it should be [CORP] wallet
instead of director name.
It looks like we are not anymore able to check all mails at once in the mail page: the javascript seems broken for this action (but there no errors in the page).
Tested on goonfleet evething only.
Can you make the Blueprints that are currently being used for manufacturing, show as In Use on the blueprints tab? This will make it easier to track which blueprints aren't in use.
Can you create a tab for each production pilot, with the number of active jobs they have in the tab name. Then that tab shows jobs just for them.
Can you implement a viewer for eve mails? That would be great.
I've never used Celery so I'm having a few problems wit the workers. A few lines outlining how to set the tasks up would be appreciated
Do you have any idea where it comes from ? (I don't ever tried with another DBMS, so I can't tell it's a MySQL problem or a problem from evething/django)
Warning at /account/apikey/add/
Field 'id' doesn't have a default value
Request Method: POST
Request URL: http://evething.althalus.org/account/apikey/add/
Django Version: 1.5.4
Exception Type: Warning
Exception Value:
Field 'id' doesn't have a default value
Exception Location: /usr/lib/pymodules/python2.6/MySQLdb/cursors.py in _warning_check, line 82
Python Executable: /usr/bin/python
Python Version: 2.6.6
Python Path:
['/var/home/evething/evething',
'/usr/local/lib/python2.6/dist-packages/distribute-0.7.3-py2.6.egg',
'/usr/local/lib/python2.6/dist-packages/setuptools-1.1.6-py2.6.egg',
'/usr/lib/python2.6',
'/usr/lib/python2.6/plat-linux2',
'/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old',
'/usr/lib/python2.6/lib-dynload',
'/usr/local/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages',
'/usr/lib/pymodules/python2.6']
Server time: Sat, 28 Sep 2013 14:37:15 +0200
(I had this problem with python 1.6 and 1.7)
I can filter by corp, but can't see at a glance which Journal's any line refer to.
Personally I would prefer to group by characters rather than accounts so that my cyno alts and mining alts can be in their own groups instead of having my mining and cyno alts grouped together because they share an account.
Following the install info on a clean Debian install with Python 2.7.3rc2 and all of the other required modules (installed with the instructions, requirements.txt)
When I issue the command to import the database data I get an error. The evething database seems to be partially populated and the syncdb command can't find a table that hasn't been created, throwing the error below.
~/thingeve/evething $ python import.py syncdb
=> Region:
Traceback (most recent call last):
File "import.py", line 808, in
importer.import_all()
File "import.py", line 67, in import_all
time_func('Region', self.import_region)
File "import.py", line 57, in time_func
added = f()
File "import.py", line 91, in import_region
data_map = Region.objects.in_bulk(bulk_data.keys())
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/db/models/manager.py", line 158, in in_bulk
return self.get_query_set().in_bulk(_args, *_kwargs)
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/db/models/query.py", line 488, in in_bulk
return dict([(obj._get_pk_val(), obj) for obj in qs])
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/db/models/query.py", line 118, in _result_iter
self._fill_cache()
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/db/models/query.py", line 875, in _fill_cache
self._result_cache.append(self._iter.next())
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/db/models/query.py", line 291, in iterator
for row in compiler.results_iter():
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/db/models/sql/compiler.py", line 763, in results_iter
for rows in self.execute_sql(MULTI):
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/db/models/sql/compiler.py", line 818, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python2.7/dist-packages/Django-1.4.1-py2.7.egg/django/db/backends/mysql/base.py", line 114, in execute
return self.cursor.execute(query, args)
File "/usr/local/lib/python2.7/dist-packages/MySQL_python-1.2.3-py2.7-linux-armv6l.egg/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/local/lib/python2.7/dist-packages/MySQL_python-1.2.3-py2.7-linux-armv6l.egg/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
django.db.utils.DatabaseError: (1146, "Table 'evething.thing_region' doesn't exist")
any ideas ?
So, everything works fine as long as Debug = True, but as soon as I switch it to Debug = False, it gives me Page Unavailable: http://puu.sh/4zR6w.png
Literally nothing is changing.. just switching the debug flag. It still starts up fine, just gives that error when navigating to the page.
Any ideas?
https://github.com/madcowfred/evething/blob/develop/core/util.py#L36
People are reporting newly created keys are are not being accepted.
It would be sweet if filters in the Wallet Journal / Transaction View can be saved. (even if its only in a cookie/local storage)
e.g.
Unless I register the toon's api. Then I'll have the breakdown of this toon's order : personal/corps.
I I could monitor my corp's orders just using my director API, that would be awesome (I already have all corp's transactions)
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.