11/15/08 12:27 - ID#46697
It was only a change to a couple lines of code, but it was very hard to track down. It took me and a co-worker a day of pair programming to narrow it down and figure out what to change, but damn it feels good to have done. And to have our specs and continuous integration running reliably again.
It was like 4 layers deep worth of metaprogramming. I feel like I know our spec library very, very well now. :)
02/28/08 11:02 - ID#43494
OK, holy crap. This will be like the only non-objective-c Mac programming platform that's officially supported and hooked into Cocoa from the ground up. The future of Mac apps might just be Ruby, dropping down to Objective-C where you need the hardcore number crunching performance.
02/04/08 03:04 - ID#43176
Green means I can go to lunch now...
12/27/07 03:56 - ID#42663
4 Hours to Highlight a Box
12/06/07 06:42 - ID#42416
11/06/07 10:07 - ID#42002
Microsoft Ruby .NET
10/29/07 09:51 - ID#41868
I leave Thursday afternoon to go to RubyConf, and I think it's going to be a lot of fun. (e:James) is coming to lounge pool side while I soak in the knowledge.
10/22/07 11:48 - ID#41757
RSpec with Autotest
This is the best thing ever. I am so glad that I took the time to look at this a few weeks ago after sort of putting it off for the last six months. I won't bore you all with the details (that's what (e:james) is around for), but I found a super awesome new tool for testing programs, I can't believe I didn't check it out six months ago when I first heard about it. (rspec)
Basically, instead of unit tests you write a live spec, that is continuously run as you code that notifies you of the status of all your tests open each save of a file. So now I don't even have to run my tests anymore, the freakin computer does it for me, and pops up a discrete message in the corner of the screen letting me know what's going on.
And writing tests with the new tool is also so much cleaner and nicer.
Old way (just random made up examples):
def test_something File.open("/tmp/file", 'W') do |f| f << test_data end assert_equal "/tmp/file", Retrieve.file, "Should have found it!" end
it "should find file path" do Retrieve.file.should equal("/tmp/file") end
But, that is a bad example because it doesn't show all the mocking, like:
Retrieve.file("config") # => can not find Retrieve.stub!(:file).expects("config").and_returns("/tmp/file") Retrieve.file("config") # => "/tmp/file"
So that you can completely decouple all your tested classes from each other and external output, thus only testing very specific pieces of logic, and making testing ten times easier because you never have to set up infrastructure for it to work.
You can also just have empty tests, which act like a todo list - they show up when the tests run as pending, so it also acts like a roadmap.
10/18/07 11:20 - ID#41706
09/07/07 10:24 - ID#40985
I think I might just have to go...