Monday, July 6, 2015

API Platform - Kevin Dunglas - creating an API centric application

For the francophones out there, here is a good talk about API-centric applications from Symfony Live using Symfony and API-Platform, a new framework to focus on apps around APIs.

If I have time on my hands, I'll try to translate this, but the guy talks fast, so there's a ton of text to translate.

Thursday, May 28, 2015

Google I/O 2015 - Watch it Live!

Google I/O tends to rock.  Check it out with the live widget below!  (note, this offer is time sensitive)

Monday, February 2, 2015

Upgrading a super old Docker install to update a Discourse forum.

I just had the fun process of upgrading a Discourse forum for my StartupWeekend company, Leagify.

The forum runs in a Docker container, of which my container is generously hosted by Netsonic in an Ubuntu 14.04 virtual machine.
Netsonic Logo

Typically, upgrading Discourse is super easy.  There is a docker admin page that allows you to update directly from the web interface.  However, I had an ancient version of docker from my original installation, and it needed to updated, which could only be done from the command line.

The command line steps are outlined here:
cd /var/discourse
git pull
./launcher rebuild app

However, these steps didn't work for me, and I got a couple of different error messages.  One of them said something like "Your docker installation is old, please upgrade to 1.2" presumably because my install was really old, and my forum doesn't apparently follow the (now) standard guidelines for installing.

This article describes how I got the upgrade to work for my installation, since I haven't seen a good description of the steps I used all in one place.
  • SSH into your box  If you're reading this, I hope you can handle this step.
  • Don't just install docker from apt-get!  The 14.04 repo versions are OLD!  Also, note the difference between docker and, as they are different!  You probably want for a reasonably up-to-date docker install, but even this was too old for my purposes.
  • Re-Install Docker using Docker's instructions.  I opted for the easy curl script: 
curl -sSL | sudo sh
  • If you were an early adopter of Discourse, you may have put your container in /var/docker instead of /var/discourse.  This is a problem, but not as big of a problem as you'd think.  Do a recursive copy of /var/docker to /var/discourse: 
sudo cp -a /var/docker/ /var/discourse/

  • You should be able to run the rest of the Discourse update steps as originally planned.  You may need to use sudo for some of these commands, depending on how your permissions are set up.
cd /var/discourse
git pull
./launcher rebuild app

  • If these steps don't work, try rebooting the server and doing the official steps one more time.

Hopefully, your wonderful Discourse forum is now up and running again after the 15-20 minutes it took to perform all of these steps! If not, check out the Discourse forums for more information and troubleshooting tips!

New Quad Core Raspberry Pi 2 - a 35 dollar Windows 10 machine?

The Raspberry Pi 2 was announced today.  Sweet.

For me, the biggest surprise wasn't that a quad core ARM machine could be made for 35 dollars.  The Odroid C1 beat them to that punch.

The biggest surprise to me is that is has baked in Windows 10 support, and licenses are available to makers free of charge.  Microsoft is making some good moves in the tech space to help them earn back the trust of makers who were long scorned by Microsoft's previous policies that were not friendly to the hacker on a budget.  Will it work?  Time will tell.  You can't blame Microsoft for extending the olive branch.  Well, you can, but it just isn't that productive.

Monday, December 29, 2014

NodeSchool Wisconsin Premiere Event Post-Mortem

NodeSchool Wisconsin Premiere Event Post-Mortem - 

BarCamp Green Bay, Nov. 1st, 2014.

NodeSchool Wisconsin got off to a good start by having a learning event in conjunction with BarCamp Green Bay.  The event was held at NorthEast Wisconsin Technical College.


  • The room.  BarCamp Green Bay dedicated one room to NodeSchool Wisconsin, and NWTC provided a beautiful room that was very conducive to group learning.
  • The Internet connection was fast and responsive.  This isn't something that we should take for granted.
  • Snacks.  Snacks are always a good idea.  I was able to bring some snacks, courtesy of Smart Social Media.

  • Stickers.  We had NodeSchool Wisconsin stickers to give out, also courtesy of Smart Social Media.  People seemed to like that.
  • NWTC's event staff was courteous and responsive to requests all day long.
  • Since NodeSchool started in the afternoon, I was able to take advantage of the free room by running a "Vagrant and Docker" training session while trying to set up the lab computers with the NodeSchool interface. 
  • Blake Hall is amazing and provided valuable assistance and insight throughout the day.


  • We spent a lot of time trying to configure the lab computers with Vagrant and Docker, but then discovered that some of the ports had been closed by the NWTC sysadmin, meaning that we could install everything, but couldn't figure out a way to ssh into the box.  In retrospect, we should have considered using workshopper instead.  Another thought would be to simply use some sort of vagrant "port checker" to run at the beginning of the install on an unfamiliar network.
  • Being associated with BarCamp GreenBay was great, but some attendees did not bring their own laptop or have any programming knowledge, which was something that I hadn't really prepared for.  I had assumed that most people would want to learn node.js like me.  Luckily, I don't mind explaining the basics of programming, but we didn't really have nodeschool material prepared for users with no programming experience.
  • NodeSchool was sparsely populated until the last hour of BarCamp, and given that the exercises usually take 2-3 hours, there wasn't much time for work.  People seemed to appreciate it, nonetheless.

Lessons learned:

  • Prepare an "intro to programming" track for those with no experience.  I referred them to JavaScript for Cats, but I'm not sure if this was the best starter resource.
  • Consider bringing at least one "loaner" laptop pre-configured with Vagrant, Docker, and the NodeSchool exercises.
  • See if the new Workshopper interface solves some of the configuration problems listed above.
Pictures from the event  (the whole BarCamp album is here):

Wednesday, December 10, 2014

Ubuntu Snappy, a new era in containerized awesomeness?

Yesterday, Mark Shuttleworth announced the beta of Ubuntu "Snappy" Core.  At first, this is a confusing announcement, but I think that it shows insight into how developers are using linux to deliver solutions.
With the emergence of parameterized containerization tools like Docker, developers have the ability to control the creation of a linux machine with flexibility and specificity that was previously unimaginable.  Will it catch on?  Probably, but time will tell.

Here's the announcement:

Arcades in VR. This is awesome.

This is the beginning of something big.  New Retro Arcade is the tip of an iceburg in immersive VR.  Are you nostalgic for old arcades?  You can now bring them back.  We are getting close to replicating "The Basement" or the planet "Arcade" from Ernest Cline's Ready Player One.  I can't wait.

Multiplayer, archival of historical spaces, integration with physical items like arcade sticks and wheels, and real world mapping appear to be the next steps here, but it's already awesome enough to blow people's minds.

Disclaimer:  I am not involved with this project, but I'd love to participate.