I’ve never seen a turnout at Dallas Hack Club like this past Tuesday night. What an awesome & diverse group of developers. Pairing languages included Ruby & C#, and even an F# & a (first time at Hack club) SmallTalk pairing.


As fascinating as Hack Club Meetings always are, the different languages made the demos even more fascinating (after coding for a couple of hours, each pair demos their approach/solution). One demo was done in a SmallTalk IDE (because, as we learned, Smalltalk doesn’t lend itself to pasting code into Gist or Pastebin for the demos, like the other languages). Although I’ve heard Smalltalk mentioned in reference to someone’s programming past, or citing parts of its historical influences, I’d never seen Smalltalk syntax or the Smalltalk IDE before. Super-interesting.
My first dip into Ruby
I have a “What’s this Ruby thing all about” itch I’m trying to scratch, but I clearly could not even think about pairing in it at this stage, so when I arrived, I asked Greg Vaughn if I could play 3rd wheel & watch him pair while I tried to wrap my head around it.
I decided to install Ruby. Here’s how that went down:
Thoughts in my head (be sure to read it with a big echo): “Didn’t I see a Tweet from @AlanStevens that he used Chocolately to install Ruby? I’ve been meaning to catch a session on Chocolatey.. isn’t it supposed to be like NuGet for your Windows OS? I wish I hadn’t missed that session at Codemash – I wonder if it was taped? I really need to listen to that Herding Code about Chocolatey. Hrm. I’ll look into that”
Me: “Has anyone used Chocolately? How do you install it?”
Another Hack Club attendee: “I think through NuGet”
My echoey thoughts: “Through Nuget? Do I have to create a project to install Chocolatey then? That’s how I access the non-command-line NuGet.. hrm, let me try that. Ooh getting that code smell I’m going down the wrong rabbit hole… back up, just do the installer. Ok, that was easy. It says it’s installed. Ok… ummmm”
Me: “So, now what? How do I run it or open it?”
Wow, that was a REALLY hard question to say out loud. This clueless person I’m projecting is NOT a persona in my comfort zone.
Greg Vaughn: “What IDE do you like?”
Me: “Visual Studio.”
Greg: “I think there’s an extension for Ruby”
So we floundered through that for a few minutes before someone recommended the 30-day trial of RubyMine by JetBrains. So I installed RubyMine, went to the HackClub dropbox & opened Greg’s “rover.rb” file. During this time, I asked Greg many questions to get my head around all of it.
Me: “Um ok, now what? I hit the little green “play” button in RubyMine & it said no errors.”
Greg: “Oh the only output you’ll see is from the tests. Go to command line & browse to the folder & type “rspec rover.rb.”
Me: “It says rspec is missing. Did you copy all the files up to the dropbox?”
Greg: “It’s a (Ruby) Gem. You have to install it. Go to command line & type, ‘gem install rspec’”
My echoey thoughts: “Wow, that was easy. Seriously, that’s all I had to type? Interesting. Hrm. this is taking a while though.”
Me: “It’s just sitting there.”
~4 different Ruby devs: “Yes, it just sits there & takes a while sometimes.”
My echoey thoughts: “Ok, it’s done. I’ll try the ‘rspec rover.rb’ command again.”.
Me: “Greg, it seems to have run this time, but I don’t’ see any results.”
Greg: “You have to add –f d for ‘full debug.’ That runs test and prints full test results, instead of just the ones that failed. Hold on. I’ll add an .rspec file with that in there.”
Me: “Ok, \? isn’t working. How would I figure out what switches to use on my own?”
Greg: “Ruby came from Linux. They use -–help. \? won’t work.’”
My echoey thought: “Seriously? WTH. Why am I doing this to myself? Hrm. I didn’t come from command line anyway. Maybe this is normal or maybe I’ll have LESS baggage as a result? Let’s see how this plays out.”
Greg: “There. I added the .rspec file so just run ‘rspec rover.rb’ again.”
So of course, I had to open the file to see what was in it because I was curious. It was just called .rspec. Lo & behold, it was literally just a text file that had “-f d” in it. (I then inquired on what the .idea folder was that had 7 files in it, including a .name file, an .iml file & 5 .xml files, and was told that was a RubyMine thing.)
The rest of the time was spent looking at the Ruby syntax for a while, before moving a row back to look at the CoffeeScript kata Matt Florence had done but I hadn’t run because when he tweeted this gist a few days prior, this is what happened to me:
My echoey thought: “What is a gist? Oh It’s on Github. I must need to pull it down with command line [barrier to entry - red flag]”
It turns out Gist is really just a good online clipboard to paste & share code, much like pastebin, but I didn’t know that before Tuesday’s Hack Club. I clicked on it anyway & was greeted with these comments at the top of the gist:
# node, jasmine, coffeescript, and rake installed/configured using
# steps outlined at this website:
# http://brizzled.clapper.org/id/117/index.html
# gem install guard
# gem install guard-shell
# guard init
# then put the following in GuardFile
# guard :shell do
# watch('.*') {`rake`}
# end
My echoey thought: “? ? ?”
I then listened to some Ruby devs discussing one of their real-world problems at work that had to do with the best way to parse an xml file or a dom in Ruby. We all have those questions. Yay.
Some Perception Changes:
The great responses on my previous post made me take a harder look at the many, many Macs in the room. I think all but Greg’s were actually running Windows. I had no idea.
Working through the initial, intimidating Ruby install with people around me who could help guide me through enabled me to feel like now I actually could run Matt’s sample with the comment instructions pasted above. Progress!
One More Surprising Finding
Someone I haven’t talked about is Greg’s Ruby pairing partner, Richard. (All I know about him is his first name because he’s not on Twitter =P) His story was quite interesting. The reason he got into programming Ruby was to become a better software tester. Wow! I’ve known testers who learned a bit of SQL for DB testing, but never any who learned a programming language for software testing.
That kind of blew my mind, to be honest. It made me really think about the people I love to work with the most. Then it made me think of people I’ve enjoyed working with the least, and remembered a Business Analyst I used to have to pull data for ALL THE TIME because she refused to learn anything other than Excel (“if they’re not paying for it, I’m not learning it” – seriously? Even if it can make your life better & you can stop making others write queries & create exports for you? Sigh.). She’s the reason I learned in ~2002 there was a 65,000 row limit in a single Excel Worksheet. No one should have to know there’s a 65,000 row limit in Excel.
Mad props to Richard for stretching so far beyond just learning standard QA tools to the extent that he’s actually attending Dallas Hack Club to practice Ruby & do code katas. How inspiring & very cool.
Quick Note on Git & Command Line
Tonight (Thursday after the Tuesday Hack Club meeting), I was able to attend David O’Hara’s talk on Git at Dallas C# SIG, and I have to say, it was very compelling. He did an excellent job of thoroughly explaining Git fundamentals & concepts. Fortunately, Shawn Weisfeld was there taping it, so I’ll update this post with a link to David’s talk when it’s posted to UserGroup.TV.
Watching how fast David FLEW through that console was impressive, but his enthusiasm for Git was inspiring. Watching someone who’s as great at public speaking as David is always fun, but seeing great speakers talk about a topic they’re passionate about is a pure joy. He seriously LOVES Git.
I can honestly say I’m starting to feel less… I don’t know if intimidated is the right word… much less repulsed by command line after this week’s meetings than I ever have before. When I got home, I then got into a discussion with my husband about how he felt the same way about command line years ago, until he had to learn Unix for his job & even his eyes lit up talking about how much he just loves it & feels at home in it.
Exposure & Opportunities
Mike(@moran742)’s message in response to my Programming: Barriers to Entry post really resonated with me. He said, “So what do you need? An inquisitive mind, discipline, and the willingness to experiment.”
Different people learn in different ways. There’s nothing I love more than to be surrounded by people who know more than I know. The exposure to amazing, diverse & knowledgeable people who are so very helpful that the tech community makes available is incredible.
Learning that it’s ok not to know everything is powerful. Discovering the support in the Tech Community for those who try is motivating. Although I’m sure it would take me working in these technologies for my job to become prolific, I’m surprised at how fast I *am* warming up to & feeling comfortable with these areas that I’ve avoided for so long. In a few hours, I went from, “whoa no way” to “I could / I can.” Who knew Embracing the Uncomfortable could be so interesting, fun, AND rewarding? But for now, I will put my full, swollen brain to sleep. It needs to digest this stuff & prepare for more.
And that, my liege, is how we know the earth to be banana shaped. –Sir Bedevere

