Latest Posts - page 25
-
Exemplary Code
Over the past several months I’ve become a huge Sandi Metz fanboy, as my teammates can attest. Her Practical Object-Oriented Design in Ruby: An Agile Primer has significantly changed the way I write code.
-
StoreCI: Continuous Integration for Visualworks
I have just released StoreCI, a set of tools to integrate Visualworks Smalltalk with a continuous integration (CI) server such as Jenkins or Cruisecontrol.
-
Attending Mountain West Ruby Conference
I’ll be attending Mountain West Ruby Conference in Salt Lake City next week, April 3-5, 2013. I really enjoyed this conference last year, and am looking forward to it again this year.
-
RBRegexExtensions
In an earlier post, I showed how I converted a pragma-based type specification from using a literal binding reference of the form
#{String}
to a symbol#String
. Unfortunately, by the time I figured out that I could do this, I had some 1700 references to the two type-specification pragmas in my image. I wasn’t fond of the idea of fixing all of those by hand. -
Tools are Double-Edged Swords
Smalltalk is well-known for its impressive collection of development tools. There is nothing like coding in a live environment, surrounded by the living, breathing objects of your application. Other languages try to attain the same level of interaction. Some of them are even getting pretty good. But nothing I’ve seen comes close to what Smalltalk has being doing for 30+ years.
-
Finding Memory Leaks in Visualworks Smalltalk
When working on an application in Visualworks Smalltalk, you might find that memory use continues to increase over time. Yes, even in a garbage collected language, memory leaks are a possibility.
-
Debugging Race Conditions and Deadlocks
Race conditions and deadlocks are two of the most common problems encountered in multi-threaded systems. They are often difficult to reproduce, and therefore hard to find and fix.
-
Obstacles to Refactoring
When I’m working on some code and decide that there might be a way to clean it up, I reach for my refactoring toolbelt. I think about the different refactorings I know and decide which ones might work. I then do a quick cost/benefit analysis on the before and after state of the code and decide which refactoring - if any - might be best suited.
-
Learning From Others
I don’t think of myself as an arrogant person. I generally get along with people. I don’t hear reports of people thinking of me as annoying or obnoxious. And yet sometimes, when it comes to learning from other people, I am arrogant. I act as though I believe that most people don’t know as much as I do, and so they have nothing to teach me. I find it really easy to flip the bozo bit. This is not a good thing.
-
Specifying Types for Smalltalk Fit
I maintain the Smalltalk ports of the Fit, Fitnesse, and FitLibrary acceptance testing tools. These tools allow you to write acceptance tests for your software by using HTML tables.