Posts

Showing posts from 2016

Uber's Michelangelo vs. Netflix's Metaflow

  Uber's Michelangelo vs. Netflix's Metaflow Michelangelo Pain point Without michelangelo, each team at uber that uses ML (that’s all of them - every interaction with the ride or eats app involves ML) would need to build their own data pipelines, feature stores, training clusters, model storage, etc.  It would take each team copious amounts of time to maintain and improve their systems, and common patterns/best practices would be hard to learn.  In addition, the highest priority use cases (business critical, e.g. rider/driver matching) would themselves need to ensure they have enough compute/storage/engineering resources to operate (outages, scale peaks, etc.), which would results in organizational complexity and constant prioritization battles between managers/directors/etc. Solution Michelangelo provides a single platform that makes the most common and most business critical ML use cases simple and intuitive for builders to use, while still allowing self-serve extensibi...

Docker on RPi

Here are a few important commands I've learned about docker so far.  I've been working on getting Docker running on RPi which now has support for it.  It's a little different on RPi because RPi boards use the ARM architecture rather than the intel architecture, which most all other CPUs use.  That means that although Docker containers are supposed to be able to run on any machine with Docker installed, it's not true in the case where the container was built on intel and run on ARM or vice versa.  So you have to look for the right types of images to build on top of.  Anything on hub.docker.com that includes 'rpi' or 'arm' should usually be able to run on the RPi.  For example: https://hub.docker.com/r/joaquindlz/rpi-docker-lamp/ Docker run Docker start Docker stop Docker ps -t tag --name name of image -d run container as daemon in background list running containers: # docker ps list all containers: # docker ps -a ...

WordPress on RPi

I got it working on the RPi - this one didn't take too long because there weren't too many hiccups. Step1: https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/ - start at section 4, as the previous blog posts here have outlined how to do the previous steps already.  One thing you'll need is to remember the password you created for MySQL - the username is 'root'.

Passwordless SSH access to the RPi

Got it working, and added some security changes. Step 1: see https://help.github.com/articles/generating-an-ssh-key/ about generating ssh keys if you haven't already got them present in ~/.ssh (make sure you've used ssh-add and make sure the value for AuthorizedKeysFile in /etc/ssh/sshd_config is set to '%h/.ssh/authorized_keys') Step 2: use http://raspi.tv/2012/how-to-set-up-keys-and-disable-password-login-for-ssh-on-your-raspberry-pi excluding the key gen section to get passwordless ssh working, turn off passwords, and get port forwarding working.  Remember, to update settings on the router, go to 192.168.0.1 - but only from the 1 of the 2 approved devices that you set. Step 3: test the ability to login from a remote ssh client : 'ssh -p pi@yourdomain.com'

Web Server with RPi 3

Got a web server running a raspberry pi 3 today! Step 1: Start up the pi and install raspbian Step 2: https://diyhacking.com/raspberry-pi-web-server/ (follow everything until the stuff about no-ip - then things were different because I'm using google domains) Step 2.5: (found this out later) Make sure to add a permanent lease for the internal IP address that the RPi has - do this using your router settings.  If you don't, then your router might unexpectedly change your RPi's IP and you'll have to figure out what it is again, and change the port forwarding as well. Step 3: add 2 entries to the Dynamic DNS section of your google domains page - 1st one is '@', 2nd is 'www'. Step 4: go on the RPi and install ddclient (sudo apt-get install ddclient) - when the install prompts come up, use the username and password from either of the new DDNS entries in google domains (expand it).  Use wlan0 (unless you're on ethernet now).  I think the rest shou...