Getting Git, Subversion and Bazaar Version Control Information into your Bash Prompt

Here are some must have bash PS1 commands if you’re working in multiple branches with various SCMs like git, svn or bzr. With this in your .bash_profile you’ll end up getting the following PS1

wesmaldonado:(git)gchartrb[master]/$

wesmaldonado:(svn)wumpus_project[trunk:141279]/$

Found at Lazy Bash cd aliases. The latest can be pulled from github:

http://github.com/relevance/etc/tree/master/bash/bash_vcs.sh

Seattle’s Interbay is no South Lake Union

“You can’t compare this to South Lake Union or downtown,” he says. “Not all areas are created equal.” Jeff Thompson, of the Freehold Group, the development company that has spearheaded the Dravus effort Seattle Times: Red tape fences in Interbay overhaul

Have a look at this google map for a compare and contrast


View Larger Map

Found in the spam filter, a relationship failure borne of HTTP error codes

A story about an internet crush…

… a few weeks later when I checked my spam filter. “Congrats–most women have to meet me at least twice before a crush wears off,” he’d replied. Cute. I replied, and we ended up having a bizarre but hilarious (to us) discussion about HTTP error codes. (Reproduced after the jump for the curious.) Fellow Metblogger Josh once told me upon reading that conversation, “I can’t imagine how things between the two of you didn’t work out.” And sometimes I wonder the same thing.

Go read the ongoing story at Single in Seattle: Blogger Boy No. 2

Headius on Maglev: Is it Ruby?

Charles Nutter had the following to say on the maglev ruby performance numbers:

Except that these are results reported entirely in a vacuum. Whether this is fib following the “rules” of Ruby is entirely an open question. Whether this is method dispatch adhering to Ruby’s call logic is entirely an open question. Whether this is a while loop using all method calls for its condition and increment steps is an open quesetion. Because the Maglev guys haven’t started running Ruby tests yet. Is it Ruby? http://headius.blogspot.com/2008/06/maglev.html

I am interested in maglev ruby because I’ve met some amazing smalltalkers who worked on large systems using gemstone. Want to know more about the size of systems gemstone is designed for? Have a read through this PDF: GemStone and Orient Overseas Container Lines:A Shipping Industry Case Study I think having more implementations is a great thing and will help

What do you think? Will the we use it if it’s closed source? I bet some people will, if nothing else this primes the pump for the next generation of programmers that will maintain systems like those of OOCL.

Checking Gmail POP+SSL with Ruby 1.8.6 in 10 minutes or less.

I needed to check Gmail via POP + SSL and didn’t want to use Ruby 1.9, what did I do?

Step 1: Install the latest version of stunnel

Step 2: Put the contents of the stunnel config file you see below some place convenient like ~/gmail-pop-stunnel.conf

foreground = yes

client = yes

pid =

[gmail]

delay = yes

accept = localhost:10000

connect = pop.gmail.com:995

Step 3: Start up stunnel

$ stunnel ~/gmail-pop-stunnel.conf &

Step 4: Fire up a Ruby program to pull down the messages.

require ‘net/pop’

conn = Net::POP3.new(’localhost:10000′)

conn.start(’youraddress@gmail.com’, ‘yourpassword’)

conn.mails.each { |msg| puts msg.pop }

msg.delete # your choice to delete or not

end

The source for this script shamelessly stolen from The Ruby Cookbook

And you should be aware that this is technically a violation of google’s terms of service, but if you aren’t doing anything other than what you could do through Outlook Express you probably aren’t causing trouble.

I’m not crazy, the thing on the wire is real… unfortunately.

For the past week Jodi has seen “something outside the window” and I didn’t believe her. Finally yesterday I saw it also. I couldn’t just sit by while a rat/mouse was running on the wire so I had to stalk it and get its picture. Tonight I sat on the deck camera in one hand and a flashlight in the other ready to ’shoot’ this creature. For about 25 minutes it was too light for it to come out, but finally I got it.

rat_on_a_wire

So far I haven’t seen any signs of them in my house, but I know they must be around. :(

Google Gears based offline app, boring because it “just worked”?

I’ve spent the past couple of months elbow deep in writing a Ruby on Rails based AJAX/REST/throw-in-whatever-hip-acronyms-you want-here-application. It was the same old “client” and “server” application we’ve all seen… someone enters data in a slick desktop application and then a “dumb client/mobile client” consumes it over some type of shoddy internet connection that sporadically works correctly. Where in the past we might have written the client specifically for some type of hardware and operating system, we used the web browser and Google Gears. Google Gears “just worked” and so, this is a rather boring post, unless you consider that the iPhone SDK should support the WHATWG Offline Storage recommendation and at that point our team can claim we have an offline iPhone web application. :) Go give Gears a shot, it might impress you.

p.s. if you’re working in ruby and would like some horribly written rake tasks for manipulating a Google Gears local database please leave a comment and I’ll see about making those available somewhere.

Elisabeth Hendrickson on Agile Test Automation

Agile teams need tools that separate the essence of the test from the implementation details. Such a separation is a hallmark of good design and increases maintainability. Agile teams also need tools that support and encourage good programming practices for the code portion of the test automation. And that means they need to write the test automation code using real, general use languages, with real IDEs, not vendor script languages in hamstrung IDEs.

Agile Friendly Test Automation Tools/Frameworks

Email organization in GMail (Aka the Zen of Gmail)

Email organization in GMail (Aka the Zen of Gmail) is the post I’ve always wanted to write about using Gmail, but of course never have because I’m lazy and can link to great posts.

I think part of the problem is people take an email-organization mindset from Outlook and try to apply it to Gmail. The results - comedy abounds! The solution? Shed your old ways, and embrace the new!

Change comes slowly, especially for people that are not using Gmail as their primary email and for most people that means using it for work/school. First, learn how to apply labels to messages automatically using filters then try out some of my labels.

Labels for email addresses

I use my main gmail account to manage email for at least 5 domains and email addresses I’ve had in the past. Each of these gets their own label using a prefixing system:

joe@example.com -> a:example

Labels for companies

You have different companies in your life that have sent you boring but important email. Past employers top the list for me, but includes things like investment companies, bank accounts, “paperless billing statements”, EBay, etc.

MegaCorp HR -> c:megacorp

It might be a good idea to use a wildcard filter for some of these. See 20 Ways to use GMail Filters for some examples.

Labels for mailing lists

Obviously right? I guess not. I currently have 22 lists I’m following. Most are fairly low traffic, but they all get archived and labeled so I don’t see them in the Inbox. I don’t mark them as read so I have an idea of how far behind I’m getting. I tend to wait until a list has a “meaningful” amount of messages before setting aside time to go skim it, archive and delete most of the messages.

TestNG Users -> l:testng

Why don’t I following mailing lists with RSS? Gmail’s conversation threading is a must have, when 25 people reply to a topic you don’t care about you only see the first message.

Labels for bacn

NPR on bacn “According to the bloggers who invented the term just a few weeks ago, bacn is e-mail you want to read — just not now. It’s Facebook notifications, bank statements, Google news alerts, or any of the other sundry e-mails that you asked for, yet quickly pile up unread—like a week’s worth of newspapers.” For me this category only includes things like Facebook/Twitter/MySpace/Google Alerts as the bank statements are a bit more important to me and deserve a category all their own. In this case, the label is prefixed with “s” for Site, it puts it towards the bottom of my labels list and if you wanted, you could think of it as “spam:foo”.

“npost is now following you on Twitter!” -> s:twitter

“Join my network on LinkedIn” -> s:linkedin

Finally, everything else…

Now go ahead and start tagging everything else and take come cues from Ryan!

Fix for HP Setup Assistant on Mac OS X starts on every login.

So, you bought a new HP All-In-One printer for you shiny new new MacBook Pro and you somehow never finished running the Setup Assistant and now you can’t get rid of it and it runs every time you login right? Happened to me and here is how to stop it from running on every login.

  1. Quit the setup assistant if it is running.
  2. Open /Library/Preferences/Hewlett-Packard Preferences/
  3. Drag the com.hp.setupassistant preference to the trash.
  4. Restart

I’m interested to see how many people find this post. This happened to me because I choose to hit the “Skip” button when the Setup Assistant ran because I was running short on time and didn’t want to setup the printer right then and there. Bad idea. The installer also doesn’t place the the installer in StartupItems or LoginItems which made it even harder to track down.