-

Chiron Codex: helping software engineers become centaurs. OOP the Easy Way
Object-Oriented Programming the Easy Way: a manifesto for reclaiming OOP from three decades of confusion and needless complexity.APPropriate Behaviour
APPosite Concerns
Support This Site
If you like what I do please support me on Ko-fi
FSF

Author Archives: Graham
Coming to terms with fewer terms
I was on a “Leadership in Architecture” panel organised by RP International recently, and was asked about problems we face using new techniques like Microservices, serverless and machine learning in the financial technology sector. The biggest blocker I see is … Continue reading
Posted in software-engineering
Leave a comment
Microservices for the Desktop
In OOP the Easy Way, I make the argument that microservices are a rare instance of OOP done well: Microservice adopters are able to implement different services in different technologies, to think about changes to a given service only in … Continue reading
Ultimate Programmer Super Stack
There’s a great bundle of polyglot learning taking place over at the Ultimate Programmer Super Stack. My book, APPropriate Behaviour – the things every programmer needs to know that aren’t programming – is featured alongside content on Python, Ruby, Java, … Continue reading
Posted in advancement of the self, books
Leave a comment
Introducing: the Labrary
Is it that a month in the laboratory will save an hour in the library, or the other way around? A little more conversation, a little less action? There are things to learn from both the library and the laboratory, … Continue reading
On Blue Agile
Ron Jeffries has some interesting posts lately on Dark Scrum, the idea that poor programmers are being chained to the code face in the software mines, forced to unthinkingly crank out features under Agile-sequel banners like “velocity” and “embracing change”. … Continue reading
I’m probably holding it wrong
If I wanted to do a table view data source in ObjC, it would look like this: – tableView:aTableView objectValueForTableColumn:aColumn row:(NSInteger)row { return [representedObject.collection[row] valueForKey:[aColumn identifier]]; } When I do it in Swift, it ends up looking like this: func … Continue reading
Posted in AAPL, Swift
Leave a comment
On the inevitability of Photoshop for iPad
Back in 2011, I was speaking at QCon London at the invitation of my friend and de Programmatica Ipsum co-conspirator akosma, and one of the conference’s community events was an iOS developer meet-up hosted in the conference centre. I think … Continue reading
Beginner thoughts
Back story: my period of walkabout, in which I went to see the rest of the computing world beyond Apple land, started in November 2014. This was shortly after Swift’s introduction at WWDC 2014. It ended in October 2018, by … Continue reading
More on UIAutomation tests
Update The information below is mostly redundant. After filing a bug report with Apple, their engineers determined that the Xcode-detected set of macro actions (find a text field, double click, enter text) weren’t working because the double click action wasn’t … Continue reading
Posted in AAPL, Mac, TDD, tool-support
Leave a comment
given-when-then in XCTest
I started writing a new Mac app, and I started doing it by driving the implementation through Xcode UI Automation tests. But then it turned out I was driving the test infrastructure as much as the tests, and it’s that … Continue reading
Posted in Swift, TDD, UI
3 Comments