-
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
Continue reading →mysqlorpg_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. -
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:- First
- Second
- Third
One only needs to write:
1. First 1. Second 1. Thirdor:
1. First 2. Second 3. Thirdor even:
1. First 3. Second 2. ThirdThe 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
Continue reading →3.as the prefix of the first item, the generated ordered list will always begin at 1. -
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 → -
YouTube Music and Uploaded Music Libraries
Ron Amado, from Ars Technica:
YouTube Music is really only for The Music Renter—someone who wants to pay $10 per month, every month, forever, for “Music Premium.” This fee is to buy a monthly streaming license for music you do not own, and I’d imagine a good portion of it goes to music companies. When you don’t pay this rental fee, YouTube Music feels like a demo app.
I prefer to own my music, and I own a lot of independent music that wouldn’t be covered under this major-record-label-streaming-license anyway, so I have no interest in this service. The problem is YouTube Music also locks regular music-playback features behind this monthly rental fee, even for music you’ve uploaded to the service. The biggest offense is that you can’t use Google Cast without paying the rental fee, but when it’s music that I own and a speaker that I own, that’s really not OK. Google Music did not do this.
Continue reading → -
On Go’s Type Parameters Proposal
The developers of Go have release a new draft proposal for type parameters. The biggest change is the replacing the concept of constraints, which complicated the proposal somewhat, and replaced it with interfaces to express the same thing. You can read the proposal here latest proposal here.
I think they’re starting to reach a great balance between what currently exists in the language, and the features required to make a useful type parameter system. The use of interfaces to constrain the type, that is declare the operators that a type must implement in order to be used as a type parameter for a function or struct, makes total sense. It also makes moving to type parameters in some areas of the standard library trivial. For example, the sort.Sort function prototype:
Continue reading → -
Don't Get it Now
It’s scary times at the moment. The Corona Virus (SARS-CoV-2 and Covid-19) is raging through Europe at this moment, with hundreds of people dying in Italy, Spain and France and most of the those countries, along with the US, in lock-down. The hospital system is currently not equipped to be able to handle the peak number of patients that will require intensive care: doctors from Italy, France and New York are telling stories about how they have to choose who lives and dies, and I’m fearful that we may start hearing stories like that here. There is currently no cure, nor no treatment. There’s been models indicating that even if we take steps to suppress the virus now, there will be continuous surges in outbreaks until a vaccine is ready in 12 to 18 months, suggesting that we may need to be in a state of lock-down or at the very least, rigid social distancing until August 2021 at the latest. The WHO reckons that a majority of the worlds population will get infected over the next year.
Continue reading → -
Reflections On Virus Scanners on Windows
I was listening to Episode 277 of The Talk Show in which John Gruber was discussing virus scanners on Apple Macs with John Moltz. The discussion turned briefly to the state of virus scanners on Windows, and how invasive these commercial scanners were compared to Windows Defender provided by Microsoft.
Hearing this discussion brought memories of my experience with virus scanners back in the days of Windows XP and earlier. There was no Microsoft Defender back then so we had to have a license for one of the commercial scanners that were sold to home users at the time, such as Norton AntiVirus. Given how insecure Windows was back then, it was one of the first things we had to put on a fresh install of Windows. And these things certainly slowed Windows down. But we recognised that it was necessary and after a couple of weeks, we eventually got use to it.
Continue reading → -
New Home of Steve Yegge's Rant About Google Services
I’ve always enjoyed this rant from Steve Yegge about how Google differed from Amazon in how they develop their services. Not sure if it’s applicable now but it was quite interesting to hear how the two companies differed in their approach in building and releasing products. After hearing that Google+ was being shutdown, I wondered what would happen with the rant, and whether it would be lost to time. It was fortunate that someone saved it.
Continue reading → -
Five Common Data Stores and When to Use Them
Very interesting post on the Shopify Engineering Blog on the difference between 5 types of data-stores available to developers, and under what circumstances they should be used.
I find it tricky to decide on the best technology for storing data for a particular project. I guess the important thing to keep in mind is to try and figure out as best you can how the data is going to be used (i.e. queried). If you know that, the decision should be easy once you know what’s out there, and this blog post certainly helps in this regard. If you don’t, I guess the next best thing is to try to find the option that will give you the most flexibility with hopefully not too much loss in performance.
Continue reading →