• I’m wondering if there should be a set of conventions for people on video calls to indicate acknowledgement without needing to speak or turn the video on. Reactions, and other status indicators, are not available in every service, and the ones that do have it tend to be for getting the speakers attention.

    There’s a convention in aviation, at least in recreational aviation that I’m familiar with, that has inspired this thinking. If someone needed to transmit a message over the radio, they will do so by pressing down the push-to-talk button and speaking their message. With VHF radio, only one person can be transmitting at any one time. Everyone one else on that particular wavelength will be able to hear them, but if they tried to transmit, the whole message will be garbled.

    So there’s always a bit of caution when there is a need to use the radio. You’re generally advised to wait a few seconds before speaking on the off chance that someone else starts before you. This is also not a medium that grants you a lot of time to talk: messages are usually quite short, and are usually only made when required.

    I guess that’s why a convention was developed, where someone operating the radio will indicate acknowledgement by quickly depressing the push-to-talk button. Doing so usually results in a burst of static clearly audible to everyone else on that wavelength. Unlike accidental presses, this quick tap is less than than a second, so there is no mistaking that it was intentional. This makes it perfect for quickly indicating a message was received, just like a thumbs up would if the conversation was face-to-face.

    A convention similar to this would be great for videoconferences. Whereas status indicators are not available everywhere, most videoconference software I’ve used have a mute indicator for each participant. Quickly unmuting and muting the mike would pulse this indicator, which is pretty close to the visual equivalent of that burst of static. Done quickly enough, it will indicate intent, and would therefore be a perfect to quickly indicate the message has been received.

  • Returning to the office today. Not sure if it will be full time, hopefully there will be opportunities to work from home going forward. But I’m getting a sense here that the year-long WFH experience is coming to an end.

  • 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. 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. 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. Continue reading →

  • Communication Among Stimulus Controllers

    From the time I’ve started playing around with Stimulus, I’ve been thinking about the best way that controllers can communicate with each other. The nice thing about Stimulus is that the state of the controller is representable from within the DOM itself, meaning that if a property of a controller needs to change, it can be done so by simply modifying the attribute value of the element the controller is bound to (see here for how that works). Continue reading →

  • On the Facebook Watch

    Ron Amadeo, from Ars Technica, on Facebook considering an Android Watch: The Information says Facebook’s smartwatch push is part of a larger plan aimed at “controlling the next computing platforms after smartphones.” In the smartphone era, Facebook is at the mercy of the two big smartphone operating system vendors, Google and Apple, neither of which have a particularly good relationship with Facebook. The need for a platform looms large over this announcement, particularly given the recent tiff between Facebook and Apple over user tracking. Continue reading →

  • It only felt like a week ago when I saw the launch of NASA’s Perseverance rover. Yet here we are, days away from its arrival. Good luck to everyone involved. Here’s hoping for a smooth landing.

  • Viewing webpages with View

    Here’s a way to simplify the number of keystrokes when viewing things from the web using Vim. Previously, I was typing the following incantation whenever I wanted to view the source of a web-page from the command line: $ curl <url> | view - This works, but has some very minor drawbacks. One of them that I run into is that I occasionally forget to add the trailing dash, which usually results in a lot of noisy characters coming through as Vim tries to interpret the output. Continue reading →

  • Argh, stop with the popups for my email address while I’m trying to read your blog! How can I enjoy your content when I’m interrupted with these? It does your site, or the prospects for getting newsletter subscriptions, no credit.

    I’m more than happy to consider subscribing to a newsletter if I think the content you write is worth it. So by all means, offer a chance to do so and the end, or even in the middle, of the article. But don’t show a popup obstructing the very content I’m trying to read and that you want me to consume more of. It gives me a sense of desperation and lack of empathy for the readers you’re trying to attract.

    Note to self: never do this yourself.

  • Qualcomm unhappy with Nvidia wanting to buy Arm

    From Ars Technica: According to CNBC, Qualcomm is one of many Arm licensees who continues to object to the acquisition. Although Qualcomm has so far refused to comment publicly, CNBC’s sources say it believes Nvidia cannot complete the acquisition without “crossing certain lines that people are worried about”—most likely, the anti-competitive lines we discussed above. Seems to me there isn’t enough competition in this space at the moment, and Nvidia acquiring Arm may shake things up a bit. Continue reading →

  • Is there a way, in Android Studios, to configure the debugger so that pausing a Kotlin app at a suspended function call, and stepping into, or over, keeps the debugger in the same thread?

    I’ve never managed to get this working. When I do set a breakpoint at a suspended function call, and attempt to step over it, the application continues without the debugger stopping.

    I’ve find myself needing to set successive breakpoints to work around this limitation. However, the statement just after the suspended call is usually another suspended call, which means more breakpoints that need to be set. When the number of breakpoints get too high, the cognitive load of remembering why each one was set becomes too much and I find myself forgetting why that particular breakpoint was set in the first place.

    I understand that Kotlin co-routines are an abstraction layered atop the JVM, and that all the language facilities may not be in place to offer full support for these in the debugger. I only hope that someone is working on this though. Kotlin co-routines are pretty nice to work with, but with limitations in the tooling like this, the leaks are easy to spot.

  • February Photoblogging Challenge. Day 12: Sporg.

    Mind turning slowly into sporg as I try to chase down this bug.

  • Current status: looking at sqlite3 DBs of an Android app in development while waiting for XCode to update to build a project to write a post on the dealing with breakpoints and coroutines in Kotlin. All while listening to a podcast and following the ABC Coronavirus live-blog.

  • The interesting thing about the “out of date” messages from Google’s iOS apps is the fact that they have the ability to turn these messages off without modifying the app. It makes you wonder how many of the features within these apps are controlled by server-side feature flags.

  • It’s a shame that we’ve had to go back into lockdown for 5 days, due to the highly infectious nature of the B117 variant. Hopefully it’s enough to stamp out the current outbreak. But what then? I’d be curious to know how we can continue to use hotels for quarantine given that this variant is spreading at a rate that is stretching the limits of our contact tracers. Maybe we can start using quarantine centres that are fit for purpose?

  • February Photoblogging Challenge. Day 11: Machine.

    My trusty Breezemaster has been pushing air for 25 years now, and is still going strong. Came in quite handy today.

  • That last post courtesy of “Random Thought”; a simple Mac app I’m working on to publish quick blog posts like this to Blot.im.

    Random Thought

    It’s still early days with this tool, but I’m hoping that this will allow me to achieve the “passive blogging” form popularised by Dave Winer and enabled by blogging platforms like 1999.io. It’s difficult doing this with static blogging platforms like blot.im and anything managed by Hugo, with blog posts essentially text files tracked in Git or Dropbox. Working with text files is fine when you’re spending a large amount of time on a post, but it just doesn’t allow for quickly posting a thought.

    That said, whether it will be advantageous for a blog like this to have these forms of posts is another story.

  • We’re using Google Meet at work at the moment. Apart from the logo, which looks indistinguishable from most of the other services of Google Suite, it works pretty well. However, there is one annoying thing it does have.

    Like most chat apps, Google Meet has an integrated chat feature, which allows participants to post messages during the meeting. However, once the meeting is finished, the chat disappears, and all the messages (as far as I know) are lost.

    It would be nice if these chats were kept around at the end of the meeting so that anything that needs to be referenced later can be copied or otherwise noted. It’s not always possible to do this during the meeting — people are usually listening or presenting — so being able to do this afterwards would help here.

  • 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 →

  • February Photoblogging Challenge. Day 10: Energy.

  • Twitter, Subscriptions and Tweetdeck

    So, Twitter is now considering subscriptions and charging apps like Tweetdeck. I’m guessing the competition between Twitter and the juggernauts of the online advertising space that is Google and Facebook is getting quite fierce. I believe they also took a hit from banning certain public figures that were good at keeping people engaged with Twitter, but were not necessary good for the general discourse on the platform. Here’s hoping that with this new revenue stream, one that is independent from the level of engagement of users, they will be incentivised to add some moderation over the types of anti-social behaviour that Twitter is currently plagued with. Continue reading →

  • Getting Public IP Address from the Command Line

    There is a website at ifconfig.co which can be used to get your public IP address. This is a reasonably nice service, and a nice alternative to Googling “what is my IP address”. One nice thing about this service is that it also works on the command line. When calling it with curl, it will return a plain-text response, making it possible to use in scripts. curl -4 ifconfig.co 10.20.30.40 I’m guessing that it’s using the User-Agent header to detect whether the response is coming from curl. Continue reading →

  • If someone has access to the AWS console, should it be right for them to also have access to the AWS API? What would be a suitable use-case for them to be granted access to one but not the other?

    Note that this is about human users, not services. It makes sense for services to only have API access. I’m wondering more about human users not having API access (or at least an easy way to get API access).

  • Empty HTTP Headers in Go

    Here is a technique for checking for the presence of a HTTP header in a Go request, even if the header has no value. If there’s a header in a HTTP request that has no value, the parser used by Go will store the header against an empty string value. This string value is available using the Values() method: using the Get() method will not work as that will return an empty string if the header is not present in the request, make it ambiguous for existential tests if empty header values are allowed. Continue reading →