Coder Social home page Coder Social logo

joomlatools / joomlatools-vagrant Goto Github PK

View Code? Open in Web Editor NEW
139.0 139.0 37.0 54.3 MB

Vagrant box for Joomla development.

Home Page: https://www.joomlatools.com/developer/tools/vagrant/

License: Mozilla Public License 2.0

Puppet 8.49% Ruby 4.47% PHP 34.09% Shell 8.98% CSS 30.16% JavaScript 0.56% HTML 12.16% VCL 1.08%
vagrant

joomlatools-vagrant's People

Contributors

amazeika avatar bitdeli-chef avatar ercanozkaya avatar greenleafmedia avatar janvandijk avatar javigomez avatar johanjanssens avatar laoneo avatar matart avatar robinpoort avatar stevenrombauts avatar yiendos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

joomlatools-vagrant's Issues

Composer proxy command

We want to be able to include the target site when running composer commands.

  • Install Composer packages through joomla-console (so no need to change directories) (add a joomla composer command). This will probably not work because we cannot account for all possible options as symfony/console will parse them and throw errors if they are not defined in joomla-console.
  • Using a Composer plugin?
  • Recommended: setup a bash alias that will replace composer command with a cd and actual composer call.

Improve Dashboard design

  • Implement Grunt
  • Change title to 'Joomlatools Vagrant'
  • Appify using iFrames so navigation stays in place
  • Switch Tools with System and rename the items in the Tools menu to:
    • Info
    • Logs
    • Files
    • Terminal
  • Not working properly on small screens
  • Add $cfg['AllowThirdPartyFraming'] = true; to config.inc.php to allow phpMyAdmin to open in an iFrame
  • MailCatcher doesn't open in an iFrame because X-Frame-Options is set to SAMEORIGIN
  • Remove redirect to /dashboard it is now available from the root folder: http://joomla.box/joomlatools-vagrant/puppet/modules/scripts/files/scripts/
  • Add links to Gitter for support

Instructions on how to easily work on the dashboard HTML can be found in the wiki.

Vagrant can't install guest additions

Hi, not sure if is an error of the Vagrant Box.

I have a host machine Mac OSX El Capitan 10.11.3
Latest Vagrant 1.8.1
VirtualBox 5.0.14

When executing vagrant up I have this error:

screen shot 2016-02-03 at 10 52 42

That ends in:

screen shot 2016-02-03 at 11 03 52

Checking the log file in the guest machine: vagrant ssh and cat /var/log/vboxadd-install.log I see:

Uninstalling modules from DKMS
Attempting to install using DKMS

Creating symlink /var/lib/dkms/vboxguest/5.0.14/source ->
                 /usr/src/vboxguest-5.0.14

DKMS: add completed.
Error! Your kernel headers for kernel 3.19.0-25-generic cannot be found.
Please install the linux-headers-3.19.0-25-generic package,
or use the --kernelsourcedir option to tell DKMS where it's located
Failed to install using DKMS, attempting to install without
/tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.

Have you faced similar situation?

The machine works anyway. So please close this issue when you read it. It was created just to know if anyone is facing it.

Different .ini files per SAPI

The stock php install creates different directories for CLI and Apache2 ini files. We need to work with this better:

  • compile other php versions with different config file path for cli and web
  • create a custom.ini for web handlers and a custom-cli.ini file for CLI
  • only enable Xdebug for the web handlers

Control system via dashboard

Show more system information on the dashboard and allow more control:

  • Restarting the server processes from the dashboard
  • Some system health/status info.

Install sundown

Install the PECL extension sundown.

You can install it already by running these commands real quick:

(on the joomla-vagrant box, run this first if you recently changed to another PHP version. Only do so if you've changed it, just discovered a major bug, if you have never switched versions but run this command, you're left without PHP: phpmanager restore)

sudo pecl install sundown-beta
sudo sh -c "echo 'extension=sundown.so' > /etc/php5/conf.d/zzz_sundown.ini"

Restart PHP:

  • On the nooku box: sudo /etc/init.d/php5-fpm restart
  • On the joomla-vagrant box: sudo /etc/init.d/apache2 restart

Decouple profiles

All configuration directives are contained in default.pp. Refactor the code to separate everything in separate modules to increase readability and reusability. This will also bring the vagrant box in line with more recent infrastructure projects.

Support custom projects

  1. Allow to set a different network address through the box.config file so you can run multiple boxes simultaneously
  2. Make sure a custom.sql will be imported on creation of a server.

Joomla.box is not in hosts of the vagrant machine

Hi, I'm not skilled in vagrant and I'm not sure about the right way to to fix this, let me explain the issue:

capture 2016-01-04 at 14 02 05

Of course if I do a curl from the host (MacOS) it works because I have it in hosts:

screen shot 2016-01-28 at 14 05 24

However if I do a curl from the Vagrant ssh:

screen shot 2016-01-28 at 14 06 05

I guess the solution is adding joomla.box as host in the Vagrant machine but not sure.

I must say that this was not an issue in joomla-vagrant, is only happening in joomlatools-vagrant.

If you can point me to the right place, I'm happy to test and send a fix.
Thanks

Use php-fpm, drop mod_php

Apache 2.4 can now perfectly work with php-fpm instead of the old mod_php, and is even the recommended method from now on. This will make it easier to add Nginx in the mix later on, and requires less fiddling with .so files when switching PHP versions:

  • Install php-fpm
  • Confiugure Apache to talk to php-fpm instead of using mod_php
  • Remove the mod_phpX logic from phpmanager and always compile FPM

Forwarded (reverse) ports

Allow custom forwarded ports to be configured. This will allow the box to talk to other service running on the host machines (jekyll sites, node.js apps, ..)

Example from a Puphpet config:

 vagrantfile:
    target: local
    vm:
        box: puphpet/centos65-x64
        box_url: puphpet/centos65-x64
        hostname: mybox
        memory: '512'
        cpus: '1'
        network:
            private_network: 192.168.56.101
            forwarded_port:
                vflnp_8n82k04lyz3d:
                    host: '6178'
                    guest: '22'
                vflnp_n319oy1hyfdg:
                    host: '3306'
                    guest: '33060'
[...]

Box fails to fire up for me

On OSX 10.8, files doesn't complete the startup process. Any ideas? Maybe wrong version of vagrant?

[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Setting hostname...
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant
[default] -- /tmp/vagrant-puppet/manifests
[default] -- /tmp/vagrant-puppet/modules-0
[default] Forcing shutdown of VM...
[default] Destroying VM and associated drives...
/Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/nfs.rb:42:in realpath': No such file or directory - /Volumes/ubuntu-mac/joomla-vagrant/Projects (Errno::ENOENT) from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/nfs.rb:42:inrealpath'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/nfs.rb:42:in block in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/nfs.rb:36:ineach'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/nfs.rb:36:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/providers/virtualbox/action/prune_nfs_exports.rb:15:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb:118:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb:30:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/env_set.rb:19:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Users/gavin/.vagrant.d/gems/gems/vagrant-berkshelf-1.3.3/lib/berkshelf/vagrant/action/upload.rb:18:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Users/gavin/.vagrant.d/gems/gems/vagrant-berkshelf-1.3.3/lib/berkshelf/vagrant/action/install.rb:24:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/provision.rb:45:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/providers/virtualbox/action/clear_forwarded_ports.rb:13:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/providers/virtualbox/action/set_name.rb:35:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/providers/virtualbox/action/clean_machine_folder.rb:17:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/providers/virtualbox/action/check_accessible.rb:18:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/runner.rb:61:in block in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/util/busy.rb:19:inbusy'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/runner.rb:61:in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/call.rb:51:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/runner.rb:61:inblock in run'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/util/busy.rb:19:in busy' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/runner.rb:61:inrun'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/call.rb:51:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/runner.rb:61:in block in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/util/busy.rb:19:inbusy'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/runner.rb:61:in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/call.rb:51:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/config_validate.rb:25:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/providers/virtualbox/action/check_virtualbox.rb:17:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/call.rb:57:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/config_validate.rb:25:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Users/gavin/.vagrant.d/gems/gems/vagrant-berkshelf-1.3.3/lib/berkshelf/vagrant/action/configure_chef.rb:14:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Users/gavin/.vagrant.d/gems/gems/vagrant-berkshelf-1.3.3/lib/berkshelf/vagrant/action/load_shelf.rb:14:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Users/gavin/.vagrant.d/gems/gems/vagrant-berkshelf-1.3.3/lib/berkshelf/vagrant/action/set_ui.rb:12:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/env_set.rb:19:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builtin/call.rb:57:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/providers/virtualbox/action/check_virtualbox.rb:17:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/builder.rb:116:incall'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/runner.rb:61:in block in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/util/busy.rb:19:inbusy'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/action/runner.rb:61:in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/machine.rb:147:inaction'
from /Applications/Vagrant/embedded/gems/gems/vagrant-1.2.7/lib/vagrant/batch_action.rb:63:in `block (2 levels) in run'
gavin:joomla-vagrant gavin$

Mailcatcher not working

Hi there -

I have a fresh install of the vagrant box. I set my Joomla 3.5.0 admin to SMTP host 127.0.0.1 and set the port to 1025. When I send the test email in Joomla config area it spits back the following error in the admin:

Test mail could not be sent.

Could not instantiate mail function.

On the command line I try to test mailcatcher using: echo "Subject: test" | /home/vagrant/.rvm/gems/ruby-2.2.1/bin/catchmail -v [email protected] and I get back catchmail: version unknown.

Any ideas why I can't get mail to work?

Install vagrant-vbguest plugin by default

Install the vagrant-vbguest plugin by default.

If you want to manually install newer Virtual Box Guest Additions you will have to do the following:

  1. Make a backup before attempting any of this!
  2. Login to SSH on your current Vagrant Box
  3. Run this command inside the Vagrant Box: sudo apt-get remove dkms build-essential linux-headers-* && sudo apt-get install dkms build-essential linux-headers-$(uname -r)
  4. Halt the Vagrant Box
  5. Run this command inside the folder where the Vagrant Box is located: vagrant plugin install vagrant-vbguest
  6. Up the Vagrant Box and it should automatically update the Virtual Box Guest system to the latest version that your system can run.

Do not modify headers in backend response

Although Varnish is disabled and vcl_recv just passes the request, the vcl_backend_fetch still modifies the headers. Most notably it changes the Cache-Control headers.

Make sure every sub just passes the request unaltered if Varnish is actually disabled.

GPG errors

I'm getting GPG validation errors when puppet tries to provision the VM.

This in turns causes apt to fail installing packages and until provisioning fails.

Does anyone else has issues with GPG keys?

Separate Dashboard application

Idea

I would create a single 'application' to manage the box. The application would consist out of different specific components build solely on top of Joomlatools Framework, in combination with Joomlatools Platform and could re-use some of our re-usable components if need be.

Name

We need to decide on a name for the application, possible names that come that to mind are : admin, administrator (to follow Joomla convention) and manager.

The name as such will not have much impact as it will not be used at all. In a single application the name does not need to be referenced in object identifiers, as we do not jump between apps. It would just be the global folder under which we would put the code.

Structure

Proposing the following repo structure (which is a mix of Joomla and Nooku conventions)

  • /application
    • /cache
    • /config
    • /component
    • /public
    • /vendor

We would build a com_application to act as the front controller and dispatcher in a similar way as we do with Nooku, for the template we would use Bootstrap 3. based on the new template we added to the box.

Notes

  • Build it as a seperate repo eg joomla-vagrant-dashboard to eep things separated? joomla-vagrant repo is configuration management, joomla-console and joomla-vagrant-dashboard are applications and should be kept separately. Also makes it easier to install (using Composer/git clone) so we don't have to introduce another mount point.

Repo Name : joomla-vagrant-dashboard
Description : Joomla Vagrant Box Dashboard, build on Joomla Platform

Conceptually I think the OpenStack Dashboard comes very close to what we are doing : http://www.openstack.org/software/openstack-dashboard/

  • The dashboard application a frontend for the console itself. Down the road you will want to be able to also create new sites through the dashboard easily, that logic already sits in the console, then we would need to replicate it in the dashboard. Adding a joomla site:list makes total sense in that context.
  • Instead of calling the repo for this joomla-vagrant-dashboard, we could also just use joomla-dashboard. If we build this as a separate app, we can ensure that it also runs outside of a vagrant environment, much like the console does. This would allow people to install the dashboard anywhere, like they can install the console anywhere.

can't download joomla staging in PHP 7

Using PHP 5.5 in the Joomla box there are no issues downloading specific releases of joomla:

Uploading Screen Shot 2016-03-08 at 15.30.00.png…

However I have switched to PHP 7

screen shot 2016-03-08 at 15 31 45

And I have noticed this error raises:

screen shot 2016-03-08 at 14 02 50

Run two vagrant boxes simultaniously

At the moment it is not possible to run two vagrant boxes at the same time.

That’s because when running vagrant up (second step) vagrant tries to rename a temp folder located in user/VirtualBox VMs/ to joomlatools-box which already exists.

Note: you can solve this by just allowing the box to have a different name. We solved this for nooku-server box too. See: https://github.com/nooku/nooku-server/blob/develop/Vagrantfile.pkg#L30-L39 (see all commits that mention ticket #281)

PHP 7.0 install breaks on pear

Error thrown:

Connecting to pear.php.net (pear.php.net)|109.203.101.62|:443... connected. ERROR: cannot verify pear.php.net's certificate, issued by ‘/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2’: Unable to locally verify the issuer's authority. To connect to pear.php.net insecurely, use --no-check-certificate'.
make: *** [install-pear] Error 5
ERROR: install failed!`

This bug has been reported on PHP's bug tracker already, see https://bugs.php.net/bug.php?id=71048 for a short-term workaround.

phpmyadmin

Hi,
On vagrant up, I get

err: /Stage[main]/Phpmyadmin/Exec[creating-phpmyadmin-controluser]/returns: change from notrun to 0 failed: echo "CREATE USER 'phpmyadmin'@'localhost'
IDENTIFIED BY 'awesome';
GRANT ALL ON . TO 'phpmyadmin'@'localhost';FLUSH PRIVILEGES;"
| mysql -u root -p'root' returned 2 instead of one of [0] at /tmp/vagrant-puppet/modules-0/phpmyadmin/manifests/init.pp:68

also added the phpmyadmin and IP to the hosts file but still not loading, I get the apache index.html "it works" page. Thanks!

Rename to box

Talk about "box" instead of "vagrant" in the documentation and READMEs. Likewise, move developer.joomlatools.com/tools/vagrant.html -> box.html.

Cron to auto-update components

Add a cronjob that would run very frequently to automatically update Joomla installations:

  • loop over all installs in /var/www
  • look at composer.json and update all installed packages that came from packagist
  • if a package is installed through a local repository, you probably don't want this updated as you are working on it, so skip this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.