colrev-environment / colrev Goto Github PK
View Code? Open in Web Editor NEWCoLRev: An open-source environment for collaborative reviews
Home Page: https://colrev.readthedocs.io
License: MIT License
CoLRev: An open-source environment for collaborative reviews
Home Page: https://colrev.readthedocs.io
License: MIT License
Describe the Feature Request
Distinguish: database-specific query and post-retrieval selection query
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
colrev version: 0.6.0
Current behavior:
Key Error when running colrev prep
multiprocess.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/multiprocess/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/multiprocess/pool.py", line 48, in mapstar
return list(map(*args))
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/pathos/helpers/mp_helper.py", line 15, in <lambda>
func = lambda args: f(*args)
File "/home/julian/colrev-env/colrev/colrev/ops/prep.py", line 211, in prepare
preparation_record = endpoint.prepare(self, preparation_record)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/timeout_decorator/timeout_decorator.py", line 92, in new_function
return timeout_wrapper(*args, **kwargs)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/timeout_decorator/timeout_decorator.py", line 152, in __call__
return self.value
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/timeout_decorator/timeout_decorator.py", line 175, in value
raise load
KeyError: 'colrev_status'
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/bin/colrev", line 5, in <module>
main()
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 828, in __call__
return self.main(*args, **kwargs)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 781, in main
rv = self.invoke(ctx)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1227, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1046, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 590, in invoke
return callback(*args, **kwargs)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/julian/colrev-env/colrev/colrev/ui_cli/cli.py", line 446, in prep
prep_operation.main(keep_ids=keep_ids)
File "/home/julian/colrev-env/colrev/colrev/ops/prep.py", line 734, in main
prepared_records = pool.map(self.prepare, preparation_data)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/pathos/multiprocessing.py", line 139, in map
return _pool.map(star(f), zip(*args)) # chunksize
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/multiprocess/pool.py", line 364, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/multiprocess/pool.py", line 771, in get
raise self._value
KeyError: 'colrev_status'
Steps to reproduce:
colrev prep
pytest (focusing on records.py/review_dataset.py first)
pytests: how should we store cases that we fixed (e.g., erroneous matches of conference/journal versions, errors in preparation?)
Separate tests for
Initialising a project (even examples) fails with:
FileNotFoundError: [Errno 2] No such file or directory: 'pre-commit'
It should "initialise" the project?
$ colrev init --example
Setup files
Setup git
pre-commit install...
Traceback (most recent call last):
File "/home/bahman/.local/bin/colrev", line 8, in <module>
sys.exit(main())
File "/home/bahman/.local/lib/python3.8/site-packages/click/core.py", line 1128, in __call__
return self.main(*args, **kwargs)
File "/home/bahman/.local/lib/python3.8/site-packages/click/core.py", line 1053, in main
rv = self.invoke(ctx)
File "/home/bahman/.local/lib/python3.8/site-packages/click/core.py", line 1659, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/bahman/.local/lib/python3.8/site-packages/click/core.py", line 1395, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/bahman/.local/lib/python3.8/site-packages/click/core.py", line 754, in invoke
return __callback(*args, **kwargs)
File "/home/bahman/.local/lib/python3.8/site-packages/click/decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/bahman/workspace/colrev/colrev/colrev/cli.py", line 139, in init
Initializer(
File "/home/bahman/workspace/colrev/core/colrev_core/init.py", line 40, in __init__
self.__setup_git()
File "/home/bahman/workspace/colrev/core/colrev_core/init.py", line 287, in __setup_git
check_call(script_to_call, stdout=DEVNULL, stderr=STDOUT)
File "/usr/lib/python3.8/subprocess.py", line 359, in check_call
retcode = call(*popenargs, **kwargs)
File "/usr/lib/python3.8/subprocess.py", line 340, in call
with Popen(*popenargs, **kwargs) as p:
File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'pre-commit'
Run colrev init --example
or colrev init
in an empty directory.
Describe the Feature Request
Explore the possibility of a review service bot (automatically triggering the next operations). This may be particularly relevant for a potential colrev shell (e.g., using python cmd), see #112 .
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Refactor dedupe.py (possibly merging apply_merges and apply_manual_duplicate_decisions; offering prevent_same_source_merges/merge_safeguards parameters)
Describe the Feature Request
Implement and test colrev validate (part of the workflow)
Develop validation workflow: cli and maybe in a web-ui (code markers: "gh_issue #57").
Focus on prep/dedupe (cli) for 0.7.0.
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
The pybtex-loader could be more robust regarding BibTex defects like redundant IDs (code markers: "gh_issue #80").
The items in the distribute operation are marked in the code (code markers: "gh_issue #69").
Describe the Feature Request
Provide a data endpoint that automatically creates a github pages site
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Consolidate the colrev debug/verbose modes
The instructions should be simplified (in colrev status), their order should reflect the importance of instructions, the advisor should receive instructions from package_endpoints (especially for data), and there should guidelines (standard data structures) to ensure a consistent user experience (code markers: "gh_issue #67").
Start sharing the tool with users/running user tests. Add results below:
2023-02-12 BW
TODO : get feedback from librarians
Describe the Feature Request
Explore the possibility of creating curations on a large scale (e.g., all crossref-indexed journals).
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Describe the Feature Request
Provide the possibility to conduct a parallel independent prescreen/screen/data
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Describe the Feature Request
Provide data endpoints for the most popular reference managers:
Items related to built_in/data/bibliography_export are marked in the code (code markers: "gh_issue #70").
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Issues related to structured data extraction are marked in the code (code markers: "gh_issue #79").
Describe the Feature Request
Develop and test colrev sync/distribute
colrev sync: analyze a non-colrev project reference section for duplicates (based on the index), ...
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
colrev status
not showing repository status.
colrev status
should show the status of a new or existing colrev repository.
Status is not shown and instead an error is thrown:
Traceback (most recent call last):
File "/home/julian/.local/bin/colrev", line 11, in <module>
load_entry_point('colrev', 'console_scripts', 'colrev')()
File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1137, in __call__
return self.main(*args, **kwargs)
File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1062, in main
rv = self.invoke(ctx)
File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 763, in invoke
return __callback(*args, **kwargs)
File "/home/julian/.local/lib/python3.8/site-packages/click/decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/julian/colrev/colrev/cli.py", line 283, in status
ret_check = STATUS.REVIEW_MANAGER.check_repo()
File "/home/julian/.local/lib/python3.8/site-packages/colrev_core/review_manager.py", line 589, in check_repo
check_script["script"]()
File "/home/julian/.local/lib/python3.8/site-packages/colrev_core/review_manager.py", line 269, in build_docker_images
repo_tags = [x.attrs.get("RepoTags", "") for x in client.images.list()]
AttributeError: 'function' object has no attribute 'list'
Run colrev status
in new or existing repository.
Describe the Feature Request
Support the pubmed api for search and preparation
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
colrev version: 0.5.0
Current behavior:
Traceback (most recent call last):
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/bin/colrev", line 5, in <module>
main()
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 828, in __call__
return self.main(*args, **kwargs)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 781, in main
rv = self.invoke(ctx)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1227, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1046, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 590, in invoke
return callback(*args, **kwargs)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/julian/colrev-env/colrev/colrev/ui_cli/cli.py", line 122, in init
colrev.review_manager.ReviewManager.get_init_operation(
File "/home/julian/colrev-env/colrev/colrev/review_manager.py", line 351, in get_init_operation
return colrev.ops.init.Initializer(**kwargs)
File "/home/julian/colrev-env/colrev/colrev/ops/init.py", line 53, in __init__
self.__check_init_precondition()
File "/home/julian/colrev-env/colrev/colrev/ops/init.py", line 99, in __check_init_precondition
environment_manager = colrev.env.environment_manager.EnvironmentManager()
File "/home/julian/colrev-env/colrev/colrev/env/environment_manager.py", line 49, in __init__
self.local_registry = self.load_local_registry()
File "/home/julian/colrev-env/colrev/colrev/env/environment_manager.py", line 57, in load_local_registry
local_registry_df = pd.json_normalize(safe_load(file))
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/pandas/io/json/_normalize.py", line 446, in _json_normalize
raise NotImplementedError
NotImplementedError
Expected behavior:
Should create a new colrev repository
Steps to reproduce:
colrev init
Related code:
insert short code snippets here
Other information:
Describe the Feature Request
colrev team --show (including contributions) / --add (invite through github) / --remove
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Improvements based on codementor review
Describe the Feature Request
Push record corrections to a fork and create a pull request
The correction operation needs development of the following items (code markers: "gh_issue #63"):
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Describe the Feature Request
Provide an R package (wrapping colrev data access).
Describe Preferred Solution
Describe Alternatives
Related Code
See CoLRevR
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Update the user manual
The step summaries should give users an overview of the methodological aspects, indicate how they connect to the operations (implementation), and explain the essential data management aspects (e.g., state transitions, where files are stored/where they can be added/found). The basic preconditions (e.g., search terms), options (e.g., skipping the screen or completing it retrospectively, or in parallel) should be explained. More specific options (such as extensions/external tools) and best practices (maybe in the form of next steps, e.g., for init/share with the team) should be covered in the operations pages.
Describe the Feature Request
Generate a PRISMA diagram based on prisma-flowdiagram and R/Docker
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Items related to the search-sources local_index and colrev_project are marked in the code (code markers: "gh_issue #76").
Describe the Feature Request
Provide a convenient operation that supports the reporting and justification of the review methods
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
The report package in R could serve as an inspiration.
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Describe the Feature Request
Provide guidelines for curating records; update colrev_cml_assistant to poetry
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
There are a few remaining items for testing (code markers: "gh_issue #65").
colrev version: 0.5.0
Current behavior:
Traceback (most recent call last):
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/bin/colrev", line 5, in <module>
main()
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 828, in __call__
return self.main(*args, **kwargs)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 781, in main
rv = self.invoke(ctx)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1227, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 1046, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/core.py", line 590, in invoke
return callback(*args, **kwargs)
File "/home/julian/.cache/pypoetry/virtualenvs/colrev-env-xI4ropgo-py3.8/lib/python3.8/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/julian/colrev-env/colrev/colrev/ui_cli/cli.py", line 114, in init
import colrev.ui_web.settings_editor
File "/home/julian/colrev-env/colrev/colrev/ui_web/settings_editor.py", line 10, in <module>
from flask import Flask
ModuleNotFoundError: No module named 'flask'
Expected behavior:
Should create a new colrev repository
Steps to reproduce:
colrev init
Related code:
insert short code snippets here
Other information:
Items related to built_in/data/manuscript are marked in the code (code markers: "gh_issue #71").
The handling of languages (detection, consistent storage of language-fields in records, consideration in dedupe) needs improvement (code markers: "gh_issue #64").
Describe the Feature Request
Facilitate merging of branches (including the reconciliation of parallel independent operations/see git merge driver), write a merge-driver for status.yaml? for corrections.bib?
https://www.julianburr.de/til/custom-git-merge-drivers/
https://gregmicek.com/software-coding/2020/01/13/how-to-write-a-custom-git-merge-driver/
https://gist.github.com/seanh/378623
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Items for improvement include (code markers: "gh_issue #68").:
Describe the Feature Request
Mechanism for discovery and installation of packages (instead of simple scripts). The handling of packages (registration lookup/discovery and versioning) needs improvement (code markers: "gh_issue #66"). Package descriptions (for registration) may use this example.
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Pdf-prep (detection of first/last pages) should be refactored (e.g., colrev_pdf_ids instead of text-strings)
Check: unpaywall downloads fail relatively often despite correct links (example). Also retrieve and display unpaywall links in pdf-get-man-cli.
Describe the Feature Request
Provide data endpoints for the most popular reference managers:
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Describe the Feature Request
Provide a web-based editor for the project settings (called upon colrev init)
Describe Preferred Solution
Project settings can be modified via a web-based UI
Describe Alternatives
Currently, settings can only be modified directly in the json file
Related Code
Additional Context
Describe the Feature Request
Complete the simulations (optimal parameters of the active learning setup)
Related issues are marked in the code (code markers: "gh_issue #37").
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
When calling colrev init
the following AttriuteError is thrown:
Traceback (most recent call last):
File "/home/julian/.local/bin/colrev", line 11, in <module>
load_entry_point('colrev', 'console_scripts', 'colrev')()
File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1137, in __call__
return self.main(*args, **kwargs)
File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1062, in main
rv = self.invoke(ctx)
File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1668, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/julian/.local/lib/python3.8/site-packages/click/core.py", line 763, in invoke
return __callback(*args, **kwargs)
File "/home/julian/.local/lib/python3.8/site-packages/click/decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/julian/colrev/colrev/cli.py", line 167, in init
Initializer(name, SHARE_STAT_REQ)
File "/home/julian/colrev_core/colrev_core/init.py", line 22, in __init__
self.__setup_files()
File "/home/julian/colrev_core/colrev_core/init.py", line 67, in __setup_files
Path("readme.md"), "{{project_title}}", self.project_title.rstrip(" ")
AttributeError: 'NoneType' object has no attribute 'rstrip'
At the moment the -n
flag in colrev cli
is not required so a project can be set up without a name leading to the error. We can either require a name when calling colrev cli
or we could potentially keep the -n
flag optional as is and use the project directory name as the default name for the project if none was given?
Items related to improvements of (pre)screens based on tables are marked in the code (code markers: "gh_issue #73").
For curated repositories, a prep rule should ensure that records are not marked as md_prepared
if volume or issue fields are missing (requirements for volumes/issues, possibly depending on the year of publication, should be specified in the script).
Describe the Feature Request
Retrieve metadata from url-field and automatically link/check correspondence (for curations)
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
Get the recipient e-mail from local_index/authors and integrate better with e-mail clients.
Describe the Feature Request
Allow the doi field to contain a list (of electronic/in-print versions); update (curation) retrieval in the search accordingly
Describe Preferred Solution
Describe Alternatives
Related Code
Additional Context
If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)
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.