Comments (27)
Beginning with Windows Vista offers some native support for symlinks, however, by default, neither Git nor Cygwin supports them, instead opting for a custom workaround.
However Node, which is used to run our build scripts, does not understand these workarounds but works perfectly fine with native Windows symlinks.
Furthermore symlinks on windows have multiple limitations, two of which are relevant:
- Creating symlinks requires a special permission, usually only granted to Administrator user
- Creating symlinks to non-existent files is not allowed
Workaround
- Run Cygwin terminal as Administrator (right click -> Run as Administrator)
- Force Cygwin to use native windows symlinks:
export CYGWIN="winsymlinks:nativestrict"
- Clone Zotero source code forcing use of native symlinks on Windows. This should fail because git is trying to create symlinks to non-existent files (npm dependencies), that's ok - all we really need is
package.json
.
git clone -c core.symlinks=true https://github.com/zotero/zotero.git
- Now install the npm dependencies
cd zotero
npm install
- Now git should be able to create symlinks, continue checkout with:
git checkout -f HEAD
- Checkout Zotero submodules
git submodule update --init --recursive
Following the above instructions should produce native windows symlinks, this can be very quickly verified in explorer:
from zotero-standalone-build.
Use Node 8.
from zotero-standalone-build.
Thank you for your quick reply. What about that?
/cygdrive/c/Dev Zotero/Git/build/zotero-client
$ npm i
> [email protected] install C:\Dev Zotero\Git\build\zotero-client\node_modules\fsev ents
> node install
npm WARN [email protected] requires a peer of eslint@^3.0.0 || ^4.0.0 bu t none was installed.
added 115 packages, removed 22 packages and updated 16 packages in 11.039s
/cygdrive/c/Dev Zotero/Git/build/zotero-client
$ npm run build
> [email protected] build C:\Dev Zotero\Git\build\zotero-client
> node ./scripts/build.js
C:\Dev Zotero\Git\build\zotero-client\node_modules\node-sass\lib\binding.js:15
throw new Error(errors.missingBinary());
^
Error: Missing binding C:\Dev Zotero\Git\build\zotero-client\node_modules\node-s ass\vendor\win32-x64-57\binding.node
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 8.x
Found bindings for the following environments:
- Windows 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm ins tall`.
Run `npm rebuild node-sass --force` to build the binding for your current enviro nment.
at module.exports (C:\Dev Zotero\Git\build\zotero-client\node_modules\node-s ass\lib\binding.js:15:13)
at Object.<anonymous> (C:\Dev Zotero\Git\build\zotero-client\node_modules\no de-sass\lib\index.js:14:35)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\Dev Zotero\Git\build\zotero-client\scripts\sass.js :4:14)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `node ./scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional log ging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Gracile\AppData\Roaming\npm-cache\_logs\2017-07-06T16_22_ 02_405Z-debug.log
/cygdrive/c/Dev Zotero/Git/build/zotero-client
$ npm rebuild node-sass --force
npm WARN using --force I sure hope you know what you are doing.
> [email protected] install C:\Dev Zotero\Git\build\zotero-client\node_modules\node-sass
> node scripts/install.js
module.js:487
throw err;
^
Error: Cannot find module 'are-we-there-yet'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\Dev Zotero\Git\build\zotero-client\node_modules\npmlog\log.js:2:16)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
> [email protected] postinstall C:\Dev Zotero\Git\build\zotero-client\node_modules\node-sass
> node scripts/build.js
Building: C:\Program Files\nodejs\node.exe C:\Dev Zotero\Git\build\zotero-client\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
module.js:487
throw err;
^
Error: Cannot find module 'are-we-there-yet'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\Dev Zotero\Git\build\zotero-client\node_modules\npmlog\log.js:2:16)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
Build failed with error code: 1
[email protected] C:\Dev Zotero\Git\build\zotero-client\node_modules\node-sass
/cygdrive/c/Dev Zotero/Git/build/zotero-client
$ npm run build
> [email protected] build C:\Dev Zotero\Git\build\zotero-client
> node ./scripts/build.js
C:\Dev Zotero\Git\build\zotero-client\node_modules\node-sass\lib\binding.js:15
throw new Error(errors.missingBinary());
^
Error: Missing binding C:\Dev Zotero\Git\build\zotero-client\node_modules\node-sass\vendor\win32-x64-57\binding.node
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 8.x
Found bindings for the following environments:
- Windows 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass --force` to build the binding for your current environment.
at module.exports (C:\Dev Zotero\Git\build\zotero-client\node_modules\node-sass\lib\binding.js:15:13)
at Object.<anonymous> (C:\Dev Zotero\Git\build\zotero-client\node_modules\node-sass\lib\index.js:14:35)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\Dev Zotero\Git\build\zotero-client\scripts\sass.js:4:14)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: `node ./scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Gracile\AppData\Roaming\npm-cache\_logs\2017-07-06T16_23_48_175Z-debug.log
from zotero-standalone-build.
Delete node_modules
and run npm i
again with the newer Node/NPM.
from zotero-standalone-build.
Not sure it worked.
/cygdrive/c/Dev Zotero/Git/build/zotero-client
$ rm -rf node_modules
/cygdrive/c/Dev Zotero/Git/build/zotero-client
$ npm i
npm WARN prefer global [email protected] should be installed with -g
> [email protected] install C:\Dev Zotero\Git\build\zotero-client\node_modules\node-sass
> node scripts/install.js
module.js:487
throw err;
^
Error: Cannot find module 'are-we-there-yet'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\Dev Zotero\Git\build\zotero-client\node_modules\npmlog\log.js:2:16)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node scripts/install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Gracile\AppData\Roaming\npm-cache\_logs\2017-07-06T16_30_19_861Z-debug.log
from zotero-standalone-build.
Delete both node_modules
and package-lock.json
and try again.
from zotero-standalone-build.
Thank you very much!
Any reason for having a blank screen on Zotero startup? (I can click and open the menus but that's all, nothing is functional. It's a clean install, clean profile, I even changed the prefs to force the en-US locale)
from zotero-standalone-build.
Report ID?
from zotero-standalone-build.
I can't generate a report ID. Here are the messages I see in the Error Console:
(FYI, I rebuild after the latest commit at the moment, i.e. zotero/zotero@1da18e4)
Could not read 'file:///C:/Dev%20Zotero/Git/build/zotero-standalone-build/staging/Zotero_win32/extensions/[email protected]/components/zoteroIntegration.xpt'.
Timestamp: 07/07/2017 16:07:10
Error: Module `bluebird/promise` is not found at resource://zotero/bluebird/promise.js
Source File: file:///C:/Dev%20Zotero/Git/build/zotero-standalone-build/staging/Zotero_win32/components/zotero-service.js
Line: 438
Timestamp: 07/07/2017 16:07:10
Error: Error: Module `bluebird/promise` is not found at resource://zotero/bluebird/promise.js
Source File: resource://zotero/bluebird.js
Line: 5
Timestamp: 07/07/2017 16:07:10
Error: NS_ERROR_XPC_GS_RETURNED_FAILURE: Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]
Source File: chrome://zotero/content/include.js
Line: 4
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/zoteroPane.js
Line: 368
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/fileInterface.js
Line: 45
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/recognizePDF.js
Line: 72
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/browser.js
Line: 157
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/lookup.js
Line: 34
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/locateMenu.js
Line: 99
Timestamp: 07/07/2017 16:07:10
Error: Module `bluebird/promise` is not found at resource://zotero/bluebird/promise.js
Source File: file:///C:/Dev%20Zotero/Git/build/zotero-standalone-build/staging/Zotero_win32/components/zotero-service.js
Line: 438
Timestamp: 07/07/2017 16:07:10
Error: Error: Module `bluebird/promise` is not found at resource://zotero/bluebird/promise.js
Source File: resource://zotero/bluebird.js
Line: 5
Timestamp: 07/07/2017 16:07:10
Error: NS_ERROR_XPC_GS_RETURNED_FAILURE: Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]
Source File: chrome://zotero/content/include.js
Line: 4
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/itemPane.js
Line: 62
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/itembox.xml
Line: 257
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/attachmentbox.xml
Line: 149
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/noteeditor.xml
Line: 147
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/styled-textbox.xml
Line: 397
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/styled-textbox.xml
Line: 397
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/noteeditor.xml
Line: 147
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/styled-textbox.xml
Line: 397
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/styled-textbox.xml
Line: 397
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/relatedbox.xml
Line: 102
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/tagsbox.xml
Line: 120
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/itembox.xml
Line: 257
Timestamp: 07/07/2017 16:07:10
Error: TypeError: ZoteroPane_Local is undefined
Source File: chrome://zotero/content/standalone/standalone.xul
Line: 1
Timestamp: 07/07/2017 16:07:10
Error: TypeError: ZoteroPane_Local is undefined
Source File: chrome://zotero/content/standalone/standalone.xul
Line: 1
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/bindings/tagselector.xml
Line: 1035
Timestamp: 07/07/2017 16:07:10
Error: TypeError: Zotero is undefined
Source File: chrome://zotero/content/standalone/standalone.js
Line: 36
Timestamp: 07/07/2017 16:07:10
Error: Module `bluebird/promise` is not found at resource://zotero/bluebird/promise.js
Source File: file:///C:/Dev%20Zotero/Git/build/zotero-standalone-build/staging/Zotero_win32/components/zotero-service.js
Line: 438
Timestamp: 07/07/2017 16:07:10
Error: Error: Module `bluebird/promise` is not found at resource://zotero/bluebird/promise.js
Source File: resource://zotero/bluebird.js
Line: 5
Timestamp: 07/07/2017 16:07:10
Error: NS_ERROR_XPC_GS_RETURNED_FAILURE: Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]
Source File: file:///C:/Dev%20Zotero/Git/build/zotero-standalone-build/staging/Zotero_win32/extensions/[email protected]/components/zoteroOpenOfficeIntegration.js
Line: 41
Timestamp: 07/07/2017 16:07:10
Error: NS_ERROR_XPC_GS_RETURNED_FAILURE: Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]
Source File: file:///C:/Dev%20Zotero/Git/build/zotero-standalone-build/staging/Zotero_win32/extensions/[email protected]/components/zoteroOpenOfficeIntegration.js
Line: 41
Timestamp: 07/07/2017 16:07:10
Error: Module `bluebird/promise` is not found at resource://zotero/bluebird/promise.js
Source File: file:///C:/Dev%20Zotero/Git/build/zotero-standalone-build/staging/Zotero_win32/components/zotero-service.js
Line: 438
Timestamp: 07/07/2017 16:07:10
Error: Error: Module `bluebird/promise` is not found at resource://zotero/bluebird/promise.js
Source File: resource://zotero/bluebird.js
Line: 5
Timestamp: 07/07/2017 16:07:10
Error: NS_ERROR_XPC_GS_RETURNED_FAILURE: Component returned failure code: 0x80570016 (NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]
Source File: resource://zotero-winword-integration/installer.jsm
Line: 26
1499436580948 addons.update-checker WARN Update manifest for [email protected] did not contain an updates property
1499436580975 addons.update-checker WARN Update manifest for [email protected] did not contain an updates property
from zotero-standalone-build.
Do you see promise.js in build/resource/bluebird
in zotero/zotero? Not sure it would matter for this, but symlinks do need to be working on your system — you need the latest Git from Cygwin, and maybe (if this is an old Cygwin installation) some other things. If you have Git installed separately, I would uninstall it. You might have luck clearing your Cygwin installation completely and starting again. This works for me on Windows 7.
You can also get a build directory from S3 that can be used in place of the zotero/zotero repo. When a commit is run on Travis, the contents of the build
directory are zipped and pushed to S3. So the current commit's built code is available at http://zotero-download.s3.amazonaws.com/ci/client/e2d7c7e999d2cddd26b30780c2f37cd41d501c97.zip. So you could unzip those files into an empty build
within the Zotero repo and then scripts/dir_build
in zotero-standalone-build should work.
from zotero-standalone-build.
There is no bluebird
directory at all in build/resource
. Does that mean that symlinks are not working? Is it certainly related to Cygwin (it is a completely up-to-date Cygwin installation)?
I have Git installed separately indeed, but I'd like to keep it if possible!
from zotero-standalone-build.
Does node_modules/bluebird/js/release
exist, and are there files in it? That should be symlinked to resource/bluebird
, which should end up as a regular folder at build/resource/bluebird
after the build.
from zotero-standalone-build.
(If I compare the unzipped build/resource
files from http://zotero-download.s3.amazonaws.com/ci/client/59edca783e2b2cff520b2af9e986315ab8b21ea3.zip and those created via Cygwin, two directories bluebird
and weblibrary
are missing. But I have two files bluebird
and weblibrary
which weigh 1kb. Their content is undecipherable except the word symlink, when I open them in a text editor.)
from zotero-standalone-build.
Does node_modules/bluebird/js/release exist, and are there files in it?
Yes
from zotero-standalone-build.
That should be symlinked to resource/bluebird, which should end up as a regular folder at build/resource/bluebird after the build.
That's not the case as I just described. So you're right that's the problem. Do you know how can I find a solution?
from zotero-standalone-build.
I don't, sorry — all I can tell you is this should work with a clean install of Cygwin and no separate Git installation. I believe there are some settings that affect this, but you'd have to look those up.
(You can also create Windows builds on Mac/Linux, if that's an option for you.)
from zotero-standalone-build.
Ok. I will just automatically copy node_modules\bluebird\js\release
and \node_modules\zotero-web-library\lib
to build\resource\web-library
and \build\resource\bluebird
since symlinks are broken for me and I do not want, for the moment, remove my separate Git installation.
I have one last question before closing this issue, if you can help me again. It seems that npm run build
does not work as expected for me, i.e. it does not "update" zotero-client/build
. The consequence is that Zotero is built with this strange version number "Version: 5.0.1.SOURCE.6de7fdedf" (whereas zotero/zotero@6de7fde is after 5.0.5…). I need to delete manually zotero-client/build
before running npm run build
to build everything correctly, which is not a big deal but surprised me. Is it specific to my installation?
from zotero-standalone-build.
Is it specific to my installation?
Yes. The build script symlinks non-JS/CSS files into the build directory, including install.rdf, which contains the version. If you're not getting symlinks then none of those files will be updated for you.
from zotero-standalone-build.
Thank you.
When I run zotero with -debug flag, I get this error:
Timestamp: 21/07/2017 11:26:40
Error: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXPCComponents_Utils.import]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: file:///C:/Dev%20Zotero/Git/build/zotero-standalone-build/staging/Zotero_win32/components/zotero-service.js :: ZoteroCommandLineHandler.prototype.handle :: line 567" data: no]
from zotero-standalone-build.
-debugger
, you mean? That only works if you included the devtools at build time (-t
argument to dir_build
).
from zotero-standalone-build.
Yes, I meant -debugger
. This is working with -t
, thank you (maybe this could be documented there?)
from zotero-standalone-build.
I've added it, but note that the helper script mentioned there takes care of this for you.
from zotero-standalone-build.
I was wrong here. Seems like the symlinks are broken in a default install on Windows — I forgot that we were precompiling the JS in Travis and just doing the final packaging on each platform. Follow https://groups.google.com/d/topic/zotero-dev/Lt_PlgI3yA4/discussion for more. Sorry to waste your time here.
from zotero-standalone-build.
Yes, I've followed this with hope and sent to Frank the link to our discussion. As I wrote above, I've finally made a simple script which copies bluebird\js\release and zotero-web-library\lib to build\resource\web-library and \build\resource\bluebird…
from zotero-standalone-build.
Great, thank you very much @tnajdek ! I've followed the instructions you wrote there, which are a bit different, and it's working now.
from zotero-standalone-build.
@tnajdek, you wrote:
Furthermore symlinks on windows have multiple limitations, two of which are relevant:
Creating symlinks requires a special permission, usually only granted to Administrator user
Creating symlinks to non-existent files is not allowed
Does that mean that I must follow your instructions each time I (re)build ?
from zotero-standalone-build.
Hey @gracile-fr , the short answer is: No, only when you checkout for the first time.
Long answer if you're interested why:
Zotero contains symlinks to dependencies in node_modules
, if we would try to checkout these symlinks immediately, we break the "Creating symlinks to non-existent files is not allowed" rule on Windows, because node_modules have not been installed yet! This creates a broken repo that won't work. Instead, in the instructions you mentioned, we advise to checkout only a couple of files required to run npm install
and only then checkout the rest of the repo. This way, dependencies already exists in node_modules
and can be symlinked during the checkout. On subsequent builds, when the entire repo is already checked out and npm dependencies have been installed, there is no need for this additional procedure.
from zotero-standalone-build.
Related Issues (20)
- Outdated LibreOffice integration submodule HOT 3
- fx-compat: Apple Silicon source build can't load Mac Word dylib HOT 1
- Fix bootstrapped plugins getting disabled on upgrade from Zotero 6 to 7
- Remove Firefox profile-downgrade check
- Update hardened-runtime entitlements for fx102
- Update Firefox to 102.9.0esr HOT 1
- Packaging for Alpine Linux HOT 3
- Building Zotero : fetch_pdftools error HOT 1
- To choose the program for openning a jpg file HOT 1
- Dark theme issue on Linux HOT 2
- Windows: Update version number in Add/Remove Programs on update HOT 4
- Support minimize to tray on Linux HOT 3
- Blank context menus HOT 1
- Fetching XUL runner gets stuck when modifying omni HOT 1
- Register for zotero:// and MIME types on Linux HOT 12
- npm run build errors on arm64 HOT 1
- Replace use of wget with curl
- CFBundleShortVersionString should only contain numbers and periods
- Fix macOS bundle version strings for betas
- Right-click -> Copy in Error Console doesn't copy anything (on macOS only?)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zotero-standalone-build.