GithubHelp home page GithubHelp logo

jpadilla / juicebox Goto Github PK

View Code? Open in Web Editor NEW
536.0 27.0 31.0 829 KB

A virtual machine designed for programming workshops.

Home Page: http://jpadilla.github.io/juicebox/

License: MIT License

Shell 79.67% Ruby 4.94% Makefile 15.39%
virtual-machine programming-workshop packer

juicebox's Introduction

Juice Box

A virtual machine designed for programming workshops.

screenshot

Based on boxcutter/ubuntu.

Reason

Technical workshops shouldn't be about installing a development environment in Linux, Windows, OS X, or whatever else. Unless that's what they are about, this takes way too much time from everyone and it's a pain.

Specs

This project includes two Packer templates:

  • server.json - No desktop environment.
  • desktop.json - Xubuntu desktop environment.

Both of them build a virtual machine based on Ubuntu Server 14.04 with the the following software installed:

Desktop version has the following installed:

Distributing

I'll be building OVA files and Vagrant boxes for each version and hosting them.

Building and Uploading

Requirements:

Server

$ make server
$ AWS_ACCESS_KEY_ID='' AWS_SECRET_ACCESS_KEY='' make upload/server

Desktop

$ make desktop
$ AWS_ACCESS_KEY_ID='' AWS_SECRET_ACCESS_KEY='' make upload/desktop

juicebox's People

Contributors

federicoculloca avatar jpadilla avatar nelsonjchen avatar sukima 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

juicebox's Issues

RVM Warning

RVM likes to whine about not being first in PATH. We also have NVM somewhere along. We can just disable this warning by adding rvm_silence_path_mismatch_check_flag=1 to ~/.rvmrc.

Warning! PATH is not properly set up, '/home/juicebox/.rvm/gems/ruby-2.1.5/bin' is not at first place,
         usually this is caused by shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-2.1.5'.

Friendly first run

I think we should do a few things on the default desktop VM to make the first run experience better. Here are my suggestions.

  • Add desktop icons for all GUI apps including Terminal.
  • Add a README.html file on the desktop with some info about the VM, what's included, how to start, where to get help or report issues.
  • Create ~/Code directory. The idea here is to have a directory all instructors can suggest to users for writing workshop files.
  • Add a start menu. How can I find installed apps?
  • Replace default background image with a JuiceBox design.

Hosting php files

Is there a directory in the filesystem that can serve PHP files? I am trying to use JuiceBox to run a PHP application that connects to a Postgres database. For example, if I create a index.php in this path

/home/juicebox/Code

and try to open the file in Chrome

file:///home/juicebox/Code/index.php

it does not serve, instead downloads the file.

Is there a way to have a virtual directory which can serve PHP files or maybe an Apache installation?

Build, Test, and Upload v1.2.0

Latest v1.2.0 includes Ruby 2.1 with RVM.

@gcollazo whenever you can try building and checking it out. I'd love to know the resulting size on the OVA, shouldn't be that much of a difference. If everything looks good please upload.

x86 32bit image

Is it feasible to make a 32bit build of the Juicebox guest image? Looks like boxcutter has them.

Ran into a problem here where some devices don't have a CPU that supports the necessary instructionset to run 64-bit guest machines.

Website

The goal of this project is to create a "standard" VM that all community members can use to facilitate programming training or tutorials. The second (even more important) goal is to make the process of preparing a student system as painless as possible.

To achieve this second goal we need docs, really good docs. Las night I made a simple website to exemplify what I think is the right approach. I would like this to become a starting point to start the collaboration process with other members of the community.

Please submit your comments and help us improve this.

The very cool logo I'm using was designed by @jomajoma. The name Juice Box was proposed by @jpadilla and I believe he will be renaming this project soon.

juice-box-website-preview

Otro estilo de heading:

screen_shot_2015-03-20_at_11 09 51_am

Redux

Note: Current work is in the packer branch.

We need better and easier. This project should allow building and setting up distributables. It's possible to package a currently running VirtualBox environment into a re-usable box and export an OVA which can be imported directly into VirtualBox without the use of vagrant or any other tool. Ideally this OVA will be hosted for others to download, or provided via offline storage in workshops and classes.

  • Use boxcutter/ubuntu1404 box for "hacker" version
  • Use boxcutter/ubuntu1404-desktop for "gui" version
  • Install Sublime Text 3 for "gui" version
  • Install Chrome for "gui" version
  • Makefile: Build
  • Makefile: Upload artifact OVA files to S3/Cloudfront
  • Makefile: Upload box files to Atlas or S3/Cloudfront

README

We need a better README. It should include some info about the VM, what's included, how to start, where to get help or report issues. It should work as the README for the repo and the README in the VM's desktop.

Una sola versión

Me gustaría saber que piensas de la posibilidad de tener un solo box en vez de dos. Pienso que esto podría ayudar a algunos users a no confundirse y bajar el box incorrecto. 😕

Edit: si tenemos solo una versión tendría q ser la desktop.

Docker

Simple enough to add if we want. Also, we could possibly have setups that people could share in workshops that are easily installable with one line.

#!/bin/bash -eux

echo "==> Installing Docker"
wget -qO- https://get.docker.com/ | sh
sudo usermod -aG docker juicebox

Python 3

Lots of inquiries to why Python 2 over Python 3. Might just install both next to each other and provide some aliases like mkvirtualenv2.7 and mkvirtualenv3.3.

If anyone has a better setup for development with both versions, ideas are welcome.

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.