Onwards and Upwards!

Onwards and Upwards!

At Outside Open we collectively love Will Forte’s “Last Man on Earth” TV show.  As nerds and designers we also really enjoy the t-shirts worn by Forte’s character, Phil. When tasked with creating a tshirt for the OO team, I refused to just slap a logo on the top left corner like everyone else!  I browsed through Threadless for inspiration and this wonderful design by Budi Satria Kwan immediately caught my attention – the design is awesome AND it was featured in Last Man – FTW! Even with all the details in the dandelion seeds and the little man with his spyglass, the design doesn’t feel too busy or crowded. I loved that the design was playful, whimsical, and fresh without being cheesy. It reminded me of a carefree, idyllic onwards and upwards approach to life. Playing off of Budi’s design, I integrated low poly triangles (my latest obsession), an “idea” lightbulb and the Outside Open logotype to come up with a design for our new shirts. onwards and upwards also onward and upward   If someone moves onwards and upwards, they continue being successful or making progress. The team are moving onwards and upwards after their third win this season. She started her publishing career as an editorial assistant and it was onward and upward from there. Here are some early drafts as I toyed with the design elements and concepts: And here is the final product 🙂 The shirts were printed locally by the super awesome Curt Crashaw @ Foundation Press  Want one? Drop by the office and say hi! They come in a fabulous orange or yellow and sizes S – 2XL and limited quantities of Tall...
Rotary phone and Asterisk

Rotary phone and Asterisk

In keeping with our obsession with old technology, we recently acquired a beautiful 1947 model 7H6 North Electric rotary dial telephone and got it working on our phone system in the OO office.  In the early 1940’s the 7H6 body was made of metal but during the war, the units were made from a dense early plastic called Bakelite which gives the phone a nice solid feel. The classic shape is modeled after the Western Electric 302 phone designed by Henry Dreyfuss who also designed many other American industrial classics for John Deere, Hoover and the NYC Hudson locomotive. We successfully connected the old phone to our Asterisk VoIP phone system and can make and receive calls just like any other regular extension – the ringer sounds amazing!  See instructions below if you are also looking to connect your rotary phone to a VoIP phone system!   Configuration and setup of Asterisk (FreePBX) and the IAXy. Our challenge was to connect this phone to our Asterisk VoIP office phone system to be able to make and receive phone calls.  Because this is a rotary phone, we needed to convert the pulse dialing (the clicks made by the rotary dial) to tones that Asterisk can understand.  Digium used to make the perfect device – the Digium IAXy s101i which can be found on eBay for around $15. Digium IAXy setup: Add an IP reservation for the IAXy MAC address. NOTE: The IAXy uses BOOTP so be sure to enable that on your DHCP server.  BOOTP is enabled by default on pfSense so our IAXy got an IP right away after adding the reservation. If you...
Raspberry Pi class for kids

Raspberry Pi class for kids

One of our goals at Outside Open is to pass on the love of technology to others.  This summer we are offering a class on computers to Kids age 9 and over in Santa Barbara. The class is based on the Raspberry Pi single-board computer and the goal is to introduce kids to programming and creative problem solving using technology. Participants will each build and program a Raspberry Pi and camera module to complete two photo based projects. Project #1 – Tethered aerial photography Attach a Raspberry Pi to a large helium weather balloon on a very long string and program the Pi to take photos from above. Project #2 – What does the box see? Install a Raspberry Pi in a cardboard box with a hole for the camera and mail the box via FedEx while taking photos every 30 seconds. Kids will learn how to build and set up a Raspberry Pi computer, and will write an intervalometer program to take a photo every x seconds.  In addition to the technical challenges, the class will also need to solve real-world problems related to mounting and packaging the equipment in a box and on the balloon, processing and compiling video from the resulting images and dealing withe the shipping vendor on pricing and logistics. There are still a couple of openings, please contact us if your kid is interested and available Tuesdays & Thursday for the next 3 weeks.   Kid Tech 2014 Schedule This class is based on the amazing Raspberry Pi single board computer.  The goal is to introduce kids to programming and creative problem solving using technology. The class is free...
Manage multiple servers like a boss with csshX!

Manage multiple servers like a boss with csshX!

  Servers (and other SSH enabled devices like switches, routers and Raspberry Pis) multiply like rabbits in today’s cloud-ready world and sys admins often need to perform the same task on many remote server instances via SSH.  If this sounds familiar, then csshX (Cluster SSH for OS X) is your friend! For example, restarting Apache on 4 machines takes just two steps. 1) Log in: csshX server1 server2 server3 server4 and 2) restart apache: service apache2 restart – so cool! csshX will make an SSH connection to any number of servers, opening each in a separate terminal window. The tool neatly tiles all the connections and a red control terminal opens across the bottom of the screen. What you type into the red control terminal is sent to all the client terminals. Very nifty. You can also select an individual client connection and work on that independently and then switch back to the control terminal for en masse control. csshX utilizes the built in  OS X Terminal application but can be invoked from iTerm2 or whatever alternative terminal you might use. (iTerm2 is the way to go!) Notes: Easily install csshX with Homebrew, a great package manager for OS X. Utilize SSH keys to facilitate secure logins. apt-get install clusterssh to get cssh for your Linux Debian / Ubuntu desktop. Toggle between master control and individual sessions by clicking on the respective Terminal window. Edit /etc/clusters to make short tags to connect to many servers under one name – the list is space separated with the first word used as the tag and the following items as URLs. For example the following...
The colorful magic of ccze

The colorful magic of ccze

  ccze is a wonderful tool that brings real joy to the arduous task of reading or searching thru log files. #nerdalert We’ve been using ccze for many years but recently stumbled (um, actually, rtfm’d) upon the “missing” feature, namely the ability to output the colorized results in a format that can be piped to other commands such as grep. Introducing the -A flag! For example: tail -f /var/log/syslog | ccze -A | grep login will result in grep results made pretty and readable by ccze – not revolutionary, but very handy. And pretty. ccze also colorizes  ruby, apache, dhcp and most other types of log files and data files, try it out, you’ll be happy you did!  Notes: Get ccze on OS X with homebrew: brew install ccze Install ccze on Ubuntu / Debian with: apt-get install ccze ccze -h will give you HTML output Below is a quick video showing tail -f on an active DHCP server log with and without ccze and finally using ccze with -A and...
High Altitude Balloon – Sensor Data Collection

High Altitude Balloon – Sensor Data Collection

This is the code that flew in our first successful high altitude mission collecting data from the sensors that I (ungracefully) soldered onto a home etched circuit board hooked up to an Arduino .  We used the data to build some cool interactive graphs using Google’s graph engine. You can see data graphs, photos and video from the flight at happycapsule.com // High Altitude Payload Project Arduino sensor array. // http://happycapsule.com // // Version 1.0 by Greg Lawler - first successful flight Aug 14, 2011 // Sensor details and schematics can also be found on our web site listed above. #include SD.h #include OneWire.h #include DallasTemperature.h #include Wire.h #include Chronodot.h #define ONE_WIRE_BUS 3 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); Chronodot chronodot = Chronodot(); // OneWire addresses, need to grab them with a canned script... DeviceAddress outsideThermometer = { 0x10, 0xB7, 0x5f, 0xb5, 0x01, 0x08, 0x00, 0x4e }; DeviceAddress insideThermometer = { 0x28, 0x6E, 0x33, 0xE3, 0x02, 0x00, 0x00, 0x8A }; const int chipSelect = 4; void setup() { Serial.begin(9600); Serial.print("Initializing SD card..."); pinMode(10, OUTPUT); sensors.begin(); sensors.setResolution(outsideThermometer, 10); sensors.setResolution(insideThermometer, 10); // bmp085Calibration(); if (!SD.begin(chipSelect)) { Serial.println("Card failed, or not present"); return; } Serial.println("card initialized."); } void loop() { delay(1000); sensors.requestTemperatures(); float tempO = sensors.getTempC(outsideThermometer); float tempI = sensors.getTempC(insideThermometer); if (tempO == -127.00) { Serial.print("Error getting temperature"); } else { // Serial.print(" C: "); // Serial.println(tempC); } // build the timestamp chronodot.readTimeDate(); String timeStamp = ""; int yearZ = chronodot.timeDate.year; timeStamp += yearZ; timeStamp += "-"; int monthZ = chronodot.timeDate.month; if (monthZ < 10) timeStamp += "0"; timeStamp += monthZ; timeStamp += "-"; int dayZ = chronodot.timeDate.day; if (dayZ < 10) timeStamp +=...