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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.