Category: programming
11/15/08 12:27 - ID#46697
Bug Fix
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. :)
Permalink: Bug_Fix.html
Words: 123
Category: programming
02/28/08 11:02 - ID#43494
MacRuby
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.
Permalink: MacRuby.html
Words: 66
Category: programming
02/04/08 03:04 - ID#43176
woot!
Green means I can go to lunch now...
Permalink: _woot_.html
Words: 21
Category: programming
12/27/07 03:56 - ID#42663
4 Hours to Highlight a Box
Click.
Click.
Click.
Permalink: 4_Hours_to_Highlight_a_Box.html
Words: 19
Category: programming
12/06/07 06:42 - ID#42416
Rails 2.0
^_^
Permalink: Rails_2_0.html
Words: 22
Category: programming
11/06/07 10:07 - ID#42002
Microsoft Ruby .NET
Permalink: Microsoft_Ruby_NET.html
Words: 38
Category: programming
10/29/07 09:51 - ID#41868
RubyConf
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.
Permalink: RubyConf.html
Words: 51
Category: programming
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.
Happy tests:
Sad tests:
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
New way:
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.
Permalink: RSpec_with_Autotest.html
Words: 350
Category: programming
10/18/07 11:20 - ID#41706
Martin Fowler
Permalink: Martin_Fowler.html
Words: 3
Category: programming
09/07/07 10:24 - ID#40985
RubyConf 2007
I think I might just have to go...
Permalink: RubyConf_2007.html
Words: 26
Author Info
Date Cloud
- 07/11
- 04/11
- 02/11
- 10/10
- 09/10
- 08/10
- 07/10
- 06/10
- 05/10
- 04/10
- 03/10
- 02/10
- 01/10
- 12/09
- 11/09
- 10/09
- 09/09
- 08/09
- 07/09
- 06/09
- 05/09
- 04/09
- 03/09
- 02/09
- 01/09
- 12/08
- 11/08
- 10/08
- 09/08
- 08/08
- 07/08
- 06/08
- 05/08
- 04/08
- 03/08
- 02/08
- 01/08
- 12/07
- 11/07
- 10/07
- 09/07
- 08/07
- 07/07
- 06/07
- 05/07
- 04/07
- 03/07
- 10/06
- 04/06
- 03/06
- 01/06
- 12/05
- 11/05
- 10/05
- 09/05
- Z