Comments (40)
Can you give more details? Which commands are you running and perhaps a log + your pom?
Thank you
from beanstalker.
FYI the environment says its updating, it just don't have the new war content.
from beanstalker.
Hmm... not sure how to post XML in this thing :)
from beanstalker.
can you use triple ` to quote it correctly?
thanks
from beanstalker.
<plugin>
<groupId>br.com.ingenieux</groupId>
<artifactId>beanstalk-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<applicationName>Point Rocket</applicationName>
<environmentName>collector-prod0</environmentName>
<useStagingDirectory>true</useStagingDirectory>
<skipEnvironmentUpdate>true</skipEnvironmentUpdate>
<versionsToKeep>3</versionsToKeep>
<versionLabel>${project.build.finalName}</versionLabel>
<cnamePrefix>pointrocket-collector-prod0</cnamePrefix>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>fast-deploy</goal>
<goal>update-environment</goal>
</goals>
</execution>
</executions>
</plugin>
from beanstalker.
Are application names valid with spaces?
$ mvn beanstalk:describe-applications
from beanstalker.
i was forced by the plugin to set cnamePrefix and the versonLabel is my attempt to get it working
from beanstalker.
Apparently, seems to work and I've got a live application with spaces.
from beanstalker.
Seems it doesn't like that goal.
[ERROR] Could not find goal 'describe-applications' in plugin br.com.ingenieux:beanstalk-maven-plugin:1.1.1 among available goals clean-previous-versions, delete-configuration-template, help, describe-configuration-templates, list-configuration-templates, bind-domains, update-application-version, swap-environment-cnames, create-application-vers
from beanstalker.
Never thought about it. That could actually be the reason. Let me check something, hang on
from beanstalker.
AWS doesn't mind the name... everything seems to work. here is the output:
(note that the currently running version is 1.0.18-SNAPSHOT)
[INFO] Looking up for pointrocket-collector-prod0.elasticbeanstalk.com
[INFO] Will wait until Fri Sep 13 18:11:49 EDT 2013 for environment e-wvgay33kyt to get into !Updating
[INFO] ... as well as having domain pointrocket-collector-prod0.elasticbeanstalk.com
[INFO] Environment Detail:com.amazonaws.services.elasticbeanstalk.model.EnvironmentDescription@1395ddba[environmentName=collector-prod0,environmentId=e-wvgay33kyt,applicationName=Point Rocket,versionLabel=collector-1.0.18-SNAPSHOT,solutionStackName=64bit Amazon Linux running Tomcat 7,templateName=,description=Point Rocket Collector Prod 0,endpointURL=awseb-e-w-AWSEBLoa-765XY8ZNWW3W-1686086258.us-east-1.elb.amazonaws.com,cNAME=pointrocket-collector-prod0.elasticbeanstalk.com,dateCreated=Tue Sep 10 20:48:15 EDT 2013,dateUpdated=Fri Sep 13 18:05:05 EDT 2013,status=Ready,health=Green,resources=]
[INFO] SUCCESS
[INFO] * versionLabel: collector-1.0.18-SNAPSHOT [class: String]
[INFO] * status: Updating [class: String]
[INFO] * applicationName: Point Rocket [class: String]
[INFO] * endpointURL: awseb-e-w-AWSEBLoa-765XY8ZNWW3W-1686086258.us-east-1.elb.amazonaws.com [class: String]
[INFO] * health: Grey [class: String]
[INFO] * dateUpdated: Fri Sep 13 18:09:50 EDT 2013 [class: Date]
[INFO] * environmentId: e-wvgay33kyt [class: String]
[INFO] * solutionStackName: 64bit Amazon Linux running Tomcat 7 [class: String]
[INFO] * CNAME: pointrocket-collector-prod0.elasticbeanstalk.com [class: String]
[INFO] * description: Point Rocket Collector Prod 0 [class: String]
[INFO] * dateCreated: Tue Sep 10 20:48:15 EDT 2013 [class: Date]
[INFO] * environmentName: collector-prod0 [class: String]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.527s
[INFO] Finished at: Fri Sep 13 18:09:52 EDT 2013
[INFO] Final Memory: 11M/81M
[INFO] ------------------------------------------------------------------------
from beanstalker.
got beanstalk:describe-application-versions to run. seems to work:
INFO] ------------------------------------------------------------------------
[INFO] Building Point Rocket Collector 1.0.19-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- beanstalk-maven-plugin:1.1.1:describe-application-versions (default-cli) @ collector ---
[WARNING] You should encrypt your passwords. See http://beanstalker.ingenieux.com.br/security.html for more information
[INFO] SUCCESS
[INFO] * applicationVersions: [{ApplicationName: Point Rocket, Description: Update from fast-deploy
, VersionLabel: git-f280d0f11ad866b870dd162bb992edb8d7d4b615-1379110187943, SourceBundle: {S3Bucket: elasticbeanstalk-us-east-1-299850653771, S3Key: git-f280d0f11ad866b870dd162bb992edb8d7d4b615-1379110187943.zip, }, DateCreated: Fri Sep 13 18:09:49 EDT 2013, DateUpdated: Fri Sep 13 18:09:49 EDT 2013, }, {ApplicationName: Point Rocket, Description: Update from fast-deploy
, VersionLabel: git-e4bff8603845c2fb61cc3f0155b288d9be1d7a12-1379109838954, SourceBundle: {S3Bucket: elasticbeanstalk-us-east-1-299850653771, S3Key: git-e4bff8603845c2fb61cc3f0155b288d9be1d7a12-1379109838954.zip, }, DateCreated: Fri Sep 13 18:04:00 EDT 2013, DateUpdated: Fri Sep 13 18:04:00 EDT 2013, }, {ApplicationName: Point Rocket, Description: Update from fast-deploy
, VersionLabel: git-818016b1b01a532eaea5c5325ebdd364a9d91e58-1379109554435, SourceBundle: {S3Bucket: elasticbeanstalk-us-east-1-299850653771, S3Key: git-818016b1b01a532eaea5c5325ebdd364a9d91e58-1379109554435.zip, }, DateCreated: Fri Sep 13 17:59:16 EDT 2013, DateUpdated: Fri Sep 13 17:59:16 EDT 2013, }, {ApplicationName: Point Rocket, Description: , VersionLabel: collector-1.0.18-SNAPSHOT, SourceBundle: {S3Bucket: elasticbeanstalk-us-east-1-299850653771, S3Key: 2013255uEz-collector-1.0.18-SNAPSHOT.war, }, DateCreated: Thu Sep 12 13:10:24 EDT 2013, DateUpdated: Thu Sep 12 13:10:24 EDT 2013, }, {ApplicationName: Point Rocket, Description: , VersionLabel: dashboard-1.0.18-SNAPSHOT, SourceBundle: {S3Bucket: elasticbeanstalk-us-east-1-299850653771, S3Key: 20132556J1-dashboard-1.0.18-SNAPSHOT.war, }, DateCreated: Thu Sep 12 13:08:56 EDT 2013, DateUpdated: Thu Sep 12 13:08:56 EDT 2013, }] [class: List]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.817s
[INFO] Finished at: Fri Sep 13 18:17:55 EDT 2013
[INFO] Final Memory: 8M/81M
[INFO] ------------------------------------------------------------------------
sobek-2:collector bpappin$
from beanstalker.
fast-deploy, while excellent, is a huge hack by design (we reversed AWS). To make things worse, they don't follow the git protocol correctly, so we actually have issues when parsing its results
When I designed that, I didn't know spaces were allowed. What I'm trying is to debug fast-deploy and see how it behaves whenever there's an space in the app name (meaning: I forgot to url-quote it), so I'm looking into what does it cause
from beanstalker.
The S3 buck mode does the same thing.
from beanstalker.
I have a slightly idea of what could it be. do your maven thing with -X, and post the maven parameters as well as any logs from beanstalk (make sure to remove anything secretKey please))
$ mvn -X -Dbeanstalker.verbose=true <yourgoals/phase>
from beanstalker.
OK, run and I think i got the keys out :)
Let me know if you need the whole log, otherwise I think your looking for this:
[INFO] Looking up for pointrocket-collector-prod0.elasticbeanstalk.com
[WARNING] FAILURE
org.eclipse.jgit.api.errors.JGitInternalException: Exception caught during execution of add command
at org.eclipse.jgit.api.AddCommand.call(AddCommand.java:208)
at br.com.ingenieux.mojo.beanstalk.bundle.FastDeployMojo.executeInternal(FastDeployMojo.java:113)
at br.com.ingenieux.mojo.aws.AbstractAWSMojo.execute(AbstractAWSMojo.java:359)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.eclipse.jgit.errors.LockFailedException: Cannot lock /Users/bpappin/workspace/sixgreen/pointrocket/collector/tmp-git-deployment-staging/index
at org.eclipse.jgit.dircache.DirCache.lock(DirCache.java:224)
at org.eclipse.jgit.dircache.DirCache.lock(DirCache.java:301)
at org.eclipse.jgit.dircache.DirCache.lock(DirCache.java:267)
at org.eclipse.jgit.lib.Repository.lockDirCache(Repository.java:1023)
at org.eclipse.jgit.api.AddCommand.call(AddCommand.java:138)
... 23 more
from beanstalker.
This:
Detail:com.amazonaws.services.elasticbeanstalk.model.EnvironmentDescription@1395ddba[
environmentName=collector-prod0,environmentId=e-wvgay33kyt,applicationName=Point Rocket,
versionLabel=collector-1.0.18-SNAPSHOT,
solutionStackName=64bit Amazon Linux running Tomcat 7,
templateName=,description=Point Rocket Collector Prod 0,
endpointURL=awseb-e-w-AWSEBLoa-765XY8ZNWW3W-1686086258.us-east-1.elb.amazonaws.com,cNAME=pointrocket-collector-prod0.elasticbeanstalk.com,dateCreated=Tue Sep 10 20:48:15 EDT 2013,dateUpdated=Fri Sep 13 18:05:05 EDT 2013,status=Ready,health=Green,resources=]
Look under versionLabel. Drop that two lines from your pom and try deploying:
<skipEnvironmentUpdate>true</skipEnvironmentUpdate>
...
<versionLabel>${project.build.finalName}</versionLabel>
from beanstalker.
(also, remove tmp-deployment-staging for now then re-run. Interesting to wonder what caused this lock exception)
from beanstalker.
Can't for some reason now, git seems to be getting stuck with the same error i posted above about not being able to lock.
Caused by: org.eclipse.jgit.errors.LockFailedException: Cannot lock /Users/bpappin/workspace/sixgreen/pointrocket/collector/tmp-git-deployment-staging/index
I'm going to try and clean it out and then run again
from beanstalker.
fuser?
from beanstalker.
that temp dir should be in the target dir :)
Its running now. wait one.
from beanstalker.
likely cause by stopping part way through with ctrl-c but it was not getting removed on a mvn clean because its not in target.
from beanstalker.
Its by design: its not in target is to save performance when doing mvn clean and then redeploy. Removing it manually and paying mind not to commit it back its worth the effort, trust me
You know, m2eclipse sometimes mixes stuff which should be in target/test-classes and target/classes
from beanstalker.
Ok, that worked :)
Any chance I can use the project.version instead of "git-dd73c37" for the version label?
I've got a system that increments properly already and the project versions have more meaning (can be tagged).
from beanstalker.
Ahh, yes I understand why that might be... certainly does improve performance. Maybe add a reset command to beanstalk:* so that it can be hooked in in desired.
from beanstalker.
Due to git semantics, on fast-deploy it doesn't, unfortunately. You can, however, declare the version description with -Dbeanstalk.versionDescription={your message]. That could be your job id, for instance.
On 1.1.1 there's tag-environment which allows you to create a configuration template (handy for createEnv), which goes further and incremental, and I think its a great thing (since there are lots of knobs and switches around)
from beanstalker.
Could we consider it fixed?
from beanstalker.
I need to move back to the s3 because I can set the version, however was having the same issue. let me try it with this config and I'll be able to tell you if it can close.
from beanstalker.
What basically happened was that update-environment was being called with a bogus versionLabel (if its empty, it picks the latest one)
If you're tagging and releasing it properly, you could use this:
http://beanstalker.ingenieux.com.br/beanstalk-maven-plugin/setup-for-ci.html
from beanstalker.
OK, doesn't seem to work as an s3 upload, same problem.
Please consider version label adjustment in fast-deploy to be an RFE.
from beanstalker.
plugin config for the s3 version looks like:
<plugin>
<groupId>br.com.ingenieux</groupId>
<artifactId>beanstalk-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<applicationName>Point Rocket</applicationName>
<environmentName>collector-prod0</environmentName>
<!-- <useStagingDirectory>true</useStagingDirectory> -->
<versionsToKeep>3</versionsToKeep>
<cnamePrefix>pointrocket-collector-prod0</cnamePrefix>
<s3Bucket>sixgreen-deployer</s3Bucket>
<s3Key>${project.parent.artifactId}-${project.artifactId}/${project.build.finalName}-${maven.build.timestamp}.war</s3Key>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>upload-source-bundle</goal>
<goal>create-application-version</goal>
<goal>update-environment</goal>
</goals>
</execution>
</executions>
</plugin>
from beanstalker.
where is versionLabel being set? create-application-version needs it to create the version. Try adding:
<versionLabel>${project.build.finalName}-${maven.build.timestamp}</versionLabel>
then try again
from beanstalker.
No joy with that one.
XML now looks like this:
<plugin>
<groupId>br.com.ingenieux</groupId>
<artifactId>beanstalk-maven-plugin</artifactId>
<version>1.1.1</version>
<configuration>
<applicationName>Point Rocket</applicationName>
<environmentName>collector-prod0</environmentName>
<!-- <useStagingDirectory>true</useStagingDirectory> -->
<versionsToKeep>3</versionsToKeep>
<cnamePrefix>pointrocket-collector-prod0</cnamePrefix>
<versionLabel>${project.build.finalName}-${maven.build.timestamp}</versionLabel>
<s3Bucket>sixgreen-deployer</s3Bucket>
<s3Key>${project.parent.artifactId}-${project.artifactId}/${project.build.finalName}-${maven.build.timestamp}.war</s3Key>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>upload-source-bundle</goal>
<goal>create-application-version</goal>
<goal>update-environment</goal>
</goals>
</execution>
</executions>
</plugin>
And the output says this (note the two different version labels!)
[INFO] Target Path: s3://sixgreen-deployer/pointrocket-collector/collector-1.0.20-SNAPSHOT-20130913190520.war
[INFO] Uploading artifact file: /Users/bpappin/workspace/sixgreen/pointrocket/collector/target/collector-1.0.20-SNAPSHOT.war
100.00% 9 MiB/9 MiB Done
[INFO] Artifact Uploaded
[INFO] SUCCESS
[INFO]
[INFO] --- beanstalk-maven-plugin:1.1.1:create-application-version (default) @ collector ---
[WARNING] You should encrypt your passwords. See http://beanstalker.ingenieux.com.br/security.html for more information
[INFO] SUCCESS
[INFO] * sourceBundle: {S3Bucket: sixgreen-deployer, S3Key: pointrocket-collector/collector-1.0.20-SNAPSHOT-20130913190520.war, } [class: S3Location]
[INFO] * versionLabel: collector-1.0.20-SNAPSHOT-20130913190520 [class: String]
[INFO] * description: Update from beanstalk-maven-plugin [class: String]
[INFO] * applicationName: Point Rocket [class: String]
[INFO] * dateCreated: Fri Sep 13 19:06:17 EDT 2013 [class: Date]
[INFO] * dateUpdated: Fri Sep 13 19:06:17 EDT 2013 [class: Date]
[INFO]
[INFO] --- beanstalk-maven-plugin:1.1.1:update-environment (default) @ collector ---
[WARNING] You should encrypt your passwords. See http://beanstalker.ingenieux.com.br/security.html for more information
[INFO] Looking up for pointrocket-collector-prod0.elasticbeanstalk.com
[INFO] Will wait until Fri Sep 13 19:08:17 EDT 2013 for environment e-wvgay33kyt to get into !Updating
[INFO] ... as well as having domain pointrocket-collector-prod0.elasticbeanstalk.com
[INFO] Environment Detail:com.amazonaws.services.elasticbeanstalk.model.EnvironmentDescription@1913c652[environmentName=collector-prod0,environmentId=e-wvgay33kyt,applicationName=Point Rocket,versionLabel=git-dd73c37c51a0816887a59ac4bbee40bb370d394f-1379111653756,solutionStackName=64bit Amazon Linux running Tomcat 7,templateName=<null>,description=Point Rocket Collector Prod 0,endpointURL=awseb-e-w-AWSEBLoa-765XY8ZNWW3W-1686086258.us-east-1.elb.amazonaws.com,cNAME=pointrocket-collector-prod0.elasticbeanstalk.com,dateCreated=Tue Sep 10 20:48:15 EDT 2013,dateUpdated=Fri Sep 13 18:54:46 EDT 2013,status=Ready,health=Green,resources=<null>]
[INFO] SUCCESS
[INFO] * versionLabel: git-dd73c37c51a0816887a59ac4bbee40bb370d394f-1379111653756 [class: String]
[INFO] * status: Updating [class: String]
[INFO] * applicationName: Point Rocket [class: String]
[INFO] * endpointURL: awseb-e-w-AWSEBLoa-765XY8ZNWW3W-1686086258.us-east-1.elb.amazonaws.com [class: String]
[INFO] * health: Grey [class: String]
[INFO] * dateUpdated: Fri Sep 13 19:06:18 EDT 2013 [class: Date]
[INFO] * environmentId: e-wvgay33kyt [class: String]
[INFO] * solutionStackName: 64bit Amazon Linux running Tomcat 7 [class: String]
[INFO] * CNAME: pointrocket-collector-prod0.elasticbeanstalk.com [class: String]
[INFO] * description: Point Rocket Collector Prod 0 [class: String]
[INFO] * dateCreated: Tue Sep 10 20:48:15 EDT 2013 [class: Date]
[INFO] * environmentName: collector-prod0 [class: String]
from beanstalker.
didn't mean to close that :)
from beanstalker.
Now thats my fault:
[INFO] Will wait until Fri Sep 13 19:08:17 EDT 2013 for environment e-wvgay33kyt to get into !Updating
[INFO] ... as well as having domain pointrocket-collector-prod0.elasticbeanstalk.com
[INFO] Environment Detail:com.amazonaws.services.elasticbeanstalk.model.EnvironmentDescription@1913c652[environmentName=collector-prod0,environmentId=e-wvgay33kyt,applicationName=Point Rocket,versionLabel=git-dd73c37c51a0816887a59ac4bbee40bb370d394f-1379111653756,solutionStackName=64bit Amazon Linux running Tomcat 7,templateName=<null>,description=Point Rocket Collector Prod 0,endpointURL=awseb-e-w-AWSEBLoa-765XY8ZNWW3W-1686086258.us-east-1.elb.amazonaws.com,cNAME=pointrocket-collector-prod0.elasticbeanstalk.com,dateCreated=Tue Sep 10 20:48:15 EDT 2013,dateUpdated=Fri Sep 13 18:54:46 EDT 2013,status=Ready,health=Green,resources=<null>]
[INFO] SUCCESS
Remember the lookup on versionLabel? That changed in 1.1.1. But there's a knob for this one available:
<useLatestVersionLabel>false</useLatestVersionLabel>
Thanks
from beanstalker.
(whistling WWBBD while you give me your results)
from beanstalker.
Just to note, the change from <useLatestVersionLabel>false</useLatestVersionLabel>
really had me dumbfounded for a while, the plugin kept updating the environment to the already deployed version and never to the most recent upload.
Adding the configuration as you suggested finally fixed it.
from beanstalker.
Yes, that was unfortunate. I hope to find a suitable fix soon
-- Aldrin Leal, [email protected]
Master your EC2-fu! Get the latest ekaterminal public beta
http://www.ingenieux.com.br/products/ekaterminal/
On Mon, Sep 23, 2013 at 5:48 AM, Alex Brausewetter <[email protected]
wrote:
Just to note, the change from
false really had me
dumbfounded for a while, the plugin kept updating the environment to the
already deployed version and never to the most recent upload.Adding the configuration as you suggested finally fixed it.
—
Reply to this email directly or view it on GitHubhttps://github.com//issues/35#issuecomment-24905923
.
from beanstalker.
FWIW I was also seeing the same as xoob, and it had me quite confused too until I read this!
from beanstalker.
When in doubt, look for the archetype - They contain most of the relevant
settings
from beanstalker.
Related Issues (20)
- NPE when doing create-environment HOT 2
- Endpoints are of different format in Beijing zone
- aws:elb:listener support
- NPE when updating a worker environment HOT 2
- -Dbeanstalk.environmentRef parameter does not overwrite value in pom.xml HOT 1
- Upgrade to latest AWS SDK 2016/2017
- Route53 swap failed
- Unexpected: Unhandled with mvn beanstalk:codecommit-fast-deploy HOT 1
- Add suport to Java 9+ HOT 5
- To configure environment variables for lambda
- Update dependency for beanstalk-maven-plugin to use com.amazonaws:aws-java-ask:1.11.525 HOT 2
- Support CloudFormation service roles for all stack actions HOT 1
- With enabled proxy without username/password I got an NPE for check-availability HOT 1
- Maven encrypted password doesn't work HOT 1
- Security Group Validity Check HOT 7
- Invalid security group parameter passed to AWS SDK HOT 1
- The replace environment goal copies over non-custom (elastic beanstalk created) security groups to the new environment if the old environment contains custom security groups
- create-environment timeout after 20 minutes
- incorrect documentation
- 🧚🤖 Pixeebot Activity Dashboard
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 beanstalker.