Reinstalling Brew (the doctor said so)

RVM was starting to cry about my brew install, I ran

brew doctor

and the list of symptoms were as long as my arm. Too much corruption by MacPorts and Fink most likely the cause. It was time for a fresh install (or spend the rest of today fixing the issues manually).

Uninstall

cd `brew --prefix`
rm -rf Cellar
brew prune
rm -rf Library .git .gitignore bin/brew README.md share/man/man1/brew
rm -rf ~/Library/Caches/Homebrew

http://superuser.com/questions/203707/how-to-uninstall-homebrew-osx-packet-manager

Reinstall

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

https://github.com/mxcl/homebrew/wiki/Installation

Done did.

Launch Sublime Text 3 from oh-my-zsh

actor nerd I use oh-my-zh, I like the fact it has a plugin system. I want to keep ‘st’ alias for Sublime Test 2 until Sublime Text 3 is stable. Doesn’t mean I don’t want to play with ST3 in the meantime.

Sublime Text 3 is in beta and is open to those who paid for it. Downloaded the latest build and renamed it to ‘Sublime Text 3′ and then installed it..

I use the sublime text plug-in that comes with oh-my-zsh. I opened up the oh-my-zsh folder in my editor to have a wee poke about:

open oh-my-zsh in editor

To support ‘st3′ alias I simply put the following at the bottom of the sublime plug-in:

local _sublime_darwin_subl3=/Applications/Sublime\ Text\ 3.app/Contents/SharedSupport/bin/subl

if  [[ $('uname') == 'Darwin' ]]; then
  # Check if Sublime is installed in user's home application directory
  if [[ -a $HOME/${_sublime_darwin_subl3} ]]; then
    alias st3='$HOME/${_sublime_darwin_subl3}'
  else
    alias st3='${_sublime_darwin_subl3}'
  fi
fi
alias stt3='st3 .'

sublime oh-my-zh plug-in

Suki Tea – Lemongrass & Ginger Twist

actor coffee

suki-tea-logo

A really nice tea.. A very layered taste, citrus, then spice, sweet then fresh mint.

A really nice tea.. A very layered taste, citrus, then spice, sweet then fresh mint.

This tea was suggested to us by a customer who had tried something with lemon and ginger in it, we started trying different recipes and ingredients and six months later we are very proud to say we have created something quite unique. A lemongrass and subtle ginger taste to start with, then a sweetness and little kick from liquorice and pepper finished with fresh spearmint and peppermint. Definately worth a try.

Buy some here!

Posted in Tea |

A Portlet UI with localstorage

actor nerd I was asked to create a demo of a portlet based UI that used localstorage. Twas a fun little project.

Got to play with backbone.js and serving static content from node in the sample application I built to house development. The portlet code is in the style of a jQuery plug-in, nothing fancy. Potentially I could refactor this to use jQuery UI Widget Factory down the line.

Regarding the persistence… whatever you do to the portlets, the position and settings will be stored in your browsers localstorage.

Holsee-Portlets

I think the style I came up with is quite old-school, I was just looking to leverage something that made it look at home in a twitter bootstrap app. I feel the content should take up the full area with the header only being visible on mouse over with a nice pop down and gradient shadow effect. The gap between the portlets could be made a bit smaller.

Here you can find the fruits of my labour: holseeui.herokuapp.com/#portlets

Github: https://github.com/holsee/holsee.ui.portlets

Working Remotely

actor nerd

I worked remotely for years and I really enjoyed it. I missed the social aspect of working directly with people, you know, the water cooler chats and all that. Working with people who I can learn from is one of the most important things to me – my brain needs fed beyond books, blog posts & screencasts!

I’m not saying that you can’t learn from people when you’re not working in the same location, its just a bit trickier as it can be more difficult to know when you’re interrupting someone in mid-flow.

I know from experience some of the best conversations just happen when a teammate turns round in their chair and starts to openly brainstorm out an idea in an open discussion. In my team I encourage this sort of behaviour. There is no obligation for another teammate to stop what they are doing if they are mid-flow. A phone call doesn’t really allow for this kind of thing and persistant chat doesn’t spawn discussion that is as creative, especially when we normally end up at the whiteboard. Open team based Google huddles with cams are meant to rock for this sort of thing with remote teams.

I designed a product for this very thing, but in the context of a solo developer who wants to pair up to learn about a technology from somebody who is experienced in that area. -> An application to bring people together to learn from one another and get things done.

When I did work remotely I travelled to way more conferences and meet-ups (usually in Dublin and a few times further a field); one time I even held an open “Super Happy Dev Castle” (hacker) event in the spirit of getting like minded devs with no single technology preference to hang out and churn some codes together. (I was also sick of the only regular events being .NET oriented).

I had a great job, interesting work and had done a good job of creating a comfortable home office which gave me good sense of separation. I lived with my buddy who was also a developer so I had someone to throw ideas at over a few beers.

I also enjoyed being in full control of my dev environment and time management. I was so happy that I worked in an industry that understood these concepts. It is such a shame when a company has an outdated policy with regards to remote workers and flexible hours, failing to see the benefits that being open to such ideas entails…

Flexible working hours is a whole other topic really, but in a nutshell, why hire people who don’t want to work for you? If you can’t trust people to work and make up their hours when they’re most productive, and to stop working when they are trashing or burnt out then what is the point of having them work for you at all? I guess there will always be 9 to 5 developers out there, but here.. at least they are in their chair when they are supposed to be right? Pfft… [Cutting early morning rant off at this point D= ]

As you will read in the posts I’ve linked to, which I feel are well worth a read, you will get the perspective of a developer who “optimizes for happiness” by working remotely + an employeer who embraces remote workers and warns of the potential down-sides to working remotely on a personal level.

Why I Love Being A Programmer in Louisville (or, Why I Won’t Relocate to Work for Your Startup) – by Ernie Miller

Why We (Still) Believe in Working Remotely – Stack Exchange

Bonus Post (from which the previous post is a follow-up):

On Working Remotely by Coding Horror

I hear this podcast is full of great remote worker testimonials and tips:

Wide Teams Podcast

My ‘cross-thread violation on rb_gc()’

actor nerd

My macbook is in some serious need of a fresh OSX install… It has been through the pre-release code wars. Going to do it soon when I ship an an iOS game that I’m building during the wee moonlit hours.

Installed the latest rvm and my gems started to cry with a:

[BUG] cross-thread violation on rb_gc()

It seems that there are a few causes for this, in my case it was because of the following..

I read that this could be due to some C based gems being compiled for the ‘wrong’ ruby version so I uninstalled all gems:

gem list | cut -d" " -f1 | xargs gem uninstall -aIx

Then I got the following error, when I tried to install a gem:

ERROR: While executing gem ... (Errno::EACCES)

Fixed permissions on my gems folder:

sudo chown -R holsee ~/holsee/.rvm/gems

Gem installed but the associated RDocs were failing to install – Updated Gems:

sudo gem update --system

Made sure I was using a supported version of ruby for the target gem:

rvm use 1.9.3

problem solved… still going to reinstall OSX though.

pik – ‘rvm for windows’

actor nerd

I use pik when working on a Windows machine to switch between different ruby versions, the same way I use rvm when working on OSX or Linux. This is a quick post on how I went about getting it set up. On a fresh windows machine I installed ruby 193, adding it to my path during installation via the msi.

I installed pik via ruby gems:

gem install pik

Then ran this command to ‘install’ it outside of any given ruby version:

pik_install "C:\ruby\tools"

Then I downloaded and installed ruby 187 ensuring that the ‘add to path’ option was not checked.

To add it to pik I ran:

pik add "C:\ruby\Ruby193\bin"

To check the versions of ruby installed:

pik list
  187: ruby 1.8.7 (2012-10-12 patchlevel 371) [i386-mingw32]
* 193: ruby 1.9.3p385 (2013-02-06) [i386-mingw32]

Switching ruby version:

holsee@HOLSEE-PC ~
$ ruby -v
ruby 1.9.3p385 (2013-02-06) [i386-mingw32]

holsee@HOLSEE-PC ~
$ pik use 187

holsee@HOLSEE-PC ~
$ ruby -v
ruby 1.8.7 (2012-10-12 patchlevel 371) [i386-mingw32]

To use pik from Git-Bash add the following to your ~/.bashrc:

$USERPROFILE/.pik/.pikrc ]] && source $USERPROFILE/.pik/.pikrc

For more on pik checkout the project on github.