Applications Coding Entertainment Semantic Web

A curious sequence of events with Google and its YouTube recommendations

Well spotted there, Google! 🔭

I noticed a curious sequence of events this morning. I responded to a tweet about Donald Trump’s latest tweet where he referred to his “great and unmatched wisdom” using the Twitter app on my Android phone –

I then turned to our Android TV box where we were watching YouTube videos in the YouTube app, and I saw a recommendation for this Late Late Show video about Trump’s tweets:

That’s some pretty snappy algorithmic matching there, Google! 🤔

unsplash-logoCover image by Scott Webb
Business and work Coding Mindsets Policy issues

New Automattic research on how to improve gender representation for technical roles

Our team has just released a white paper titled “Trust, Growth,Inclusion: A Study ofWomen Engineers’Job-Search Priorities” that explores what motivates women and non-binary technical professionals to join companies, and what helps retain them.

Better gender representation is a challenge. I’m proud of our team’s efforts to better understand this challenge, and how to meet it. It’s clearly not something that’s capable of a simple fix, but I’m glad that we seem to be moving in a good direction. Here are some links if you’re interested in reading further:

If you’re interested in joining Automattic, we’re hiring people for a number of roles, especially in Engineering!

Applications Coding Devices

Giving a 2011 MacBook Air new life with Linux

I bought my wife a 11″ MacBook Air in 2011. It’s a Intel® Core™ i7-2677M CPU @ 1.80GHz (four core) laptop with 4GB of RAM. Over time the battery became less effective, and started to swell. We eventually removed it early last year, before it burst.

That left my wife with her MacBook Air that she had to use when connected to main power. It had also become pretty sluggish between macOS updates, and general cruft accumulation so it took forever for the device to boot up, and perform simple tasks.

My wife recently left her job, and we bought her (formerly) work Lenovo laptop for her to use as a personal machine. This left her MacBook Air gathering dust in a corner of the apartment.

An available option

I’d wanted a personal laptop for my non-Automattic projects, and was building up the courage to buy a new machine that I’d install Linux on. I decided to see if my wife’s laptop would suffice, instead.

I first reset the device, and poked around a bit in macOS. The laptop is past the support cut-off for the current macOS version, so it was running High Sierra (I think). It worked ok, but it felt pretty slow.

Setting it up

I’ve also wanted a Linux laptop to geek out on, so I took a leap, and wiped the drive completely (I was actually planning to configure dual boot, but couldn’t work this out), and installed Pop!_OS by System76 on it.

I installed a couple of my preferred apps such as Sublime Text, Sublime Merge, Dropbox, and so on. I also switched my shell over to ZSH (with Oh My ZSH), installed Conda as my main Python distro/option, and even figured out how to run Jupyter Lab on the laptop.

Of course I also installed the app for Linux testing too.

The laptop still seemed a bit sluggish initially, and it looked like all the processors were maxing out. I also couldn’t work out how to make the dock appear in a more convenient way, and how to add other bits and pieces to my desktop to improve my experience.

I then switched the desktop environment to the MATE desktop, and it seemed to help. For one thing, MATE is better suited to older hardware, and it has a bunch of indicators and widgets that you can customise. I liked it, but I still preferred the overall aesthetic of Pop!_OS.

I also realised that the reason why the laptop was so sluggish was because Dropbox was being Dropbox when it started up. It eventually released its death grip on the processors, to a degree.

Getting used to a different environment

My one big adjustment has been moving from my glorious 15″ Macbook Pro screen where I spend most of my time, to a teeny 11″ screen. On the other hand, I do like the much smaller form factor for mobility.

The laptop is small enough that I may even be willing to take this with me on work trips so I have a personal device for movies (assuming I can get them onto the device, legitimately), projects on longer flights, and so on.

The immediate challenge to all of that is that this machine doesn’t have a battery. I’ve found a solution for that, though. iFixit sells an after market battery for this model for about $75. That’s certainly cheaper than buying a new laptop (assuming it works).

Other than that, it’s also taken me a while to figure out how to do otherwise routine things in Linux. I’ve found ways to customise my experience of the desktop using things like GNOME Extensions, and other apps and utilities.

Mostly, though, I use Sublime Text for my writing and coding (I know VS Code is what all the cool kids are using, I prefer Sublime for now, and it loads really quickly), Firefox as my main browser on this laptop, and I have my terminal pretty much set up with my various extensions.

More of the similar for other home uses

My experience with this laptop has reminded me why I much prefer a Linux computer for home. Our daughter uses a really old desktop PC that’s running Ubuntu 19.04. The PC is a Core 2 Duo with 3 or 4GB of RAM.

When it comes time to replace that, I’ll probably give her one of the new Raspberry Pis with an external drive for storage. The current version is just incredible for what you’re paying. This review will give you a pretty good idea:

The new board comes with a four core AMD processor that, I think, is pretty comparable to the MacBook Air’s 2011 processor, up to 4GB of RAM, and runs on USB-C power. The 4GB model costs around $50 to $60, and the main challenge is actually getting your hands on one.

A Raspberry Pi would probably be a decent upgrade on what she has at the moment, and she could continue doing everything she’s been doing (Minecraft, browsing the Web to school sites, general school research, Google Drive, YouTube, Spotify) just fine.

I’d be very tempted to get one for myself one day, if I could come up with a decent plan for how to travel with it, and use it productively on the road. The biggest challenge would be a screen of some kind, I imagine.

So far, I like this

So far, I really like what I have. I’d like to get some other apps going, such as AutoKey for text expansion, and Albert for easier app launches, web searches, and some of the tasks I use for on my work laptop.

For the time being, though, this Linux-driven MacBook Air is proving to be a pretty good choice.

Featured Image: Unleash Your Potential Robot by Kate Hazen at System76, licensed CC BY SA

Coding Games

My son stumbled into emacs … to play Tetris

My son is a Tetris fan lately. He’s competing with my friend in South Africa (they’re both playing the same game, and sending boasting screenshots by WhatsApp). He came to me with his laptop (actually mine, I’ve loaned it to him) over the weekend, excited to show me how he’s playing Tetris on the MacBook Air, in emacs

Tetris in emacs

He doesn’t really appreciate quite what emacs is (or Vim, for that matter), but he definitely loved this version.

Coding Design Education Miscellany Photography Useful stuff

Opportunistic diversions for 2019-04-17

I watched a couple interesting videos that I enjoyed, and thought I’d share:

This Engadget video about the differences between DSLR and mirrorless cameras is terrific. Chris Schodt did a great job explaining both camera categories, and the advantages each type has. Well worth watching.

Leonardo Da Vinci was clearly a remarkable person, and this Vox Almanac video by Phil Edwards highlights just how perceptive Da Vinci was.

You can find a few more related links in Edwards’ post “How Leonardo da Vinci made a “satellite” map in 1502 – Vox“.

I work with CSS every day as part of my work at Automattic, and while I’ve encountered pseudo elements, I haven’t really understood them until I watched Kevin Powell‘s video.

This video is the first of a three part series, and just having watched this first episode, I feel like I already have a better understanding.

unsplash-logoFeatured image by Victoriano Izquierdo

I’m trying out a post format for sharing a few quick things that probably wouldn’t make for a decent length post. I like the idea of this sort of collection of interesting things, but it feels a little disjointed. Perhaps three short posts would work better. What do you think?

Applications Coding Games

How hard could it be to setup a Minecraft server?

My son and his friends are getting back into Minecraft, and they’ve been playing on some random server that they have some issues with.

I gave it some thought, and decided that I could set up a Minecraft server for them on a Digital Ocean. I mean, how hard could this be, right?

It turns out, it isn’t that easy. At least, I’m hitting a wall with this after my initial setup. So, what I did was the following:

  • I first created a droplet on Digital Ocean, with a view to following this guide I found somewhere;
  • I installed the current Minecraft Server version on my shiny new droplet (via SSH);
  • There were a couple tutorials for configuring the server (here, here, and even here), but all I think I managed to do was install a bunch of stuff I don’t know how to use.
  • I did register a custom domain that I’m mapping to the droplet for when I eventually figure out how to configure the server.

I’ve reached out to a couple gaming colleagues to see if anyone has any ideas. In the meantime, I’m tempted to just go the official Minecraft server route if I can’t figure this out.

unsplash-logoFeatured image by Randall Bruder
Business and work Coding Useful stuff

Tips for being productive on GitHub

I spend much of my day interacting with GitHub in one form or another as part of my day job, even though I’m not working at Automattic as a software developer. Between coding little scripts to make me more efficient, and managing or contributing to work-related projects, I use GitHub daily.

This is why I enjoyed Darren Burns’ post titled “8 Productivity Tips for GitHub” that he published on his blog, and on Dev.

GitHub is built with some extremely helpful shortcuts and productivity-boosting features. From personal experience, however, it’s clear that these often fall under the radar amongst developers. If I’ve ever witnessed a specific GitHub feature surprise or assist someone, then that feature is on this page. That said, what follows is by no means an exhaustive list.

Darren Burn

If you’re also a bit of a productivity geek, and spend time in GitHub, you may find some useful tips here.

unsplash-logoFeatured image by Headway
Applications Coding Useful stuff

Unfashionably still an Atom editor fan

I’ve loved the idea of the Atom editor since I saw the initial announcement video three years ago:

I used it on and off as a text editor since it was released. Sure, it was sluggish, but I didn’t think too much of it. I used Atom for a text-based productivity system a couple years ago, when I couldn’t find a cross-platform task management system I liked. At some point, I decided to try something a little more responsive, and lightweight.

All the cool kids seem to be using Visual Studio Code, and they love it. There’s certainly a lot to like about Microsoft’s (mostly) open source code editor. It’s lightweight, extensible through a range of really good extensions, it’s cross-platform, and free.

I used it for a while, and enjoyed it. As a newbie coder, it gives me a lot of feedback as I poke around at my coding projects. This can be really helpful, for sure. That’s probably one of the reasons I used VS Code for as long as I did (and why I still have it installed on my laptop). Of course, another reason why I used it is that a number of developers I follow have raved about it.

I initially moved off VS Code, and returned to Atom earlier this year when I started using a more powerful MacBook Pro, and felt drawn back to Atom for some reason. Part of the reason was that a Markdown extension I relied on in VS Code stopped working for me (at least when I used it in conjunction with that I use heavily for my work).

When I came back to Atom, I noticed how well some of the packages I installed seemed to fit into how I worked. The Markdown Writer package, for one, has become one of my favourite packages, just because it makes it easier for me to write in Markdown.

There was certainly a point where I was concerned about Atom’s ongoing development, and how seemingly simple issues didn’t appear to be addressed. I received some good feedback on this, and moved on.

One of my colleagues recommended Sublime Text, so I spent some time testing it out. I love how quickly it starts up, how similar it is to Atom (well, more the other way round). At the same time, I’m not sure I can justify paying the cost for Sublime Text because Atom does want I want to do, with less of the fiddling I need to do to Sublime Text to configure it for how I like to work (mostly keybindings, and Markdown support).

It’s not that Sublime Text isn’t worth the $80 license fee, it really is (and I agree with paying for good quality software). Even though it took me a few weeks to configure it to work pretty well for me, there are little features that I absolutely love. One little one that I discovered is how it automatically closes HTML tags when I start typing closing tags. These little things are awesome, and bring a little more joy to my day.

In the meantime, Atom has been improving with each release. Sure, it doesn’t have all the tips and feedback that VS Code, and it loads a little slower (although not as much as it used to). I don’t mind that as much actually. I stick with Atom because it works for me.

It fits into how I write Markdown, works well enough for me when I switch over to CSS, HTML, Python, shell scripts, JavaScript, and so on. On those occasions when I need extra help, I may dip back into VS Code, or give Sublime Text another go.

I’m also just figuring out how to “hack” this “hackable text editor for the 21st Century”, and I really enjoy this sort of freedom with my text editor. There’s still so much I can learn about how to use my editor more effectively. Another colleague pointed out a really cool Emmet feature that just blew my mind.

So, in a time when everyone seems to be flocking to VS Code, I thought I’d add my vote for Atom. I’m still a fan, thanks GitHub!

unsplash-logoFeatured image by Luca Bravo