Matthew Lang avatar

Matthew Lang

Web developer amongst other things

Technology

A collection of posts focusing on web technologies and personal devices.

Back to school with AI?

In a couple of weeks, it’s the start of another school year here in Scotland. Another to-do list comes with the usual items for this time of year. School uniform, school bag, topping up the meals account and many other things. I’ve added another potential item to the list.

AI subscription.

ChatGPT, Claude, Gemini and the many other AI subscription services became popular at an ideal time for my oldest. He was in his final year of school. He was curious about how it could be used to aid his homework and studies. I showed him how I use it for my own coding and learning, and its benefits.

He used it to his benefit in his first year of college and finished with good grades in his coursework. I also reinforced to him that it shouldn’t be used to do the work for him. Research, yes; learning, yes, but final essays and coursework should be his work and his work alone. He’s now off to college in the US in a couple of weeks, and I think he’ll use it well to help his studies.

My youngest is going into his second year of high school, and now I am wondering if I should be onboarding him to AI tools to help his studies. In his first year of high school, he didn’t get much homework, and trying to ensure he was on the right level for his age was difficult. My thought process behind introducing him to AI tools at this age is to show him how to use these tools correctly and not just use them as copy-and-paste tools.

AI tools are here to stay, and my hope is that by onboarding him to these tools early, he uses them correctly and enhances his learning. I’m also hoping that he finds another use for them beyond schoolwork. He’s pretty creative and has a good imagination. It’s a quality that his teachers commented on in primary school, but in high school, he’s yet to find an outlet for this. It might be that introducing him to these AI tools now would not only help his schoolwork but also provide him with access to other topics he might want to learn about.

The more I think about it, the more I am convinced that introducing him now to these tools is the right move, and in doing so, would ensure that he’s comfortable with AI tools and how to use them appropriately.

Father’s Day is just around the corner here but I managed to convince the family to let me have my gift early, a Kobo Clara BW e-reader. I’ve been wanting one of these for a while.

An open Kobo e-reader displays a page titled "Feed Your Weaker Self" beside its case.

Building my own technology radar with SVG

When I was freelancing, one of the things I did regularly was read the ThoughtWorks Technology Radar. It’s a snapshot of the different technologies that ThoughtWorks is considering and using. As a freelancer, I found it a good read as it provided a glimpse of what was happening in the web development industry. Once I started working full-time again, I stopped reading it and didn’t revisit it for a few years.

My current role is senior software engineer, but I am working towards the next role up from this one. This involves expanding my role in several ways, including learning and adopting new technologies and processes. One way I thought I could do this was to set up my own technology radar. ThoughtWorks does offer a means to run your own technology radar, but I wanted my own technology radar to be more straightforward.

Armed with my new knowledge of using SVG over the last couple of years, I decided to start building a technology radar of my own.

My technology radar comprises two layers of quadrants, the smaller quadrants on top of the bigger ones, to achieve the effect of having an outer trial quadrant and an inner adopt quadrant. I used the path element to do this.

<path d="M 10 45 A 40 40 0 0 1 45 10 L 45 25 A 30 30 0 0 0 25 45 Z" fill="#e3f2fd" stroke="#2196f3" stroke-width="0.5"/>
<path d="M 20 45 A 25 25 0 0 1 45 20 L 45 45 Z" fill="#e8f5e9" stroke="#4caf50" stroke-width="0.5"/>

The tokens representing the different individual items are simply circles and text elements nested under a group tag so that I can group all the items together.

<g transform="translate(40, 35)">
  <title>TDD</title>
  <circle cx="0" cy="0" r="2" fill="#4caf50"/>
  <text font-weight="bold" x="0" y="0.5" font-size="1.5" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif">2</text>
</g>

I added a title tag to each token to achieve a hover effect with a text description of the token.

Finally, I added labels to the middle of the quadrant to indicate the two sections and each corner to indicate the type of technologies grouped in that quadrant.

I haven’t figured out how to programmatically group tokens in each quadrant with code, so for the moment, I am using SVG Viewer to place tokens in each quadrant by hand.

I have published a GitHub Gist of the technology radar with blank tokens filled in for one of the quadrants. Feel free to fork this technology radar for your own needs.

You can find my own technology radar here. I’ll be updating it as the year progresses.

No Wi-Fi, no problem

It’s day 2 of no Wi-Fi in the house after a complication occurred yesterday when a new fibre line was being installed. In the meantime, I’m using my mobile phone data to connect to work, and the big yin is using his mobile phone data to finish his college work.

Don’t get me wrong—last night was great. With no Wi-Fi, everyone had to resort to alternative forms of entertainment, but it was a rather relaxing night. A few things were a nuisance to overcome, but at the end of the day, that’s what they were. A nuisance.

I’d be pretty happy to have more days like yesterday.

Projects like EmojiRain make me glad we have developer-friendly social media platforms again.

Notification Nation.

I mostly have notifications turned off, with only a few apps enabled. Even then, the scope is narrowed down so that I receive a notification from that app once or twice a day.

I can’t decide whether Astropad’s Bookcase is a beneficial device or not. Yes, I’d like to read more, but not necessarily from my phone. That’s why I read from my Kindle. If you limit your device count to just the essentials, e.g., no Kindle, the Bookcase would be a good buy.

I am starting to get in the habit of copying and pasting the responses that ChatGPT gives me into my Bear Notes and then adding any changes I want to make there. Trawling through the ChatGPT history is a bit of a pain, but then it’s not really supposed for long-term storage, I suppose.

The new Reeder app probably isn't for me

Sadly, Reeder no longer supports other RSS feed clients like Feedbin and Feedly.

Why doesn’t this version of Reeder support third-party sync services?

With the new Reeder, tracking what you’ve read is based on your scroll position rather than traditional read/unread states. This design makes integration with most third-party sync services non-trivial, so support for these services is not currently planned.

Reeder Help

This change away from unread/read states on posts is probably my biggest concern with the new Reeder app. Scroll positions have been used in similar applications to determine how much you read. From my memory, I didn’t use this feature in the applications that implemented it. I was happy to start scrolling from the latest posts and scan back as far as I wanted. It’s early days, though, and I haven’t even added any significant number of feeds to Reeder to see how effective this will work.

That is the beauty of unread/read states, though. Minimal thinking is required to determine what’s left to read. I know from a glance what I need to catch up on. Scroll positions require me to scroll to catch up to the point where there’s nothing left in my timeline to see. I would much rather click through collections of feeds and see precisely what’s left to read.

For now, though, I’ll keep Reeder Classic on my iPhone, but I can see myself using Feedbin’s iOS app instead of Reeder Classic over time. I imagine there will come a time when Reeder Classic won’t be supported. When that time comes, I would prefer to use an alternative to Reeder Classic daily rather than be forced to make the change away from it.

I’m unsure how I feel about the AI Chatbot feature in the latest Firefox release. Granted, it’s part of Firefox Labs, an optional experimental feature, but I still don’t see a real need for it.

The downside to getting some new tech in the house is the need for follow-up purchases: screen protectors, cases, and sleeves.

We upgraded our youngest’s old 7th-generation iPad to a new 10th-generation iPad. I reset the old one, which I now use for reading and surfing. Usually, we re-cycle devices down the way to the boys, but our youngest needed a new one for high school. Happy to take the old one!

I like the new Journal feature by 37signals included in their Hey product. I’ll explore this for a few weeks as I’m also trying Apple’s Journal app instead of Day One.

Turn your phone into a dumb phone.

I love this, and I will definitely try some aspects of it. However, I can’t say if I’ll go the whole way and do everything in this video. If you prefer to read, there’s also a web page with instructions.

Procreate is taking a stand on AI

Procreate’s stand on AI​ should be applauded.

We’re here for the humans. We’re not chasing a technology that is a moral threat to our greatest jewel: human creativity. In this technological rush, this might make us an exception or seem at risk of being left behind. But we see this road less travelled as the more exciting and fruitful one for our community.​ ​

​I’m glad to see that companies like Procreate still recognise the danger of AI in their products. AI has it’s uses, but it doesn’t need to be everywhere. ​

Clearing the home screen

Spurred by this post on digital minimalism, I’ve decided to do a little clearing of the decks on my iPhone.

Gone are some Twitter clients, a few news apps and a 2FA app.

I’ve replaced the Twitter clients with the web interface on Safari, and I’m glad to see that I can now log into multiple Twitter accounts. I’m still not a big fan of Twitter, but accessing it on Safari is handy.

The news apps were never really used, and I can also read the news on Safari.

I’ve been meaning to move to 1Password’s two-factor authentication for accounts for some time, but I’ve been simply putting it off.

The home screen is starting to look a little more sane again.

Ghost & Unsplash

It’s good to see the Ghost team steadily adding features to my favourite blogging platform. One such addition is the vast library of Unsplash images, which is now available from the Ghost editor.

Dropping Todoist for a while

For a while, there has been a nagging question in the back of my mind: Am I really getting the full use out of my to-do list? Two people have made me question this in the last couple of weeks.

The first was by Patrick Rhone after re-reading a post from a while back:

You see, when the things you hope to do are on some long wish list of things you hope to do, they are telling you a lie. They are telling you that you that every single thing on there is of equal importance.

Better Things by Patrick Rhone

The second was CJ Chilvers on the idea of killing your to-do list:

I’ve slowly become a convert to the idea that we need to concentrate on our calendars a whole lot more to achieve what we want in work and life. If you want it done, it must be scheduled. If it’s not scheduled, it’s just another item on your wishlist that will never be completed.

Kill Your To-do List by CJ Chilvers

I work from my calendar throughout the day for high-level things like client work and more significant projects. I use Trello and schedule cards, which I’m working on in my calendar for this. For low-level stuff like errands and such, I use Todoist. Lately, though, I’ve found that Todoist has been holding nothing more than smaller tasks, which has led me to question my value in using it.

So, I’ll stick with Trello for more significant projects and schedule work for the next few weeks into my calendar. With Todoist dropping, I’m going to look for an alternative. It might be Trello, a pocket notebook, or an index card. I haven’t decided yet.

Wanted: A folder in the iOS Photos app that deletes photos older than 30 days.

Safari beach balling when I open up a client’s repo on Github. It’s gonna be one of them days.

Quit Safari. Start Safari. Github page opens. groan

Great, now I’m mechanical keyboard shopping. #geeklife

DuckDuckGo: A Retrospective

Since I went Google free, I’ve been using DuckDuckGo as my primary search engine. It wasn’t really the accumulation of your search history that made me move to DuckDuckGo. I just wanted to try something different.

That said, one of the key things that makes DuckDuckGo different from Google is that your search isn’t tracked. When you search on DuckDuckGo, you remain anonymous. I’m not too concerned about Google archiving my search history; I just wanted to reduce my Google search footprint and see less advertising on my search results.

I have noticed that the search results differ vastly from Google’s regarding the number of results. Google simply offers more results than DuckDuckGo. It is simple numbers. Google has been around longer and has had time to build the most popular search engine. However, I can find what I am looking for on DuckDuckGo most of the time. Where the results haven’t been successful on DuckDuckGo, I can append the !g operator on my search to tell it that I want to search Google. I don’t use this often now, but having it is nice.

A benefit of DuckDuckGo is that the search results can be ad-free. None at all. I love this. Search results that are just search results and nothing more.

You need to change this in the settings, but seeing a search engine give you this choice is refreshing. For a while, it seemed that Google was hell-bent on pushing as many ads down your throat as possible on a single page.

DuckDuckGo does offer a few extras to help with other tasks besides searching. Aside from the typical math calculations you can enter, you can also do the following:

  • Expand shortened URLs with the expand command followed by the URL you wish to expand, e.g. expand [bit.ly/a](http://bit.ly/a), which will show you the expanded URL on a search results page.
  • Search other sites for things, e.g. on rails will search the Hacker News website for stories and comments containing ‘rails’.
  • Generate a password for an account. For example, password 15 strong will generate a strong password of 15 characters.

DuckDuckGo also provides operators that you can use in your searches. It simply means that you can search through other sites right from DuckDuckGo. I use it often for searches on Amazon using !a and Wikipedia using !w. Couple these with searching DuckDuckGo from Alfred, and I have a fast and easy way of searching DuckDuckGo and other sites.

Since I started using DuckDuckGo, I’ve been impressed with its results and capabilities as a search engine. Every day, I learn new shortcuts and ways of searching. That means less mouse clicks for me and less time spent tracking down the search box on other websites. It’s flexible and fast and well worth checking out if you’re looking for an alternative to not just Google but also Yahoo and Bing.