bcwaldon / vagrant_devstack Goto Github PK
View Code? Open in Web Editor NEWVagrant project that sets up a devstack environment
Vagrant project that sets up a devstack environment
Provisioning the virtual machine is failing. I think this is due to Chef related licenses not being accepted. I believe one might be able to solve this problem if one were to follow the "Vagrant" section on Chef's documentation.
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'trusty' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Box file was not detected as metadata. Adding it directly...
==> default: Adding box 'trusty' (v0) for provider: virtualbox
default: Downloading: https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
==> default: Successfully added box 'trusty' (v0) for 'virtualbox'!
==> default: Importing base box 'trusty'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: trusty
==> default: Clearing any previously set forwarded ports...
==> default: Auto-generating node name for Chef...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
default: Adapter 3: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.3.40
default: VirtualBox Version: 5.2
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
default: /vagrant => /home/jlosito/workspace/vagrant_devstack
default: /home/vagrant/cache => /home/jlosito/workspace/vagrant_devstack/cache
default: /home/vagrant/.host-ssh => /home/jlosito/.ssh
default: /tmp/vagrant-chef/a6d5639fd159f83d4eb4fb9a57cad1c4/cookbooks => /home/jlosito/workspace/vagrant_devstack/cookbooks
==> default: Running provisioner: shell...
default: Running: inline script
==> default: Running provisioner: chef_solo...
default: Installing Chef (latest)...
==> default: Generating chef JSON and uploading...
==> default: Running chef-solo...
==> default: [2019-09-30T12:04:13+00:00] DEBUG: Reading products and relationships...
==> default: [2019-09-30T12:04:13+00:00] DEBUG: Successfully read products and relationships
==> default: [2019-09-30T12:04:13+00:00] DEBUG: Searching for the following licenses: ["infra-client", "inspec"]
==> default: [2019-09-30T12:04:13+00:00] DEBUG: Missing licenses remaining: ["infra-client", "inspec"]
==> default: Chef Infra Client cannot execute without accepting the license
#<Thread:0x000055e5cbf871e8@/usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/batch_action.rb:71 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
104: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/batch_action.rb:82:in `block (2 levels) in run'
103: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/machine.rb:188:in `action'
102: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/machine.rb:188:in `call'
101: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/environment.rb:592:in `lock'
100: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/machine.rb:202:in `block in action'
99: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/machine.rb:227:in `action_raw'
98: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `run'
97: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/util/busy.rb:19:in `busy'
96: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `block in run'
95: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builder.rb:116:in `call'
94: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
93: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
92: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
91: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/call.rb:53:in `call'
90: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `run'
89: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/util/busy.rb:19:in `busy'
88: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `block in run'
87: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builder.rb:116:in `call'
86: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
85: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
84: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
83: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
82: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
81: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
80: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
79: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
78: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
77: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/call.rb:53:in `call'
76: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `run'
75: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/util/busy.rb:19:in `busy'
74: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `block in run'
73: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builder.rb:116:in `call'
72: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
71: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
70: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
69: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/check_accessible.rb:18:in `call'
68: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
67: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/customize.rb:40:in `call'
66: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
65: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/prepare_clone.rb:15:in `call'
64: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
63: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/prepare_clone_snapshot.rb:17:in `call'
62: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
61: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/import.rb:13:in `call'
60: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/import.rb:74:in `import'
59: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
58: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/discard_state.rb:15:in `call'
57: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
56: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/match_mac_address.rb:19:in `call'
55: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
54: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
53: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
52: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
51: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
50: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
49: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
48: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/box_check_outdated.rb:36:in `call'
47: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
46: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/call.rb:53:in `call'
45: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `run'
44: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/util/busy.rb:19:in `busy'
43: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `block in run'
42: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builder.rb:116:in `call'
41: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
40: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
39: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
38: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/call.rb:53:in `call'
37: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `run'
36: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/util/busy.rb:19:in `busy'
35: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `block in run'
34: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builder.rb:116:in `call'
33: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
32: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
31: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
30: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/call.rb:53:in `call'
29: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `run'
28: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/util/busy.rb:19:in `busy'
27: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `block in run'
26: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builder.rb:116:in `call'
25: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
24: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
23: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
22: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/check_accessible.rb:18:in `call'
21: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
20: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/clean_machine_folder.rb:17:in `call'
19: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
18: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/set_name.rb:50:in `call'
17: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
16: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/providers/virtualbox/action/clear_forwarded_ports.rb:15:in `call'
15: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
14: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/provision.rb:103:in `call'
13: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/provision.rb:103:in `each'
12: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/provision.rb:126:in `block in call'
11: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/provision.rb:126:in `call'
10: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/environment.rb:504:in `hook'
9: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `run'
8: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/util/busy.rb:19:in `busy'
7: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/runner.rb:66:in `block in run'
6: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builder.rb:116:in `call'
5: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:34:in `call'
4: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
3: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/warden.rb:95:in `call'
2: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/action/builtin/provision.rb:138:in `run_provisioner'
1: from /usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/provisioners/chef/provisioner/chef_solo.rb:64:in `provision'
/usr/share/rubygems-integration/all/gems/vagrant-2.0.2/plugins/provisioners/chef/provisioner/chef_solo.rb:219:in `run_chef_solo': Chef never successfully completed! Any errors should be visible in the (VagrantPlugins::Chef::Provisioner::Base::ChefError)
output above. Please fix your recipes so that they properly complete.
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.
I don't know if this is a Vagrant issue - or if it's an issue with the devstack script. It's pretty weird though - switching from master branch to stable/folsom is blocked by a very odd change - one file goes from 10755
to 10644
and blocks a checkout.
I am running into the following error with the below configuration, any ideas why?
local.conf:
MYSQL_PASSWORD=secrete
SERVICE_TOKEN=secrete
ADMIN_PASSWORD=secrete
SERVICE_TOKEN=secrete
FLAT_INTERFACE=eth1
PUBLIC_INTERFACE=eth1
#HOST_IP=10.0.1.3
#FLOATING_RANGE=10.0.1.30/28
vagrant.yaml:
box_name: osi
allocate_memory: 1024
num_cpus: 2
#ip_prefix: 10.0.1
mac_prefix: 080027027
# These paths are all relative to the Vagrantfile
cache_dir: cache/
ssh_dir: ~/.ssh/
Error: https://gist.github.com/ashleydw/66fbd08de27bd5663634
Any help would be great. I've tried modifying the network settings but can't get further
I get the following error when running "vagrant up" for the first time against this project:
[default] Box precise was not found. Fetching box from specified URL...
[vagrant] Downloading with Vagrant::Downloaders::HTTP...
[vagrant] Downloading box: http://c479942.r42.cf2.rackcdn.com/precise64.box
Bad status code: 404
Please verify that the box exists and is accessible. Also verify that
this computer is properly connected to the internet.
It looks like the "box_url" in the conf hash is broken.
First, great project. It got me up and running very quickly! Along the way I ran into two small issues. The aptcache and pipcache folders did not exist, so there were a couple dead links during the stack.sh run. I resolved this by issuing the following commands and rerunning stack.sh:
mkdir /home/vagrant/cache/aptcache
mkdir /home/vagrant/cache/pipcache
Cheers,
John
Eventually we'll need to update everything to work with the next LTS release of Ubuntu.
Good to meet you at openstack summit!
Just noticed this...
https://github.com/sc68cal/chef-devstack states the repo is going away at the end of may.
A fresh devstack installation fails with Permission denied error:
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + rm -f /tmp/tmp.Hd2y3r9bWb
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + is_service_enabled mysql postgresql
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: ++ set +o
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: ++ grep xtrace
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + local 'xtrace=set -o xtrace'
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + set +o xtrace
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + return 0
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + install_database
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + install_database_mysql
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + is_ubuntu
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + [[ -z deb ]]
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + '[' deb = deb ']'
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + cat
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + sudo debconf-set-selections
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + [[ ! -e /root/.my.cnf ]]
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + cat
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: /home/vagrant/devstack/lib/databases/mysql: line 136: /root/.my.cnf: Permission denied
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + exit_trap
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + local r=1
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: ++ jobs -p
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + jobs=
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + [[ -n '' ]]
notice: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: + exit 1
err: /Stage[main]//Node[devstack]/Exec[/home/vagrant/devstack/stack.sh]/returns: change from notrun to 0 failed: /home/vagrant/devstack/stack.sh returned 1 instead of one of [0] at /tmp/vagrant-puppet/manifests/site.pp:74
Failed on git submodule init
because https://github.com/osops/vagrant-openstack is not available anymore.
Is it intended to still work?
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.