Colin Harrington

Author Archive

Goodbye Google Code

by on Mar.16, 2015, under General

Google Code is shutting down (because everyone uses github anyway)

So long and thanks for all the fish.  It has been a good ride — thank you for pushing open collaboration forward!

Its been a good transition to git. If you haven’t yet, consider using git as an SVN client with git-svn.  I recommend this a great way to get your feet wet.

Google Code has a good guide on how to export to git located here:

Ok, now what?

How do I move my code from google code (svn) to github? You are in luck, git-svn is here to the rescue.

Cloning your project is a simple one-liner away!

git svn clone -s

This will download all of the commits and create a new git repository containing all of your history!

The -s (short for –stdlayout) flag is telling git-svn to use the standard layout (meaning that it knows how to interpret the trunk/branches/tags roots in git.)

├── branches
├── tags
└── trunk

You can customize this if you have a non-standard layout with additional flags check the documentation for more details: man git-svn


From here you can just create a new repo in github and push it!  Checkout github’s docs on doing this.  They also have a decent guide on importing projects into github.

… Or just use the Export to Github button … that google code just added.

Leave a Comment :, , , more...

Minnedemo 15

by on Oct.10, 2013, under General

Minnedemo 15 was well done!  Congrats minne* for putting on a great event!  The energy was amazing.  Heaps of good people.

The event sold out a few short hours!


New Venue

This time around we were in a new venue: The Riverview Theater.

My favorites

Move Eye

These guys told us about their Minnesota based funding.  I won’t be surprised when they go big or get bought out.


Beautiful user customizable dashboards! These guys had an amazing UI.

Their stuff was all SVG based and scalable.  This looks like a well done product!


I’m not much of a fantasy sports guy, but this dude won me over by revealing that he started with a fantasy Ultimate Frisbee game!



Make a Bonsai

I enjoyed the fractal math descriptions of how they built this application.




In the break between sessions the MC took a poll on Phone OS usage in the room:

  • It was clearly split between iOS and Android
  • Only one person was willing to admit using a Windows phone
  • Nobody spoke up for Blackberry

The MC also allowed folks to plug local user groups, conferences, etc.

One guy got up and said he also had a Windows phone… and that he works for Microsoft and got quite the laugh.

Post Party

The theater showed the classic Hackers afterwards.  Wow 1995 was 18 years ago -that’ll put things in perspective.

Many folks stayed to chat and grab another drink.

All in all an excellent event.  Makes me really proud of the tech scene in Minnesota!

1 Comment :, more...

Notes for Jailbreaking iOS 5 for iPhone 4S + iPad2

by on Feb.17, 2012, under General, Linux, Logo

Actually doing the Jailbreak is easy:

  1. Download and run the jailbreak app called Absinthe
  2. Read the install instructions
  3. Follow the installation instructions
  4. Be patient.

When you are done you’ll have the Cydia App installed.

“This is where the fun begins” – Anakin Skywalker

Cydia Icon

My shortlist of apps:

  • Activator (Control over gestures)
  • SBSettings + Toggles & Themes
  • Custom BootLoaders: animate + animate fix (Boot Logos)
  • FakeCarrier (or removal for space!)
  • Firebreak (Enabling the hidden Panorama Camera feature)
  • Five Icon { Dock, Folder, Switcher }
  • Five Column Springboard.
  • Sound/Ringtone themes.
  • Winterboard Themes
  • Veency (VNC)
  • MXTube
  • My{Wi,3G} (Paid$$)
  • SSH (only if you know what you are doing)
  • Mobible Terminal


Mobile Terminal:

The one in the Cydia store is *old* and won’t work on iOS4 or iOS5.  I’m not sure why, but it seems like the contributor abandoned this package.

You can install it by other means.


Animated BootLogos:

Back in the early days you could use an app called LogoMe to update a custom boot logo. Then came animate which let you animate your boot logo (Like the Windows 98+ startup logo screens) You’ll need the animate fix to get them to work now.

I ended up making my own Boot Animation of my AppleTux logo with the help of a couple blogposts

The process is simple: basically create a series of PNGs {0.png, 1.png, 2.png, ... n.png} and place them in a named folder inside of /Library/BootLogos/

/Library/BootLogos/AppleTux/ looks like this:

And can be downloaded here:

5 Comments :, , , , more...

SSH without passwords (Public/Private Keys)

by on Oct.03, 2011, under Linux, Ubuntu

Secure Public/Private Key Cryptography isn’t exactly new stuff in the world of Computing. It makes our world go round. It is the basis for secure communication in today’s world. HTTPS, SSL, TLS, SSH are all cryptographic protocols that use Public/Private key infrastructures. Without these protocols, we would think twice about using credit card, banking or any other sensitive information on the Internet.

We all know that passwords aren’t very secure. If you choose a password that is easy to remember then its easier to guess via brute force. If you choose a password that is random or hard to remember then you are more likely to write it down. Any well-versed digital community member already has many username/password credentials to remember so we are less likely to remember extremely difficult random passwords. This is the password paradox, which leads me to look into managing access via public/private key pairs instead.

Generate a public/private key pair (if you don’t have one already)

Github has an excellent tutorial with good illustrations on how to generate ssh keys with ssh-keygen, but here is an overview:

  • *Backup your existing keys* — if they exists so that you don’t overwrite them.
  • generate a new key with ssh-keygen

Definitely setup a passphrase! – Its like a password for your private key. The passphrase is a second line of defence if anyone were to acquire your private key.

The .pub is your public key, you can safely share this anywhere, whereas the private key is entirely private! DO NOT show anyone, don’t copy it anywhere and only securely back it up.. This is your new password and large liability if it fell into the wrong hands.

Some folks like to generate and manage keypairs for each location, or at least manage certain levels of keys, but I’m not going to dive into that topic.

Configure the Server (if needed)

Make sure that the server has Public key authentication enabled (most do). for OpenSSH it would be the following in the sshd_config:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Then all you have to do is:

  • Put your public key (the one ending in .pub) as a line in the ~/.ssh/authorized_keys file (create it if it doesn’t exist)
  • Restart your SSH server
  • Log in without being prompted for a password

This is really handy for managing servers especially on Amazon’s EC2, local access between machines, SFTP, SSH tunneling, or even getting access to a jailbroken iPhone or any other device with OpenSSH installed on it.

The guys over at wrote a good guide to Password-less logins with OpenSSH that is worth looking into if you have issues or want to dive deeper.

Passwords aren’t very secure, you already know this. If you use one that’s easy to remember, it’s easier to guess or brute-force (try many options until one works). If you use one that’s random it’s hard to remember, and thus you’re more inclined to write the password down. Both of these are Very Bad Things™. This is why you’re using ssh keys.
3 Comments :, , , more...

Running MPIDE (ChipKIT’s Arduino IDE remake) on 64bit Ubuntu

by on Aug.14, 2011, under General

I recently got a ChipKIT Uno32 for a LED project that I’m working on.  The ChipKit is basically compatible with most Arduino code, but has a 32 bit chip with a clock rate that is 5x the speed of my Arduino Uno, as well as much more Flash & SRAM space.  I am really excited about it because we ran into performance issues with a slower 8-bit processor, and we are hoping that 32bit + 8x clock speed will put us back into the workable range.

Chipkit Uno32 board

The Arduino IDE (hosted on google code) doesn’t work with ChipKit so They remade the the IDE and called it MPIDE (Multi-Platform IDE) and its hosted on Github. The released binaries are found here.

MPIDE BlinkThey have a decent wiki page on how to run MPIDE which helped.

The article cited issues with 64 bit systems:

64bit Systems

The binary packages for MPIDE are all built for 32bit Linux distributions, if you are running 64bit you need to have some additional libraries installed. You’ll need to have 32bit versions of and to be able to program the chipKIT, these need to be in /usr/lib32. You may well need to sym-link these latest versions manually, installing these libs is a fairly advanced operation and will vary significantly between distributions.

So this is what I had to do to get it running on 64 bit Ubuntu (Maverick/10.10):

1) Download the Linux Version and unpack it somwehere.

2) Getting librxtx-java and other jni items loadable via the LD_LIBRARY_PATH or CLASSPATH, which I wrote a post about.

3) The next issue that I ran into was a permissions issue

Cannot run program “/home/username/mpide-0022-chipkit-linux32-20110619/hardware/pic32/compiler/pic32-tools/bin/pic32-g++”: error=13, Permission denied

I initially solved it by chmodding everything in that directory, but that resulted in:

pic32-g++: error trying to exec ‘cc1plus': execvp: No such file or directory

So I followed the advice in this forum post and executed chmod +x  -R ./hardware/pic32/compiler/ and that seemed to do it for me.  I think I was able to compile/verify the blink example at this point.

4) Add 32bit versions of libelf and libreadline6 to /usr/lib32:

The first error I ran into was:

/home/username/mpide-0022-chipkit-linux32-20110619/hardware/pic32/compiler/pic32-tools/bin/../pic32mx/bin/gcc/pic32mx/4.5.1/cc1plus: error while loading shared libraries: cannot open shared object file: No such file or directory

I solved this by downloading the i386 deb from here, opening it with archive manager and copying /usr/lib/ to /usr/lib32/ after this I creating the versioned symbolic link via ln -s

Tried it again and was onto my next error:

/home/username/mpide-0022-chipkit-linux32-20110619/hardware/tools/avrdude: error while loading shared libraries: cannot open shared object file: No such file or directory

Repeat the same process for libreadline6 (which contains another required lib too) And I was able to upload the and run the blink example.

Now on to making the TLC Library work..

7 Comments :, , , , more...

Synergy key-mappings between Linux and OSX

by on Mar.22, 2011, under General, Linux

I’ve been a fan of Synergy for years. If you aren’t familiar with Synergy, It basically allows me to control multiple computers using only one mouse and keyboard on the host machine.

Synergy2 comes with a GUI on Windows, but for Linux or Apple/Mac OSX there isn’t a GUI packaged with synergy itself. I’ve since found the Quick Synergy GUI to work fairly well between Windows and Linux since the key mappings are very similar.

Installing it on Linux was a breeze: sudo apt-get install quicksynergy


When I went to use OSX from a Linux Host, I found that Quick Synergy wasn’t able to configure the key mapping options that are needed to achieve keyboard zen. “No Problem”, I thought, “I’ll just edit the settings file that QuickSynergy Uses” – but it turns out that the changes are overwritten and my GUI dreams died with that issue.

I ended up finding the right key modifiers from Linux to OSX and reverted back to launching Synergy manually from the command line. synergys -f --config /path/to/synergy-config.conf

Its easy to setup aliases or other shortcuts but here is the magic sauce complete with key modifiers:

1 Comment :, , , more...

Grails Experience :: Should we use Grails

by on Dec.23, 2010, under Groovy-Grails

Grails LogoI am a Senior Consultant at Object Partners in Minneapolis, Minnesota. During the course of my work I was asked this question about my experience with Grails that I thought was worth sharing:

Have you ever been on a grails/groovy project that failed because of
– limitations/faults in the technology itself
– the grails/groovy learning curve

Here was my response:

Professionally, I have been a part of seven large Grails applications (+ more smaller endeavors). Of those seven, three of them were moving to grails from another framework, two due to failures with other teams/technologies and one was a Spring to Grails migration.

None of those seven failed because of Grails – in fact – the clients were very happy with the speed of development. Especially the rescue missions that had *very* tight timelines. At one startup we had a quite substantial Grails app that had a Flex front-end. When developing new stories, we found that the Flex front-end took ~80% of the time whereas the Grails components took 20% of our time and were very reasonable to test and maintain.

I’m not saying that we didn’t run into issues in learning curve or even issues/intricacies of Grails itself, but rather that we were able to make excellent progress and address those issues. The community and open source nature of both Groovy and Grails turned out to be extremely helpful when addressing technical challenges.

On one of the projects that had a very tight timeline most of the developers weren’t even Java developers, but had done some Django, PHP, RoR experience. The project was quite successful. We were able to accomplish more in less than a month then another firm was able to do in six months before declaring failure with another framework.

To add to my response, I would say that since testing is a priority and a first class citizen in Grails, it definitely added to the ongoing stability of the projects over time. The sections of code that were tested typically ended up being much more coherent and stable over the course of the projects life.

How would you respond?

1 Comment more...

Which process has that port open? (Linux / netstat -anp)

by on Dec.21, 2010, under General, Linux

Occasionally, I’ll have an application that I’m working on die spectacularly and still hold on to the open sockets / ports.  in Java you would see the Address already in use for an open port much like: Address already in use
at Method)

It took me a second to figure out how locate the process, but it turned out to be a really easy task using the netstat command by executing ‘netstat -anp | grep 8080‘ (a = all interfaces, n = numeric, p = show pid)  This isn’t perfect since it will still show you anything with a pid of 8080 (the port number I was looking for), but its a great quick-and dirtry way to identify the process.  and once I’ve found it I can kill it with a ‘kill -9 <pid>

user@machine:~/$ netstat -anp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      19884/java
user@machine:~/$ kill -9 19884

Which reminds me of this classic (please excuse the profanity):

Windows => netstat -ano
OSX => lsof -i -P

4 Comments more...

Arduino + Ubuntu 10.10 Maverick Meerkat :: no rxtxSerial in java.library.path

by on Nov.19, 2010, under General, Ubuntu

I’m just getting into the Arduino, and have an awesome project that I’m working on with some friends.

Playing with a multi-color LED

Playing with a multi-color LED

I found the Arduino IDE in package manager, and went to install it
sudo apt-get install arduino

Or Via Synaptic:Arduino via Synaptic

When I went to run it died with the following exception:

A little googling turned up the this bug. It basically describes that there is an issue with Ubuntu 10.10 + sun-java not including the jni directory in the classpath. There are several solutions, but basically this comment sums it up the best:

1) don’t use sun-java but default-jre instead. This bug is actually a known bug in sun-java. (bug #325506)
2) add export LD_LIBRARY_PATH=/usr/lib/jni to your .bashrc, the .deskop file (in /usr/share/desktop), or on the command line before starting arduino
3) add the new package (instructions are above).

I opted for #2 so far…  The idea flow for potential projects are unending.  I should try some CI build Lights/lamps next :-)

3 Comments :, , , more...

OSX Mouse Acceleration

by on Jul.06, 2010, under General

Mouse on Fire

I dual-boot OSX and Ubuntu, but primarily live, work and play in Ubuntu.  The only reasons that I boot up into OSX these days are to sync an iPhone, or more recently play some Steam Games (Go Steam for Releasing an OSX Client!  A Linux client shouldn’t be too far behind right?).  Windows is now relinquished to a VM for IE testing & other software that is stuck on that platform.

I’ve always been bothered by mice in OSX, they never felt good and didn’t handle as I had expected.  This is especially important when doing some intricate work with Photoshop, or in a computer game.  I don’t have much time to play games on the computer, but I’ve been able to get a few hours in recently and really noticed that the mouse acceleration was unusable/unreliable for fast-paced action…

A little googling turned up the “Mouse Acceleration Preference Pane” for Mac OSX by Christian Zuckschwerdt.

I downloaded version 1.1 and then had this preference pane is my System PreferencesSystem Preferences Icon:
System Preferences

Which then lets me configure the acceleration for both the mouse and trackpad.
Mouse Acceleration Pref Pane

Even better, I could turn off acceleration all-together!

Enable at LoginFrom Christian Zuckschwerdt’s site:

Extented mouse settings

“The Mouse Acceleration PrefPane is a GUI and startup item to Richard Bentley’s MouseFix.  You can set up extended speed parameters and acceleration curves for your mouse.”

Good work Christian!

Leave a Comment :, more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!