Tumgik
corbindavenport · 6 days
Text
How I added cross-platform chapters to the Tech Tales Podcast
Tumblr media
I currently produce and edit the Tech Tales Podcast, and last month, I decided to finally try adding chapter markers to episodes. It turns out that chapter markers in podcasts is pretty complicated, especially if you want listeners to have the best possible experience across YouTube and popular podcast apps. I figured my process was interesting enough for a short blog post, and the steps explained here might help other people.
Audio podcasts are usually distributed as MP3 or MP4 audio files. The show name, episode title, artwork, description, and other data can be encoded in the file using ID3 metadata, though most podcast apps and services now take that data from the show's RSS feed or another source.
Chapter markers can also be encoded in the file using ID3 metadata, with each chapter having a title and timestamp. When Apple added support for podcasts to iTunes and iPod players in 2005, it included support for "enhanced podcasts," which could include per-chapter artwork and web links. Apple still supports chapter-specific artwork in Apple Podcasts, but the links feature seems to have vanished at some point, and per-chapter artwork doesn't seem to be well-supported outside of Apple's software.
I currently edit Tech Tales episodes with Apple's Logic Pro, and I use the markers feature to set each chapter. Audacity has a similar "labels" feature.
Tumblr media
Logic Pro only seems to save the markers as chapter metadata when exporting as a PCM/WAV file, not when I select MP3. It's also a bit complicated to export as a mono channel MP3, especially if the project tracks have stereo channels.
MP3 Chapter Data
My solution for the audio version of the podcast is to export as WAV from Logic Pro, then use the free and open-source FFMPEG tool to create a mono-channel 128kbps MP3 file with the chapter data intact.
ffmpeg -i "original.wav" -map_chapters 0 -ac 1 -b:a 128k -f mp3 "exported.mp3"
The extra step is annoying, but it does give me an MP3 file with the exact desired settings and the chapter data encoded in the file. When I re-encoded an earlier episode with those settings and uploaded it, the chapter markers showed up as expected in Apple Podcasts and Pocket Casts.
Tumblr media
There were still two problems. First, there's a video version I upload to the Tech Tales YouTube channel, and that needs chapter markers. Second, I discovered Spotify wasn't showing the chapter markers from the MP3 file, even when other players did. It turned out both problems had the same solution.
YouTube and Spotify Support
YouTube supports video chapters, which have to be added as time stamps and titles somewhere in the video description. YouTube gives you some wiggle room with the formatting: the timestamps can be anywhere in the description, and the hour isn't necessary for videos under one hour (e.g. you can have 18:30 instead of 00:18:30). I've also seen different styles for separating the timestamp from the chapter title. For example, a GamersNexus video about Intel Arc Drivers uses a dash surrounded by spaces, while other videos just put a single space between the timestamp and the title.
Tumblr media
Spotify supports a few different methods of adding chapters to podcast episodes, but none of them are MP3 encoding, which explains why the chapters weren't showing up. The easiest method, and the only one accessible to me while using SoundCloud as a host, is adding timestamps to the episode description. The format is similar to YouTube, but with a few additional requirements. There must be at least three chapters, and the first one must start at zero seconds (00:00).
Logic Pro can't export markers to a text file, and I didn't really want to type them out each time I published an episode. The best solution ended up involving two different tools. First, I use FFPROBE (a media analysis tool usually included with FFMPEG) to read chapter data from that original WAV file and convert it to JSON format.
ffprobe -i "original.wav" -show_chapters -sexagesimal -of json -loglevel error > json.txt
That gives me a text file with all the chapter data, including detailed start and end times and the titles, in JSON format. That's not the correct format for YouTube and Spotify, but it can be easily read by other tools. As far as I can tell, FFPROBE on its own can't create the format I need.
Tumblr media
The next step is using JQ to write the chapters with time stamps to a text file, using the data provided in the JSON file. I actually used Microsoft Copilot to help me write the command, because I'm not too familiar with JQ's options.
jq -r '.chapters[] | "(.start_time | split(".")[0]) (.tags.title)"' json.txt > chapters.txt
This creates a text file called chapters.txt with the time stamps and titles in the exact required format. Success!
Tumblr media
When I copy and paste that into the audio episode description, the chapters appear as expected in the Spotify desktop and mobile applications, and pasting the text into the YouTube video description adds the correct chapter markers to the video player.
Tumblr media
You can see it working on the latest Tech Tales episode on Spotify and YouTube. I didn't expect chapters support to be so annoying, but I'm glad to have a mostly-automated solution.
Doing It Yourself
I created a bash script file to run all three commands at once on my Mac, and then save the final audio MP3 and chapters text file to the Desktop. You can see it on GitHub.
You need FFMPEG/FFPROBE and JQ installed for the commands to work. Since I'm on a Mac, I installed the Homebrew package manager, then ran the below command to install both packages.
brew install jq ffmpeg
I hope this helps anyone else having similar issues with podcast chapters!
0 notes
corbindavenport · 16 days
Text
Shutting down the Wii Shop Channel Music browser extension
I released a browser extension in 2020 that played the Wii Shop Channel music in the background when you visited Amazon, Best Buy, and other online stores. I released a major update in 2022, and I've been working on a rewritten version, but I have now decided to discontinue the browser extension.
The Wii Shop browser extension needed to be significantly rewritten to comply with Google's Manifest V3 extension policies, which will go into effect in a few months. On top of that, Firefox has not implemented the same changes, so the extension would need a much more complex codebase to handle both web browsers.
More importantly, Nintendo has been increasingly litigious against unauthorized use of its intellectual property. I believe the browser extension's use of Nintendo's images and music falls under fair use, but I don't have lawyer money to defend that, and I'm no longer comfortable with one of my side projects being a potential target for Nintendo (potentially taking out my other work as collateral damage).
The Wii Shop Channel Music browser extension is now discontinued, and I have deleted the GitHub repository containing the code. I am aware there are forks and other mirrors of the project online, but I will not be working on them. The browser extensions are still available, and they will soon be updated to turn off all functionality and include a link to this blog post.
The list of shopping sites used by the extension will remain available, and nothing is changing with my ImageShare web app or other projects. I had fun working on it, and I especially enjoyed the occasional reviews from users saying it was the greatest invention of all time, but I think now is a great time to say farewell.
"But a thing isn't beautiful because it lasts." - Vision
78 notes · View notes
corbindavenport · 1 month
Text
Introducing Alt Text Creator
Tumblr media
Images on web pages are supposed to have alternate text, which gives screen readers, search engines, and other tools a text description of the image. Alt text is critical for accessibility and search engine optimization (SEO), but it can also be time-consuming, which is why I am releasing Alt Text Creator!
Alt Text Creator is a new browser extension for Mozilla Firefox and Google Chrome (and other browsers that can install from the Chrome Web Store) that automatically generates alt text for image using the OpenAI GPT-4 with Vision AI. You just right-click any image, select "Create Alt Text" in the context menu, and a few seconds later the result will appear in a notification. The alt text is automatically copied to your clipboard, so it doesn't interrupt your workflow with another button to click.
I've been using a prototype version of this extension for about three months (my day job is News Editor at How-To Geek), and I've been impressed by how well the GPT-4 AI model describes text. I usually don't need to tweak the result at all, except to make it more specific. If you're curious about the AI prompt and interaction, you can check out the source code. Alt Text Creator also uses the "Low Resolution" mode and saves a local cache of responses to reduce usage costs.
I found at least one other browser extension with similar functionality, but Alt Text Creator is unique for two reasons. First, it uses your own OpenAI API key that you provide. That means the initial setup is a bit more annoying, but the cost is based on usage and billed directly through OpenAI. There's no recurring subscription, and ChatGPT Plus is not required. In my own testing, creating alt text for a single image costs under $0.01. Second, the extension uses as few permissions as possible—it doesn't even have access to your current tab, just the image you select.
This is more of a niche tool than my other projects, but it's something that has made my work a bit less annoying, and it might help a few other people too. I might try to add support for other AI backends in the future, but I consider this extension feature-complete in its current state.
Download for Google Chrome
Download for Mozilla Firefox
2 notes · View notes
corbindavenport · 4 months
Text
The new ImageShare
Tumblr media
ImageShare is my lightweight web app for uploading and sharing images, originally created as a replacement for the Nintendo 3DS Image Share service. It has gone through a lot of code updates and migrations over the last few years to keep it compatible with aging web browsers, and now I've rolled out another update.
The new features
ImageShare still allows you to choose an image from your device, click Upload, and get a QR code linking to the image that you can easily scan with another nearby device. It's still entirely server-side PHP, so it loads quickly, even on low-end and legacy web browsers that can no longer connect to image upload services directly.
The app previously used Imgur for all image uploads, but that API isn't always reliable, so ImageShare now fully supports ImgBB as an alternative platform. You can select which service to use from the main upload page. For security reasons, images uploaded anonymously through ImgBB are deleted after two minutes, which should be long enough to save the image after scanning the QR code.
Tumblr media
There's also a new option to use ImgBB with your own account, instead of uploading anonymously, by entering an API key in the ImageShare settings. This allows images to be saved permanently to your ImgBB account (unless you delete them later), and the images are always accessible through the ImgBB site on another web browser.
I've wanted to add authenticated image uploads for a long time, so the functionality could be closer to uploading screenshots on an Xbox or PlayStation console, but it wasn't easily doable with Imgur. Just like before, images uploaded from a Nintendo 3DS console have the game title saved with the image when it's available.
Tumblr media
The downside is that the new API key feature doesn't work on the Nintendo 3DS Browser (and possibly the Wii U Browser, I haven't checked). As far as I can tell, Nintendo blocks any kind of permanent storage in that browser, even the simple cookies used to store the API key.
ImageShare also now has improved support for other legacy web browsers: it fully works in Netscape Navigator 6 from 2001, and possibly earlier versions. It also now has a proper icon when pinned to the Start menu on Windows 10 Mobile, and there are some more fixes for older iOS devices.
Tumblr media
I've taken it as a challenge to support as many old web browsers and devices as possible, at least as long as it remains practical. ImageShare also now uses the goQR.me API to generate QR code images, because the deprecated Google API previously in use has stopped working entirely.
Self-hosted ImageShare
I've also done a lot of work to make ImageShare as easy to set up on a home server or production site as possible. The dev instructions are now more detailed, and more features that were previously hard-wired in the code are now optional when setting up an ImageShare instance. It's still a Docker Compose application, so it works on Windows, Mac, and Linux hosts.
The server configuration for ImageShare supports an Imgur API key, an ImgBB API key, or both. If you set up both options, the user can choose which option they want (the ImgBB option with a custom key is always available). For example, only the ImgBB option is enabled on the main server right now (I think Imgur blocked the server's IP for too many requests, so I'm giving it a break). Plausible Analytics is also now easily configurable, with reporting for page views, basic device and browser information, upload events, and so on.
I'm not aware of any other ImageShare instances, but now is as good a time as any to set one up!
The open future
ImageShare has required a lot of work to stay functional on the Nintendo 3DS and other legacy platforms. I've gone through three hosting services: first Heroku, then DigitalOcean's App Platform, then an Ubuntu VPS through Digital Ocean. After that last migration, I reworked it to run in Docker, which has made development and troubleshooting much simpler. That has all ensured ImageShare remains functional on legacy browsers through non-secure HTTP connections, while also supporting newer devices with HTTPS.
I'm not sure how long image hosting platforms will continue working with the current infrastructure, and I do not want to deal with hosting user content. There's also the issue where the main supported device, the Nintendo 3DS, can't save settings on the browser side. I'm thinking about how best to handle the project's future with those problems.
ImageShare might eventually morph into a minimal web server that runs on a computer on your home network, which would be less vulnerable to rate limiting by APIs (or could just dump images directly to a computer). Another option would be improving the self-hosted setup and publishing ImageShare to Docker Hub, where it could be installed on any computer or server with Docker in one command. This is already a popular option for NextCloud, Plex, and other local server software, so it would probably work well for ImageShare.
I don't have any plans to shut down the current ImageShare site, unless all the image hosting APIs stop working and I don't have any options left. ImageShare has already outlived the Nintendo service it was initially designed to replace, and I'd like to keep that going.
You can learn more about ImageShare from the GitHub repository, and you can try it out from theimageshare.com. If you want to help keep this service running, please consider joining my Patreon or donating through PayPal and Cash App.
1 note · View note
corbindavenport · 9 months
Text
Introducing The Spacebar
I'm starting a new blog and newsletter for in-depth tech articles, retrospectives, and other related stuff that doesn't quite fit in here on my personal blog! It's called The Spacebar, and there are two articles live right now with more to come in the future.
I would appreciate it a lot if you subscribed via email, which will send new articles directly to your inbox — there won't be more than one per week, so it shouldn't get too spammy. You can also subscribe via RSS or follow the Mastodon account.
Check out The Spacebar
1 note · View note
corbindavenport · 10 months
Text
The new PhotoStack
PhotoStack is my web app for watermarking and editing several photos at once, and the last overhaul was in 2020. I've now updated it with a cleaner look and a more solid foundation.
I originally made PhotoStack because I needed to resize and watermark photos on a regular basis for my job at Android Police, and later XDA, and there was no cross-platform solution I was happy with. I was pretty happy with the initial public version, and then I fixed some of the biggest problems with a v2 release in 2020.
Tumblr media
I don't actually need to watermark or bulk edit photos very often these days, but PhotoStack is still an important project to me and at least a few other people. In the past month alone, it had somewhere around 1,000 unique users. It has also received positive press from ComputerWorld, Google's Project Fugu showcase, and other sources. And hey, maybe I'll need it again on a daily basis at some point.
I've been working on a new major update for PhotoStack on and off over the past few months, and it's now rolled out. The new PhotoStack is mostly a visual and organizational overhaul, as well as some code cleanup, rather than focused on adding new features.
Before now, PhotoStack was split between two domains: the landing page at photostack.app, and the editor at edit.photostack.app. Now, everything is on the same photostack.app site, with a Home page that acts as a landing page, and an Editor page with the photo editor. I've also moved Watermarks to its own page in the same navigation bar. This is pretty close to how the original PhotoStack worked — sometimes you get it right on the first try, I guess.
Tumblr media
The Home page right now just contains a few large buttons for jumping into the editor, watermarks manager, or the GitHub project, with general information about PhotoStack below that. Eventually, I do want to make it more useful, but it works fine for now.
The Editor isn't too different from the editing screen in previous versions of PhotoStack, but there are a lot of small changes. There's not a top and bottom bar anymore on mobile screens: instead, everything is crammed into the top bar, which only needs to be expanded on phone-sized displays. This gives you more room to view the preview and settings. I've spent a lot of time making this the best experience possible at all screen sizes.
Tumblr media
The export options now appear in the Export popup, instead of taking up room on the main sidebar. Print preview isn't broken anymore, so when you try to print the editor page (or click the new "Print preview" link at the bottom of the sidebar), you can print out the current preview with none of the editor visible.
Finally, the Watermarks page is where you create, edit, export, and import watermarks for use in the main editor. This UI might change eventually to something closer to the main photo editor.
Tumblr media
You might have noticed the overall design of PhotoStack is different with this update. That's because the UI framework used by PhotoStack and my other web apps, Bootstrap, now has a built-in dark theme! The new PhotoStack update uses that dark mode, which cuts back on the custom code and looks a bit cleaner.
This update also drops support for the PhotoStack wrapper app in the Google Play Store, which I unpublished a few months ago. Google makes it a pain in the ass to keep the wrapper updated and I don't want to deal with that anymore. Installing PhotoStack through Chrome or another Chromium-based browser on Android gives you the same exact experience. If you have the Android app, or you try to visit the old domain, you'll see a redirect message explaining the change.
With these changes, PhotoStack is cleaner, easier to navigate, and easier for me to maintain in the long term. There's more work to be done, but now it's better than ever. It's available now at photostack.app., and the original version remains available at classic.photostack.app for use on legacy web browsers.
0 notes
corbindavenport · 10 months
Text
Taking another look at Mastodon
Tumblr media
I talked a bit about Mastodon last year, right as the big migration from Twitter was underway. There's a lot that has changed since then, including some of my own opinions.
First, I'm getting the definitions out of the way. Mastodon is an open-source and federated social media network. "Federated" means it's made up of a bunch of independent but interconnected servers. Those servers use a protocol called ActivityPub to talk to each other, like how Gmail and Yahoo can send and receive emails between each other with IMAP. Other social media platforms use ActivityPub too, like PixelFed, which are collectively referred to as "the Fediverse."
According to FediDB, a service set up by PixelFed developer Daniel Supernault (dansup), there are somewhere around 7.5 million Mastodon accounts spread across over 12,000 servers. Roughly 1.2 million of those accounts are active users (have posted in the past month), which is down slightly from the start of the year. The last peak was in February 2023, when the platform was around 1.68 million active users.
Tumblr media
That's only part of the puzzle, though. Other software like Misskey, PeerTube, Calckey, and PixelFed are part of the same larger Fediverse network, adding more users into the mix.
The most significant event this year so far for Mastodon and other Fediverse platforms has been Reddit's collapse, as it pushed through similar API lockdowns as Twitter. Reddit isn't quite as terrible as Twitter yet, but Reddit's CEO continuously saying the dumbest shit possible is not helping. Several Reddit communities are migrating to Lemmy and Kbin, both of which support ActivityPub, which means they are intercompatible with Mastodon and other Fediverse software.
Tumblr media
If we look at FediDB again, Lemmy and Kbin are getting close to 100,000 active users, an increase of roughly 10x since the start of the month. That's pretty remarkable, especially considering both projects are far less mature than Mastodon and options for mobile apps are limited. It remains to be seen if we'll see Reddit app developers embrace these new platforms in the same way that some popular Twitter client developers did -- the only example I've seen so far is the Sync for Reddit developer working on a Lemmy client.
The next big event will likely be the launch of Meta's Twitter clone, which will probably be called "Threads," and is expected to use ActivityPub at some point. Whenever that happens, Meta's service will probably very quickly become the top server in the Fediverse ecosystem. Most of the responses to this have been in one of three camps: "this is a good thing because the Fediverse will have more users", "we should be cautious about this", and "Meta will ruin everything we've built and we're blocking them."
To be clear, that last option is usually referring to defederation: when a Mastodon/Fediverse server completely blocks all communication with a specific other server. If you're following someone on a server, and your admin defederates the server, you don't follow them anymore and can't re-follow them. This is a pretty frequent action with servers hosting illegal content or no user moderation. When the far-right social media platform Gab introduced ActivityPub support, pretty much every Mastodon server defederated with it.
I don't really know where I stand on defederating Meta's service, because we don't have all the details yet, but I can understand where people are coming from with an outright block. The Fediverse is full of people who have been pushed away or suddenly banned from Meta-owned platforms or other big social networks (LGBTQ+ people, journalists, sex workers, etc.), and those companies generally have moderation policies that are farther to the right of most Mastodon servers. It's not difficult to see a reality where user reports about posts and users on Meta's server might overwhelm Mastodon moderators, who then simply ban Meta's server instead of continuing to deal with its users. Meta also now officially allows COVID-19 misinformation, and isn't pushing back on election interference lies.
The discourse around Meta's platform, some other Fediverse drama, and the continued onboarding issues with Mastodon do make me think that Mastodon and other Fediverse platforms probably won't ever "go mainstream," which seemed more likely to me at the end of last year. There's a lot of people who completely zone out when you have to explain how servers work, or why you can't favorite a post without copying and pasting a link, or something else like that. I do still think a lot of the people raising those points are being disingenuous, and they aren't entirely the fault of the projects (you're working against years of learned behavior about centralized platforms), but that doesn't make them invalid.
However, I do think Mastodon and other Fediverse platforms are now set up for long-term success. The big migration from Twitter gave it more name recognition, a lot more apps, and support from mainstream social media tools like Buffer and WordPress Jetpack. If I'm a big company, organization, or news site, it's now so much easier to maintain a presence on Mastodon (and thus, the rest of the Fediverse) than it was a year ago. With tools like Buffer, Mastodon is just another button you click, right next to the Twitter and Facebook buttons. That's huge.
Right now, the Fediverse is basically the desktop Linux of social media. It's not mainstream, and probably won't ever be, but it's grown enough now that it can't be completely ignored anymore. Just like the Linux userbase, the Fediverse community leans more towards tech people, but there are also a lot of guys, gals, and non-binary pals on Mastodon who have other interests and are there because they just like the experience.
I'll miss the Twitter of the past, and I will miss a few very specific and small parts of Reddit, but it's so exciting to watch Mastodon and other federated social media adapt to the failure of centralized platforms. There's still a lot more work to be done, but if Twitter, Reddit, and Facebook are any indication, "going mainstream" isn't the right goal.
2 notes · View notes
corbindavenport · 11 months
Text
Tech Tales: Year Two
Tumblr media
Today, my podcast Tech Tales is two years old. The second year was an absolute blast.
The second year of Tech Tales ended up as 18 episodes, with nearly 12 hours of runtime. In total, the show now has 47 episodes, over 10K plays on audio platforms, and over 100 subscribers on YouTube.
The bulk of the second year was dedicated to telling the story of Internet Explorer, from its high-stakes antitrust lawsuit to how it shaped the internet as we know it today. I didn't anticipate dedicating 10 episodes to one topic, which was over half the show's output in year two, but I'm pretty proud with the result. Internet Explorer was so influential in technology that I wanted to do the topic the justice (heh) it deserved.
Tumblr media Tumblr media Tumblr media Tumblr media
There was a great mix of topics in the rest of the year, though. Tech Tales covered Apple's secret Project Star Trek, the Microsoft Tay chatbot, Disney's troubled Mission: SPACE simulator attraction, U2 invading everyone's iTunes libraries, and a scam crowdfunded smartphone. There was also the first Movie Club episode, where we talked about the 1995 movie Hackers, which will hopefully be the first of other episodes about tech movies.
Halfway through the year, I also gave Tech Tales its first design overhaul with a new green-and-white color scheme. This was the first time I seriously tried to make a text-based logo myself (the original logo was made by a friend), with input from others as I went along. That was pretty fun!
Tumblr media
I want Tech Tales to be an entertaining and interesting look into the technology world. More importantly than that, though, I want it to be a fun thing that is mine.
Tech Tales has a lot of overlap with my day job as a tech journalist; researching a podcast episode and researching a news topic isn't all that different. However, the work from my day job is ultimately owned by someone else because that's how capitalism rolls. The past few years of my professional career, especially the last month, have taught me how critical it is to have a product of my labor that I own and will not randomly change hands one day.
In no particular order, I would like to thank Joe Fedewa, Cody Toombs, Zachary Wander, Katie Janzen, and Ryan Gillie for being guests in year two. I also want to thank the FediFollows account on Mastodon, which promoted the show twice, each time giving the show a boost in followers on the platform and some new listeners.
You can listen to Tech Tales on your podcast player of choice. I'm so excited for what's to come.
0 notes
corbindavenport · 11 months
Text
Introducing Snappy
I've been using tools like AutoScreenCap for years to automatically capture screenshots on an interval, but I wanted something that was more cross-platform and had more features. I decided to build my own alternative: Snappy!
Tumblr media
Snappy is a Progressive Web App (PWA) that can run in any modern web browser, or it can be "installed" to look and feel more like a desktop application. It can be used to automatically capture a screenshot at a specified interval, down to one screenshot every single second. Snappy can save screenshots in PNG, JPEG, or WebP format, and can even send status updates (but not the images) to a Discord channel using webhooks, which can be useful for remote monitoring.
Snappy uses the getDisplayMedia browser API to capture your screen, just like Zoom and other web apps. In Chromium browsers (Google Chrome, Microsoft Edge, Vivaldi, etc.), the API allows Snappy to capture any screen, application window, or browser tab. It even works for tabs running in the background, which are normally off-limits to native screenshot tools. Firefox and Safari only support capturing screens and windows, and there's at least one Safari-specific bug that I haven't been able to fix yet.
Tumblr media
Snappy takes advantage of the File System Access API to save screenshots to any location on your computer. That includes folders inside cloud storage folders, so you can quickly share screenshots with other people if needed. However, only Chromium browsers have fully implemented that API. In other browsers, like Safari and Firefox, screenshots are saved to your Downloads folder.
I was looking at a few different frameworks for building a screenshot application, such as Dart or Python, but a web app ended up being the best option. Since all the screen capture functionality is provided by the browser, and the new File System Access API is pretty simple, the initial working demo of Snappy was under 100 lines of JavaScript.
Tumblr media
I know most people don't have a need for automatic screenshots, but I need it for my work on a somewhat regular basis (mostly capturing images from livestreams), and I think Snappy is already one of the best tools for the job. It might be especially useful on Chromebooks/ChromeOS, because most similar screenshot utilities aren't available on that platform.
I have some ideas for additional features, like keyboard shortcuts and camera capture support, but I consider Snappy "feature complete" already. I needed something that could take screenshots automatically and worked on more than just Windows, and Snappy does both.
You can try Snappy at thesnappy.app and the source code is on GitHub.
2 notes · View notes
corbindavenport · 1 year
Text
Peek 5.0 has arrived
Peek is a browser extension I first released in 2015, which shows popup previews for links when you hover your mouse over them. It has needed an overhaul for a while, and now Peek is better than ever.
Tumblr media
The core functionality of Peek hasn't changed, as it still shows previews for Microsoft Office files, videos, Google Docs, and other content when you hover over links, but almost everything else has changed. Peek 5.0 is a near-total rewrite and redesign. Most of the work went into a new streamlined codebase that unifies the logic for previews as much as possible.
The popup preview has a new look, with a light gray background in light mode, and an inverted color scheme for dark mode. The preview also has a shadow to help it stand out from the page, which was a problem with some site designs on older versions of Peek.
Tumblr media
Peek will also automatically match your browser's display mode, adjusting the preview content where possible. The auto switching helps Peek feel a bit more like part of your browser, rather than code injected into the web page (which it is).
Tumblr media
Most of the preview types have been updated for Peek 5.0. Previews for video files shouldn't be letterboxed inside the preview as much (it will still happen if the video is very tall or wide). Also, Google Docs and MS Office files are now rendered in partially-sandboxed IFrames for enhanced security.
Tumblr media
YouTube previews now work with shortlinks (youtu.be URLs) and YouTube Shorts. If the link is a YouTube Short, Peek will display a 16:9 popup to fit the video better, since most Shorts are in portrait orientation. Peek also now disables the in-player links and fullscreen buttons in YouTube previews.
Reddit embeds might be the most improved in Peek 5.0. Instead of accessing the Reddit API directly and showing the post title and other basic information, Peek now uses Reddit's own embed code to show a rich preview of the content. It works great with long text posts and image galleries, and can definitely save you some time - Reddit's full website is so slow these days.
Tumblr media
Finally, there are a few new preview types in Peek 5.0. Hovering over a link to an Imgur post or album will show a preview, and the same works with most links to TikTok videos. There are multiple URL formats that TikTok uses, and only one of them allows Peek to easily identify the video ID without resorting to HTML scraping. For both Imgur and TikTok, Peek uses the own site's embed code in a sandboxed IFrame, just like Reddit.
Peek 5.0 has many under-the-hood improvements as well, like enhanced URL handling (which solves some long-running bugs with certain types of links), Manifest V3 support, and updated versions of all dependencies. The welcome and settings pages have also been redesigned.
The new Peek update is available now on Google Chrome, Mozilla Firefox, and for the first time, Microsoft Edge. The source code is also available on GitHub.
Download for Google Chrome
Download for Firefox (requires Firefox v106+)
Download for Microsoft Edge
4 notes · View notes
corbindavenport · 1 year
Text
Car Bad
Like many Americans, I own a car. It's bad and I hate almost everything about it.
Tumblr media
Rewind the clock to early 2018, when I was trying to purchase a car for the first time. The car I was driving at the time, but did not own or pay for, was a complete lemon that was constantly having mechanical issues. To my younger self, it seemed logical to go for an electric car as the replacement, which can have far fewer mechanical problems. EVs are basically giant batteries with four big motors. I was well aware of most of the limitations, but I planned for them (like mapping out the charging stations and setting up accounts for them).
I bought that Leaf for about $15,000 in April 2018, which had some amount of mileage (I think around 12,000 miles?) but was in otherwise perfect condition. Was that too much to spend on the first car I owned myself? Maybe! My logic was based on the prediction that I would have basically no maintenance problems, and I would keep the car until the battery became unusable. I don't think that's any more unreasonable than buying a junk car, hoping it lives a few more years, and then swapping it for something else.
The Leaf was bad
The biggest problem with electric cars is the battery, which slowly loses its maximum capacity over time, even in modern models. I knew about this, and I knew that buying a used EV would start me at a lower maximum range. The factory range in a first-gen Leaf like that was around 120 miles, and when I bought mine, it was down to around 95 miles. Not amazing, but I was not the kind of person to go on frequent car trips, and there was always at least one rapid charging station on major roads before I would be stranded somewhere.
What I didn't know is how fast the batteries in those cars degrade. The battery cells were not actively-cooled, so hot weather and any rapid charging would put more strain than normal on the battery. Most of my recharges were over a slow 120V wall adapter, and I only use rapid chargers a handful of times, but it didn't matter. The fact that I was living in the southern United States (which is often very hot), combined with the poor design, meant that my effective range was closer to 60 miles by late 2020. Less than two years later and at only around 30,000 lifetime mileage, I was back to having a nearly-unusable car.
Tumblr media
There wasn't any realistic option for me to replace the battery pack, and I knew that I would soon be moving out of my parents' home and lose access to home charging (most apartments don't have chargers), so in October 2020 I traded in that car for a gas-powered 2020 Hyundai Kona SEL.
The Leaf was almost worthless by that point, with a trade-in value of $4,500. I could have got a bit more for the car if I sold it myself, but I my ability to drive anywhere was rapidly disintegrating at a time when I had to start apartment-hunting. In the end, the Kona and all related fees totaled around $20,000 after the trade-in.
Was it a good idea to spend even more money on another car than I did on the Leaf? Honestly, I don't know. My plan once again was to keep the car for as long as possible, and since this one was a gas car, it presumably would not self-destruct within a few years. It also had more safety features, more room inside, and so on. It's hard to know what you'll need in the future when you don't really know what the future holds, and I still had a decent amount of savings built up.
I've put a lot of miles on my Kona since then, and outside of an engine mount breaking and being repaired under warranty, I haven't had any mechanical problems. Now, everything else is the problem.
Driving is bad
Driving is terrible in almost every way imaginable. No amount of defensive driving or automatic safety features will prevent someone from hitting my car from any direction, or having a rock fall on top of my car, or me hitting some road debris that fell off a truck. Even if something happens that is 100% not my fault, my insurance will almost certainly rise by a significant margin, because there are few (if any) laws stopping insurance companies from price-gouging its customers.
The past three years have been a boodbath on US roads, with about 38,600 deaths in 2020 alone, the highest since 2007. The National Highway Traffic Safety Administration estimates that around 32,000 people died on roads in 2022, with deaths involving large trucks and pedestrians continuing to rise. Not only are countless people driving recklessly, but cars and trucks in the US are still getting bigger and heavier, which kills even more people.
I am fortunate that I have not been involved in a car accident in a long time, but even "normal" driving is insufferable in the United States. Nearly every time I drive on highways, I'm surrounded by people speeding well past the limit, or cosplaying NASCAR races by drifting back and forth between lanes without blinkers. If you need some examples, go check out r/IdiotsInCars for a few minutes.
Nighttime driving is especially horrible, because even though there are sometimes fewer people on the road, headlights from other drivers are literally blinding at times. There have been many, many times where I slow down or switch lanes so someone behind me with football stadium-tier lights will drive past me. All the while, crashed cars and memorials on roads are constant reminders that all it takes is one dipshit looking at their phone to end my life in an instant.
Alternatives are bad
You might be thinking, "wow Corbin, maybe you should stop complaining and use other modes of transportation!" Here's the fun part: I can't!
If you already have a car, the math for travel almost always works out to favor car travel, like a variation of the sunk cost fallacy. Even with current gas prices, driving myself almost anywhere is usually cheaper and faster than every other mode of transportation. I also have a dog, which I usually take with me when visiting family. If I didn't use a car in that scenario, I would instead have to pay for boarding for a few days, or take the gamble that an airline wouldn't kill or lose my pet in the process. I've wanted to try Amtrak, but the route to my family's home is longer than the maximum allowed for pets.
People much smarter than me have outlined the issues with public transportation and car dependency in the US, so I won't reinvent the wheel (pun intended). I can say that, in my own experience, the alternatives almost never win over my car except in saving some sanity.
I now have a reliable car, but I hate what it represents: thousands and thousands of dollars sunk into a metal box with wheels that gives me anxiety to use, all in pursuit of just being able to navigate the world around me. I won't even get into how drivers' insurance for young people is absurdly expensive, or how most DMVs are underfunded and time-consuming, or everything else that has consumed my limited time and money over the past few years.
In conclusion, car bad.
0 notes
corbindavenport · 1 year
Text
Share to Mastodon 2.0 is now available!
Last year I released Share to Mastodon, a browser extension that made it easy to share links, pages, and text snippets to the Mastodon social media network from your browser. It could use a few improvements, though, so I've finished a new version!
Tumblr media
The core functionality is still the same: you click the extension's button, or right-click a page or link and select "Share to Mastodon," or use the keyboard shortcut, and a small popup window appears with the text and link pre-filled. It's the same experience you get with the share buttons on sites, but integrated into the browser and customizable for whatever Mastodon server you use.
The main improvement here is support for multiple servers. It's still a one-click action if you only use one Mastodon server, but if you save more than one in the settings, you pick the one you want from a customizable list.
The list of servers is synchronized with your browser, so you'll always have your favorites within reach. The extension still loads the compose window hosted on the server itself, so no special authentication or API access is required -- if your browser is already logged in, you're good to go.
In addition to regular Mastodon servers, I've added support for Elk, a popular web client for Mastodon. If you add Elk to your list of saved servers, you can share to it just like a regular Mastodon server. This could be expanded to other web Mastodon/Fediverse clients in the future, but I'm not aware of any other popular options that support auto-filling text and links with just URL parameters.
Besides multi-server support, most of the work in this release went towards Firefox compatibility. The original version for Firefox was a backport to the earlier Manifest V2 standard, because Mozilla had not shipped Manifest V3 support yet. That changed with Firefox 109, so with a little bit of work, the extension now has a shared codebase across all browsers.
There are a few other small tweaks in this release, like an outline around the toolbar/menu icons for easier visibility on dark mode, and some bug fixes. Share to Mastodon 2.0 is rolling out now, and you can check out the source code on GitHub.
Download for Google Chrome
Download for Mozilla Firefox
Download for Microsoft Edge
2 notes · View notes
corbindavenport · 1 year
Text
I moved my personal blog to corbin.io last year, but I'm moving it back here because I'm not a huge fan of WordPress's hosting. So you'll see new stuff from me on here.
0 notes
corbindavenport · 1 year
Text
Introducing Share to Mastodon
Tumblr media
The Mastodon social media platform is rapidly growing in popularity, and as I’ve started to use it more, I’ve wanted an easier way to share links and text snippets on the platform. Browser extensions are the perfect use for that, so I made one: Share to Mastodon.
Share to Mastodon does exactly what it sounds like. Clicking the icon in the browser’s toolbar will create a popup for writing a post, with the currently-opened link and relevant text/title filled for you. You can also right-click a link on a page to share it, or select a string of text to put it in the dialog with the current page. Finally, there’s a keyboard shortcut to open the popup at any time.
Twitter, Tumblr, Facebook, and other social media networks already have share buttons all over the web, but Mastodon doesn’t — not just because it’s less popular, but also because it’s decentralized and one link won’t work for all servers. Share to Mastodon solves this by saving your home Mastodon server in the synced settings. The popup window loads your server’s own share dialog. That way, you get all the controls and features from posting with the Mastodon web app, and the extension doesn’t need API access to any of your accounts.
Share to Mastodon is available for Google Chrome, Microsoft Edge, and Firefox. Just like all my other extensions, the code is open-source and available on GitHub.
0 notes
corbindavenport · 1 year
Text
Wikipedia Search 11: Over a Decade of Searches
Tumblr media
Wikipedia Search is my longest-running software project, as it was first published on the Chrome Web Store on May 14, 2011. Over a decade later, it still makes searching Wikipedia from web browsers easier for thousands of people. I still use it almost every day.
Google is preparing to enforce the new Manifest V3 standard for extensions in Chrome, so Wikipedia Search needed a partial rewrite to continue working into the future. I also took the opportunity to update the interface and add a few minor new features, and thus, we have version 11!
The most significant visual change is the new settings page, which is a smaller and simplified panel in Chrome’s extension settings, rather than being its own entire page. It looks great in both light and dark mode, and (hopefully) does a better job of explaining each feature.
The main new feature is that Wikiwand is now an option for opening results, in addition to the regular Wikipedia site and the mobile site. Wikiwand bills itself as “the world’s leading Wikipedia reader,” with some cool display options and summary features not available on regular Wikipedia. Wikiwand has its own Chrome extension, but its code isn’t open source, like my extension. Checkmate.
The most important change in this release was the switch to Manifest V3. Thankfully, the various downgrades and limitations of the new extension format didn’t affect Wikipedia Search’s functionality at all — I just had to rewrite some of the oldest code to comply with the new requirements. With that done, Wikipedia Search will continue to work in Chrome for years to come.
Wikipedia Search 11 is rolling out now on the Chrome Web Store, and the code is available on GitHub. Here’s to another decade of easy searching!
0 notes
corbindavenport · 1 year
Text
In Defense of Mastodon
Tumblr media
Elon Musk officially completed his purchase of Twitter on October 28, and everything went to hell remarkably quickly. The move has led to the open-source Mastodon network gaining ground, and interestingly, plenty of criticism. I don’t think all the criticism is warranted, though.
Putting aside Twitter as a business, which is a whole other topic, Twitter as a platform is visibly disintegrating. Twitter has never been a perfect software product — one of the few actions of the last Twitter CEO was rolling out NFT support — or the gold standard for content moderation. Musk has now fired most of the people responsible for running Twitter’s server infrastructure, turning the website into the equivalent of a Chevy Tahoe driving on a highway with Adaptive Cruise Control enabled. It will keep coasting for a while, but features are already breaking, and it’s going to get worse. Musk also fired employees responsible for fighting misinformation and maintaining Twitter’s accessibility features.
As nearly everyone with at least three brain cells predicted, Musk has also started allowing far-right figures back onto the platform who were previously banned — seemingly without that moderation council of people with “widely diverse viewpoints” he promised in October. Jordan Peterson and Babylon Bee, who were both suspended for repeated transphobic “jokes,” are back on Twitter. Donald Trump’s account was also restored as the result of a Twitter poll on Musk’s account. Andrew Tate, an influencer who frequently promotes misogyny, racism, sexism, and get-rich-quick scams, has also returned to the platform. He’s still banned from YouTube, Facebook, Instagram, and Twitch.
It’s abundantly clear that Musk wants to turn Twitter into an unrestricted playground for shitty right-wing people. That might be a winning strategy for Twitter to become more recognizable — we all saw how often Twitter was mentioned in the news cycle during Trump’s presidency — but it’s not really a place I want to be anymore. That’s a shame, considering I’ve met many long-term friends there, and Twitter’s global search has been invaluable over the years for finding an audience for my projects and research for work.
I’ve been using Mastodon for years, and it just so happens that it became one of the most popular alternatives in the wake of Musk buying Twitter. Mastodon gained one million active users in a week, and the bot account “Mastodon Users” has been sharing a continued steady rise — it’s still reporting around 2-3,000 new accounts each hour, with around 7.5 million accounts total across the whole network (not to be confused with active accounts).
Tumblr media
Mastodon is an open-source defederated social media network. Unlike most other platforms, the network is comprised of different servers (also sometimes called “instances”) where people can make accounts. Generally speaking, anyone on any server can follow anyone on any other server, because they all use the same ActivityPub protocol for communication. It’s just like how I can send an email to a Yahoo address with my Gmail.
The network has gone through rapid growing pains. Pretty much every server has had some downtime to accommodate upgrades, while others have permanently closed public registrations. Many more servers have been created, though, and moderation generally seems to be holding up. Many of the people I talked to on Twitter have moved over, or at least are watching both places now.
The Problems with Mastodon
Tumblr media
Another complaint I’ve seen in a few places is that Mastodon is doomed because it’s not owned by a corporation, and most servers run off donations instead of more profitable advertising. Will some server admins shut down their servers in a few months, when donations can’t cover the hosting bills, or they don’t have enough free time anymore? Possibly, and there are examples of that, like mastodon.technology shutting down a few months ago. Most free software projects and services are never profitable — none of mine are — but they continue trucking on because it’s not about making money. The maintainers do it for fun, or as a learning experience for similar server work, or because they feel they are providing a public service, or all the above. That’s not setting up a product for success, but it is a model that has worked for decades in other areas of software.
A few people have also brought up Mastodon’s “support” of far-right social media networks as a reason to avoid the platform. To be clear, the Mastodon project does not officially support any servers other than its own: mastodon.social and mastodon.online. The only connection is that Gab and Trump-owned Truth Social are based on Mastodon’s publicly-available code. Truth Social isn’t connected to Mastodon’s cross-server federated network (the “Fediverse”) at all, and for the brief time Gab allowed external communication, nearly every Mastodon server and application completely blocked it.
There is a valid argument that a Mastodon server is more likely to suddenly vanish one day than Twitter or Facebook, wiping away all of someone’s data and following in the process. You can download backups of your data at any time, and asking people to follow a backup account on another server is also an option. If the server gives enough of a heads up that it is shutting down, as mastodon.technology did in its final days of operation, you can move your followers and data to a new account.
Tinfoil Hat Time
Without going too far into Alex-Jones-tinfoil-hat territory, I do think at least some criticism against Mastodon has been for personal or self-serving reasons, rather than purely logical reasons.
The most transparent example of this I have seen was from Occupy Democrats, a left-wing media outlet that is mostly known for just publishing social media bait. For a while, the organization was claiming that Mastodon was “hosting” Truth Social — the original tweet is gone, but others repeating the statement are still in the account’s retweets.
Tumblr media
The group’s Twitter posts recommended people use Tribel Social instead, which is owned by the same organization. The Twitter account has deleted those posts, but continues to push people to Tribel without publishing a corrected statement. I asked the Tribel account why it was continuing to say Mastodon supported Truth Social, and it blocked me.
On a smaller scale, I’ve seen a few people get to the part in the signup process where you have to select a server, and then just give up and claim the platform is too complicated. I totally understand not wanting to deal with that. What’s not understandable when people (not naming names, I’m not trying to harass specific individuals) use their confusion as a reason why Mastodon will never catch on with anyone. It’s literally catching on right now. Will every person on Earth use Mastodon someday? No, but Twitter isn’t anywhere near the most popular social media network either. The “Mastodon is too complex” argument has spawned some excellent memes, though.
I think some of this, especially for “influencers” or influencer-adjacent people, boils down to self-preservation. If you’re on social media primarily for clout, you don’t want to have to start an audience from scratch on another platform. That’s the same reason legacy car makers avoided electric vehicles for so long — why invest in something new (EVs) when you’ve already spent years optimizing and building the old thing (gas engines)? Many larger accounts also use third-party tools for scheduling and managing posts, such as Buffer, most of which are not compatible with Mastodon at all.
The New Frontier
Despite the limited staying power of each individual Mastodon server, the network as a whole has been around for roughly a decade. Before the migration to ActivityPub, Mastodon used the OStatus protocol, which was already used on federated social media such as StatusNet (later GNU Social) and Identi.ca. Mastodon might never “catch on” in the same way that Twitter and Facebook have, but it’s an experiment against the increasingly-capitalist and frustrating experience of closed social networks that shows no signs of slowing down. As I write this post, Tumblr is implementing support for the ActivityPub protocol, and Flickr’s CEO is floating the idea.
I invite you to check out Mastodon for yourself. I’ve enjoyed using it for a few years, and it’s even better with all the new faces showing up. You can follow me at @[email protected].
0 notes
corbindavenport · 2 years
Text
Back to the Mac
Tumblr media
I grew up around Mac computers and other Apple products, culminating in a late-2012 Mac Mini that I received around the time I started high school. I haven’t really looked back, but in the past month, Apple has won me back.
The Mac Mini
That late-2012 Mac Mini was a great computer when I first set it up, sometime in 2013 (judging by my Google Photos archives). Before then, I was splitting up my schoolwork, gaming, and personal projects across a multitude of hand-me-down and low-end PCs — my mom’s MacBook Pro, a dying iMac G5, my trusty Eee PC netbook, and an old PC tower, to name a few.
The Mac Mini was the first computer I had entirely to myself that could do everything I wanted out of a computer. It was reasonably fast, and had far more software available than the PowerPC-based Macs I was using before. I could work on my Chrome extensions (Chrome was never available on PowerPC Mac), and I played games like Civilization V and Team Fortress 2.
However, as newer releases of Mac OS X (now macOS) arrived, my Mac Mini became slower and slower. I assume Apple wasn’t optimizing OS X for spinning mechanical hard drives anymore, and the laptop-grade Core i5-3210M processor wasn’t helping.
At some point, I decided to install Windows 7 on a partition using Apple’s Boot Camp, which turned out to be much faster than OS X. Not only that, but I could play more games on Windows than Mac, and they usually ran better! Specifically, I remember Team Fortress 2 occasionally freezing on OS X, but running perfectly on Windows.
My increasing use of Windows culminated in purchasing a used Surface Pro 2 in 2015. It was faster on paper than my Mac Mini, and it could function as a tablet, laptop (with the keyboard attachment), or desktop (with the dock). In hindsight, it wasn’t particularly good at any of those form factors — it had worse battery life and a heavier build than most tablets, the keyboard cover wasn’t great, and most desktops would be better than the docked mode. But just like many people in the mid-2010s, I was a sucker for the concept of a one-size-fits-all PC.
Tumblr media
The Surface Pro mostly replaced the Mac Mini, which was eventually relegated to Plex server duty. After that point, I stuck to using PCs, either using Windows or some variant of desktop Linux. My setup for the past few years has been desktop Linux for productivity work, and a Windows partition or drive for gaming — with various Chromebooks and Android tablets thrown in the mix.
That continued all the way until now, in the middle of 2022.
The Quest for a Mail App
Email and calendar are crucial for my job. I’m currently the News Editor at How-To Geek, which means I get emails about embargoed information, clarifications from companies and readers, and other messages that ideally need to be answered (or at least read) as soon as possible. There’s also a shared work Google Calendar with events and various reminders. Besides that, I also use email and calendar for my own personal projects and communication.
I have two Google accounts, one personal and one provided by my job. I need easy access to both email inboxes, all my calendars from both accounts should be in one view, and I need push notifications. That’s something my Android phones and tablets can handle without a problem (even when using Samsung’s calendar app instead of Google Calendar), and last time I tried a similar setup with Gnome-based desktop Linux distributions it worked there too. Not Windows 10, though!
Microsoft’s built-in Mail and Calendar apps do support Google accounts, but they have not been substantially updated since the early days of Windows 10, and I’ve noticed push notifications for mail don’t really work on Windows 11. The traditional Microsoft Outlook application doesn’t officially support Google Calendar at all. The web versions of Gmail and Google Calendar are decent, but accounts are completely isolated — they have to be reloaded when switching accounts, and I can’t see a calendar view with everything from both accounts. Microsoft’s Outlook.com can import and manage multiple Google accounts, but it doesn’t have a unified view either.
There are some other web wrappers that might have done the job, but I don’t want a web wrapper. Mozilla Thunderbird was the ultimately best solution I found on Windows, even though it’s an open-source project funded almost entirely by user donations. However, it doesn’t handle calendars shared from other Google accounts well, and I noticed the app was sending duplicate notifications for some messages.
There were a bunch of other minor issues I was running into on Windows 11, but email and calendar were the main problems. I still need access to Adobe Photoshop and Lightroom, so full-time Linux isn’t an option (fuck you, Adobe), which just leaves buying a Mac.
Hello again
I bought a MacBook Air in July — specifically, the M1 Air with 8 GB RAM and 512 GB storage. That was around the time Apple started shipping the new M2-based Air, but it would have been hundreds of dollars more expensive, and I was fairly sure my usual laptop workload could be handled by the M1 chip.
Tumblr media
First, macOS is really nice. There’s a cohesive visual design across most of the operating system, which Microsoft is slowly attempting to address with Windows 11. The notification panel is also much better than on Windows or most Linux distributions, with proper support for stacking and the option to add widgets.
I tried setting up all my Google accounts and using them with Apple’s built-in Mail and Calendar, and sure enough, they worked perfectly. I have some minor gripes with both applications, so I might try some alternative apps that aren’t available on other platforms, but having reliable notifications and not waiting for web apps to load is already saving me from periodic headaches.
The benefit to joining the Apple Silicon party two years later is that nearly all popular software is now compiled natively for the M1 chip, instead of running in Apple’s Rosetta compatibility layer. Chrome, Discord, Visual Studio Code, OneDrive, and Microsoft Office all run natively on my MacBook Air. Skype, Audacity, and Steam are the main holdouts right now.
I don’t like having a significantly different setup for both my laptop and desktop, so I later bought an M1 Mac Mini with 16 GB RAM to match. I now have the Mini at my desk with a USB switch, so I can still use my desktop PC for gaming and other Windows-only tasks. Hilariously, the M1 Mac Mini looks almost identical to my late-2012 Mini.
Holy Shit, M1
I had already read many benchmarks and reviews about Apple’s custom chips over the past two years, but seeing how it impacts my specific workload is wild. Earlier this year, I bought a Surface Laptop 4 with a Ryzen 5 CPU and 16 GB RAM, which was supposed to be my laptop for the next few years. I ran the Speedometer web benchmark with the same version of Chrome across two machines, with the same mix of extensions and other processes, and the Surface was three times slower than the MacBook. I later sold the Surface to help pay for the Mac Mini.
Tumblr media
The difference in performance is noticeable in real-world use, too. Most of my apps open in less than a second, with some larger or Intel-only apps requiring a few more seconds. There’s also no cooling fan on the MacBook, and I’ve only occasionally noticed it getting warm. I couldn’t edit episodes of my Tech Tales podcast in Audacity on the Surface Laptop without the fans kicking in after a few minutes (and still leaving me with a warm laptop), while the MacBook stays cool and completely silent.
I also ran benchmarks comparing my gaming PC and the M1 Mac Mini. I built the PC a few years ago, with a first-generation AMD Ryzen 5 1600 CPU (6 cores, 12 threads, released in 2017), an Nvidia GeForce GTX 1080 graphics card, 16 GB RAM, and a 512 GB NVMe SSD. Geekbench 4 reported the Mac Mini is over twice as fast as my PC in single-core CPU performance, and 60% faster in multi-core CPU performance.
Tumblr media
I expect the single-core score would be closer if I had an Intel processor in my PC, since AMD’s Ryzen processors have lots of cores that are individually not too powerful, while Intel CPUs usually have fewer cores that are more powerful. The multi-core performance is still impressive, though.
That didn’t completely blow my mind, considering the Ryzen 5 1600 is not a new processor and was designed to split up tasks across less-powerful cores. It’s still impressive, though. The results were flipped in the graphics benchmark, with my gaming PC’s GTX 1080 easily beating the Mac Mini.
Tumblr media
The most interesting test so far has been running Planet Coaster on my PC and Mac Mini. Planet Coaster is a simulation game where you build your own amusement park, and like most simulation games, it’s more dependent on CPU performance than the GPU. I installed the game on my Mac Mini, set all the graphical settings to be identical, and loaded the same save file. The Mac Mini was only 2-4 FPS slower on average…. and Planet Coaster isn’t even native on the M1. It’s being translated to ARM instructions in real time. Now that’s cool.
The Uncertainty
Even though Apple’s hardware is clearly next-level, and macOS can handle what I need out of a computer (except playing games), I can still see some of the same problems in the company’s ecosystem that I was happy to leave behind.
For one, Apple’s product release cycle is still unpredictable with strange gaps at times. I wanted something a bit more powerful for my desktop, but there’s nothing between the $700 Mac Mini with a base M1 and the $2,000 Mac Studio with an M1 Max. The iMac lineup has the same problem. New laptops with Windows and Linux are released every week with a much wider range of hardware options.
I’m also avoiding most of Apple’s cloud and subscription services, which could make it more difficult to jump ship in the future. I use OneDrive for cloud storage, Chrome as my web browser (for now — I might go back to Firefox), Microsoft To Do for task management, Discord and Skype for communication, and so on. All those services are still available on Windows and Linux, unlike just about everything made by Apple.
Finally, the gaming situation on Mac is still pretty bleak. I don’t expect that to change unless Valve becomes interested in Mac customers again (Steam is available, but not most of Valve’s own games), or Apple starts funding big-budget Mac ports.
So, after a long time, I’m back to the Mac.
0 notes