This is temporary and may not actually be needed.
2021
Advent of Code 2021 Day 2
Advent of Code 2021 Day 1
It’s December and that means Advent of Code. As usual, the first day’s puzzle is pretty simple - just to get one warmed up.
2019
Zip a Collection of Publishers
I have an array of publishers: [Publisher<Data, Error>]
and want a publisher of the array of their outputs: Publisher<[Data], Error>
. The Combine framework provides the Zip
family of publishers which only go up to 4 inputs so this won’t suit my needs. I’m going to write about the steps I took to create a publisher that does what I want.
2017
The Road to Damascus or FRP and Me
I tried to learn about Functional Reactive Programming to see whether I would adopt it in my own code. These are my thoughts about it.
Be Your Own Backend Developer
An overview of server side Swift. I gave this presentation at Code Mobile in Chester. Unfortunataly, although a recording was made of the talk, it’s not available.
2016
Safer Programming With Types
Summary
Core Data: It’s Not Dead Yet
I spoke at FrenchKit Conference in Paris on why Core Data should not be counted out just yet.
Being Imperfect In A Perfect World
Just some thoughts on the choices we make about the patterns we use in development.
Swift London Pre-WWDC Panel
I was a late addition to this panel, which is my excuse for looking so scruffy.
Dependency Management With Carthage
2015
Swift Function Overloading By Return Type
As Objective-C developers, we often forget that we can overload functions by return type. This can often help us create neat APIs. This is best illustrated by an example.
Easy JSON formatting
Sometimes we want to format some JSON. Here’s an easy way to set up a Service in Automator to make this easier.
A Swift Repeating Timer
We frequently (excuse the pun) need to schedule a repeated action.
Carthage
My NSLondon talk about the Carthage Dependency Management System. No need to manage your own submodules or use CocoaPods, Carthage provides a simpler and more flexible method of adding framework dependencies to Xcode projects.
What Haskell Teaches Me About Writing Swift
I had a chance to present a longer version of my Swift Summit Lightning Talk at AltConf 2015 in San Francisco.
What Haskell Taught Me About Swift
I did a short talk at Swift Summit in London about a couple of things that knowing Haskell has helped me when writing Swift.
Debug Logging In Swift
In the last iOSDevWeekly Dave Verwer listed Art Sabintsev’s PrintLnMagic - a small function that reproduces the common DLog pattern that many use which not only prints a value, but the filename, the function name and the line of the call. Which is really handy in debugging.
2014
Fizz Buzz in Swift
In August 2014 I gave a talk at NSLondon about various approaches to solving Fizz Buzz in Swift. The video is available on Vimeo and proved to be reasonably popular and even gained me my first mention in iOS Dev Weekly.
FizzBuzz In Swift
My NSLondon talk about the various approaches to the FizzBuzz problem in Swift, plus some thoughts on the new Language. My first mention in iOS Dev Weekly
Adding 3rd Party Code To Your Project
This talk covers two ways of adding dependencies to an Xcode project; using Git Submodules or with CocoaPoads.
GCJ B - Cookie Clicker Alpha
Another problem from This year’s Google Code Jam.
GCJ A - Magic Trick
I got through the qualification round for Google Code Jam 2014. I usually manage to get through this stage; it’s the first round that I haven’t managed to get past yet.
Hakyll New Post With Emacs
When this blog was created using Octopress, a new post could be created by
simply running rake new_post
in the Terminal. There is no such convenience in
Hakyll, which is currently used as the generator. A small thing, but I wanted to
fix it.
2013
Hello Hakyll
Git at London Web Standards
Setting up for Lisp on OS X
This is how I roll, you might choose a different path.
Missing Xcode Toolbar
I’m sure you’ve been there.
2012
Correcting Brace Layout
I wrote a small rubygem called fixbraces to move the opening brace of a conditional to the same line as the opening statement.
Commanding Your Text Editor
There’s a recent post up on the PeepCode Blog about Commanding Your Text Editor which has some handy tips for Emacs, Vim, Textmate, Sublime Text and the OS X. It’s a short read, and worth the time.
A Reason to Learn Lisp
A short video from a live demo of Emacs from Web Rebels in Oslo 2012.
An Improved Reverse Words Script
About 6 months ago I posted a solution to the Google Code Jam problem Reverse Words
UUID Strings with Cocoa
This used to be a thing until the iOS 6 and OS X 10.8 compatible NSUUID Class became available.
On Live Coding
I read somewhere that part of the popularity of The West Wing was that it was entertaining to watch smart people solve difficult problems. I think that’s part of the reason why I find watching live coding videos so entertaining - It’s more fun to watch someone solve a problem than doing it yourself.
Book Stack June 2012
I seem to have accrued a stack of fiction that I haven’t got around to reading. This is just a stick in the ground so I remember to dig them up and read them at some time:
Rotate A String with Haskell
I qualified for Google Code Jam this year answering 3 out of 4 questions. I have no illusions about progressing very far, but I’m using it as an excuse to learn some Haskell and to write code faster.
London CoderDojo
I mentored at CoderDojo London this weekend. These are just some of my thoughts about it.
Reverse Words With Haskell
As part of my preparation for Google Code Jam I’ve been working through the practice problems with Haskell.
Git Ignore file
A while ago I answered a couple of questions on Stack Overflow using my
.gitignore
file as an example. I find it strangely satisfying to find that
there are projects on GitHub that use it, and even the odd blogs has put it up
as well.
Simple Localisation Testing
Sometimes you want to test your localisations but you don’t want to go through the hassle of changing the settings on the simulator, or device, or your Mac for each one. There’s always the fear of setting some language that you don’t understand.
Hello Octopress
This is the obligatory post announcing that I’ve moved this site off Wordpress to Octopress. It’s been almost a year since I posted anything. And most of what I did publish was about NSCoder Night.
2011
NSCoder Night London Now Has It’s Own Page
It’s been over a year that I’ve been running the NSCoder Night meetings in London from here, but I’ve now moved it to a site of its own. You can now get all the information from NSCoderNightLondon.com.
Just Enough GPG for git
It came about that I wanted to do some work with git and signed tags. It’s been a while since I had looked at this, I’ve got some old entries up on keyservers that date back to 1999, and never on a Mac.
2010
Staying Flash-free on a MacBook Air
You may have seen John Gruber’s posts on uninstalling system-wide flash and changing the Safari User Agent to view some sites that have Flash content.
Getting the address of a shortened URL
Many times you will see a shortened url but you aren’t sure what it points at. Here’s a little tip that I picked up from Tom Morris.
DVCS at LiDG
I gave a short presentation to the London iPhone Developer Group at the Apple store in London this week.
Blackjack and the Python Dojo
“A coding dojo is a safe place to deliberately practice and develop your coding skills.”
A Year of Git
I’ve been inspired by Pieter Omvlee of Bohemian Coding and his 365Cocoa to set up my own contribution.
Renaming an Xcode Project
You may have occasion to rename an Xcode project.
A Year Of Objective-C Snippets
Pieter Omvlee of Bohemian Coding has been inspired to post a snippet of Objective-C/Cocoa code every day for a year.
A Simple Answer is Not Always Best
On New Year’s eve, Dámasa asked me to calculate some fraction of a fraction and provide the answer as a fraction in eighths. The post had just arrived so I flipped over an envelope and started working it out.
2009
Some Tips for Lazy Xcoders
We all know what we should be doing when writing code. Each methodology you choose to use has its own best practices, whether it’s working from full specifications, writing unit tests first, programming in pairs, yadda, yadda. But, as developers, we’re only human, and we’re lazy. We have tools to make things easy for us. Here are a few tips that you can use to help when you’re not as rigorous in your coding as you should be.
Integrating Git with SubEthaEdit and Changes App
A while ago, I read a nice write up about using mercurial with SubEthaEdit and Changes. Here’s how to do the same thing with git instead of mercurial, separated into two parts in case you just want to apply one set of changes.
NSCoder Night London - Report
NSCoder Night London
It’s surprising that there isn’t an NSCoder Night chapter in London. There is a monthly CocoaHeads meeting in Swindon, and the UK Mac Dev meeting once a month in Central London, but I think that there is a gap for an evening of coding in a social setting.