In regards to growth marketing, surveilance capitalism, algorithmic moral-panic-driven profiteering I think there’s kind-of Darwinian evolution of our kids’ immune systems. My (now adult) kids responses to all this nonsense really brightens my day.
Finally achieved my full vaccine potential!
Apple Maps shows a new message I’ve not seen before asking if I want to switch routes to save 2 minutes. When I don’t answer BECAUSE I’M DRIVING, it does it anyway. I realise late that it’s now taking me to the freeway, which I was trying to avoid. I Keep avoiding the freeway and now it takes me on a wild ride adding 15 minutes… well done.
Sometime mobile software UIs feel like they’re just activity indicators all the way down.
A few years back there was a backlash against job descriptions seeking rockstars, or ninjas. And that was a relief. Now, I think we’re entering a post-startup era; I keep seeing job descriptions emphasising low-ego engineering cultures. Low ego seems to be the new value statement describing the essential ingredient to good engineering, replacing the rockstar?
The tech culture attitude that you have to get on the train or else get left behind is horseshit. Never met a programmer who was unable to get up to speed about something new, when the need arose.
Apple now advertising in settings app? Seriously?
Got the Jab this morning!
Pffft Bill & Melinda Gates are such noobs, bailing out at 27. Kris and I are coming up to our 28th!
Don’t know about you but “Get started with Trello Workspaces: add your Personal boards to a Workspace now, or it’ll happen automatically starting April 24th.” seems vaguely threatening?!
Making the example app for my next article about using a Redux-style architecture in SwiftUI. Can you guess what the app is called?
A Haiku to social media:
Instagram accounts cross paths, following, liking algorithmically
I am loosing my mind…
Was woken up last night by an argument I was having in my dream: you can’t apply the practice of software metrics to a marriage! You’re only measuring one dimension, growth, and you don’t know where that’ll come from! Truth bombs?
Just signed K-Rudd’s Murdoch News petition: www.aph.gov.au/petition_…
Murdoch media is a blight on the world, divisive and repugnant; causing misery and destruction purely for political and financial gain. And I’m pretty sure we can blame Murdoch for the NBN fiasco.
2 beautiful Perth Urban Cranes engaged in a rarely seen mating ritual
My son sent me this, showing the Australian LNP holding fast to this moronic line about the sun and the wind…
I was really happy with this paragraph:
” A well-designed haptic experience also takes time. You need to test many subtle variations, but it’s a hoot to be able to say to friends that you just spent the afternoon designing the perfect haptic experience for a crocodile eating a pineapple.” www.raywenderlich.com/10608020-…
Highly recommend the email newsletter Big by Matt Stoller. The latest is good for understanding the roots of what’s going on in the US right now: Corporate Power, Protests and the Breakdown of a Social Contract… and probably in Australian politics too.
The Apple Combine framework is like taking the red pill; the more I use it the more I want to see how deep the rabbit hole goes. So far it hasn’t effected build times, app performance or memory usage in any way, and I feel like I can solve so many problems with it. In fact there have been cases where it’s improved app performance once I removed home rolled async solutions - especially when removing OperationQueues and custom Operation subclasses, surprisingly!
UILayoutGuide where have you been all my life. If you’re making a complicated layout where you want the some parts of the view to display under the safe areas to the edge of the screen, but other parts to sit within the safe area,
UILayoutGuide is a good friend to have.
Oh, take me home Crompton Road …
The decor at this burger place in Sapporo, Japan…
Suddenly concerned for how many Swift files I have included an erroneous
import Foundation statement!
Finally started using GYB (https://github.com/apple/swift/blob/master/utils/gyb.py) for code generation. Wish I had started earlier!
SwiftUI stole the spotlight at WWDC 2019, but Combine, diffable data sources, and collection view compositional layouts, fix a huge amount of annoying things in UIKit. Really enjoying getting to know them all.
Watching a timelapse being taken is almost as good as watching paint dry, but here’s a cool pic
Some Friday night fun,@axiiio testing with an evening motion time lapse
Haven’t had one of these in a while. Trying to use
Combine with a tuple property causes a
segmentation fault: 11 in the compiler. Eg.
@Published var value: (Int,Int) = (0,0) will cause a segfault in a method where you update that value:
value = (intVal, intVal)
Ryan Singer is spot on in this thread about product ownership twitter.com/rjs/statu… “playing time Tetris” is my new favourite analogy!
My tip for SwiftUI: if you find your list of
@State variables is growing long, admit it: you’re actually building a view controller. Stop that! Start breaking it up into smaller
Damn, just noticed in tomorrow’s forecast, Shifty Jelly announce the Pocket Weather servers are finally shutting down Dec 31st 2019
My new favourite Google search query argument:
-site:medium.com. What a breath of fresh air.
If you’re going to use
UIDocumentPickerViewController, and also support opening files from the Files app, and now the home screen on iOS 13, it’s best to just use a
UIDocument subclass. Even if it’s simple data.
UIDocument handles the security-scoped URLs and file coordination, saving you some potential frustration.
Loved Fleabag. What an astoundingly good bit of writing it is.
Hoorah! In Swift 5.1 omitting return from single line functions also applies to computed properties. It’s the little things…
It’s about to begin, excited!!
Here’s a mystery! I was searching for details about my Grandfathers WWII service in Tobruk today; he was Private Stanley Herbert Seiver, serial number: WX9870. I stumbled on some photos of his medals and service record on a Flickr photo stream:
This was uploaded to Flickr in 2015, with a comment saying “Found on eBay”.
Turns out they’ve been missing since 2001, and no one has seen them since. I assume sometime in 2015 they were sold on eBay.
Not sure what to do next…
For years I’ve been wondering where the track “When the tigers broke free” came from, that’s heard at the start of the Alan Parker, Pink Floyd: The Wall movie. Because it’s not on the Pink Floyd album.
Just found it on The Final Cut album! In all those years a simple search would have probably found it for me :P
My Objective-C is getting a little rusty… * looks up
Good read from Dropbox about the cost of sharing code between Android and iOS: blogs.dropbox.com/tech/2019…
I’ve never fully bought into the notion that building native apps on Android and iOS is a waste of engineering capacity because you’re building the same thing twice. I’ve no experience to back that up, just a feeling that native development is the most straight forward way to get a product made. Straight forward to maintain, support, hire developers for. You’re not swimming against the current of the platform improvements that are constantly delivered by Apple and Google.
Working in 2 week sprints was supposed to provide a realistic perspective on development capacity, to enable better product prioritisation decisions. In my experience all it did was allow pressure to be exerted downwards to the developers; always the question why sprint targets were missed.
Even with all the battering rams and canon balls in my arsenal, I could not storm the gates of Sleep Castle.
despite my many invitations, attempts, offers of support; my love of sleep remained unrequited
The night: a tempestuous ocean; sleep: an island too far
Sleep eluded me last night; paraded it’s witnesses and suspects through my head; by the morning it was still at large.
I am deliriously unslept!
I feel like I’ve finally got a handle on how Auto Layout works with UIStackViews, how stackviews get their intrinsic content size depending on the set alignment and distribution properties. Luckily, just in time to be able to toss it all away for SwiftUI :D
My Son’s dog, a little white terrier, was leaving my office. He stopped in the doorway, turned to look back at me, farted noisily, then continued down the hall. Now I’m racking my brain for what I might have done for him to take offence. An acrid cloud of tension lingers in the air between us…
Considering SwiftUI, now I see how much wasted time was spent on intense discussions about things like, should you pass your model object to your
UITableCell subclass to set its properties?
#WWDC2019 So. Much. New. Shiny. My. Head. Exploding.
No one warned me that being a contract software developer, also means schlepping equipment up a mountain…
Even more Axiiio field testing; this time in the old convict settlement ruins near Port Gregory, Western Australia
Some Axiiio field testing while in a camping trip. Getting a motion time lapse of the sunset.
Garnet grains on a beach near Kalbarri, Western Australia. Looked like a dusting of pink sugar across the beach.
Jumping on the immutable state bandwagon (with a nod to Redux) in an iOS app, suddenly opens up a bunch of opportunities for testing. I can save and load an app’s state to/from a file, which is super handy.
Well this is annoying. Same Swift code literal is correctly
CGFloat outside of an array, but within the array it’s an
Int… !? Also the
1.0 on the next line becomes a
It’s only when you’re sharing code between platforms that you discover things like on iOS
char is signed, but on 32bit ARM systems like Teensy 3.x
char is unsigned. My brain is exploding trying to understand the consequences.
Working out of Axiiio labs this week. Working with embedded devices is a whole new world from working on a big software stack. Lots of fun though.
The new Xcode lldb
v command seems a lot faster, but at first try I don’t think it can see type extensions.
po sees the method in my class extension but
Whoa… if you know Objective-C, you’ll appreciate this method name I just found in
Hooray for Swift 5! Immediately had a use for the new Result type.
Xcode upgrade, Swift 5 migration went surprisingly well. All I had to do was upgrade carthage and build the project, no changes required. Lovely when that happens.
This is Apple admitting their previous CoreData examples were rubbish:
“Previously in iOS, the Core Data stack was typically initialized within the application delegate. However, doing so causes a significant amount of code to get muddled in with application life cycle events.”
My son said to me the other day he wonders why when there are so many companies selling content why business models are only ever ads or subscriptions… good point!
Cleaning out old cupboards and drawers is like suburban archeology. For example, in a drawer filled with junk I found 5 hole punches. I think I can draw a pretty accurate conclusion that we’ve had the need to punch holes in paper approximately 5 times in the last 10 years.
Dim Gaggle of UberbEats riders outside Chur burger all bikes, backpacks, and impatience
Muted terraces signaling to huddled pedestrians outrunning the rain finding sporadic shelter under the Sober trees
So many evil cats! Played Root for the first time. Really good fun. Each player has different rules, but somehow it all works magically.
Nothing says you love your dog more than waking up to find you still have a dog. Despite being up at 5:30am mopping dog shit that had been walked from one end of the house to the other.
I’m disappointed that the non-meat hamburger companies haven’t used, what I think is, the obvious slogan: “I can’t believe it’s not murder!”, or, if you prefer, “I can’t believe it’s not slaughter!”
If you work in a cross-platform company, you realise iOS is the only one to output upper-case UUIDs. Which is odd. Apple purport to respect RFC 4122, and while that states uppercase characters are within the valid set, it also states “The hexadecimal values “a” through “f” are output as lower case characters and are case insensitive on input.”
So I’m thinking Apple’s implementation is wrong.
Opening the Mac OS Books app to check the spelling of Hugh Howey’s name, I clicked on the book and got this insane error dialog. “Reinstall iTunes” .. seriously?! Reopening Books fixed it.
Haven’t read a book in a while and I finished 3 books over Xmas: The Wool Trilogy by Hugh Howey. Cracking good post-apocalyptic tale.
So my dog just walked into the office and belched… and that’s how I knew she’d been in the kitchen bin again. What a morning I’m having.
I awoke this morning with a stunning realisation: I have never heard a cat fart.
In Swift what is the nature of an optional
Void ? If it’s
.some then it’s nothing, but if it’s
.none then, is it everything?
One of my eldest sons said to me this morning “I think one of the best parts of parenting must be trolling your kids”. I can’t begin to describe the feeling of satisfaction, and yes, pure joy, that I experienced hearing those words; like I did something right as a parent.
Swift enums are a thing of beauty and wonder
I’m building a document-based app, and having to setup a seperate Xcode framework target for the document model code, so it can be used in the app and the app extensions. Turned out to be a really nice way to segregate an Xcode project.
Dining Room Table Project - Part 4
First board filled, sanded and oiled. I’m in love with Marri.
Dining Room Table Project - Part 3
Working out the best way to fill the holes, cracks and gnarly bits with clear expoxy resin
Dining Room Table Project - Part 2: Making the steel legs
Dining Room Table Project - Part 1
Selecting the wood: some lovely Western Australian Marri boards