Small Communities

I've been thinking about online vs real-life communities, and how in the real-world, there are many aspects that separate individuals, but also groups apart from each other. And yet, I'd estimate that most people feel more connection to people in the real world than on any online community.

For years I've had the same overarching thought in my head, that we humans simply cannot comprehend or deal with the scale that the internet has opened up to us. This both applies to things like the scope of news that is presented to us, and also when it comes to having human interactions with each other.

Traditional social networks are the worst offenders in my opinion. Especially ones who's foundations are built on everyone being connected, and having recommendation algorithms trying their hardest to force any form of interaction.

Whether it's a chef sharing their cultures cuisine via Instagram, a student sharing their learnings via X/Twitter, or a group of young people making fun videos and posting them to YouTube. There's always going to be one or many individuals/groups that won't be it's biggest fan. However, in the real world, you wouldn't expect someone to read a cook book, just to then tell the writer that they did it wrong, or go up to a group of young people and tell them that whatever they're doing, they could have done it better.

And yet online, it's quite typical to see negative replies to any form of human interaction. I don't to be hyperbolic and say that social networks encourage us to be negative to each other, but I do think that most social networks try to connect us together in ways that simply isn't natural.

We've gone from having small local communities, to what can feel like at times, having the entire world in your living room.

It's probably why some people just make their online presence completely private. Because then they can control the scope of their interaction, and avoid an abundance of negativity in the case where something was picked up by an algorithm and shown to a huge number of people.

In Ricky Gervais' show, Humanity, he had a funny segment on the typical replies you can find on Twitter. This is just a small snippet:

That’s like going into a town square, seeing a big notice board and there’s a notice with guitar lessons, and you go, "But I don’t fucking want guitar lessons!".

It's absurd behaviour, but it's pretty typical. It might to some extent be the reason why don't always feel comfortable being themselves online.

Scale changes how we interact massively. For example, the interaction that most people would have with another individual in a local pub is likely a lot different than it would be on a platform like Instagram, Twitter, or YouTube.

I don't think it's realistic, or even valuable enough for it to exist, but I have found myself sometimes wanting a more local social platform. Something like a UK-only Instagram for example, or a European-only Twitter. Because I'd assume most people in the UK are not interested in what Americans get up to on the 4th of July, and probably most Americans aren't interested in the Eurovision Song Content. These types of platforms would certainly have their own problems. But I think it just stems from me trying to invent a form of separation, where you're not by default connected to the entire world.

I guess the closest we got to small online communities were web forums. These were typically centred on a shared interest or activity, so it tended to bring somewhat likeminded people together.

Web forums still exist, but I for one don't use them anymore. However, I do think there is some good news. Because it seems like platforms like Mastodon encourages a better level of human interaction than we've seen on others.

You could argue that there's nothing stopping people behaving as they did on Twitter or Instagram, on Mastodon. But because Mastodon is not one big network, it's decentralised nature means that small (or sometimes large) communities can join together to form a federation allows both levels of interaction. It's by no means perfect, but I think it somewhat encourages people to both find a place where they feel comfortable, but also give them the choice to interact outside of their sphere.

I'm hoping that this means we're at least moving in the right direction.

Deploying a Hugo Blog Locally

I switched this blog from Ghost to Hugo a few months back, and I have to say, one my favourite parts about Hugo is that I can build my site literally anywhere. You just need three things, your blog files (config, posts, etc.), your blog theme, and also the Hugo command line tool.

Then all you need to do in the command line is run hugo server.

After that you haven't just built a bunch of static .html files. Instead, Hugo runs a local web server that live reloads on changes to your site config, blog posts, theme, etc. So it's not just a simple way of previewing your blog content, it's a literal copy of what your entire site is going to look like when it goes live.

I'm finding it to be super helpful in all sorts of situations. It's not only great to see how an individual post looks, but I can now see if it appears correctly in the archives, on the home page, how the RSS feed is generated, if the frontmatter is valid, and, of course, if the site compiles at all.

Since I write most of my blog posts on my Mac, I tend to run it at least once before I commit my changes (which, in turn deploys my blog). Just earlier today, I setup a separate CDN for all the images that are stored on this blog, and I used a local Hugo server to verify that everything had switched over correctly.

There's certainly a few downsides to using Hugo, which mostly come from it being a static site generator and not something with an API that a bunch of third-party apps can support. But things like this make me think that (at least for now) I've made the correct decision.

More Thoughts on the Type of Programmer I Am

I wrote back in July about my programming career, how it had changed, and also both what programmer I see myself as now, and what I want to become in the future. It's a reasonably long post (~1000 words), but the tldr is essentially, I joined as an iOS developer, but after some internal changes, I'm now primarily writing server applications in Java, but at the same time, other projects that are quite random, e.g. JavaScript scripts for NetSuite, Python scripts for data operations, etc.

The conclusion of that post was:

I’m starting to think that I’m just a “programmer”. No fancy specifications (or limitations), just someone that writes code in order to get things done.

And I think that's still true. But it's been in the back of my head ever since, and I'm certainly a bit more sure about the type of programmer that I want to me.

Back last year, there were some redundancies at work, primarily because they wanted to shrink the local teams responsibilities into more local projects (our headquarters is now in China). I, obviously still work there, but I did think about leaving at that moment. The problem was, I wasn't sure that if I did take redundancy, what job I would look for next. I hadn't worked in iOS for a while, and I'd only just recently started writing Java full-time. I was in a weird situation.

But after just over a year in the new role (I now both work on Java applications, third-party integrations, and also as a software architect for our Enterprise APIs), I'm enjoying it a lot more than I thought I would. And I think it's primarily down to the range of work that I get to do.

Recently, we were having an issue with an integration that we have built for a third-party system, which would communicate with one of our own REST APIs. It was a pretty hard situation to debug, because the third-party is pretty closed, and only certain customers were having these issues. But thanks to this new flexibility in my role, and probably that I'm one of the most experienced in the team, I was allowed to try to investigate/fix the problem in my own way.

My solution was to create my own tool that could help us investigate the connection to our APIs. We couldn't just use something like Postman because this API has a few non-standard authentication measures that made that impossible. But because I have experience in web development, I put together a web page, with some client-side JavaScript that could mimic as close as possible the situation that was having issues.

I'm not going to say that this little tool suddenly fixed all of our problems and I'm such a great programmer. But it made me appreciate this new role more, and made me think "hang on, I'm now the type of programmer that makes tools for myself". That felt pretty good to be honest.

I still don't know what the official title is, but I'm now more sure than ever that I don't really want to go back to iOS/mobile development full-time. I'm finding it much more enjoyable writing both server-side code, and also the various scripts, tools, and new challenges that have seemed to come with the territory.

2023 App Defaults

As many others (over 100 as I write this) have done, it's now my turn to jump on this latest trend of sharing my default apps.

You'll see that my current default apps, I'm in a bit of a weird state in regard to the software I use. Or maybe it won't seem like that, maybe it just looks like I don't have very a interesting taste. However, I do want to refine the software I use on my phone, and probably also work on a better Home Screen that can better server my day to day needs.

Hopefully reading other peoples lists will give me a bit of inspiration on how other people use their phones, and inspiure me to try other apps or solutions.

Nevertheless, here's my list of default apps. (Using Robb Knight's list, and also a few extra from myself).

  • Mail Client: Apple Mail (all platforms).
  • Mail Server: Google Workspace/Gmail.
  • Notes: Sometimes Apple notes other times Neovim.
  • To-Do: Things 3.
  • iPhone Photo Shooting: Native Camera app mostly, but Halide for serious photos.
  • Photo Editing: Capture One.
  • Photo Management: Apple Photos app.
  • Calendar: Apple Calendar app.
  • Weather: Apple Weather app.
  • Cloud File Storage: iCloud Drive.
  • RSS: NetNewsWire via Feedbin.
  • Browser: Safari mostly, but Chrome at work.
  • Chat: iMessage and WhatsApp. (Groups mainly in WhatsApp)
  • Bookmarks: I tend to forget to use bookmarks properly, and just leave browser tabs open.
  • Read It Later: Usually open browser tabs as above, but occasionally Matter.
  • Shopping Lists: Apple Reminders.
  • News: I guess X is the general way, or BBC News.
  • Music: Apple Music.
  • Podcasts: I don't listen to many at the moment, but I switch between Apple Podcasts and Overcast.
  • Password Management: A mix of iCloud and 1Password. But I'm moving away from 1Password as the Safari extension annoys me.
  • Social Networks: Mastodon (Fosstodon) via Ivory, X, Instagram, Glass, Micro.blog.
  • Sports Scores: OneFootball.
  • Code Editor: Visual Studio Code for quick edits, Neovim to feel clever, and Textastic on iOS.
  • Terminal: iTerm 2 with ZSH and Oh My ZSH.
  • Writing: 1Writer sometimes on iOS, othertimes Obsidian or Visual Studio Code.
  • Text Transformations: Text Case.
  • Package Manager: Homebrew.

Gran Canaria Photos

As you may have seen from my update on my micro blog and on social media, I've just came back from a week long trip to Gran Canaria. While I was there, I made full use of the beautiful scenery and landscapes, and took a ton of photos.

I've just finished refining a bunch of them, and I'm left with 14 photos that I'm really happy with.

Note: I took a load more photos at the coast on the last day during sunset. I'm going to edit these separately, as I think they could serve as a great wallpaper pack. But whatever happens with them, I'll post about it here.

All photos were taken on an iPhone 15 Pro Max.

Walking to the terminal. Gatwick Airport. | Full Size

Playa Taurito Beach | Full Size

Walking around Mogán. | Full Size

Lighthouse near Puerto Rico beach. | Full Size

Boats near Puerto Rico beach. | Full Size

Basket structure exposing the view from Tejeda village.| Full Size

A flowery scene in Tejeda with the views of the valleys and mountains. | Full Size

Tejeda village. | Full Size

A small village in the mountains. | Full Size

Another view of the mountains from Tejeda. | Full Size

One of many rock formations at sunset. | Full Size

Cascading waterfalls in Firgas. | Full Size

Local church in Firgas. | Full Size

Shopping centre in Las Palmas. | Full Size

Finished Software

Jose M. Gilgado talking about finished software:

Finished software is software that’s not expected to change, and that’s a feature! You can rely on it to do some real work.

Once you get used to the software, once the software works for you, you don’t need to learn anything new; the interface will exactly be the same, and all your files will stay relevant. No migrations, no new payments, no new changes.

This kind of software can be created intentionally, with a compromise from the creators that they won’t bother you with things you don’t need, and only the absolutely necessary will change, like minor updates to make it compatible with new operating systems.

I like the idea of software being finished. Especially for utility and productivity tools. And even more so for tools that people rely on. For that kind of software, I like it when things work, and stay working.

This is also something I've partially thought about my two current apps Text Case and Text Shot. Text Case is obviously a lot older, and has matured through a few big overhauls. But as of now, I'm not looking for any big new feature additions, or any redesigns. I may add more formats into the existing structure, but I think that is it.

As for Text Shot, that app is rather new. And it provides a single function, to transform text quotes into styled images. It has some basic support for colours, fonts, and even allows for Markdown formatting. But the core of the app is finished. And I think I'd like to keep it rather minimal rather than add a bunch of short-lived features.

Shot on iPhone Controversy

There seems to be a small about of controversy with Apple's recent Scary Fast event, since they've showed everyone how it was all shot using an iPhone.

The criticism seems to be along the lines of "Yeah, you used the iPhone, but you also used a ton of other camera tools and accessories.".

In my mind, this misses the point of the #shotoniphone idea. To me, shot on iPhone means that the entire filming process used an iPhone in place of where a real camera used to be.

To think that using an iPhone to film a video suddenly mean a camera dolly isn't needed, or that an iPhone torch can replace flood lights, is pretty stupid.

If an entire video can be made on an iPhone without any extra accessories at all, then that's great. But if an iPhone can slot into a big-money filming process, replacing a probably hugely expensive camera, then I think that's still something worth shouting about.

Text Case CLI 1.4

I'm on holiday in Gran Canaria this week, and whilst I was sitting on a sun lounger, I decided that I'd add a few more formats to the Text Case CLI tool.

Coming in the latest release (version 1.4), are 5 more formats which are all different counts:

  • countCharacters -Count number of characters.
  • countCharactersExclWhitespace - Count number of characters, excluding any whitespace characters.
  • countWords - Count number of words.
  • countLines - Count number of lines.
  • countLinesExclBlanks - Count number of lines, excluding any blank lines.

That now means Text Case CLI has 49 different formats.

You can find installation instructions on the Text Case CLI GitHub repo.

While you're there, I'd encourage you to show any appreciation with a star or a watch, since I'd like to eventually move this tool to an official Homebrew cask. And one of the requirements of that is that the repo must be notable as in over 30 forks, 30 watchers, and 75 stars.

Matter as a Read Out Loud Service

If you haven't heard of Matter, it's a pretty powerful reading tool, that can serve as a basic read-it-later service, or or more complex reading system.

While I don't use it fully, I've found one feature to be very useful for when I want to read long-form posts, but while I'm doing something like playing a game or doing chores. I'm sure it has a fancy name, but it's the text-to-voice feature.

It's super easy to use, just send over an article to reader (I tend to use the Safari extension), and then inside reader, you can just press the play button to have it start reading the post to you.

send-to-matter

matter

Maybe in the future I'll use Matter for actually reading posts. But right now, it's meaning that I can read a lot more blog posts than before, and I can sit and play World of Warcraft at the same time.