Profile cover photo
Profile photo
Keith Ray
Ideas, Patterns, Agile Software Development, Classical Music, Science & Science Fiction
Ideas, Patterns, Agile Software Development, Classical Music, Science & Science Fiction

Keith's posts

Post has attachment
Template Design Pattern in Swift
In the Template Design pattern, you write an abstract class where an algorithm is implemented, but at least one part of the algorithm is not implemented -- it calls an abstract/unimplemented method for some part of the algorithm. The subclass inherits from ...

Post has attachment
While I was implementing drawing code, I found I wanted several  CGRect functions that did not exist in Swift 2 and Swift 3. This is the Swift 2 code  and tests that I implemented.    The following explanation of that code can be copied into a  playground i...

Post has attachment
Today’s blog entry (and hopefully for a few more) is about Dave DeLong’s DDMathParser, which is hosted here: . I found DDMathParser after I wrote a calculator app that was intended to provide very precise math, w...

Post has attachment
Stages of Failure
(Originally posted 2003.Jun.07 Sat; links may have expired.) From Rob Thomsett's page "Project Pathology: Causes, patterns and symptoms of project failure" ... "We observed this pattern of failure in every one of the 20 major projects we reviewed. Fifteen o...

Post has attachment
Shopping and Getting Better
(Originally posted 2003.Jun.05 Thu; links may have expired.) Shopping Andy Hunt blogs about shopping, not being able to find a shampoo that doesn't have fruit juice or herbal essences in it. He calls this "herd marketing" and writes: "It should be [...] the...

Post has attachment
Open, Collaborative, Project Planning
(Originally posted 2003.May.09 Fri; links may have expired.) Mary Poppendieck on the Lean Development mailing list writes: The difference between a planned and a market economy is rooted in two different management philosophies: Management-as-planning/adher...

Post has attachment
Swift: Playing with HalfOpenInterval and Range
// HalfOpenInterval and Range func brackets (x: Range < T >, i: T ) -> T {     return x[i] // Just forward to subscript } // cf import Cocoa var h1 = HalfOpenInterval < Int >( 0 , 4 ) h1                     //  "0..<4 span=""...

Post has attachment
More on Refactoring / Fear of Refactoring
(Originally posted 2003.Jun.04 Wed; links may have expired.) Ken Arnold points out Martin Fowler commenting on Cringley's post on Refactoring . Somebody, possibly Kent Beck, said something very much like " If the code quality is going down, you're doomed. I...

Post has attachment
Playing with Swift Array
// Playing with Swift Array var a = Array < Int >([ 1 , 2 , 3 ]) a               //  [1,2,3] a [ 0 ]           // 1 a [ 1 ]           // 2 a [ 2 ]           // 3 var b = Array < Int >(count: 5 , repeatedValue: 42 ) b   // [42, 42, 42, 42, 42] a . startIndex...

Post has attachment
(Originally posted 2003.May.08 Thu; links may have expired.) What's the difference in a bug in a new feature, and a bug that suddenly appears in an old feature? In a new feature, one is getting added value imperfectly. In an old feature, one that used to wo...
Wait while more posts are being loaded