My Blog: Productivity πŸ“‹

I’m a prodcutivity geek. Always looking for techniques and tools to work more effectively. If something works out for me, I’ll write about it here.

A screenshot of my conversation with ChatGPT that taught me how to use evaluateJavaScript to click elements inside a WKWebView

Building a ChatGPT App With the Help of ChatGPT

Thursday, 29 December, 2022

When I started prototyping Chatterbox for ChatGPT, I decided - as an experiment - to utilize ChatGPT in the process. I know, so meta, right? Here are some of my observations, thoughts and takeaways from that experiment.

Getting Started

I wanted to build the native UI with SwiftUI (+AppKit where necessary) and I knew I’d want to embed the actual ChatGPT website in a WKWebView. I asked ChatGPT how to interact with HTML elements from the surrounding Swift code and learned about the evaluateJavaScript method of the WKWebView class. This allowed me to prototype the app and start experimenting with different ideas and features.

ChatGPT as a Mentor πŸ§‘β€πŸ«

As I was building the prototype, I continued to ask ChatGPT in order to learn about topics, I have not encountered before (while most of my SwiftUI experience was transferable to macOS, I did learn quite a few new things about AppKit in the process). In a way, ChatGPT played a role in the development of Chatterbox - it helped me learn the skills and techniques I needed to bring the app to life. When it worked, it got me there faster than searching Google and/or Stackoverflow, but I will say that, quite often, it gave results that were either slightly wrong or completely wrong and made up.

The first case is not an issue (IMO) because I only consult it for pointers on “how to get started with something” rather than copying and pasting whole blocks of code verbatim, so fixing minor issues on the fly while implementing a solution is easy enough most of the time. The problematic part is when ChatGPT gives a completely false and made up answer but does it in a way that sounds fully confident and professional. On some occasions it hallucinated completely non-existent APIs (which sounded plausible enough). There’s something particularly disappointing about that experience because I always get my hopes up about this “super convenient magical API that would be a perfect fit for my problem” πŸ₯²

ChatGPT as a Rubber Duck 🐀

Are you familiar with the term “rubber duck debugging”? If not, you should read up on it because it is an absolutely brilliant technique! While developing Chatterbox, sometimes I would ask ChatGPT for help when encountering errors or problems. While the responses where often pretty generic and not too helpful, sometimes the mere act of formulating my question and seeing it reflected in ChatGPT’s response was enough for me to realize what the problem is πŸ’‘

Will ChatGPT become my go-to rubber duck debugging companion? No, because:

  1. Formulating questions in writing is tedious (I enjoy typing and think I’m pretty fast too, but just “talking to myself” is quicker)
  2. Anika the Radar Plushy (one of my dearest “souvenirs” from my time at Apple) would be really sad to be replaced by an AI chatbot. She’s such a loyal coding companion, never complaining and always listening to me blabbering on about all the random issues I encounter during my work ❀️

“A photo of Anika, an ant-eater plushy sitting on my desk acting as my “debugging rubberduck”

Summary

Ultimately (like many of you, I’m sure), I have come to the conclusion that ChatGPT is quite impressive and can be very useful, but it is just a tool after all - and a flawed one at that. Used as a research, learning and debugging companion (while reflecting critically about its output) it can speed things up and make you more effective. But it can also be distracting and outright confusing by “teaching you” things that don’t actually exist while sounding absolutely confident, often requiring to “manually double check with Google” after all…

It has certainly earned its place in my toolset (and is always at hand with Chatterbox’s global hot key) and I’m curious to see how it develops and how I and others will continue to find creative uses for it and ways to integrate it into our workflows. Feel free to reach out if you’d like to share any cool use cases for ChatGPT that you discovered for yourself.

A screenshot of the main window of chatterbox depicting an example conversation

New Side Project: A Native Mac App for ChatGPT

Thursday, 29 December, 2022

I’m excited to share with you a new side project that I recently launched: Chatterbox, a native macOS app that makes it easy to interact with the ChatGPT website from your desktop*

It all started when ChatGPT was released. Like many of you, I was excited to try out the new website and start chatting with the Open AI’s Chatbot. But as I was using it, I found myself frustrated by the fact that I had to stitch together multiple screenshots to share conversations with my friends. I also wanted a more convenient way to use ChatGPT on my Mac, with better OS integration and a global hotkey (kind of like “Spotlight for ChatGPT”). That’s when the idea for Chatterbox was born.

Features and Design

One of the standout features of Chatterbox is the ability to easily take screenshots of your entire conversation with a single button press or keyboard shortcut (⌘ S). And if you want to quickly delete or export those screenshots, the in-app screenshot manager makes it a breeze with drag-and-drop functionality.

But that’s not all - Chatterbox also comes with a global hotkey (βŒ₯ Space, or a custom hotkey of your choice) that allows you to summon ChatGPT from anywhere, just like Spotlight. Plus, there are convenient keyboard shortcuts for all the important actions, such as ⌘ N for “New Chat.”

The app’s UI elements are fully designed to look and feel right at home on your Mac and it even includes automatic dark mode switching based on your system settings.

I’m sharing Chatterbox for free on Gumroad. If you feel like supporting the app, you can share it with your friends or on social media, or consider leaving a tip on Gumroad.

I hope you enjoy using Chatterbox as much as I enjoyed creating it. Stay tuned for more updates on this and my other projects.

*Footnote:

The app has actually been available for over two weeks, but I have not gotten around to writing an appdate blog post for it yet πŸ˜…. I’ll try really hard to post here more regularly going forward (#newyearsresolutions πŸ™ƒ)

A New Open Source App for Christmas

Thursday, 25 December, 2014

πŸ“œ Archived

I just happened to release a new open source projectΒ this very christmas eve.Β Go For It! is a to-do list application with built-in productivity timer, that I have been working on in my spare time during the last one and a half months or so.

It has been designed with minimalism in mind, insipired by elementary OS and Gnome applications. To-do lists are stored in the Todo.txt format, which makes them easy to synchronize and maintain. The video iilustrates the application’s workflow and functionality.

More information for end users is available here and developers can find the code hosted onΒ Github.

I wish you all a merry Christmas!

More Topics