Tom Almeida

The curious case of the disappearing ideas

I've taken to setting aside time in evenings to write these entries (and very late in the evenings - its currently 11:40 PM). This has mostly been fine in terms of my schedule. I have university during the day, and I also often have other activities such as choir in the early evenings, so the late evening is pretty much the only time that I can write my entries without having it potentially disturbing the rest of my day.

But this has also lead to another thing which has arguably already negatively impacted this blog - I've forgotten almost every idea of what to write by the time I reach my allotted writing time.

Sometimes, I have a good idea in the middle of the day, or something to discuss that I've just done, and either of these would be a good idea to type up as an entry. But by the time its the evening, after the vast majority of the day has gone and my focus begins to turn to the next day, I find it incredibly difficult to remember the details of my thoughts, the minutia of my activities or the ideas that came to me throughout the day. Admittedly, this isn't a particularly promising thing to admit at what is effectively the restarting of this blog, but in my opinion it is better that I am aware of this problem (especially as it would be likely to persist if never recognised) and am now able to think of methods to combat it.

One potential idea for me to do away with my structured day and instead to write whenever the ideas come to me. This is somewhat tempting, because starting to put down ideas when they are fresh often means that the ideas will all be left semi-formed for me to come back to later to fill in. I could quite easily see (however unlikely) my drafts folder reaching peak capacity, with too many half-formed (and likely duplicated) ideas left strewn around that I am left with the paralysis of too many choices. The main reason why I wouldn't necessarily want to do this approach, however, is because of the structure that I need for the rest of my life. I'm currently in the final semester of my Masters, and as I have previously mentioned, I am in the process of writing my thesis. Writing a thesis is a time consuming process, but I am also taking a full course-load in addition to my thesis, resulting in even more time being dedicated to university. Thus, I require a large amount of rigid structuring of my day in order to ensure that I am able to get all the work of the semester done (and its arguable that I still don't have enough structure to comfortably make it to the end of semester with full marks).

Another idea is to note down ideas in a journal of sorts, with none of the ideas as fleshed out as they would be (this is arguably just a variation on the above). I already keep a small Moleskine journal on me to keep track of my tasks for the day, which has often proved invaluable in ensuring I don't forget assessments. Without modifying my day much, I could quite easily take short notes of my day and my ideas for this blog. The disadvantage of this approach is simply that I would likely need to provide myself some context for each thought in order for my previous thoughts for each topic to be able to be recanted as I had originally thought. Even of the topics I have already covered, if I had just written the title in my journal, I doubt that I would have been able to restate all of the points that I have.

Even as I struggle with this, I am lead to be incredibly impressed with the various YouTubers that I see uploading new content on a regular basis. Whilst it is arguable that some topics practically write themselves (product reviews or political news come to mind), the variety work between those topics needs to be interesting for their existing audience to continue to want to watch it. I think an example of this is LinusTechTips, who upload six videos a week on their main channel (and even more on their other channels). Whilst the majority of their content is product reviews or based on technology news, in the last two weeks alone they've included videos about a Chinese x86 chip, a budget build from the jankiest origins, run a "tech support" challenge, done a video on the custom air conditioning in Linus' home, discussed a pyramid-shaped case that was requested and looked at the remaining players in the (arguably dead) sector of mp3 players. That's an incredibly wide range of topics, all of which appeal to their audience and all of which have an incredibly large number of views, but all entirely original content ideas. That they have been able to keep up with the insane schedule of new videos, all whilst keeping fresh and original ideas coming over a matter of years is incredibly impressive to me.

I suppose I should hope that I can do the same.


The word count of essays that aren't essays

As you (probably) know, I've just restarted this blog, and this is my fifth total entry. One of my goals for this blog is to try to write one entry every day for as long as I can, with the purpose of creating a habit for me to keep. My hope is that I am able to turn this blog into somewhat of a diary, a record of things that I've thought about and things that I've done, and as I continue to write, the time that is put aside for writing entries will allow me to think through and articulate ideas and concepts that I have throughout the day.

One of the interesting observations that I have already (especially considering that this is only the fifth day of doing this!) is that I've already written 3270 words (not including this entry) for this blog. That's almost as much as my research proposal for my Masters' thesis (which clocks in at 3429 words), and about half as many as my final thesis is expected to be.

3270 words in five days seems insane to me, especially considering that a good two-thirds of that was in the last two days alone, and none of these entries has taken me more than perhaps 45 minutes to write. I've certainly never before had an easy time writing a lot of words, especially in one sitting - regardless of the topic. My proposal took me close to four weeks to finish, and the complexity analysis that I wrote not long after took me nearly two weeks of straight writing (and I'm still editing it). So what makes these so different? I have a few theories.

For one, these essays are written with comparatively little research. I certainly have done research for them (my entries on contact without social media and esports probably never being mainstream both had some rudimentary research done for them), but compared to a university essay? It's not even close. The amount of time that I sank into researching my research proposal does indeed show, whilst I only have 15 references - which seems relatively paltry for a research paper - its proposal on a topic which I had no experience in. Both papers on gravitational waves and the literature on refactoring are not usually part of my daily reading. My unfamiliarity with the topics only exacerbates the issue of actually needing to read the papers. One of my references in my research proposal is a 204 page PhD thesis, upon which my research builds. Reading 204 pages takes enough time, but considering the mathematics and physics behind gravitational waves was not something I'd seen before, it took even longer for any of the content to actually make sense. So certainly, the amount of research plays a role.

Another potentially contributing factor is the style of writing. Most of my university essays are written in a very formal style, and it is important (at least to me) to be as concise as possible whilst wording any given sentence. Why spend paragraphs trying to explain something that could be explained in a sentence? (although sometimes you want to spend the paragraphs if the topic being explained may be obscure) In contrast, the writing in the blog (so far) has been mostly prose. I sit down in front of my computer with an idea, and I leave 45 minutes later with the equivalent of my thought pattern put into words. My sentences and word choices aren't as carefully chosen, and my tone is far more casual. This means that the amount of time that it takes for me to construct any given sentence is scarcely more than the amount of time it takes me to think it, and although I do edit a little before publishing and do roughly plan the order of what will be said, my typing speed whilst writing these posts is almost always approaching full speed.

Regardless of the reasons why (there may be even more that I haven't immediately thought of), I do hope that some of the apparent efficiency with which I've been able to type these words can be translated to my university work. I have a large number of essays due this semester, with each unit having on average at a little over one essay each and my thesis being due by the end of the semester. If I could somehow take some of this speed to add to my more formal essays, the coming semester will be significantly easier.


Esports will probably never "go mainstream"

This is a topic that has sat on my heart for a very long time.

When I was in my first year of university (2016), the game Overwatch, by Activision Blizzard, was released. As someone who plays a lot of games, mostly CounterStrike, and enjoyed playing Starcraft II whilst I was in high-school, I immediately hopped on board and played a lot of Overwatch. When the Overwatch League was announced in November at Blizzcon 2016, I was very hyped. Finally, esports would have a league that could go mainstream. Teams would be based out of cities, giving the chance for lots of local fans to arrive. There was a plan for creating a second and third tier leagues to make sure there was a space for new talent to develop and be discovered, and finally there would be a way to ensure that all the players had enough money to go full time. And it seemed like a real possibility.

Both traditional sport and esport organisations clearly bought into the hype as well, with the Kraft Group and Stan Kroenke, as well as Cloud9 and Envy purchasing slots in the league for $20 million USD. Top broadcast talent was moving into Overwatch as well, as Montecristo and Doa (previously best known for League of Legends commentary) and Semmler (from CounterStrike) jumped over to the Overwatch League. The start of the first season of the Overwatch League in 2018 seemed to be a success as well, with enough viewers to rival CounterStrike's majors, and plenty of exciting games to watch. But everything seemed to come crashing down over the next few years.

The commissioner of the league, Nate Nanzer, left Blizzard early into season 2, leaving the league without its (arguably) most publicly-facing figure. This was followed by a large number of other Overwatch League staff leaving as well, as well as a meta (short for "meta-game") known as GOATS, which was so dull that player and viewing numbers dwindled. There's been a number of reports that teams are all "operating in the red", and much of the broadcast talent that went to Overwatch left at the start of season 3.

So what went so wrong?

I went back to playing CounterStrike in mid-2018, and have barely looked back since. There was a brief period in time where I played both Overwatch and CounterStrike at the same, but after the GOATS meta came into full force I lost almost all interest in playing. I have, on occasion, tried to watch the Overwatch League since then, but have found it increasingly difficult as new characters and mechanics were introduced. Sigma, Ashe, Baptiste and Echo were all introduced as characters in the short months after I stopped playing, and each time I was bewildered when I saw them. How did their abilities work, what made them unique, how did they interplay with other characters? The components of the game that I could only properly understand by playing were slowly falling away with each patch, and every time I tried to watch I'd find it difficult to tell what was going on.

I've found that I have much of the same problem with League of Legends and DOTA, both of which I don't play. They both have a massive roster of characters (especially in relation to Overwatch), all with at least four unique abilities and interplay with other characters that cannot really be understood unless you have personal experience from playing. In this sense, I can't be amazed by some element of skill which I can't even grasp. Was this particular combination of abilities really hard to pull off in tandem? I have no clue, I don't play this game. Was the interplay between these two characters such that someone who won really should have lost on paper? I have no clue, I don't play this game. Was this particular tactic a mastermind choice that completely ruined any chance that the other team had to win? I have no clue, I don't play this game.

Traditional sports don't really have this problem - in comparison it's easy to tell if something is difficult. Watching a player in AFL jump over four other extremely muscular players to snatch a ball out of the air is impressive purely off of the fact that I am human, and I know that I'd have no chance. Watching soccer players curl shots into the top corner of a goal is impressive purely based on it looking amazing and being a clearly difficult task. Impressive saves in by goalkeepers boggle the mind with their quick reactions and fast movement, and I would (I think) be able to tell that even if I had never played a game of soccer in my life. I wouldn't be able to discuss tactics much without either playing myself or watching an inordinate number of games (much like esports), but the barrier to enjoyment and watching apparently spectacular plays is much, much lower.

In addition, the ruleset by which interactions occur between players is much simpler in traditional sports. I think that the simpleness of a ruleset can be modelled by how easy it to describe the objectives of the game. Most traditional sports are, at their core, relatively simple: Do some objective more times than someone else. Soccer - put the ball into the opponent's goal more times than the other team without the ball touching your arms; Basketball - put the ball into the opponent's hoop more times than the other team; NFL - run the ball into the opponent's area more times than they do to you. These simple end objectives may have some complicating factors - different point systems depending on where you shoot from for basketball or the offside rule in soccer - but even these are simple and intuitive. Esports, on the other hand, is another beast entirely - try explaining how to win a game of League of Legends to someone without any context. The lanes and towers and inhibitors before even getting to the base add a layer complexity which is only made worse by the Baron and Dragon (especially now that there are different Dragon types). This is even further compounded by the skill system, the levels of the characters, the abilities and the concept of a "build". I can intuitively tell that destroying a tower in one of the lanes gets you closer to winning League, the reason behind Baron or any of the Dragons is a different matter entirely.

Even the (arguably) simplest esport, CounterStrike, suffers this problem to some extent. It's much more difficult to explain the roles of the Terrorists and Counter-terrorists and the "phases" of the game (pre-plant and post-plant) than it is to explain the basic premise of soccer, even though it is inherently impressive to watch someone land three one-deags, and easy to tell why winning a round with pistols against rifles is impressive. Whilst it is easy to see the skill in CounterStrike, understanding goals of the game is much more difficult than in traditional sports.

This is a problem that is inherent in video games. It is difficult to make massively replayable games without some form of guaranteed variation, which in video games comes from additional complexity to the goals of the game. Would it be nearly as fun to play League of Legends if there were no items and a much smaller roster of characters? For me, at least, the answer is no (although fans Heroes of the Storm might argue that the answer is yes). Would it be as fun to play Overwatch if there were no abilities and no characters? I certainly don't think so, the difference and interplay between the different characters are part of the core reason why the game is fun. The complexities of the interplay between characters and build selection is part of the reason why these games are so successful, even if it means to a casual audience that any high-level play is unintelligible.

And it's to that casual audience that esports has to appeal if there's any chance of esports "going mainstream". There will always be more people that don't play a game than those that do play it, and it's that audience that needs to be captured. How many people do you know that watch some sport and follow their favourite team and yet hardly play that sport? I'm a rabid Tottenham Hotspurs fan, and I haven't played soccer for years, and there's many others like me. Of my friends who watch lots of sports, hardly any of them play the actual sport, instead the watching of a sport is a past time to enjoy with friends, whilst at a bar, or eating dinner. It's a break from real life, and can be followed from afar instead of requiring continual re-learning as new content is introduced.

To this end, I say that esports will never "go mainstream". The things that make the games fun are contrary to the things that make the games easy to watch casually, and if the game is easy to watch casually but not fun to play, no one will play it anyway.


It's hard to sync more than one machine

I've long seen it reported that the sales of desktop machines is decreasing (although workstations are keeping steady or growing), whilst the sales of laptops, tablets (although almost entirely the iPad) and phones have shot through the roof. Most of the reporting that I've seen has claimed that this is likely due to people not requiring more powerful machines for work or daily tasks - indeed most professions don't require a powerful computer for most work, and with the ubiquity of high performance build servers, even some engineers and programmers don't require the use of a powerful computer.

I think that this is probably part of the reason why, but there's also a bit more to it.

It feels like almost everybody has some form of cloud-based storage these days. From the previous standard-like Dropbox or Google Drive to the pre-installed iCloud or OneDrive, almost every person that I know has or uses some form of cloud storage - I even have three of them! My university provides us OneDrive, which I use for storing university-related documents, I have a Google account, which I use for storing lots of personal documents, and I also use Google Photos for storing photos from my phone (and good luck trying to tell me its the same as Google Drive).

All of this feeds into one of the major gripes I have with any primarily cloud-based solution, such as the storage solutions above - synchronization is really really really hard. I've definitely run out of fingers to count the number of times that I've tried to work locally on a synced document, only to later be told that it had caused a "conflict" with the document because I'd also tried editing it on another machine whilst I was somewhere else. Countless hours have been spent manually figuring out which of the two or three versions was actually the right one and combining them in various ways, only to figure out days later that I'd chosen the wrong document to keep.

My quest (and probably everyone else's quest as well) to try solve this issue has been long and storied. I originally started out with a Dropbox account and a dream, before moving to Google Drive after I found out that it had an additional few gigabytes of free storage space. After moving to Linux (and thus losing access to a native Google Drive client), I began using Syncthing to try to synchronize all my devices. Unfortunately, none of these ever quite felt right to me whilst I was using both a desktop computer and a laptop, as I'd typically find that the synchronization time would be long enough that (if I'd done enough work recently or left a computer unsynchronized for a few weeks) I could make myself a cup of tea or coffee with time to spare.

This eventually pushed me to my current setup, which is to use git for files that I plan on keeping locally on any machines (with separate private repositories in GitHub for each area of my life) in addition to a Google Drive account that is for strictly online content. Even this, I've found hard to maintain.

git is fantastic at version control and making sure that multiple people are able to work on different parts of the same project at the same time, but its strength is certainly not in synchronization of documents. Life using git has been made even more difficult of my own volition, by the fact that a large number of my private repositories automatically deploy to somewhere, such as this blog, or my main site (even my Masters' research and resume are repositories that are automatically built and deployed). This means that I typically want changes to be somewhat atomic, such that anybody else that sees them would be able to see a coherent document at any point on the commit tree. This habit has copied over even into repositories that are entirely private (such as my repository for university), resulting in there usually being uncommitted changes at the end of the day, which I refuse to push simply because I don't want to later have to force push.

This means that it is hard for me to do work across my multiple machines at the same time, and I can almost always guarantee that one of them is out of sync, especially as the number of repositories that I have grows. The major result of this difficulty is that I've spent less and less time on all of my machines, and more and more of it on a single machine that I can do all my work on - my laptop. After all, even if my desktop computer runs much faster, has a high refresh rate monitor attached and a significantly better keyboard, its far easier for me to just sit at a desk with my laptop and do work instead of trying to spend the time making sure that my desktop is entirely up-to-date - even if I am using git and Google Drive. Further, the entire problem of synchronization is entirely masked if I only use one machine, as opposed to the Herculean effort that I'd need to put in otherwise.

Now this leads us back to the my statement at the start of this entry that there's more to the "death" of the desktop than the non-requirement of powerful hardware - why have I picked my laptop to do all my work on, especially considering my desktop is technically superior in every way? The major reason for me is mobility. Perth is largely out of the COVID-19 pandemic (we haven't had a community infection since around May), and university has started up again, which means that I spend a significant proportion of my time at the university campus taking labs and workshops. I simply can't take my entire desktop setup with me (as much as I would love to), so I instead spend the majority of my day doing work on my laptop, and once I get home at the end of the day I don't want to spend additional effort making sure that my desktop is up to date so I can do some work on it - and I imagine there's a significant proportion of people in a similar position. People are often expected to continue doing some form of work out of the office (although I can't necessarily comment on the likelihood of this outside of the programming world, where you're only really called in when something goes horribly wrong in my experience), and as such their single device needs to be portable and thus a laptop, tablet or phone.

So, why is the desktop dying? Because of requirement of mobility and the difficulty of syncing more than one machine.

(This entry also basically lays out the reasoning for why I think that "cloud storage" such as Google Drive is actually closer to an automated backup system than a synchronization system)


Getting in contact without social media

Now that I've restarted (and somewhat revamped - I redid some of the templating) this blog, I'm left pondering a few things about how I set things up and what they actually mean for my own usage.

If you run the very excellent uMatrix or perhaps NoScript in order to prevent JavaScript or media from running without your knowledge, you will have noticed that I have (at the time of writing this) no JavaScript running at all. There's a fair bit of CSS (mostly fonts and symbols), but nowhere is there any JavaScript.

Another thing which you may (if you're particularly nosy) have noticed is that this blog is hosted on GitHub Pages. This is great in that I am able to very easily make changes without having to worry too much about deployment (I just write a markdown file and call it a day) as well as in that everything is in source control, but also not great in two very specific ways.

The first of these is that I have no clue how many people will/would/are visiting the blog (or indeed my main site), with very few options as to how to find it out. One option would be to do the old trick that is used for determining if someone has opened an email -- include an image or css file that is actually a webhook and just increases a counter. This would actually be achievable using IFTTT and a its "Webhook" connection, and is possibly a project for another day. Another option would be to introduce something like Google's Analytics (shiver) to track people as they visit. I'm loathe to voluntarily subject people to more tracking by my own volition, so arguably that's out of the question.

The second problem that I have is that there's no method for interactivity - by which I mean comments. How can I get feedback on topics on a site in which I have the only ability to add anything and there's no contact details? Blogs like Chris Siebenmann's or Chris Wellons' have easy methods for feedback, and regularly include responses to comments on previous topics as new entries. An easy methodology to contact me would also mean that if I should get anything wrong or have issues with understanding some topic, it would be easy for any readers to immediately correct me using that contact method. This problem is a little more complex than the previous in that I both have methods to solving it and do not wish to use those methods, which is further compounded by the fact that there is no way to get in contact to give me additional suggestions that I might use instead.

One potential solution is to include an email address somewhere for people to send mail to. My issue with this solution is threefold. First, I don't know what provider I should put any new mail on, or indeed what the email address should be. It would be possible to set up a Gmail (or equivalent) account, but I already have what feels like far too many Google accounts. I could potentially use/pay for mail hosting from a service provider and use this domain to receive email, however that runs into the issue of needing to pay, which the frugal university student in me cannot allow. Second, I like staying on top of all my email. I've seen many people with thousands of unread emails, and even the thought of such a scenario occurring fills me with dread. As this blog (hopefully) becomes more popular, then equally so the amount of engagement would continue, and my paltry attempts to stay on top of all my emails and reply to all those that need replying to become much more difficult.

Another potential solution to this problem would be to direct people to something like Twitter or Facebook, of which Twitter is arguably the better choice for quick feedback. I do indeed have a Twitter account that has sat dormant for as many days as I have had it, and I firmly intend to keep it that way. I've seen Twitter and other social media accounts take over people's lives to such a degree that I'm not enthused about dipping my toes in more than I need to (even though this self-imposed limitation probably means that this blog is highly unlikely to ever grow). Similarly, whilst I do have a Facebook account (which could probably be found with some rudimentary searching), I don't see messages from people that I'm not friends with, and I don't add people as friends on Facebook (or LinkedIn for that matter) that I haven't met in some capacity. All of this means that to me, at the very least, there's very little opportunity for interaction on any social media platform.

Perhaps there are other solutions that I haven't thought of to these problems, but unfortunately, at least for the time being there is no way of getting any of those solutions to me. Ah well, a problem for future me to deal with at some point.