grammarviz2 / grammarviz2_src Goto Github PK
View Code? Open in Web Editor NEWGrammarViz 2.0 public release:
Home Page: http://grammarviz2.github.io/grammarviz2_site
License: GNU General Public License v2.0
GrammarViz 2.0 public release:
Home Page: http://grammarviz2.github.io/grammarviz2_site
License: GNU General Public License v2.0
[INFO]
[INFO] --- maven-surefire-plugin:2.13:test (default-test) @ grammarviz2 ---
[INFO] Surefire report directory: /my/compile/grammar_viz/target/surefire-reports
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:510)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:522)
Caused by: java.lang.RuntimeException: Class java/util/UUID could not be instrumented.
at org.jacoco.agent.rt.internal_8ff85ea.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:140)
at org.jacoco.agent.rt.internal_8ff85ea.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:101)
at org.jacoco.agent.rt.internal_8ff85ea.PreMain.createRuntime(PreMain.java:55)
at org.jacoco.agent.rt.internal_8ff85ea.PreMain.premain(PreMain.java:47)
... 6 more
Caused by: java.lang.NoSuchFieldException: $jacocoAccess
at java.base/java.lang.Class.getField(Class.java:1958)
at org.jacoco.agent.rt.internal_8ff85ea.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)
... 9 more
FATAL ERROR in native method: processing of -javaagent failed
Aborted (core dumped)
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.143 s
[INFO] Finished at: 2020-11-30T15:47:39-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.13:test (default-test) on project grammarviz2: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.13:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
[ERROR] Command was/bin/sh -c cd /my/compile/grammar_viz && /usr/lib/jvm/java-11-openjdk-amd64/bin/java '-javaagent:/home/raptor/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/my/compile/grammar_viz/target/jacoco.exec,excludes=/tinker/:/util/:/view/:/cli/' -Xms512m -Xmx1024m -jar /my/compile/grammar_viz/target/surefire/surefirebooter5396154884850251577.jar /my/compile/grammar_viz/target/surefire/surefire2401852462033121568tmp /my/compile/grammar_viz/target/surefire/surefire_013595623112145024154tmp
[ERROR] -> [Help 1]
Some previously selected rules become obsolete by new rule selection. Need to be cleaned up or the raking process need to be changed.
psenin@piedras:~/git/grammarviz2_src.git$ java -cp "target/grammarviz2-0.0.1-SNAPSHOT-jar-with-dependencies.jar" net.seninp.grammarviz.GrammarVizAnomaly -d data/ecg0606_1.csv -alg RRA -w 120 -p 4 -a 4 -g REPAIR -n 3
GrammarViz2 CLI anomaly discovery
parameters:
input file: data/ecg0606_1.csv
output files prefix:
Algorithm implementation: RRA
Num. of discords to report: 3
SAX sliding window size: 120
SAX PAA size: 4
SAX alphabet size: 4
SAX numerosity reduction: EXACT
SAX normalization threshold: 0.01
GI Algorithm: Re-Pair
16:43:11.443 [main] INFO n.s.grammarviz.GrammarVizAnomaly - Reading data ...
16:43:11.482 [main] INFO n.s.grammarviz.GrammarVizAnomaly - read 2299 points from data/ecg0606_1.csv
16:43:11.482 [main] INFO n.s.grammarviz.GrammarVizAnomaly - running RRA algorithm...
16:43:11.576 [main] INFO n.s.grammarviz.GrammarVizAnomaly - Whole timeseries covered by rule intervals ...
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2299
at net.seninp.jmotif.sax.registry.VisitRegistry.isVisited(VisitRegistry.java:99)
at net.seninp.grammarviz.anomaly.RRAImplementation.findBestDiscordForIntervals(RRAImplementation.java:153)
at net.seninp.grammarviz.anomaly.RRAImplementation.series2RRAAnomalies(RRAImplementation.java:66)
at net.seninp.grammarviz.GrammarVizAnomaly.findRRA(GrammarVizAnomaly.java:245)
at net.seninp.grammarviz.GrammarVizAnomaly.main(GrammarVizAnomaly.java:149)
Something is lost in translation.
I am trying to build directly from the cloned repository using the following:
mvn package -Psingle
I am on Windows 10 with the following maven and java:
java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) Client VM (build 25.201-b09, mixed mode)
mvn --version
Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T12:06:16-03:00)
Maven home: D:\Users\andre.ferreira\Projects\apache-maven-3.6.2\bin..
Java version: 13, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-13
Default locale: pt_BR, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
I get the following errors:
INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< net.seninp:grammarviz2 >-----------------------
[INFO] Building GrammarViz2 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (default) @ grammarviz2 ---
[INFO] argLine set to -javaagent:D:\\Users\\andre.ferreira\\.m2\\repository\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\Users\\andre.ferreira\\Projects\\grammarviz2_src-master\\target\\jacoco.exec,excludes=**/tinker/**:**/util/**:**/view/**:**/cli/**
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ grammarviz2 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\Users\andre.ferreira\Projects\grammarviz2_src-master\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:compile (default-compile) @ grammarviz2 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ grammarviz2 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\Users\andre.ferreira\Projects\grammarviz2_src-master\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.3:testCompile (default-testCompile) @ grammarviz2 ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.13:test (default-test) @ grammarviz2 ---
[INFO] Surefire report directory: D:\Users\andre.ferreira\Projects\grammarviz2_src-master\target\surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:513)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:525)
Caused by: java.lang.RuntimeException: Class java/util/UUID could not be instrumented.
at org.jacoco.agent.rt.internal_8ff85ea.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:140)
at org.jacoco.agent.rt.internal_8ff85ea.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:101)
at org.jacoco.agent.rt.internal_8ff85ea.PreMain.createRuntime(PreMain.java:55)
at org.jacoco.agent.rt.internal_8ff85ea.PreMain.premain(PreMain.java:47)
... 6 more
Caused by: java.lang.NoSuchFieldException: $jacocoAccess
at java.base/java.lang.Class.getField(Class.java:2000)
at org.jacoco.agent.rt.internal_8ff85ea.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)
... 9 more
*** java.lang.instrument ASSERTION FAILED ***: "result" with message agent load/premain call failed at JPLISAgent.c line: 422
FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.039 s
[INFO] Finished at: 2019-09-27T10:26:17-03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.13:test (default-test) on project grammarviz2: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.13:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
[ERROR] Command wascmd.exe /X /C ""C:\Program Files\Java\jdk-13\bin\java" -javaagent:D:\\Users\\andre.ferreira\\.m2\\repository\\org\\jacoco\\org.jacoco.agent\\0.7.9\\org.jacoco.agent-0.7.9-runtime.jar=destfile=D:\\Users\\andre.ferreira\\Projects\\grammarviz2_src-master\\target\\jacoco.exec,excludes=**/tinker/**:**/util/**:**/view/**:**/cli/** -Xms512m -Xmx1024m -jar D:\Users\andre.ferreira\Projects\grammarviz2_src-master\target\surefire\surefirebooter9849693331585176312.jar D:\Users\andre.ferreira\Projects\grammarviz2_src-master\target\surefire\surefire16016284318912983176tmp D:\Users\andre.ferreira\Projects\grammarviz2_src-master\target\surefire\surefire_017362929704599565515tmp"
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
I'd like to be able to use the CLI to do rule pruning. With the cli_pre-release branch, this requires unnecessary use of MotifChartData
. On the current version, this is much simpler due to more recent refactorings that pulled out the pruning code.
I've developed that code for one, but it is disconnected from GUI. Need to be fixed.
It does work as it is - failing the run and throwing an exception, but it is nice to make it smarter.
I looked through the JFree library and realize there may be some effort involved but it seems that panning is well documented and shouldn't be hard to implement. I'm loading years of time series data - 10,000 data points and more - up to 50,000. Grammarviz is handling it extremely well actually, no complaints. But being able to pan around instead of zooming in and then zooming all the way out would accelerate things quite a bit for me. Thanks in advance and thank you for your efforts - I LOVE this tool.
Need to code a panel which pops and brings up the doc.
In ecg_0606_tutorial.R, line 21, a dataset coverage.txt is required. However, I am not able to find the dataset anywhere in this GitHub profile. I am a little new to GitHub and coding, so please pardon my ignorance :) # @seninp
psenin@piedras:~/git/grammarviz2_src.git$ java -cp "target/grammarviz2-0.0.1-SNAPSHOT-jar-with-dependencies.jar" net.seninp.grammarviz.GrammarVizAnomaly -d data/ecg0606_1.csv -alg BRUTEFORCE -w 120 -n 3
GrammarViz2 CLI anomaly discovery
parameters:
input file: data/ecg0606_1.csv
output files prefix:
Algorithm implementation: BRUTEFORCE
Num. of discords to report: 3
SAX sliding window size: 120
16:43:16.791 [main] INFO n.s.grammarviz.GrammarVizAnomaly - Reading data ...
16:43:16.831 [main] INFO n.s.grammarviz.GrammarVizAnomaly - read 2299 points from data/ecg0606_1.csv
16:43:16.831 [main] INFO n.s.grammarviz.GrammarVizAnomaly - running brute force algorithm...
16:43:16.833 [main] DEBUG n.s.j.s.d.BruteForceDiscordImplementation - currently known discords: 0 out of 3
16:43:18.194 [main] DEBUG n.s.j.s.d.BruteForceDiscordImplementation - best discord found at 391, best distance: 1.5367254146398446, in 1s314ms distance calls: 4001720
16:43:18.195 [main] DEBUG n.s.j.s.d.BruteForceDiscordImplementation - position 391, NN distance 1.5367254146398446, elapsed time: 1s362ms, distance calls: 4001720
16:43:18.195 [main] DEBUG n.s.j.s.d.BruteForceDiscordImplementation - currently known discords: 1 out of 3
16:43:19.127 [main] DEBUG n.s.j.s.d.BruteForceDiscordImplementation - best discord found at 33, best distance: 0.6002291229189073, in 932ms distance calls: 3305260
16:43:19.127 [main] DEBUG n.s.j.s.d.BruteForceDiscordImplementation - position 33, NN distance 0.6002291229189073, elapsed time: 932ms, distance calls: 3305260
16:43:19.128 [main] DEBUG n.s.j.s.d.BruteForceDiscordImplementation - currently known discords: 2 out of 3
16:43:19.960 [main] DEBUG n.s.j.s.d.BruteForceDiscordImplementation - best discord found at 1188, best distance: 0.5067790445549227, in 831ms distance calls: 3003120
16:43:19.960 [main] DEBUG n.s.j.s.d.BruteForceDiscordImplementation - position 1188, NN distance 0.5067790445549227, elapsed time: 832ms, distance calls: 3003120
discord #0 "#0", at 391 distance to closest neighbor: 1.5367254146398446, info string: "position 391, NN distance 1.5367254146398446, elapsed time: 1s362ms, distance calls: 4001720"
discord #1 "#1", at 33 distance to closest neighbor: 0.6002291229189073, info string: "position 33, NN distance 0.6002291229189073, elapsed time: 932ms, distance calls: 3305260"
discord #2 "#2", at 1188 distance to closest neighbor: 0.5067790445549227, info string: "position 1188, NN distance 0.5067790445549227, elapsed time: 832ms, distance calls: 3003120"
3 discords found in 3s129ms
psenin@piedras:~/git/grammarviz2_src.git$ java -cp "target/grammarviz2-0.0.1-SNAPSHOT-jar-with-dependencies.jar" net.seninp.grammarviz.GrammarVizAnomaly -d data/ecg0606_1.csv -alg HOTSAX -w 120 -p 4 -a 4 -n 3
GrammarViz2 CLI anomaly discovery
parameters:
input file: data/ecg0606_1.csv
output files prefix:
Algorithm implementation: HOTSAX
Num. of discords to report: 3
SAX sliding window size: 120
SAX PAA size: 4
SAX alphabet size: 4
SAX numerosity reduction: EXACT
SAX normalization threshold: 0.01
16:43:24.479 [main] INFO n.s.grammarviz.GrammarVizAnomaly - Reading data ...
16:43:24.518 [main] INFO n.s.grammarviz.GrammarVizAnomaly - read 2299 points from data/ecg0606_1.csv
16:43:24.518 [main] INFO n.s.grammarviz.GrammarVizAnomaly - running HOT SAX Hash-based algorithm...
discord #0 "aaaa", at 391 distance to closest neighbor: 1.5367254146398446, info string: "position 391, NN distance 1.5367254146398446, elapsed time: 450ms, distance calls: 336519"
discord #1 "aaaa", at 33 distance to closest neighbor: 0.6002291229189073, info string: "position 33, NN distance 0.6002291229189073, elapsed time: 841ms, distance calls: 824405"
discord #2 "aaaa", at 2074 distance to closest neighbor: 0.5308483775994796, info string: "position 2074, NN distance 0.5308483775994796, elapsed time: 1s116ms, distance calls: 1164963"
Discords found in 2s487ms
psenin@piedras:~/git/grammarviz2_src.git$
where can i find a description of the data files ?
According to a paper the intervals in RRA should be ordered by increasing Usage Frequency, while in findBestDiscordForInterval they seem to be sorted based on coverage.
Dear Dr. Pavel.
Thank you very much for sharing the amazing GrammarViz 3.0 software, which is very helpful for my research and I intend to use this software to detect anomalies in my data.
But I have some problems while installing this amazing software.
I can not output anomalies files using GrammarViz 3.0, I found that I can set the output path of the anomalies file in GrammarViz, but the file cannot be saved.
Also, it would be better if the anomalies file can be output directly in the command line. I don't know if it can be improved or set.
Thanks!
public void update(GrammarRules grammarRules)
iterates over presumably continuous sequence instead of real rules.
When a best discord has been found, say length 100, that starts at the position 1000, the interval 900-1100 is marked as visited, since we are looking for non-self matches. But then if the new interval of length 150 is going to be considered for a second discord and happened to be at the position 880, it is in fact overlapping the best discord, but the Large window algorithm will allow it to be considered. This issue need to be resolved.
Dear Dr. Pavel.
Thank you very much for sharing the amazing GrammarViz 3.0 software, which is very helpful for my research and I intend to use this software to detect anomalies in my data.
But I have some problems while installing this amazing software.
1, first of all, is the Maven installation plug-in error, I checked that it may be a problem with the HTTP security (https://support.sonatype.com/hc/en-us/articles/360041287334), I manually carried out the installation of the required plug-ins, manually download the file maven-install- plugin-2.2.pom, and copied to the directory (~/.m2/repository/org/apache/maven/plugins/maven-install-plugin).
JAVA and Maven versions are consistent with your Github!
Thank you very much for taking your valuable time to answer for me
out-error.log
out-version.log
.
I ran into this today when parsing through my test's log:
Here are the original values which produced the two strings (if you want to test it):
Vector 1:
Element # 1: -0.5
Element # 2: -1.0
Element # 3: -0.583
Element # 4: 1.0
Element # 5: -0.083
Vector 2:
Element # 1: -0.2
Element # 2: -0.6
Element # 3: -1.0
Element # 4: 1.0
Element # 5: 0.2
When calling SAXFactory.strDistance() with cabfd and cbafd the result is 0. That is clearly wrong as they are not identical. Can you please take a look at this example?
Need to capture the screen size and adjust the screenshot for that, or make a settings panel field defining that size.
Something wrong with the rule intervals (last rule interval?)
10:12:50.106 [AWT-EventQueue-0] INFO e.h.j.grammarviz.view.SequiturView - 10:12:50 SAXSequitur: running RRA on the set of rule intervals...
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 7500
at edu.hawaii.jmotif.sax.trie.VisitRegistry.isVisited(VisitRegistry.java:122)
at edu.hawaii.jmotif.sax.SAXFactory.findBestDiscordForIntervals(SAXFactory.java:1607)
at edu.hawaii.jmotif.grammarviz.logic.GrammarVizAnomalyFinder.run(GrammarVizAnomalyFinder.java:124)
at edu.hawaii.jmotif.grammarviz.logic.MotifChartData.findAnomalies(MotifChartData.java:615)
at edu.hawaii.jmotif.grammarviz.view.SequiturView.actionPerformed(SequiturView.java:869)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3322)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:702)
at java.awt.EventQueue$3.run(EventQueue.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:724)
at java.awt.EventQueue$4.run(EventQueue.java:722)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
JFree allows to go beyond the valid intervals, validator needed in place.
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.