Writing
Using Mastodon to power my blog comments
· Graham MacpheeSince my article earlier this year about integrating my blog's comments with Twitter, I've now switched to power my blog comments with discussions happening on Mastodon. Here's how it works.
Artist & Engineer
· Graham MacpheeYesterday, I visited an art exhibition, the culmination of my friend's fine art degree. The skill, the thoughtfulness and the narratives of several of the pieces were impressive. Each of them came across as being a purposeful creative outlet for the artist, and this made me question how I approach design.
Tweeting media using the Twitter API
· Graham MacpheeAs part of a recent side project, I integrated Twitter with a web application, including building a way for users to sign in with Twitter and then send a tweet with media attached. This article documents my approach to implement the client and server code.
Using Twitter replies as blog comments
· Graham MacpheeWhile working on my website, I've taken some time to make it easier for people to engage in discussions with me. Most discussions I have about my articles happen on Twitter, so I've built a way to see recent conversations from Twitter when viewing articles on my website.
I asked GPT-3 for advice about digital product design
· Graham MacpheeI interviewed the well-known GPT-3 AI via the OpenAI Playground and asked questions about digital product design. Here's our unedited conversation.
Simple video recording in the browser
· Graham MacpheeWhile experimenting with the JavaScript `MediaRecorder` API in the browser, I put together this abstraction for recording. Here's an example usage: recording a 5s video, then printing the blob object URL.
Using content-type in Firebase Cloud Functions
· Graham MacpheeHere's an improvement for the “Generate Thumbnail” Cloud Function sample. Previously, the generated thumbnail had no contentType metadata parameter. Firebase provides this at the Content-Type header when the file is downloaded. To add this, you can use event.data.contentType and provide a default value of application/octet-stream (the most generic type).
Making Shout, a GIF creation app
· Graham MacpheeThinking back over the recent work I have done, I don't think I gave enough time to document my experience with a little side project from the start of the year: 'Shout' is a web app which creates colourful animated GIFs from text and images
My first user testing
· Graham MacpheeAs I write this, I have been working at [Yavi](/case-studies/yavi) for the past two months with an awesome team building a messaging app for shift-workers. In the short time I have been at Yavi, I have had a chance to go deeper in design research than I ever have in the past. I've spoken to over 20 users in interviews and testing sessions.
The language of gender
· Graham MacpheeLooking at a social construct at the root of a culture isn't easy. I have tried to take a step back in order to consider the importance of gender in the modern day, after tens of thousands of years of its development. In this article, I will discuss some of the implications on our language of operating as a non-gender-binary society, and how our language can adapt to follow this change.
My gender changed when I visited India
· Graham MacpheeI was standing in another queue before a walk-through metal detector. The sun was glinting through the thick, grey haze permeating the New Delhi sky, giving the sandstone walls of Red Fort an overbearing glow. Two lines, each with simultaneously menacing and lackadaisical police officers, posing one question: male or female?
Mental health and me
· Graham MacpheeMental health disorders have affected me and the people I care about most. It's something I have only talked about with a few people, but I feel like we all need to discuss these issues more openly. I'm going to talk about my experiences of mental health and my understanding of how important these issues and their treatment are today.
Have a lovely day.
© 2023, Graham Macphee.