Long Form Posts The RSS feed for Long Form Posts.

  • Working On The Weekend

    I’ve saw a Tweets last night saying that the best thing a young person can do to help their career is to work on the weekend. The implication there is that being the one that “puts in the extra hours” can seem, in the eyes of your employer, like you’re the hardest worker there, that you’re committed to the project and the job. This could lead to bonuses, promotions, perks, a reputation, you name it.

    Continue reading →

  • Stumbling Into the Concept of Narrating Your Work

    About a week ago, we had a retro. One of the things that was brought up was the sense that management felt that the team was not delivering as much as we could be. There are a number of reasons for this. For one, the higher ups work in Perth, a good 3,452 KM away from Melbourne. Another was that a lot of the work the team deals with is experimental in nature: more R&D vs. product development (a large portion of it involves dealing with a lot of barely supported, and completely undocumented APIs for MacOS).

    Continue reading →

  • On the Souring Relationship Between Apple and its Developers

    Listening to episode #430 of ATP yesterday, it was kind of shocking to hear the loss of good will experienced by the hosts towards Apple and their developer relations. I can’t say that I blame them though. Although John’s point about lawyers making the case for Apple is a good one, I do get the same feeling that Marco does about Apples opinion about developers, which is not a positive one.

    Continue reading →

  • Podcast Roll 2021

    Yesterday, @Munish had the courage to share his podcast subscriptions1. Sensing an opportunity to talk about with what I’m currently listening to, even though it may reveal more about myself that I’m usually comfortable with, I’m taking up his dare and sharing mine.

    So, here is my podcast roll as of early May 2021:

    Podcast subscriptions 2021

    The shows above can roughly be divided up into the following categories:

    Technology: This is a topic that I’m very interested in so there are fair few of these. A lot of them are Apple centric, but this is more of an accident than by design. The second podcast that I started regularly listening to was The Talk Show since I was a casual reader of Daring Fireball at the time (and I still am). That opened me up to ATP, which led to a bunch of Relay.fm shows.

    Continue reading →

  • On Basecamp

    I’ve been thinking about the incident at Basecamp for most of the week. I wanted to write something about it earlier, after hearing about the policy changes on Tuesday, but I’d figure that it would probably be best to wait a bit and learn more about the issue first. The last thing I wanted to do is add one more knee-jerk reaction to the mix during the heat of the moment.

    Continue reading →

  • Some thoughts on Apple Subscription Podcasts offering

    You’ve probably seen the blog post outlining the details of Apple’s new Podcast Subscription offering. The latest post from Daring Fireball has a link to it if you haven’t seen it on Twitter already.

    After reading this, I’m not sure who would choose to go with Apple’s Podcast hosting. Money aside, it looks like another case of Apple mediating the relationship between host and listener, not to mention keeping subscriber content exclusively on Apple’s app.

    Continue reading →

  • Surmounting The Hill

    Sometimes adding features to software is like cycling on a hilly road.

    You start off at the bottom of the hill, a little unsure of the hight and gradient, and how well you’ll be able to tackle it. You start the uphill climb, writing new code, adding tests, trying an approach that may not work, backtracking and starting again. This uphill climb is starting to tire you out. You’re making forward progress, even thought it may not feel like it, but it’s slow and you’re not sure how much longer you can keep cycling for.

    Continue reading →

  • A Year Under The Pandemic

    This was originally a journal entry but I thought I’d share it here as well. Today is the end of week 52, almost a year to the day that the pandemic became all to real for me. I’ve taken today day off to spend some time in Warburton. It was in Warburton last year, almost to the day (13th of March), that things began to get serious. The news coming out of China and Italy was grave: hundreds of deaths, thousands of new cases, hospitals filling up, lack of ventilators and staff to operate them, PPE shortages, scenes of people locked down in their home. The outbreak in New York was becoming serious as well, and the US government announced closure of their borders to Europe.

    Continue reading →

  • Australia’s ABC News shot to the top of the App Store charts following Facebook’s news ban

    From the Verge:

    The Australian Broadcasting Corporation’s ABC News app shot to the top of Apple’s App Store charts in Australia over the course of the last few days, not long after Facebook banned Australian news sources on its platform.

    […]

    ABC News currently sits at No. 2 in the App Store’s overall app rankings in Australia, according to the analytics firm App Annie, and No. 1 in the news app charts. When Patel noticed the change, the app was also briefly No. 1 overall, ahead of Instagram, Facebook Messenger, and the Facebook app itself.

    Continue reading →

  • Some uninformed thoughts about the ACCC Media Bargaining Code

    Yesterday, when the news about the news and Facebook was making the rounds in Australia, I have been wondering about my position about the whole thing. After listening to the Stratechery Daily Update1 from Ben Thompson about it, I think my position on this has solidified.

    I’m no fan of Facebook, but I can completely understand why they took the action they did, and I believe that it is in their right to do so. It could be argued that banning links and pages from government and NPO organisations was wide-reaching, and for that, I think it’s important to consider the motivation here. Was Facebook being cautious about their interpretation of the proposed law, which was written so poorly to suggest that anything related to the goings on in Australia fell under the code? Where they just being sloppy about which organisations were banned? Or were they going to such broad lengths to make a point and leverage their negotiation position? I don’t know: all three scenarios seem plausible.

    Continue reading →

  • A $2000.00 Smartphone with Ads

    I just learnt today that the Samsung Galaxy S21 Ultra has ads. I’m generally not that interested in Samsung phones, but the idea of putting ads on a device that costs up to $US 2,000.00 offends me so much that I had to comment.

    If I shell out that amount of money for a device, I expect an experience that is worthy of that price. Having that experienced degraded with crappy banner ads, and a built-in app1 which hijacks the lock screen, really brings down the intrinsic worth of the whole device to a point that doesn’t justify the price they’re asking for. It shows contempt for the customer — you know, the person that, by right, is the owner of the phone they paid for — and it’s just overall dishonorable.

    Continue reading →

  • Seth Godin on Rank Choice Voting

    Seth Godin on Rank Choice Voting:

    The surprising thing? In a recent primary in New York, some people had trouble with the new method. It’s not that the method of voting is particularly difficult. The problem is that we’ve trained ourselves to be RIGHT. To have “our candidate” and not be open (or pushed) to even consider that there might be an alternative. And to feel stress when we need to do the hard work of ranking possible outcomes, because that involves, in advance, considering acceptable outcomes that while not our favorite, would be acceptable.

    Continue reading →

  • A Feature Request for Twitter, Free of Charge

    It looks like Twitter’s product design team need some help. Their recent ideas, “inspired” by the features of other companies like Snap (Stories) and Club House (Audio Clips), don’t seem to be setting the world on fire. Well, here’s an idea for them to pursue, free of charge.

    A lot of people I follow seem to use Twitter threads for long-form writing. This might be intentional, or it might be because they had a fleeting thought that they developed on the spot. But the end result is a single piece of writing, quantised over a series of tweets, and assembled as a thread.

    Continue reading →

  • Adding Blog Posts to Day One using RSS

    Prior to joining Micro.blog, I had a journal in Day One, which was the sole destination for all my personal writing. I still have the journal, mainly for stuff that I keep to myself, but since starting the blog, I always wondered how I could get my posts in there as well. It would be nice to collect everything I’ve written in a single place. In fact, there was a time I was considering building something that used Day One’s email to entry feature, just so I could achieve this.

    Continue reading →

  • Some thoughts on app permissions in macOS

    It’s funny how the casual meandering of your mind can be a source of inspiration. This morning, my mind casually turned to thinking about all the work that Mac developers need to do to get access to privileged APIs — like location, contacts, or the accessibility APIs. My experience of going through the motions to enable these permissions for the apps I use, along with hearing of the lengths developers go through to make this as seamless as they can, reveals to me the clunkiness that this entails. I could imaging this being a huge source of frustration for these developers, not to mention a huge source of support requests.

    Continue reading →

  • First encounters with GitHub (and Substack)

    All these new Substack newsletters that I’m seeing reminds me of my first encounter with GitHub.

    Back in 2009, I was checking out the source code of an open-source library we were using. Clicking on the link to the source bought me to this strange, new code-hosting service that I’ve never seen before. As someone who was use to the heaviness that was SourceForge, or the boring uniformity that was Google Code, the experience felt very minimal and slightly unintuitive. It took me a while, for instance, to realise that the version tags were selectable from a drop-down list. I also thought that it was quite restrictive to only offer checking out the source code with this weird SCM client called “git”. The whole experience left me thinking of this website as rather niche, and I never really expected to see it that often, given that Source Forge or Google Code reigned supreme at the time.

    Continue reading →

  • A Quick Review of the Year

    Here are a few words about the year gone by, and what I’m hoping to focus on the year ahead. It’s not a full “year in review” type post, although there’s a bit of that, and there’s no dramatic insight or anything of that nature. It’s more of a chance for reflection, plus a bit of a document for future me on what the year was like.

    Personally, as difficult as this past year was, I wouldn’t necessarily say 2020 was a bad year. I know I’m saying this from a position of good fortune: I didn’t loose my job, or my house, or my health. So I know there are a lot of others that have experienced a much worst year than I have. But for me, I’m coming out of this year feeling a little better than I have the previous couple of years gone by.

    Continue reading →

  • Vivaldi - My Recommended Alternative to Chrome

    I’m seeing a few people on Micro.blog post about how Chrome Is Bad. Instead of replying to each one with my recommendations, I figured it would be better just to post my story here.

    I became unhappy with Chrome about two years ago. I can’t remember exactly why, but I know it was because Google was doing something that I found distasteful. I was also getting concerned about how much data I was making available to Google in general. I can prove nothing, but something about using a browser offered for free by an advertising company made me feel uneasy.

    Continue reading →

  • Revisiting the decision to build a CMS

    It’s been almost a month since I wrote about my decision to write a CMS for a blog that I was planning. I figured it might be time for an update.

    In short, and for the second time this year, I’ve come to the conclusion that maintaining a CMS is not a good use of my time. The largest issue was the amount of effort that would have been needed in order to work on the things that don’t relate to content, such as styling. I’m not a web designer, so building the style from scratch would have taken a fair amount of time, which would have eaten into the amount of time I would have spent actually writing content. A close second was the need to add additional features to the CMS that were missing, like the ability to add extra pages, and a RSS feed. If I were to do this properly without taking any shortcuts, this too would have resulted in less time spent on content.

    Continue reading →

  • A Brief Look at Stimulus

    Over the last several months, I’ve been doing a bit of development using Buffalo, which is a rapid web development framework in Go, similar to Ruby on Rails. Like Ruby on Rails, the front-end layer is very simple: server-side rendered HTML with a bit of jQuery augmenting the otherwise static web-pages.

    After a bit of time, I wanted to add a bit of dynamic flare to the frontend, like automatically fetch and update elements on the page. These projects were more or less small personal things that I didn’t want to spend a lot of time maintaining, so doing something dramatic like rewriting the UI in React or Vue would have been overkill. jQuery was available to me but using it always required a bit of boilerplate to setup the bindings between the HTML and the JavaScript. Also, since Buffalo uses Webpack to produce a single, minified JavaScript file that is included on every page, it would also be nice to have a mechanism to selectively apply the JavaScript logic based on the attributes on the HTML itself.

    Continue reading →

  • Some uninformed thoughts about Salesforce acquiring Slack

    John Gruber raised an interesting point about the future of Slack after being purchased by Salesforce:

    First, my take presupposes that the point of Slack is to be a genuinely good service and experience. […] To succeed by appealing to people who care about quality. Slack, as a public company, has been under immense pressure to do whatever it takes to make its stock price go up in the face of competition from Microsoft’s Teams.

    Continue reading →

  • Why I'm Considering Building A Blogging CMS

    I’m planning to start a new blog about Go development and one of the things that I’m currently torn on is how to host it. The choice look to be either using a service like blot.im or micro.blog or some other hosting service, using a static site generation tool like Hugo, or building my own CMS for it. I know that one of the things people tell you about blogging is that building your CMS is not worth your time: I myself even described it as “second cardinal sin of programming” on my first post to micro.blog.

    Continue reading →

  • An anecdote regarding the removal of iSH from the App Store

    Around April this year, my old Android Nexus 9 tablet was becoming unusable due to it’s age and I was considering which tablet to move to next. I have been a user of Android tablets since the Nexus 7 and I have been quite happy with them (yes, we do exist). However, it was becoming clear that Google’s was no longer interested in maintaining first-party support for Android on a tablet, and none of the other brands that were available were very inspiring.

    Continue reading →

  • Tracking Down a Lost Album

    Here’s a short story about my endeavours to find an album that seems to have disappeared from the face of the internet. I’m a bit of a sucker for original sound tracks, particularly instrumental ones. One that I remember being very good is the music from The Private Life of Plants, a documentary series from David Attenborough made in the mid 1990s. It was one of those sound tracks that occasionally popped into my mind, particularly when looking at lovely autumn leaves or other scenes from the show. But it has been a while since I last watched it, and I never though to look at whether an album of the sound track actually existed.

    Continue reading →

  • Offical support for file embedding coming to Go

    I’m excited to see, via Golang Weekly, that the official support for embedding static files in Go is being realised, with the final commit merged to the core a couple of days ago. This, along with the new file-system abstraction, will mean that it will be much easier to embed files in Go applications, and make use of them within the application itself.

    One of the features I like about coding is Go is that the build artefacts are statically linked executables that can be distributed without any additional dependencies. This means that if I wanted to share something, all I need to do is to give them a single file that they can just run, without needing to worry about whether particular dependencies or runtimes are installed prior to doing so.

    Continue reading →

  • Advice to those working with annotations in Preview

    For those of you using Preview in macOS for viewing an annotated PDF, if you need to move or delete the annotations in order to select the text, be sure to undo your changes prior to closing Preview. Otherwise your changes will be saved without asking you first.1

    This just happened to me. I have a PDF annotated with edits made with the iPad pencil and I wanted to copy the actual text. The annotations seemed to sit on top of the text in an image layer, which means that in order to select the text, I have to move or delete this layer first. I didn’t want the annotations mixed up with the ones on the other page, so I decided to delete this layer instead of moving it. This was a mistake.

    Continue reading →

  • Doughnut Day 2020

    Good day today. From a high of 725 Covid-19 cases in August 25, Victoria has just had 24 hours of zero new cases and zero deaths. This is during a period of extensive testing in the north of the metropolitan, during a testing blitz in an attempt to contain an outbreak. Labs have been processing tests late into the night, with not a single one so far coming back positive.

    Continue reading →

  • Reflections On Writing On The Web

    I fell into a bit of a rabbit hole about writing and publishing online yesterday after reading this article from Preetam Nath and this article from James Clear. I’ve been thinking about creating and publishing on the web for a little while now, which is probably why these two articles resonated with me.

    These articles highlight the importance of creating and publishing regardless of what the topic is. There have been a few things that I’ve been wanting to share but I haven’t done so, probably because I worry about what other people think. The interesting thing about that line of thinking is that I tend to enjoy reading posts from other people as they go about their lives. I guess that’s what the original intention of blogging actually is.

    Continue reading →

  • Unit Tests and Verifying Mocks

    I’m working with a unit test that uses mocks in which every method in the mock is verified after the method under test is called, even if it is not relevant to the test. Furthermore, the tear down method verifies that every dependent services has no more interactions, which means that removing a verification that is not relevant to the specific test case will cause the test to fail.

    Please do not do this. It makes modifying the tests really difficult and results in really long unit tests that hides what the test is trying to assert. It also makes it harder to create new tests to verify a particular behaviour, as you find yourself copying all the verification code that is not relevant to the case that you’re trying to test for.

    Continue reading →

  • A Database Client Wishlist

    I’ve recently started a new job so I’ve been spending a bit of time trying to become familiar with how the relational databases are structured. Usually when I’m doing any database work, I tend to use the CLI clients like mysql or pg_sql. I tend to prefer them, not only as they’re usually easy to use via SSH, but the REPL is a nice interaction model when querying data: you type a query, and the results appear directly below it. The CLI tools do have a few drawbacks though. Dealing with large result sets or browsing the schema tend to be harder, which makes it difficult when dealing with an unfamiliar database.

    Continue reading →

  • Sharing links to private podcast episodes

    There have been times when I’ve wanted to share a link to an episode of a podcast that I pay for, but I’m hesitant to do so as the feed is private and unique to my account. The episode is also available in the public feed, but has been trimmed as an incentive for listeners to pay for the show. I can always find the episode in the public feed and share that, but I’m wondering if there’s a better way to handle this.

    Continue reading →

  • Let's hold the line, Melbourne. We've got this.

    Today is a good day. Melbourne’s 14 day daily Covid-19 case average is now 29.4, which is beyond the 30 to 50 band required to move to the next stage of reopening. Seeing the fruits of our collective sacrifice, bringing the daily case numbers from a peak of around 740 in August down to the 11 we saw on Monday, makes me proud to be a Melburnian.

    As much as I like for things to reopen sooner than planned, I think we should hold the line for as long as we possibly can. The potential prizes for doing so – the crushing of the virus, the ability to travel interstate again, the chance to eat at restaurants without fear of infection, the chance for a normalish Christmas and summer – are within reach. I know that’s easy for me to say as someone who has the ability to work from home, and I completely recognise those of us suffering right now being unable to work at all. But just like the darkest hour is before the dawn, so too will the sweet taste of victory and accomplishment be when we finally crush this virus and meet the rest of the country where they are. To rush this, to reopen too early, and see our effort thrown away would be upsetting.

    Continue reading →

  • Getting screen capture working in Vivaldi on Fedora 32

    Moving from a Mac Pro back to Linux for work, I’ve come to appreciate how well things just work out of the box in macOS. Things like Web RTC display capture, which is used for sharing the screen in browser-based video conferencing sites (and I think also in Slack, since it’s using Electron and, thus, the Blink rendering engine), work flawlessly in macOS, but proved to be a bit of trouble within Linux.

    Continue reading →

  • First Foray Into Home Automation

    After recently changing jobs, I’ve received a brand new Lenovo work laptop. As good as the laptop is, and it’s OK for a work laptop, it has one annoying feature. Whenever the laptop is plugged in and powered, there is a bright white LED that is always illuminated. Because I’m still working from home — and it is likely that after the pandemic I will be working from home at least a few days a week — and my desk is in my bedroom, having this white LED is no good for my sleep.

    Continue reading →

  • On Ordered Lists in Markdown

    One of the things I like about Markdown as a form of writing online, is that ordered lists can simply begin with the prefix 1., and there is no need to update the leading number in the subsequent items. To produce the following list:

    1. First
    2. Second
    3. Third

    One only needs to write:

    1. First
    1. Second
    1. Third
    

    or:

    1. First
    2. Second
    3. Third
    

    or even:

    1. First
    3. Second
    2. Third
    

    The one downside to this approach, unfortunately, is that there is no nice way to specify what the first ordinal should be. If I were to use 3. as the prefix of the first item, the generated ordered list will always begin at 1.

    Continue reading →

  • If Google does this to the Pixel 4, just what do they expect for the Pixel 5?

    What is Google doing cancelling the Pixel 4 after 6 months? They spend $1.1 billion buying the HTC mobile division and state that they plan to start making their own mobile chips, giving the impression that they are serious about producing decent, flagship hardware for Android. And then go ahead with discontiuning their current flagship phone after 6 months?

    Look, I know from a purely economical perspective, the Pixel line makes little sense. Android is not iOS. They don’t hold the prestigious high-end of the market, with the margins that come from it. But that’s not Google’s business. They’re an advertising company first, and a search company second. So I can understanding that Android to them is more of a cost centre; the price of keeping access to their services open to mobile users.

    Continue reading →

  • On Suppression vs. Elimination

    It was around the beginning of June, when the number of new Covid-19 cases for Victoria were around 10-20 a day, that there was a general feeling that suppression was working and that it was time to begin opening up. I will admit I took advantage of the looser restrictions, but I always wondered whether it would be better to remain closed for a little while longer and go for elimination. This was not the official strategy though: we have testing and tracing up and running and as long as we know where the virus is, we can continue to roll-back restrictions and achieve some semblance of normalcy.

    Continue reading →

  • Remarks on Go's Error Handling using Facebook's SDK Crashes As a Framing Device

    There are new reports of Facebook’s SDK crashing apps again due to server changes. The post above links to Bugsnag article which explores the underlying cause: that’s worth a read.

    I’m going to throw a shout-out to Go’s approach to error handling here. I’m not saying that this shows the superiority of Go over Objective C: these sorts of things can happen in any language. The difference I want to highlight is that Go treats error handling as part of the standard flow of the language, rather than the exceptional flow. This forces you to think about error conditions when you’re making calls to code that can fail.

    Continue reading →

  • Signed Up To micro.blog

    I’ve signed up with micro.blog in an attempt to post to the blog more frequently than I have been. The last post I had on my existing blog was in March, and it felt to me like it was starting to become a bit negelected. I think the main reason for the delay is that I feel the need to publish long form articles, which involves a lot of work to write, review, etc. I will try to continue to do that, but I also want to start posting shorter articles more often.

    Continue reading →

  • Features From Android In iOS 14, and The Enthusiasm Gap

    John Gruber on Daring Fireball, commenting on an article about features in iOS 14 that Android had first:

    Do you get the sense that Google, company-wide, is all that interested in Android? I don’t. Both as the steward of the software platform and as the maker of Pixel hardware, it seems like Google is losing interest in Android. Flagship Android hardware makers sure are interested in Android, but they can’t move the Android developer ecosystem — only Google can.

    Continue reading →