<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>James Futhey — Posts</title>
  <link>/posts</link>
  <atom:link href="/posts/feed.xml" rel="self" type="application/rss+xml"/>
  <description>Indie founder in Taipei. Building Meeting Room 365.</description>
  <language>en</language>
  <lastBuildDate>Fri, 24 Apr 2026 16:00:00 GMT</lastBuildDate>
  <item>
    <title>Waitlist SaaS: Good Idea, or Bad?</title>
    <link>/posts/waitlist-saas-good-idea-or-bad</link>
    <guid isPermaLink="true">/posts/waitlist-saas-good-idea-or-bad</guid>
    <pubDate>Fri, 24 Apr 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/5144806630cb0a6525012d7be637ef35.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;h2&gt;What is a Waitlist SaaS?&lt;/h2&gt;
&lt;p&gt;A Waitlist SaaS is a web application designed to simplify the process for founders to add a waitlist sign-up to their product launch strategy. It sounds appealing, but is it really a good idea?&lt;/p&gt;
&lt;h2&gt;Why It Might Not Be a Good Idea&lt;/h2&gt;
&lt;h3&gt;Background&lt;/h3&gt;
&lt;p&gt;The concept of using a waitlist as a launch strategy was popularized by companies like Robinhood and Clubhouse. These companies created hype around their products by making sign-ups initially impossible, allowing only a waitlist. Users could invite friends or share on social media to move up the list. This strategy became popular for SaaS launches following these examples.&lt;/p&gt;
&lt;h3&gt;The Reality Behind Successful Launches&lt;/h3&gt;
&lt;p&gt;However, the success of Robinhood and Clubhouse wasn&amp;#39;t solely due to their waitlists. Their real strategy was leveraging FOMO (Fear of Missing Out) and hype. They over-promised on their products, creating a buzz that compelled users to share the product to move up the waitlist. The waitlist added friction to the sign-up process, which could actually hinder conversion rates.&lt;/p&gt;
&lt;h3&gt;Conversion Rates and Hype&lt;/h3&gt;
&lt;p&gt;Consider this: 100% of visitors willing to sign up for a waitlist would likely have signed up for the product immediately if it were available. The waitlist conversion rates—whether a week, a month, or two months later—cannot exceed 100%. Would removing the waitlist have slowed down the hype and FOMO driving the marketing campaign? Possibly.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In conclusion, launching a Waitlist SaaS in 2026 may not be a wise idea, especially for solo founders or small teams. While hype and FOMO can be effective launch strategies, they require a level of execution typically found in more experienced teams. A SaaS that facilitates adding a waitlist sign-up process is not likely to be a mass-market strategy that inexperienced or small teams can successfully implement. These elements are probably the least challenging parts of a more complex marketing strategy that a skilled marketing team might employ.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/5144806630cb0a6525012d7be637ef35.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Blogging, but with text again?</title>
    <link>/posts/blogging-but-with-text-again</link>
    <guid isPermaLink="true">/posts/blogging-but-with-text-again</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/aa9db4b41f7d9b0dc36947ae253aa53b.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hey there, thanks for tuning in. I thought I&amp;#39;d share a little bit about what I&amp;#39;ve been working on for the past few weeks.&lt;/p&gt;
&lt;h2&gt;Project Overview&lt;/h2&gt;
&lt;p&gt;For &lt;strong&gt;Indie.am&lt;/strong&gt;, I&amp;#39;ve been developing a blog template that allows you to publish a nicely formatted static blog. This blog is automatically generated from your audio logs recorded in the app. You simply post as you normally do, and those posts are transformed into a well-formatted blog that you can use as your primary blog.&lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;p&gt;This project involves a few key elements:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Automatic Generation&lt;/strong&gt;: Your audio logs are automatically converted into blog posts.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Editing and Customization&lt;/strong&gt;: After generation, you&amp;#39;ll need the ability to edit and add photos to these blog posts.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;User Interface Considerations&lt;/h2&gt;
&lt;p&gt;I&amp;#39;m still determining whether the editing interface should be optimized for desktop or remain within the app. Since I&amp;#39;ll be using this for my personal blog, I&amp;#39;ll experiment to see what works best for me. Afterward, I&amp;#39;ll share it with others to gather feedback and ensure it meets broader needs.&lt;/p&gt;
&lt;p&gt;Stay tuned for more updates as I continue to refine this exciting feature!&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/aa9db4b41f7d9b0dc36947ae253aa53b.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Did the AI bubble just Burst?</title>
    <link>/posts/did-the-ai-bubble-just-burst</link>
    <guid isPermaLink="true">/posts/did-the-ai-bubble-just-burst</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/d616945541dbb1002928db6ccab3269b.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hey, so the question on everybody&amp;#39;s mind today is, did the AI bubble just pop? I think no. The stock market thinks yes. Let&amp;#39;s explore why I believe that perspective is a bit short-sighted and doesn&amp;#39;t consider the bigger picture.&lt;/p&gt;
&lt;h2&gt;The Expanding Role of AI&lt;/h2&gt;
&lt;p&gt;Here&amp;#39;s how I use AI in 2025 for tasks that weren&amp;#39;t possible just 24 months ago:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Writing and Editing&lt;/strong&gt;: AI helps me write and edit blog posts.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Creative Arts&lt;/strong&gt;: I use it to create music and generate fan art.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Content Summarization&lt;/strong&gt;: It summarizes YouTube videos for me.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Transcription&lt;/strong&gt;: AI handles a lot of audio and video transcription.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Language Learning&lt;/strong&gt;: I use AI for learning new languages.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Search Replacement&lt;/strong&gt;: In many cases, AI replaces traditional Google searches.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Database Queries&lt;/strong&gt;: It assists in writing database queries, especially those not in SQL.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Calculations and Problem Solving&lt;/strong&gt;: AI helps with back-of-the-envelope calculations and thinking through problems.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Translation and Coding&lt;/strong&gt;: I use it to translate manga and even to code and build apps, just like this one.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Two years ago, these applications of AI were not possible because the models simply didn&amp;#39;t exist. We&amp;#39;re only a couple of years into this transformation, and the potential applications of AI are still largely untapped.&lt;/p&gt;
&lt;h2&gt;Limitations and Future Potential&lt;/h2&gt;
&lt;p&gt;Currently, AI can&amp;#39;t handle tasks like doing taxes or providing legal advice. The training data exists—case law is just a collection of books that someone spends years understanding. While AI might not take over the legal industry, it could make knowledge of tax law or other legal fields more accessible through well-trained models, but we&amp;#39;re not there yet.&lt;/p&gt;
&lt;h2&gt;Demand for AI Remains Strong&lt;/h2&gt;
&lt;p&gt;The demand for AI hasn&amp;#39;t changed. Despite headlines claiming that a model was trained for $6 million to compete with OpenAI&amp;#39;s cutting-edge model, I believe that&amp;#39;s mostly propaganda. Significant advancements include activating fewer parameters per token and using a mixture of experts. In the coming days, OpenAI is expected to disclose how GPT-4 Turbo was made cheaper and more resource-efficient than previous versions.&lt;/p&gt;
&lt;h2&gt;Infrastructure Challenges&lt;/h2&gt;
&lt;p&gt;Building a data center to run these models still requires hundreds of millions of dollars. It&amp;#39;s not like new models will suddenly run on different chips. They will continue to operate on H100s in data centers that require significant electricity and human resources to build and maintain. We are still not meeting the demand for AI infrastructure, as more people want to use tools like Stable Diffusion or ChatGPT than there is capacity for.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The assertion that AI demand has decreased is misleading. There are still new applications for AI models, and the infrastructure to support them is continually evolving. The claim that a model was trained for $6 million on half a billion dollars worth of GPUs is part of a larger story about the ongoing development and deployment of AI technologies.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/d616945541dbb1002928db6ccab3269b.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>How does Google Scrape library data from Itunes?</title>
    <link>/posts/how-does-google-scrape-library-data-from-itunes</link>
    <guid isPermaLink="true">/posts/how-does-google-scrape-library-data-from-itunes</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/aa31eaf5514b7641cb9698438a59a2cf.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hello! Today, I want to discuss something intriguing that caught my attention a couple of months ago and has been on my mind ever since. It appears that Google has found a way to scrape data from an iTunes music library on the same device through one of their apps. However, I&amp;#39;m uncertain which app is responsible, and it doesn&amp;#39;t seem to involve any information sharing or consensual data sharing with Google.&lt;/p&gt;
&lt;h2&gt;The Mystery of Unrelated Music Recommendations&lt;/h2&gt;
&lt;p&gt;I have a specific set of music, primarily tracks I copied into my iTunes music library years ago, which are now part of my Apple Music library. These tracks have never left the app, and I don&amp;#39;t search for these artists or songs on YouTube. Interestingly, this niche music from my library began appearing in YouTube notifications and recommendations around November or December, seemingly out of nowhere.&lt;/p&gt;
&lt;h2&gt;Unexpected YouTube Music Suggestions&lt;/h2&gt;
&lt;p&gt;YouTube started suggesting, &amp;quot;Hey, you don&amp;#39;t listen to music on YouTube. Why don&amp;#39;t you try YouTube Music? We already have all of your music from your library. You could switch right now and start listening.&amp;quot; This was surprising because my music was siloed in iTunes and Apple Music. I&amp;#39;m unaware of how Google could access it without some OAuth mechanism.&lt;/p&gt;
&lt;h2&gt;Potential Data Access Methods&lt;/h2&gt;
&lt;p&gt;In iOS app development, there&amp;#39;s a mechanism to add a &amp;quot;Sign in with Apple Music&amp;quot; button, allowing third-party apps to access data. However, it seems Google has found a way to scrape song names and artist names from the entire iTunes music library, possibly through one of their installed apps on my device. This data appears to be used to promote YouTube Music, a competitor app.&lt;/p&gt;
&lt;h2&gt;Apple&amp;#39;s Potential Concerns&lt;/h2&gt;
&lt;p&gt;It&amp;#39;s puzzling because one would assume Apple would go to great lengths to prevent a competitor app from scraping this data. Presumably, the only use for this data is to advertise within Google apps, encouraging users to migrate from Apple Music to YouTube Music. It&amp;#39;s surprising that Google has managed to achieve this, despite Apple&amp;#39;s likely efforts to prevent it.&lt;/p&gt;
&lt;h2&gt;Distinguishing from Common Misconceptions&lt;/h2&gt;
&lt;p&gt;Before jumping to conclusions, I&amp;#39;ve thought about this extensively. This isn&amp;#39;t like those instances where people Google something and then see related ads elsewhere, not understanding how tracking works. I&amp;#39;m aware that phones aren&amp;#39;t spying on us in that manner. While this situation might sound similar, I&amp;#39;ve considered it for months and can&amp;#39;t think of any way Google could access this information except through an app installed on the same device.&lt;/p&gt;
&lt;h2&gt;Possible Methods and Speculations&lt;/h2&gt;
&lt;p&gt;Perhaps it&amp;#39;s easier on macOS, and maybe Google used the Chrome binary to read my iTunes music library, which would be even more surprising. Whatever method they employed to obtain this data is likely interesting, and I imagine there are some Apple developers sending angry emails to Google about not adhering to developer terms.&lt;/p&gt;
&lt;p&gt;In conclusion, I find this situation fascinating and worth pondering. How Google managed to access this data remains a mystery, but it certainly raises questions about data privacy and app permissions.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/aa31eaf5514b7641cb9698438a59a2cf.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Indie.am Updates: RSS fixes, social sharing options</title>
    <link>/posts/indie-am-updates-rss-fixes-social-sharing-options</link>
    <guid isPermaLink="true">/posts/indie-am-updates-rss-fixes-social-sharing-options</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/3f4ef213e7b4d68fba0f4327431c2922.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;h2&gt;Recent Fixes and Improvements&lt;/h2&gt;
&lt;h3&gt;RSS Feed Fixes&lt;/h3&gt;
&lt;p&gt;I&amp;#39;ve just published some fixes to the RSS feed. Years ago, I hardcoded 2021 as the year, which caused issues with all subsequent feeds. I&amp;#39;ve now corrected this mistake. Additionally, I&amp;#39;m using ChatGPT to format transcripts into blog posts, converting Markdown to HTML. This ensures that the content is nicely formatted when opened in podcast apps.&lt;/p&gt;
&lt;h3&gt;Custom Component for Podcast Apps&lt;/h3&gt;
&lt;p&gt;I&amp;#39;ve also worked on a custom component to integrate the old Podlog. This feature allows users to click an RSS icon in the app, redirecting them to their chosen podcast app based on their platform. It&amp;#39;s a small but significant fix.&lt;/p&gt;
&lt;h2&gt;Background Work&lt;/h2&gt;
&lt;h3&gt;Transcriptions with Whisper&lt;/h3&gt;
&lt;p&gt;Transcriptions are now handled by Whisper, which provides high-quality results. However, it&amp;#39;s resource-intensive on the server. I&amp;#39;ve implemented a system that queues jobs as users browse older Indie.am podcasts, re-transcribing them with Whisper for more accurate timestamps, especially for subtitles.&lt;/p&gt;
&lt;h3&gt;Video Generation&lt;/h3&gt;
&lt;p&gt;I&amp;#39;ve reworked video generation but haven&amp;#39;t integrated it into the apps yet. This feature will be complex, involving 15 video templates. Users will be able to:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add a share button&lt;/li&gt;&lt;li&gt;Create a video&lt;/li&gt;&lt;li&gt;Choose a template from the gallery&lt;/li&gt;&lt;li&gt;Customize options&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The video generation process will take about 10 to 20 seconds. If you exit, it will save back to the item and notify you once complete. This complex UI feature is still in development.&lt;/p&gt;
&lt;h2&gt;Social Media Sharing Enhancements&lt;/h2&gt;
&lt;p&gt;I&amp;#39;ve made several improvements around social media sharing, including meta tags and adding a share button. This is essential for sharing content to other social media feeds. You can embed it in Twitter (formerly known as X), but Blue Sky doesn&amp;#39;t yet support audio posts. You can link to them, but playback issues occur due to their in-app browser.&lt;/p&gt;
&lt;h3&gt;Blue Sky Playback Issue&lt;/h3&gt;
&lt;p&gt;There&amp;#39;s a peculiar issue with Blue Sky&amp;#39;s in-app browser muting audio by default. If I share an audio post to Blue Sky and launch the podcast app via their browser, I can then return and play the audio file. It&amp;#39;s a strange behavior, and I&amp;#39;m investigating why this happens.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I&amp;#39;ve accomplished a lot and thought it would be fun to share these updates. I&amp;#39;m also testing out the long recording feature. I&amp;#39;ll stop here and see how this turns out.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/3f4ef213e7b4d68fba0f4327431c2922.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Indie Maker Update</title>
    <link>/posts/indie-maker-update</link>
    <guid isPermaLink="true">/posts/indie-maker-update</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/cdfe4c1225870a896f31b2502aa1795d.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;All right, this is probably my last Indie Maker update specifically for Indie.am. This will be my Indie Maker update in general then.&lt;/p&gt;
&lt;h2&gt;Completion of Indie.am Features&lt;/h2&gt;
&lt;p&gt;I&amp;#39;ve basically completed all the features I wanted to complete for Indie.am. Most of this is around GPT and video generation, and those things are working fairly well. I&amp;#39;ll continue to use the app and make little tweaks, but I&amp;#39;m pretty happy with where it is. This is more of one of those baseline things that I&amp;#39;m really happy that it exists again. I don&amp;#39;t have to go through TestFlight, and I want it just so I can publish my own audio blog and see how it turns out.&lt;/p&gt;
&lt;h2&gt;New Creative Pursuits&lt;/h2&gt;
&lt;p&gt;Lately, I&amp;#39;ve been focusing on a different app to stream music and working on some different creative pursuits. I&amp;#39;ve been writing music, recording, and streaming a couple of games on YouTube, which has been a lot of fun. I&amp;#39;m trying to get in the mindset of creating content in different mediums, playing around with it, and seeing what I can learn from that. I&amp;#39;m having a lot of fun.&lt;/p&gt;
&lt;h2&gt;Development Insights&lt;/h2&gt;
&lt;p&gt;I&amp;#39;ve got like four or five of these Capacitor Framework 7 Vue apps, and each one I build feels a little bit more native and polished. I&amp;#39;m going back and forth between them, trying to re-implement the things I&amp;#39;ve learned from one app to the other and solving some issues.&lt;/p&gt;
&lt;p&gt;For the PWA, I basically have to swap out Framework 7&amp;#39;s Vue router for Vue Router to use Vue with Framework 7 in a way that works and feels good. I had to figure out how to get all the animations and swipe back functionality to work. I also usually swap out Framework 7 Store for Pinia and have moved away from any Capacitor APIs unless absolutely necessary. This allows me to build the PWA straight from Vue and only use Capacitor where I need the extra functionality. Building a PWA in Vue with Framework 7 versus a Capacitor build of that PWA results in a completely different set of little works to the app.&lt;/p&gt;
&lt;h2&gt;Future Plans&lt;/h2&gt;
&lt;p&gt;I need to go back and update the Mastodon client that I created. I want to get short video working for when TikTok shuts down in a couple of days. I have a TikTok-style video feed inside of that app, but I need to swap out Vue Router for a Framework 7 Router to fix a few bugs and glitches. Once that&amp;#39;s done, I can put it back up.&lt;/p&gt;
&lt;p&gt;Other than that, I&amp;#39;ve mostly been focusing on music right now. Maybe I&amp;#39;ll share more of that in the next few days, but as far as my Indie Maker update goes, that&amp;#39;s pretty much it.&lt;/p&gt;
&lt;p&gt;Thanks for listening.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/cdfe4c1225870a896f31b2502aa1795d.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Indie Maker Update: Create Sharable Videos!</title>
    <link>/posts/indie-maker-update-create-sharable-videos</link>
    <guid isPermaLink="true">/posts/indie-maker-update-create-sharable-videos</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/b3a28144abb1c40abbf8cc35f76dd0cd.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s my update for Wednesday on the progress with Endmaker.&lt;/p&gt;
&lt;h2&gt;Polishing the App&lt;/h2&gt;
&lt;p&gt;I spent a couple of days focusing on refining the app. This involved:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Fixing various bugs&lt;/li&gt;&lt;li&gt;Adjusting visual elements&lt;/li&gt;&lt;li&gt;Correcting alignment and button positions&lt;/li&gt;&lt;li&gt;Addressing minor issues noticed during app usage&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Share Video Feature&lt;/h2&gt;
&lt;p&gt;I developed an MVP version of the &lt;strong&gt;Share Video&lt;/strong&gt; feature. This feature allows users to:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Hit the share button.&lt;/li&gt;&lt;li&gt;Create a video from a template.&lt;/li&gt;&lt;li&gt;Preview a list of templates.&lt;/li&gt;&lt;li&gt;Generate a video from the transcript that matches the selected template.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Currently, I&amp;#39;ve added six out of the first 15 templates. I found the process a bit exhausting, so I paused to polish the rest of the feature. I plan to add more templates later, which will keep me busy and I&amp;#39;m excited to see how this feature evolves.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/b3a28144abb1c40abbf8cc35f76dd0cd.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>New feature: Logo Idents!</title>
    <link>/posts/new-feature-logo-idents</link>
    <guid isPermaLink="true">/posts/new-feature-logo-idents</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/f42d5378b529befd96ca27a5092e18f6.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hey there, welcome back. I&amp;#39;m James, and this is my indie maker update for Saturday.&lt;/p&gt;
&lt;h2&gt;New Audio File Format&lt;/h2&gt;
&lt;p&gt;What you&amp;#39;re hearing is a new audio file format. Optionally, you can add a logo identity to the beginning of your personal podcast updates. This addition makes it sound a little bit more professional, a little bit more like a real podcast. However, right now, it&amp;#39;s limited to one very generic, very inoffensive logo identity.&lt;/p&gt;
&lt;h2&gt;Customization and Ease of Use&lt;/h2&gt;
&lt;p&gt;I handpicked and edited the logo to be short and very easy to add to any spoken audio track without requiring many tweaks to the way you record your audio. It works best if you start your audio in a certain way, like &amp;quot;Hey, welcome back&amp;quot; or &amp;quot;Hey, I&amp;#39;m James,&amp;quot; instead of the more typical, boring way I normally start my audio recordings.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Hopefully, if this test goes well, this will be the track that is published and introduces the new feature. Thanks for listening.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/f42d5378b529befd96ca27a5092e18f6.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Social Media broke Society. Then Elon broke Social Media. Now, There’s AI.</title>
    <link>/posts/social-media-broke-society-then-elon-broke-social-media-now-</link>
    <guid isPermaLink="true">/posts/social-media-broke-society-then-elon-broke-social-media-now-</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/68037cb7abc2ec3b94eed04b07f844da.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;h2&gt;The Erosion of Social Connections&lt;/h2&gt;
&lt;p&gt;Roughly, here&amp;#39;s what I think happened: social media broke society. There&amp;#39;s a statistic that&amp;#39;s often tracked—it&amp;#39;s the number of close friends the average adult has. In 1990, this number was around 13, but it has declined every decade. By 2020, it was down to something like one to three, which is quite alarming.&lt;/p&gt;
&lt;h2&gt;The Shift to Online Interactions&lt;/h2&gt;
&lt;p&gt;I believe what happened is that we replaced real-life social interactions with online social media interactions. These parasocial interactions with people online—whom we never actually meet or interact with, like watching YouTube videos—became even more prevalent during and after lockdown.&lt;/p&gt;
&lt;h2&gt;The Impact of Major Events&lt;/h2&gt;
&lt;p&gt;Elon Musk&amp;#39;s influence on social media and the impact of elections further deteriorated the quality of these platforms. Twitter, for instance, used to be tolerable, but now it&amp;#39;s filled with bots and garbage. The rise of AI is likely to exacerbate this issue. Not enough people have migrated to other platforms like Blue Sky.&lt;/p&gt;
&lt;h2&gt;The Rise of AI and Its Consequences&lt;/h2&gt;
&lt;p&gt;My theory is that AI models like GPT and LLaMA are becoming increasingly affordable. As they get cheaper, any platform based on text content will become completely unreliable. Websites where you scroll through a feed of text posts will turn into a mess, reminiscent of the early 2000s when bots would flood blog comment sections with spam.&lt;/p&gt;
&lt;h2&gt;The Future of Content Platforms&lt;/h2&gt;
&lt;p&gt;I think we&amp;#39;re about to experience this bot takeover on any platform that gains traction and relies on text content. It will be more bots than humans. The only way to ensure that a real person is behind a post or piece of content might be to change the format to audio or video. Text and image content, which AI can easily generate, will become so cluttered with garbage that it won&amp;#39;t be worth your time.&lt;/p&gt;
&lt;h2&gt;The Decline of Text-Based Platforms&lt;/h2&gt;
&lt;p&gt;Platforms that rely on text and image content will suffer. You&amp;#39;ll open your feed, and it will be filled with garbage, leading to frustration and eventual abandonment. Platforms like Twitter and Reddit might struggle. Reddit has some human curation through upvotes and downvotes, but if comments become 80% bot-generated, the system will collapse. Text-based platforms like Twitter, Blue Sky, and Mastodon might not survive once AI becomes ubiquitous.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/68037cb7abc2ec3b94eed04b07f844da.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Streaming Apps get zero credit for success</title>
    <link>/posts/streaming-apps-get-zero-credit-for-success</link>
    <guid isPermaLink="true">/posts/streaming-apps-get-zero-credit-for-success</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/7131d0b44667333eb624eaafe094f89f.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been working on a new app, a Progressive Web App (PWA) for music streaming. Despite its incredible performance and how much I enjoy using it daily, I hesitate to release it. Why? It&amp;#39;s due to a counterintuitive principle regarding how users perceive utility apps.&lt;/p&gt;
&lt;h2&gt;User Perception of Utility Apps&lt;/h2&gt;
&lt;p&gt;From my experience at HBO, I&amp;#39;ve learned that certain types of apps are expected to function flawlessly, yet users don&amp;#39;t necessarily care about the app itself. These apps often serve as conduits to other content, causing the app to fade into the background. Unlike video games or entertainment media, users don&amp;#39;t love the app; they love what it delivers. Consequently, they rarely leave reviews or provide feedback. In essence, you receive zero points for a perfect experience.&lt;/p&gt;
&lt;h2&gt;The Negative-Sum Game of App Reviews&lt;/h2&gt;
&lt;p&gt;The app review landscape is a negative-sum game. On the App Store, I built a tool to aggregate reviews for our app at HBO and analyzed competitor apps. A common pattern emerged: users don&amp;#39;t flood the platform with five-star reviews for a seamless experience. Instead, they leave one-star reviews for trivial negative experiences. These are users who have paid for the app for years, use it frequently, and generally have a great experience. Yet, a minor issue can provoke them to leave scathing reviews.&lt;/p&gt;
&lt;p&gt;For instance, a user might complain about a subtitle color being slightly off-white, despite the app&amp;#39;s overall success. As a developer, it can be baffling to see such minor issues result in negative reviews, especially considering the challenges overcome to make the app work.&lt;/p&gt;
&lt;h2&gt;The Reality of Utility Apps&lt;/h2&gt;
&lt;p&gt;When building a utility app or one that serves as a content delivery conduit, this is the reality you face. Users expect perfection because they&amp;#39;ve paid for it. You get zero points for excelling 29 days of the month; a single negative experience can render your app worthless in their eyes. The phrase &amp;quot;I&amp;#39;d give this app zero stars if I could&amp;quot; is a common refrain in reviews, often for seemingly insignificant problems.&lt;/p&gt;
&lt;p&gt;These issues, while minor to most, are crucial to a small subset of users. Even if you assure them that a fix is underway, satisfaction isn&amp;#39;t guaranteed. The app review scale feels like it ranges from zero to negative five.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is why, despite building a music streaming app that I might use for years, I hesitate to release it widely. It may remain a personal project shared with only a few dozen people. I thought I&amp;#39;d share this insight into the challenges of releasing a utility app.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/7131d0b44667333eb624eaafe094f89f.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Tariffs and inflation</title>
    <link>/posts/tariffs-and-inflation</link>
    <guid isPermaLink="true">/posts/tariffs-and-inflation</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/375e093fa4af54feee469616cfc88d78.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hello, welcome to my thoughts on tariffs and inflation. Here&amp;#39;s a bit of background: I sell a digital product online and have a significant number of Canadian and European customers, along with others around the world. My business extends well beyond the United States.&lt;/p&gt;
&lt;h2&gt;The Impact of Tariffs&lt;/h2&gt;
&lt;p&gt;When the idea of tariffs was introduced, I immediately started researching. I realized I needed to read the USMCA and examine Canada&amp;#39;s list of retaliatory tariffs on U.S. goods. I had to consider the implications if the U.S. imposed tariffs on Canada, Mexico, or the EU, and if retaliatory tariffs would affect my product.&lt;/p&gt;
&lt;h3&gt;Digital Goods and Tariffs&lt;/h3&gt;
&lt;p&gt;The good news is that the USMCA prohibits tariffs on digital goods. Digital goods are inherently difficult to tariff because they don&amp;#39;t cross borders in the traditional sense or go through customs. It&amp;#39;s challenging to imagine a scenario where digital goods are specifically targeted without a prolonged trade war or a significant effort from one side. Currently, neither the U.S. nor Canada has the mechanisms to impose tariffs on digital goods effectively.&lt;/p&gt;
&lt;h3&gt;The Real Issue: Customer Confidence&lt;/h3&gt;
&lt;p&gt;The real concern isn&amp;#39;t the potential 25% tariff itself—I&amp;#39;d be willing to offer a 25% discount to my customers to offset it. The core issue is the impact on customer confidence in the EU and Canada when considering purchases from U.S. companies. If the U.S. starts imposing tariffs broadly, it could erode trust and confidence in U.S. businesses.&lt;/p&gt;
&lt;h2&gt;Marketing and Messaging&lt;/h2&gt;
&lt;p&gt;To address this, I need to develop a marketing campaign that communicates our stance against tariffs. We could emphasize that we absorb the tariff costs and offer discounts to our customers who are affected by them.&lt;/p&gt;
&lt;h3&gt;Broader Implications&lt;/h3&gt;
&lt;p&gt;Even if digital goods aren&amp;#39;t directly targeted by tariffs, U.S. suppliers in Canada and the EU might face negative repercussions. Companies may instruct their procurement teams to be cautious about buying from U.S. companies if alternatives exist, due to the uncertainty tariffs introduce.&lt;/p&gt;
&lt;h2&gt;Inflation: A Misunderstood Term&lt;/h2&gt;
&lt;p&gt;Many claim that tariffs are inflationary. However, the term &amp;quot;inflation&amp;quot; is often misused. Inflation should refer to what we now call &amp;quot;monetary inflation,&amp;quot; a purely monetary construct. It&amp;#39;s important to distinguish this from price changes, as inflation is the result of market dynamics.&lt;/p&gt;
&lt;p&gt;In conclusion, while digital goods might be safe from direct tariffs, the broader implications on customer confidence and international trade relationships are significant concerns that need addressing.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/375e093fa4af54feee469616cfc88d78.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>US Steel and Aluminum Tariffs</title>
    <link>/posts/us-steel-and-aluminum-tariffs</link>
    <guid isPermaLink="true">/posts/us-steel-and-aluminum-tariffs</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/96a54be3ebabd454578bd15abc3c8c6f.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hello, everyone. Today&amp;#39;s discussion centers on the US steel and aluminum tariffs. I must say, this seems like a real rookie mistake. Imposing tariffs on inputs rather than outputs is a flawed strategy. US consumers don&amp;#39;t directly purchase steel or aluminum, nor the byproducts of imported steel and aluminum. Instead, they buy goods whose value has been increased multiple times by various companies after the initial input was taxed.&lt;/p&gt;
&lt;h2&gt;Learning from the Past&lt;/h2&gt;
&lt;p&gt;We&amp;#39;ve been down this road before. In 2018, the US imposed similar tariffs on the same countries. We have case studies available that detail the effects of those tariffs. What happened was that US producers overbuilt capacity, leading to a significant bubble. Demand only rose modestly, covering just a fraction of the additional capacity. Prices soared, outpacing the additional production created within the United States. The intended effect of shifting consumption by US manufacturers from imported, mostly Canadian steel to US steel did not materialize. Manufacturers simply moved down the list to the next cheapest alternative, finding esoteric supply chains to substitute Canadian steel.&lt;/p&gt;
&lt;p&gt;This cycle created a boom and bust scenario, harming US steel producers and manufacturers, with the benefits never materializing.&lt;/p&gt;
&lt;h2&gt;Repeating Mistakes&lt;/h2&gt;
&lt;p&gt;Now, we&amp;#39;re considering doing this again. Look at the shale industry. After experiencing a boom and bust cycle, prices rose, and they decided against building additional capacity. They learned from past mistakes and chose not to repeat them. Similarly, US steel and aluminum producers are unlikely to respond to tariffs by expanding capacity. They won&amp;#39;t rush to build new refining facilities or start extracting iron ore in Alabama and Mississippi again.&lt;/p&gt;
&lt;h2&gt;Market Dynamics&lt;/h2&gt;
&lt;p&gt;US steel and aluminum producers have found a different market than imported Canadian steel. They have a comparative advantage in quality and time to market. An entire industry exists to provide overpriced cut steel pipe quickly. They charge high prices but deliver swiftly, serving niche markets that require specific products urgently. These producers won&amp;#39;t abandon their market to shift to low-end, low-margin steel production. Instead, they&amp;#39;ll charge more for the same services, maintaining their market niche.&lt;/p&gt;
&lt;h2&gt;Policy Implications&lt;/h2&gt;
&lt;p&gt;If policymakers would read the case studies, they&amp;#39;d see the flaws in their approach. This isn&amp;#39;t a team setting goals and finding experts to implement policies effectively. They&amp;#39;re experimenting with a multi-trillion-dollar economy and industries, relying on gut feelings and untested solutions. This approach is unlikely to enhance US competitiveness or yield material benefits.&lt;/p&gt;
&lt;h2&gt;National Security Considerations&lt;/h2&gt;
&lt;p&gt;There&amp;#39;s an argument for increasing US domestic steel production for national security reasons. However, this argument is flimsy. To achieve this, investment vehicles and programs are needed to de-risk production expansion. It&amp;#39;s similar to what was done with the CHIPS Act, which de-risked chip production in the US, incentivizing companies to take risks before demand was fully reliable. The US government showed a long-term commitment to purchasing US-made goods, even at higher prices.&lt;/p&gt;
&lt;h2&gt;Strategic Partnerships&lt;/h2&gt;
&lt;p&gt;For national security, it&amp;#39;s beneficial to have Canada, our largest trading partner and ally, export all their steel, aluminum, and oil to the US. The US industrial policy over the last five decades has tailored supply chains to serve the US market. Forcing Canada to find alternatives would be counterproductive. We want to maintain strong trade ties, ensuring that Canadian industries continue to supply the US, enhancing both economic and national security.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/96a54be3ebabd454578bd15abc3c8c6f.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Android PWA Test Post</title>
    <link>/posts/android-pwa-test-post</link>
    <guid isPermaLink="true">/posts/android-pwa-test-post</guid>
    <pubDate>Fri, 03 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/0d97379440749faf2df0ba1df693b180.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hey, this is a test of posts that I&amp;#39;m creating using the Android version of the NDAM Progressive Web App. Let&amp;#39;s see if it works.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/0d97379440749faf2df0ba1df693b180.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Adobe Firefly</title>
    <link>/posts/adobe-firefly</link>
    <guid isPermaLink="true">/posts/adobe-firefly</guid>
    <pubDate>Tue, 21 Mar 2023 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/1565fece57f79d3cda4c82351273327c.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;h2&gt;What is Adobe Firefly?&lt;/h2&gt;
&lt;p&gt;Adobe Firefly is a generative AI model that Adobe has been developing for years. In collaboration with Nvidia, Adobe has been at the forefront of this technology, especially since the decline of crypto mining. Nvidia anticipated a shift in their product usage, predicting that as people moved away from buying GPUs for crypto mining, they would start purchasing them to train AI models. This prediction has proven accurate.&lt;/p&gt;
&lt;h2&gt;The Technology Behind Generative AI&lt;/h2&gt;
&lt;p&gt;Most large language models and generative AI systems don&amp;#39;t have a unique &amp;quot;secret sauce.&amp;quot; They rely on vast training datasets of images paired with text or text with classification, supplemented by human feedback. The key components are substantial financial investment, a large team, and extensive training data. This is why, shortly after the release of models like DALL-E, others like Stable Diffusion emerged. These models aren&amp;#39;t created in isolation; they are developed by those who can interpret open AI research papers and gather the necessary resources.&lt;/p&gt;
&lt;h2&gt;Adobe and Nvidia&amp;#39;s Partnership&lt;/h2&gt;
&lt;p&gt;Adobe and Nvidia, along with other companies, have been collaborating for years to generate AI services revenue. Nvidia is transitioning to become a services company alongside its hardware business. This shift isn&amp;#39;t happening in secret; information is available through press releases and on their websites.&lt;/p&gt;
&lt;h2&gt;Adobe Firefly&amp;#39;s Role in the Market&lt;/h2&gt;
&lt;p&gt;Adobe Firefly isn&amp;#39;t designed to compete directly with models like DALL-E or Stable Diffusion by selling API access. Instead, it&amp;#39;s part of a broader transition that every tech company will undergo. New spaces and markets are emerging, and companies must decide whether to build or integrate AI technology. This shift is akin to the rise of mobile and cloud technologies, offering a competitive advantage.&lt;/p&gt;
&lt;h2&gt;The Future of Creative Tools&lt;/h2&gt;
&lt;p&gt;Adobe&amp;#39;s product managers are keenly aware of the competitive landscape. Most Adobe products cater to creative professionals, and the first applications of their Sensei AI will empower creatives to achieve previously impossible tasks. This technology isn&amp;#39;t about replacing creativity but augmenting it. For instance, Adobe Stock&amp;#39;s vast image library could be complemented by AI-generated images, offering a new business line.&lt;/p&gt;
&lt;h2&gt;Imagining the Future of Adobe Products&lt;/h2&gt;
&lt;p&gt;Consider a future version of Photoshop paired with a large language model, an advanced iteration of something like Stable Diffusion. This could enable in-painting and photo editing on the fly, without requiring users to master complex commands or tutorials. The ability to interact with such a tool through speech or simple typing could revolutionize creative workflows.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Adobe recognizes the importance of being at the forefront of this technological shift. By developing elements of these advanced tools, Adobe aims to preemptively compete against potential rivals. This strategic foresight ensures Adobe remains a leader in the creative software market, ready to meet the demands of the future.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/1565fece57f79d3cda4c82351273327c.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Stable Diffusion App: Pica.so</title>
    <link>/posts/stable-diffusion-app-pica-so</link>
    <guid isPermaLink="true">/posts/stable-diffusion-app-pica-so</guid>
    <pubDate>Mon, 06 Feb 2023 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/a9ef0d0798f9da94c3713277d42e4fcc.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;In January, I found myself completely immersed in building an app centered around AI artwork generation. I dedicated about two weeks to this project, diving deep into everything related to Stable Diffusion. I experimented with running it on every laptop equipped with a GPU that I owned. The process involved creating an API for Stable Diffusion, generating images, and figuring out how to index and search them. I also explored existing open APIs that could facilitate this process.&lt;/p&gt;
&lt;h2&gt;Building the Infrastructure&lt;/h2&gt;
&lt;p&gt;To support this endeavor, I developed a new database service. I hadn&amp;#39;t used Outfit.io before, but I discovered they offer some impressive PostgreSQL cloud options. It&amp;#39;s quite neat! Additionally, I tried out Tinybird for the first time for ClickHouse. This was a game-changer for me because one of the major hurdles in using ClickHouse for personal projects, as opposed to work projects where I use it frequently, was the lack of an affordable and easy-to-use cloud hosting service for PostgreSQL. Tinybird seems to fill that gap nicely.&lt;/p&gt;
&lt;h2&gt;Developing the App&lt;/h2&gt;
&lt;p&gt;I built a Progressive Web App (PWA) and transformed it into a TestFlight Android app. The results were impressive, thanks to Capacitor. Although I don&amp;#39;t regret the learning experience—it was genuinely enjoyable—I&amp;#39;m relieved to have moved past it. As exciting as it is to generate AI artwork and build apps, I realized I wouldn&amp;#39;t want to start a company around this concept. The market feels very consumer-oriented and low-end, with unresolved copyright issues.&lt;/p&gt;
&lt;h2&gt;The Copyright Conundrum&lt;/h2&gt;
&lt;p&gt;There&amp;#39;s ongoing debate about whether Stable Diffusion itself is legally sound. The images used for training might fall under fair use, but courts could eventually rule that copyright is required for all training data. This uncertainty makes the output of these models questionable, and you might not be able to sublicense any of it legally.&lt;/p&gt;
&lt;h2&gt;Monetization Challenges&lt;/h2&gt;
&lt;p&gt;While the applications of this technology are straightforward and easy to build, it&amp;#39;s challenging to monetize them. There are countless apps available that allow users to generate images using Stable Diffusion on their phones. Despite their abundance, I don&amp;#39;t find them particularly good. However, the sheer number makes it difficult to charge for such services.&lt;/p&gt;
&lt;h2&gt;My Solution&lt;/h2&gt;
&lt;p&gt;Ultimately, I&amp;#39;ve decided to offer my app for free, covering minimal API usage costs myself. Currently, there&amp;#39;s a limit of about 30 images per day per user. I&amp;#39;ll see how sustainable this model is. If you&amp;#39;re interested, you can check it out at &lt;a href=&quot;http://pica.so&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;pica.so&lt;/a&gt;—it&amp;#39;s like Picasso, but with one &amp;#39;S&amp;#39;.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/a9ef0d0798f9da94c3713277d42e4fcc.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>You should let Figma buy Adobe, with Adobe’s Money</title>
    <link>/posts/you-should-let-figma-buy-adobe-with-adobes-money</link>
    <guid isPermaLink="true">/posts/you-should-let-figma-buy-adobe-with-adobes-money</guid>
    <pubDate>Sat, 17 Sep 2022 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/3bd02597e2c22341116a448759a69d22.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;h2&gt;The Big News&lt;/h2&gt;
&lt;p&gt;Adobe recently announced its acquisition of Figma for a staggering $20 billion, split evenly between cash and stock. This deal doubles Figma&amp;#39;s valuation and represents a 50x multiple on their reported $400 million in annual revenue. Many are questioning the logic behind such a high price tag, even considering the value of Figma&amp;#39;s talented workforce.&lt;/p&gt;
&lt;h2&gt;My Perspective&lt;/h2&gt;
&lt;p&gt;As an Adobe employee, I have no insider information on the decision to acquire Figma. However, as a designer who doesn&amp;#39;t use Adobe XD daily, I have some thoughts on the matter.&lt;/p&gt;
&lt;h3&gt;Adobe&amp;#39;s Legacy&lt;/h3&gt;
&lt;p&gt;Adobe has long been a leader in native software, dominating various verticals since the 1990s. From raster graphics with Photoshop to photo editing in Lightroom, Adobe&amp;#39;s suite has been a staple for designers. UX design traditionally happened in Illustrator and Photoshop, but these tools were never ideal for UX designers. After acquiring Macromedia, Adobe discontinued Fireworks, leaving designers to revert to Photoshop or Illustrator.&lt;/p&gt;
&lt;h3&gt;The Rise of Figma&lt;/h3&gt;
&lt;p&gt;The design landscape has evolved significantly, with Figma emerging as a cross-platform, collaborative tool that fills a gap Adobe has struggled to address. Figma&amp;#39;s dominance in this segment is undeniable, and Adobe&amp;#39;s acquisition can be seen as a strategic move to capture this market.&lt;/p&gt;
&lt;h2&gt;The Financial Puzzle&lt;/h2&gt;
&lt;p&gt;Wall Street analysts largely agree that the $20 billion price tag seems excessive, suggesting Adobe overpaid by at least 100%. However, the strategic rationale may lie in preventing competitors like Microsoft or Google from acquiring Figma and integrating it into their ecosystems.&lt;/p&gt;
&lt;h2&gt;A New Path for Adobe&lt;/h2&gt;
&lt;p&gt;This acquisition offers Adobe an opportunity to reinvent itself. The company has faced criticism for its subscription model, which many view as predatory. By integrating Figma, Adobe can reshape its image and potentially revitalize its product offerings.&lt;/p&gt;
&lt;h3&gt;The Potential for Transformation&lt;/h3&gt;
&lt;p&gt;One underreported aspect of this acquisition is the potential synergy between Figma&amp;#39;s team and Adobe&amp;#39;s ongoing projects, such as Photoshop Web and Adobe Express. By leveraging Figma&amp;#39;s expertise in web-based, collaborative design tools, Adobe could transition its traditional desktop software to more modern, web-based platforms.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;While the acquisition might seem like a simple expansion of Adobe&amp;#39;s design software dominance, it could represent a transformative moment for the company. If managed correctly, this could lead to a rebirth of Adobe, much like an inverse of the Lockheed Martin and Boeing scenario. By integrating Figma&amp;#39;s culture and innovation, Adobe could add significant value beyond the $20 billion investment.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/3bd02597e2c22341116a448759a69d22.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Contrarianism won’t make you rich</title>
    <link>/posts/contrarianism-wont-make-you-rich</link>
    <guid isPermaLink="true">/posts/contrarianism-wont-make-you-rich</guid>
    <pubDate>Fri, 15 Jul 2022 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/8325828793e91bbe4d691a69aeba9384.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;There&amp;#39;s an idea that I can borrow from the startup community, particularly from the Y Combinator crowd, and that&amp;#39;s the concept of contrarianism and doomerism. These philosophies often make you seem smart, especially if you&amp;#39;re already someone intelligent. They can make you appear insightful and right about things most of the time. However, they don&amp;#39;t necessarily make you rich or successful.&lt;/p&gt;
&lt;h2&gt;The Limits of Contrarianism&lt;/h2&gt;
&lt;p&gt;Contrarianism and doomerism might enhance your intellectual image, but they won&amp;#39;t lead to wealth or success. To achieve success, you need to be a bit delusional and work against the natural entropy of the universe and the world around you. This is something I&amp;#39;m contemplating right now, as the current outlook seems very bleak. Everywhere you look, there are problems.&lt;/p&gt;
&lt;h2&gt;Predicting Failures: A Common Trap&lt;/h2&gt;
&lt;p&gt;It&amp;#39;s easy for a smart person to predict failures. It&amp;#39;s easy to point your finger and say, &amp;quot;This is going to fail,&amp;quot; &amp;quot;This is going to collapse,&amp;quot; or &amp;quot;This is going to break.&amp;quot; However, simply predicting failure won&amp;#39;t make you rich or successful.&lt;/p&gt;
&lt;h2&gt;Finding Success Against the Odds&lt;/h2&gt;
&lt;p&gt;To truly succeed, you must find a way to be contrarian against the contrarians. You need to discover something where you can snatch success from the jaws of failure and be right about it. When you do, the world will reward you.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/8325828793e91bbe4d691a69aeba9384.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Indie Hackers Win in Recessions</title>
    <link>/posts/indie-hackers-win-in-recessions</link>
    <guid isPermaLink="true">/posts/indie-hackers-win-in-recessions</guid>
    <pubDate>Fri, 15 Jul 2022 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/a444e2c7a7a0a221922fa878ecb429eb.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;We are on the precipice of a boom in hacking by small startups, disrupting medium to large enterprises and established tech companies, especially those backed by venture capital. This shift is starting right now, fueled by recession fears.&lt;/p&gt;
&lt;h2&gt;The Challenge for CMOs&lt;/h2&gt;
&lt;p&gt;What do Chief Marketing Officers (CMOs) do when they face economic headwinds and sales start to drop? Marketing becomes more difficult. I&amp;#39;m not talking about the top 1% of marketers, but the average tech CMO whose entire executive team outsources creativity. Their idea of marketing is to acquire a budget and spend it.&lt;/p&gt;
&lt;p&gt;These average tech CMOs look at the economic landscape and recession indicators, acknowledging the high chance of entering a recession. The smart move they make is to consider two strategies:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Team Player Approach&lt;/strong&gt;: They pitch in as team players, helping to find headcount for layoffs, saving budget, and trimming costs. They highlight how well their team is doing, while downplaying the dropping marketing conversion rates and fewer leads in the funnel. They know they are fighting against market forces, and even if they maintain their effectiveness, metrics will drop.&lt;/li&gt;&lt;/ol&gt;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Opportunity for Small Startups&lt;/strong&gt;: If you&amp;#39;re a small startup, this is your chance to &amp;quot;eat their lunch.&amp;quot; As larger companies drop their Google ads and stop spending on new campaigns, you can seize the opportunity. Don&amp;#39;t let it slip by. As a low-cost competitor to a major product, it&amp;#39;s easier to cut expenses in half than to lay someone off.&lt;/li&gt;&lt;/ol&gt;
&lt;h2&gt;Seizing the Opportunity&lt;/h2&gt;
&lt;p&gt;Think about your target audience and the established product that every other venture-backed company chooses. Position yourself as the cost-effective alternative. Be the product that people switch to, allowing them to report to their bosses that they are cutting costs. For example, switching from Intercom to Crisp could save $1,000 a month.&lt;/p&gt;
&lt;p&gt;If you can be that alternative, you can potentially capture a third of the market from your biggest competitors over the next year. While others are minimizing costs and laying off staff, go out there, give it your all, and make some money.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/a444e2c7a7a0a221922fa878ecb429eb.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Why I focus on Content Marketing &amp; SEO</title>
    <link>/posts/why-i-focus-on-content-marketing-seo</link>
    <guid isPermaLink="true">/posts/why-i-focus-on-content-marketing-seo</guid>
    <pubDate>Fri, 15 Jul 2022 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/78f820e4bc0e6bd650b6e251c640426c.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Every founder, at some point, must decide on their marketing platform—the medium through which they will reach their customers. There are several options to consider:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Cold Calling&lt;/strong&gt;: You could reach out and pitch potential clients you find on LinkedIn.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Social Media&lt;/strong&gt;: You could become a social media wizard.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Content Marketing and SEO&lt;/strong&gt;: Like me, you might choose to dive into content marketing and SEO.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Why I Chose Content Marketing and SEO&lt;/h2&gt;
&lt;p&gt;The reason I chose content marketing and SEO is straightforward. It&amp;#39;s not that I believe content marketing and SEO are the only worthwhile pursuits. The truth is, I am an introvert. My version of hell is spending every day on LinkedIn, searching for people who might use my product, and then cold emailing them. I&amp;#39;ve done it, and while it works, it&amp;#39;s not something I want to continue doing.&lt;/p&gt;
&lt;h2&gt;The Right Fit for Me&lt;/h2&gt;
&lt;p&gt;The characteristics of content marketing and SEO suit me better. I want to build something that continues to work over time, regardless of my input. I&amp;#39;m willing to sacrifice quick, immediate wins for long-term gains. I&amp;#39;m okay with that trade-off if it means I don&amp;#39;t have to hunt down customers every day and pitch them repeatedly about my business.&lt;/p&gt;
&lt;p&gt;Choosing the right marketing platform is about finding what aligns best with your personality and business goals. For me, content marketing and SEO provide a sustainable path that matches my strengths and preferences.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/78f820e4bc0e6bd650b6e251c640426c.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>What are chargebacks?</title>
    <link>/posts/what-are-chargebacks</link>
    <guid isPermaLink="true">/posts/what-are-chargebacks</guid>
    <pubDate>Fri, 08 Jul 2022 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/5305258388c31a3ba7021acf077a0a1e.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Chargebacks can be a significant indicator that your &lt;strong&gt;User Interface (UI)&lt;/strong&gt; or support process may not be meeting user expectations.&lt;/p&gt;
&lt;h2&gt;What Are Chargebacks?&lt;/h2&gt;
&lt;p&gt;Chargebacks occur when a customer disputes a transaction with their bank, effectively reversing the payment. This often suggests that the customer found it easier to resolve their issue through their bank rather than directly with your service.&lt;/p&gt;
&lt;h2&gt;The Role of UI and Support Process&lt;/h2&gt;
&lt;p&gt;Have you ever used your bank&amp;#39;s website to initiate a chargeback? It&amp;#39;s not known for being user-friendly or quick. If your customers are choosing this route, it may indicate that your support process is introducing too much friction.&lt;/p&gt;
&lt;h3&gt;Key Considerations:&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;User Experience&lt;/strong&gt;: Evaluate whether your UI is intuitive and easy to navigate.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Support Efficiency&lt;/strong&gt;: Ensure your support process is responsive and resolves issues promptly.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;If you&amp;#39;re experiencing a high volume of chargebacks, it might be time to reassess these areas to reduce friction and improve customer satisfaction.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/5305258388c31a3ba7021acf077a0a1e.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Thoughts on Branding Great Domains without Robust Trademark Protection</title>
    <link>/posts/thoughts-on-branding-great-domains-without-robust-trademark-</link>
    <guid isPermaLink="true">/posts/thoughts-on-branding-great-domains-without-robust-trademark-</guid>
    <pubDate>Fri, 24 Jun 2022 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/a5a10ff98701ca13b5ed9a528e99882d.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been thinking a lot about Damon&amp;#39;s company and a recent experience with a domain auction that got me pondering the complexities of generic domain names and trademarks.&lt;/p&gt;
&lt;h2&gt;A Surprising Auction Encounter&lt;/h2&gt;
&lt;p&gt;The other day, I stumbled upon an auction for the domain testimonial.TO. It was promoted in a promotional email sent to everyone registered for their aftermarket newsletter. Intrigued, I forwarded the information to Damon, who decided to place the minimum bid. However, the auction turned out to be quite competitive, with two other bidders driving the price up significantly. I won&amp;#39;t disclose the final amount, but the aggressive bidding made me suspect that the buyers might have nefarious intentions.&lt;/p&gt;
&lt;h2&gt;The Problem with Generic Domains&lt;/h2&gt;
&lt;p&gt;This experience led me to explore the Google AdWords traffic for testimonial.TO-related keywords. I noticed several competitors running ads for terms like &amp;quot;testimonial.TO pricing.&amp;quot; This got me thinking about the inherent issues with generic domain names, which can&amp;#39;t easily be trademarked.&lt;/p&gt;
&lt;p&gt;For most startups, if you raise a decent amount of money, you can invest in trademarking your brand name for about a thousand dollars. This allows you to protect your brand by filing complaints against Google AdWords ads that infringe on your trademark and preventing others from registering similar domain names.&lt;/p&gt;
&lt;h2&gt;The Limitations of Trademark Protection&lt;/h2&gt;
&lt;p&gt;However, with generic names like &amp;quot;testimonial,&amp;quot; you can&amp;#39;t trademark the word itself. You might be able to trademark &amp;quot;testimonial.TO,&amp;quot; but that wouldn&amp;#39;t stop someone from registering &amp;quot;testimonials.io&amp;quot; or similar variations. Getting Google to remove such listings could prove challenging.&lt;/p&gt;
&lt;h2&gt;A Personal Reflection&lt;/h2&gt;
&lt;p&gt;This situation made me reflect on my own domain registrations. I&amp;#39;ve registered a few generic domains that I like from a branding perspective, such as &amp;quot;servers.deal.&amp;quot; However, I hadn&amp;#39;t fully considered the complications of protecting these domains once they mature. Without the ability to trademark them, they remain vulnerable to similar issues.&lt;/p&gt;
&lt;p&gt;In conclusion, while generic domain names can be appealing, they come with unique challenges that require careful consideration, especially regarding trademark protection and brand security.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/a5a10ff98701ca13b5ed9a528e99882d.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>January 6th Hearings Format</title>
    <link>/posts/january-6th-hearings-format</link>
    <guid isPermaLink="true">/posts/january-6th-hearings-format</guid>
    <pubDate>Tue, 14 Jun 2022 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/3660d61ca9e9a3b62d529e0a7dfa7d8b.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;The format of the January 6 hearings is quite intriguing. The use of videos suggests that the production is crafted with a prime-time audience in mind. The creators seem to be aware that the majority of viewers will encounter these hearings through clips reproduced on various platforms, such as nightly news broadcasts, YouTube, or other online media.&lt;/p&gt;
&lt;h2&gt;Video-Centric Approach&lt;/h2&gt;
&lt;p&gt;A significant portion of the hearings consists of video footage of testimonies from the past year and a half. This choice is noteworthy as it highlights the emphasis on visual storytelling and direct evidence presentation. The reliance on video clips serves to engage viewers by showing rather than telling, which is a departure from traditional hearing formats.&lt;/p&gt;
&lt;h2&gt;Dramatic Structure&lt;/h2&gt;
&lt;p&gt;Another compelling aspect of the format is the way each hearing concludes. Liz Cheney provides a &amp;quot;next time on the January 6 hearings&amp;quot; segment, complete with a video clip and a preview of upcoming content. This approach is reminiscent of the ending of a serialized drama, where viewers are enticed to tune in for the next installment. The use of these &amp;quot;previously on&amp;quot; and &amp;quot;next time on&amp;quot; segments adds a narrative structure that is designed to maintain viewer interest.&lt;/p&gt;
&lt;h2&gt;Republican Representation&lt;/h2&gt;
&lt;p&gt;Interestingly, the hearings predominantly feature Republicans. Most of the time, the arguments are presented by Republicans, and the questions are posed by them as well. This strategy of showcasing testimony, often from individuals within the Trump administration, aims to construct a narrative from their perspective. It is a method of &amp;quot;show, not tell,&amp;quot; where the committee members are not overtly pushing their agenda but instead allowing the testimony to speak for itself.&lt;/p&gt;
&lt;h2&gt;Addressing Partisan Criticism&lt;/h2&gt;
&lt;p&gt;Despite the anticipated criticism labeling the hearings as a partisan witch hunt, the format is meticulously designed to counter such claims. By focusing on video evidence and Republican voices, the hearings aim to make it challenging to argue in good faith that the proceedings are purely politically motivated.&lt;/p&gt;
&lt;p&gt;In conclusion, the format of the January 6 hearings is a strategic blend of visual storytelling and narrative engagement. It remains to be seen whether this approach will prove more engaging than previous hearings, but it certainly sets a new precedent for how such events can be presented to the public.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/3660d61ca9e9a3b62d529e0a7dfa7d8b.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Arcade.gs using SQL.js http virtual filesystem (Static SQLite)</title>
    <link>/posts/arcade-gs-using-sql-js-http-virtual-filesystem-static-sqlite</link>
    <guid isPermaLink="true">/posts/arcade-gs-using-sql-js-http-virtual-filesystem-static-sqlite</guid>
    <pubDate>Sun, 02 Jan 2022 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/df02d9175eb7cf159902d056c143e267.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;In this follow-up to the JS HTTP virtual file system post, I experimented with a new website using a different data set. This time, I utilized a 10 MB data set of arcade games from the Internet Archive&amp;#39;s Arcade project. The data is spread across flash games, categorized under titles and names, and comprises about 11,000 to 12,000 records in a SQLite database. Most of the data is indexed, and I built a view to test the performance.&lt;/p&gt;
&lt;h2&gt;Performance Insights&lt;/h2&gt;
&lt;h3&gt;CDN Performance&lt;/h3&gt;
&lt;p&gt;The CDN performance is outstanding, slightly faster than anything else I&amp;#39;ve deployed to any CDN I&amp;#39;ve used. This gives me a good idea of where the system excels and where it might fail. The website is impressively fast, featuring infinite pagination for each category. It loads 30 records at a time using normal paginated SQL queries like &lt;code&gt;LIMIT&lt;/code&gt; and &lt;code&gt;OFFSET&lt;/code&gt;, making the process almost instantaneous. On a fast internet connection, the loading indicator is practically invisible, with subsequent requests for additional pages taking only about 30-40 ms, which is imperceptible.&lt;/p&gt;
&lt;h3&gt;Cold Start Challenge&lt;/h3&gt;
&lt;p&gt;However, there&amp;#39;s a significant cold start problem. The WebAssembly module must be loaded before the first request, taking anywhere from 900 ms to 1.5 seconds. The module is a 1.3 MB binary WebAssembly file containing the SQLite database driver. This delay can be hidden by using it as a feature, starting the download asynchronously when the webpage loads.&lt;/p&gt;
&lt;h3&gt;Query Performance&lt;/h3&gt;
&lt;p&gt;The initial query requires loading about 1.2 MB of the 10 MB database, but subsequent requests are extremely fast, often around 5-10 ms, likely due to caching. For instance, some requests come in at about 40-50 ms for 30 KB of data.&lt;/p&gt;
&lt;h2&gt;User Experience&lt;/h2&gt;
&lt;p&gt;When users land on the homepage, the initial cold start problem can be masked since it occurs asynchronously. The webpage loads in under a second, and the download of the WebAssembly file begins, taking about a second. As long as it takes users a couple of seconds to navigate to their desired category, the experience feels quick and seamless.&lt;/p&gt;
&lt;h2&gt;Considerations for Larger Data Sets&lt;/h2&gt;
&lt;p&gt;Optimizing further might not be feasible with a 10 MB data set. For larger data sets, the cold start problem can be hidden effectively. I considered how this approach might work for platforms like Netflix or HBO Max, where the entire public database of titles could be stored in a database, with URLs to images, descriptions, and titles.&lt;/p&gt;
&lt;h3&gt;Memory Usage&lt;/h3&gt;
&lt;p&gt;One trade-off is that the data gets cached, potentially consuming a significant amount of memory in JavaScript, equivalent to the entire database size. This could be an issue for platforms like webOS or lower-end Android devices, especially Amazon devices. However, higher-end devices like Apple TV could handle it, though implementing such technology might not be worth the effort due to the need to reinvent everything from scratch.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This technique allows deploying a website directly to a static CDN without worrying about a database server, while still providing the ability to query a SQL database in read-only mode. It&amp;#39;s a neat solution with potential use cases, especially in data science for exploring data sets.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/df02d9175eb7cf159902d056c143e267.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Sql.js-httpvfs (Static SQLite) 5 months later</title>
    <link>/posts/sql-js-httpvfs-static-sqlite-5-months-later</link>
    <guid isPermaLink="true">/posts/sql-js-httpvfs-static-sqlite-5-months-later</guid>
    <pubDate>Sat, 25 Dec 2021 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/5cc4533d5724efd5642255f34d45299a.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been experimenting with SQL.js HTTP VFS for a few months now. Essentially, this is a SQLite engine compiled into WebAssembly that can run against a remote database. The intriguing part is that it implements a virtual file system and supports range requests.&lt;/p&gt;
&lt;h2&gt;The Concept&lt;/h2&gt;
&lt;p&gt;Imagine you have a gigabyte-sized SQL database stored in the cloud. As long as your server supports range requests, this setup allows you to fetch data one kilobyte at a time. This is similar to how SQLite would read a local database from the file system if configured to page with file reads of 1024 bytes. The exciting aspect is that if you index and organize your data efficiently, you could theoretically perform the same requests remotely from a browser to a SQL database on a CDN. This means your backend server wouldn&amp;#39;t need to run a database instance.&lt;/p&gt;
&lt;h2&gt;Initial Experiments&lt;/h2&gt;
&lt;p&gt;In August, I spent a couple of weekends writing a possible analytics clone using SQL.js HTTP VFS. It was an interesting project, but I didn&amp;#39;t delve deeply into it. The implementation cleared a lot of data, almost as if downloading the entire database, so it didn&amp;#39;t thoroughly test the concept. However, it served as a valuable proof of concept.&lt;/p&gt;
&lt;h2&gt;Rewriting and Optimization&lt;/h2&gt;
&lt;p&gt;Fast forward to December, I decided to rewrite the project. I started with an injected log parser, ending up with a 300 MB log file, which I parsed into a roughly 300 MB SQLite database. This provided a substantial database to experiment with. The size required me to optimize log parsing and inserts, reducing the time to parse over 1.3 million rows to about 57 seconds. This included parsing IP addresses, country lookups, URLs, and user agents—all done locally without web requests.&lt;/p&gt;
&lt;h2&gt;Querying Challenges&lt;/h2&gt;
&lt;p&gt;Running queries on this indexed database locally resulted in approximately 13-second queries to group by pathname and count requests for the top 25 pages. This wasn&amp;#39;t ideal, especially since I only loaded eight hours of data. In a production environment, the dataset would be much larger. Adding a few indexes significantly improved performance, reducing query times to 100-300 milliseconds.&lt;/p&gt;
&lt;h2&gt;The Realization&lt;/h2&gt;
&lt;p&gt;As I was about to implement the WebAssembly module to run everything remotely, I had a realization. What does this setup truly offer? While it allows for scaling the number of reads infinitely, it doesn&amp;#39;t make much sense unless you&amp;#39;re dealing with massive datasets that can&amp;#39;t be pre-computed. For my use case, with only eight SQL queries to run, pre-computing on the server was more efficient.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This project was an intriguing exploration of a virtual file system over HTTP. While it was fun and educational, it didn&amp;#39;t present a compelling use case for my needs. Unless you&amp;#39;re dealing with scenarios where pre-computing data is impractical, the benefits of this approach are limited. Nonetheless, it was a fascinating experiment that expanded my understanding of remote database querying.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/5cc4533d5724efd5642255f34d45299a.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>AirPods Max</title>
    <link>/posts/airpods-max</link>
    <guid isPermaLink="true">/posts/airpods-max</guid>
    <pubDate>Tue, 07 Dec 2021 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/8e19915c99456fb5727052bf43f621af.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been using the AirPods Pro pretty much since they came out, and they are probably my favorite pair of headphones ever. I&amp;#39;ve tried higher quality headphones, including some nice open-back ones, which I can appreciate for short listening sessions of an hour or less. If headphone jacks and wired headphones were still a realistic option, I would consider investing in a high-quality set to maximize audio quality. However, the AirPods Pro offer a great mix of features: fast wireless pairing, decent battery life, durability, portability, wireless charging, excellent noise cancellation, and perfect ergonomics around the touch controls. As I said, they are my favorite pair of headphones, even though there&amp;#39;s a bit to be desired in audio quality. When compared to over-ear headphones, you can notice the difference.&lt;/p&gt;
&lt;h2&gt;Testing the AirPods Max&lt;/h2&gt;
&lt;p&gt;I tested the AirPods Max a few times in short, 10-minute sessions. Unfortunately, I wasn&amp;#39;t as impressed as I hoped to be. They do deliver a better range than the Pros, especially over time, with lows and highs that are pretty much nonexistent on the Pros. However, after using them for a day, the ergonomics are just not up to par. The overall experience of using the Pros is a 10 out of 10, but the Max offers about 30% higher quality audio at the cost of losing a lot in other areas.&lt;/p&gt;
&lt;h2&gt;Ergonomics and Usability&lt;/h2&gt;
&lt;p&gt;The buttons on the AirPods Max are in a weird place, and the headphones don&amp;#39;t fit well. They tend to move around, especially when I&amp;#39;m wearing glasses. I often have to remove the headphones to adjust my glasses, which is quite annoying. My ears also get hot and sweaty after an hour, so I have to take them off. Additionally, noise cancellation turns back on every time I start a listening session, and I can&amp;#39;t find an option to fix that. It&amp;#39;s a minor issue, but still inconvenient.&lt;/p&gt;
&lt;h2&gt;Charging and Build&lt;/h2&gt;
&lt;p&gt;I feel like a dinosaur with the lightning cable. When I lay the headphones flat, the metal bits bang against each other unless I position them askew, which feels odd. Perhaps a stand could solve this issue. The sound quality is significantly better, akin to a nice set of wired open-backs, maybe 20% better. However, I&amp;#39;d still rather sacrifice that 20% for the convenience of wireless headphones.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The entire experience of owning and using the AirPods Max doesn&amp;#39;t feel as polished as the AirPods Pro. I&amp;#39;m going to give it a few more days, but I don&amp;#39;t think this is going to work out.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/8e19915c99456fb5727052bf43f621af.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>I broke my Amazon Account (not interesting)</title>
    <link>/posts/i-broke-my-amazon-account-not-interesting</link>
    <guid isPermaLink="true">/posts/i-broke-my-amazon-account-not-interesting</guid>
    <pubDate>Mon, 06 Dec 2021 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/307fe6dfca96d245ebb0a94a6f08ff00.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Managing multiple addresses on Amazon can be a tricky business, especially when your living situation requires a bit of creativity. Here&amp;#39;s how I ended up breaking my Amazon account due to having separate addresses for living and package delivery.&lt;/p&gt;
&lt;h2&gt;The Problem: Two Addresses&lt;/h2&gt;
&lt;p&gt;I live in an apartment building that uses a service called Fetch. Fetch receives our packages on our behalf and hand-delivers them to our door. This service eliminates the need for package lockers, a mailroom, or dedicated staff. It works well, but it requires us to use an alternative address downtown for package deliveries.&lt;/p&gt;
&lt;h3&gt;How Fetch Works&lt;/h3&gt;
&lt;p&gt;Packages are shipped to the Fetch warehouse and then re-shipped three to four times a day to our apartment building. Someone from Fetch usually delivers them by van. This system generally functions smoothly.&lt;/p&gt;
&lt;h2&gt;The Amazon Account Dilemma&lt;/h2&gt;
&lt;p&gt;The complication arises when some packages need to be delivered to my actual home address, while others need to be routed to the Fetch address. This situation ended up breaking my Amazon account.&lt;/p&gt;
&lt;h3&gt;The Customer Support Saga&lt;/h3&gt;
&lt;p&gt;I spent about 45 minutes with Amazon customer support to resolve the issue. Here&amp;#39;s what I learned: Amazon stores a separate default shipping address for each of its services, such as Fresh, Prime, and Subscribe &amp;amp; Save. However, when you visit the addresses tab, it only allows you to change your default address for Amazon Prime.&lt;/p&gt;
&lt;h3&gt;The Address Tab Limitation&lt;/h3&gt;
&lt;p&gt;The addresses tab shows which addresses are being used for services like Subscribe &amp;amp; Save or Fresh, but it doesn&amp;#39;t let you change the default. To fix this, I had to create duplicate addresses and juggle them across the different services. It was a bit of a convoluted process, but eventually, I managed to set the addresses correctly.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;After about 45 minutes of tinkering, I finally resolved the issue. For a while, my Amazon Fresh deliveries were going to the wrong address, but now everything is back on track. If you find yourself in a similar situation, be prepared for a bit of a hassle, but know that it can be fixed with some patience and creativity.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/307fe6dfca96d245ebb0a94a6f08ff00.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Mario Kart Live: Home Circuit</title>
    <link>/posts/mario-kart-live-home-circuit</link>
    <guid isPermaLink="true">/posts/mario-kart-live-home-circuit</guid>
    <pubDate>Wed, 01 Dec 2021 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/295c2b13db6105455d009211dcc1632f.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Myocart Live Home Circuit is easily one of the most delightful and creative products created in the last two years. It features a real-life Mario Kart with a camera attached, enabling augmented reality (AR) on the Nintendo Switch. While it might be slightly overpriced, with a manufacturer&amp;#39;s suggested retail price (MSRP) of around $130—about half the price of a Nintendo console bundled with Mario Kart 8, the latest version of Mario Kart—it&amp;#39;s a delightful concept.&lt;/p&gt;
&lt;h2&gt;A Unique Experience&lt;/h2&gt;
&lt;p&gt;I&amp;#39;ve been playing around with it for the past few days, and I managed to snag a super slick Black Friday deal, bringing the price down to about $20 after purchasing a bunch of Apple gift cards for something else I was planning to buy anyway. The product is polished to the last detail and works exceptionally well, although it has a limited shelf life.&lt;/p&gt;
&lt;p&gt;The kart drives around in circles in spaces like the kitchen island and the living room. Unfortunately, we don&amp;#39;t have enough space to create many creative circuits. However, it&amp;#39;s super quick and easy to get started with the light cardboard cut-out gates included with the game. The experience is incredibly realistic, almost identical to playing Mario Kart, the video game.&lt;/p&gt;
&lt;h2&gt;Innovation Over Profit&lt;/h2&gt;
&lt;p&gt;It&amp;#39;s fascinating to consider companies green-lighting products that may not be profitable. While a limited run is possible, this isn&amp;#39;t a project you green-light expecting it to become a cash cow. Instead, it&amp;#39;s a project you approve because it&amp;#39;s probably the most innovative and interesting thing Nintendo has done as a company since the launch of the Switch.&lt;/p&gt;
&lt;p&gt;Nintendo has essentially replicated the Mario Kart experience on a 1/25 scale with a little car you can race around your house. It&amp;#39;s crazy! You can even have two players with two switches, remotely controlling two of these karts. It&amp;#39;s a truly polished product.&lt;/p&gt;
&lt;h2&gt;A Delightful User Experience&lt;/h2&gt;
&lt;p&gt;When I think of a delightful user experience or first experience, Myocart Live Home Circuit is the one that comes to mind. It blows my mind that a game company could create something like this today.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/295c2b13db6105455d009211dcc1632f.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Should Reddit Clone Clubhouse?</title>
    <link>/posts/should-reddit-clone-clubhouse</link>
    <guid isPermaLink="true">/posts/should-reddit-clone-clubhouse</guid>
    <pubDate>Wed, 01 Dec 2021 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/c3852339c92a603a3fe0ac7785e4fcc6.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;h2&gt;The Question&lt;/h2&gt;
&lt;p&gt;Should Reddit clone Clubhouse? It&amp;#39;s a question worth considering. Reddit is reportedly planning to integrate a Clubhouse-like feature into its mobile app. The hope is that this will boost user retention and increase mobile app usage. But will it work? Let&amp;#39;s explore the arguments for and against this move.&lt;/p&gt;
&lt;h2&gt;The Pro Argument&lt;/h2&gt;
&lt;h3&gt;Getting Ahead of the Trend&lt;/h3&gt;
&lt;p&gt;Reddit should consider cloning Clubhouse because it&amp;#39;s a new format that&amp;#39;s gaining traction. By adopting it early, Reddit can prevent its users from jumping to alternative platforms that offer similar features. The format is particularly effective with large audiences, and Reddit, with its vast user base, could introduce a new type of interactive behavior within its already organized communities.&lt;/p&gt;
&lt;h3&gt;Leveraging Existing Structures&lt;/h3&gt;
&lt;p&gt;Reddit already has a discovery mechanism in place, and there&amp;#39;s significant value in launching a new app feature that leverages this. By integrating a Clubhouse-like experience, Reddit could enhance the way users interact with topics they are passionate about.&lt;/p&gt;
&lt;h2&gt;The Counter Argument&lt;/h2&gt;
&lt;h3&gt;Lack of User Demand&lt;/h3&gt;
&lt;p&gt;There&amp;#39;s no clear indication that Reddit users are clamoring for a Clubhouse-like experience. Historically, Reddit users have been quick to adopt new content formats, often before Reddit itself addresses these needs. For instance, when users wanted image hosting, they created Imgur, and it took Reddit years to catch up. The same pattern occurred with video content and chat features, with platforms like Discord filling the gaps.&lt;/p&gt;
&lt;h3&gt;Asynchronous Nature of Reddit&lt;/h3&gt;
&lt;p&gt;A significant challenge is that most Reddit content is asynchronous. Users consume content at their own pace, regardless of time zones, and it doesn&amp;#39;t require simultaneous participation. In contrast, Clubhouse content is synchronous, requiring users to engage in real-time, which is not how Reddit typically operates.&lt;/p&gt;
&lt;h3&gt;Resourceful Moderators&lt;/h3&gt;
&lt;p&gt;Reddit moderators are known for their resourcefulness. If they wanted to host Clubhouse-style meetups, they would likely have already found ways to do so. The absence of widespread adoption of such tools suggests there&amp;#39;s no organic demand for Clubhouse-like interactions within Reddit communities.&lt;/p&gt;
&lt;h3&gt;Limited Applicability&lt;/h3&gt;
&lt;p&gt;The only subreddit that currently resembles a Clubhouse format is AMA (Ask Me Anything). While integrating Clubhouse-style content creation into Reddit&amp;#39;s mobile app could be fun, it&amp;#39;s important to consider that Reddit users and moderators are adept at finding their own solutions to meet their needs.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;If Reddit users truly desired to share content in a Clubhouse format, we would likely see posts across popular subreddits with links to upcoming Clubhouse rooms or Twitter Spaces. However, this isn&amp;#39;t a common occurrence today. While the idea of integrating Clubhouse features into Reddit is intriguing, the contrarian viewpoint suggests that Reddit users will continue to find their own tools to fulfill their content creation desires.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/c3852339c92a603a3fe0ac7785e4fcc6.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Pokémon brilliant diamond shining pearl</title>
    <link>/posts/pok-mon-brilliant-diamond-shining-pearl</link>
    <guid isPermaLink="true">/posts/pok-mon-brilliant-diamond-shining-pearl</guid>
    <pubDate>Tue, 30 Nov 2021 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/f0d31ba8b5fe8eb3a9bf4a21a0e2f6c1.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Pokémon Brilliant Diamond and Shining Pearl have been well ported, and thankfully, they aren&amp;#39;t plagued by bugs. The gameplay is smooth, but there are some notable issues that stand out.&lt;/p&gt;
&lt;h2&gt;Faithful to a Fault&lt;/h2&gt;
&lt;p&gt;One of the main criticisms is that the game feels too faithful to its original handheld version. This transition to a TV console hasn&amp;#39;t been as seamless as one might hope. The biggest problem with many Pokémon games, including this one, is the lack of challenge. It&amp;#39;s simply too easy.&lt;/p&gt;
&lt;h2&gt;Tedious Interactions&lt;/h2&gt;
&lt;p&gt;A specific issue with Brilliant Diamond and Shining Pearl is the excessive need to press the confirmation button. This repetition makes the game feel slow and cumbersome. The user interface and navigation through menus and dialogues are not as smooth as they should be, especially for a game of this caliber.&lt;/p&gt;
&lt;h2&gt;Lackluster Design&lt;/h2&gt;
&lt;p&gt;In terms of design, the gym layouts are uninspired, and the storyline fails to excite. Overall, the game lacks the thrilling elements that make a Pokémon game engaging.&lt;/p&gt;
&lt;h2&gt;The Battle Experience&lt;/h2&gt;
&lt;p&gt;The battle system is another area where the game falls short. Players often find themselves spamming the A and B buttons to rush through slow menus, loading screens, and battle introductions. This process is time-consuming and detracts from the overall experience.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In conclusion, while Pokémon Brilliant Diamond and Shining Pearl offer a faithful port of the original games, they suffer from several design and gameplay issues. The slow navigation and lack of engaging content make it feel lacking in the user experience department.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/f0d31ba8b5fe8eb3a9bf4a21a0e2f6c1.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Stadia’s product positioning is such a disappointment</title>
    <link>/posts/stadias-product-positioning-is-such-a-disappointment</link>
    <guid isPermaLink="true">/posts/stadias-product-positioning-is-such-a-disappointment</guid>
    <pubDate>Mon, 29 Nov 2021 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/9e7b4d15b42267f8b60240bb9fbcdc0b.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Stadia is a fascinating yet somewhat disappointing product from a consumer perspective. I&amp;#39;ve been exploring it through a free trial, and the performance is impressive. It offers 4K visuals with minimal input lag, all functioning seamlessly. With data centers located in Seattle—or perhaps Kirkland—it&amp;#39;s no surprise that it works well.&lt;/p&gt;
&lt;h2&gt;The Promise of Stadia&lt;/h2&gt;
&lt;p&gt;Imagine pitching Stadia as the next generation of gaming. It could be marketed as an infinitely powerful game console, surpassing the capabilities of the PS5 or even a truckload of Xbox Ones, all instantly available and free to use. However, the current marketing strategy is to repurpose existing devices for gaming, which feels like a missed opportunity. They&amp;#39;re not effectively highlighting the unique value or benefits of the product.&lt;/p&gt;
&lt;h2&gt;The Marketing and Positioning Problem&lt;/h2&gt;
&lt;p&gt;Stadia&amp;#39;s marketing strategy seems to lack clarity. They&amp;#39;re attempting to create their own versions of Game Pass or GeForce Now, but the positioning is unclear. This isn&amp;#39;t just an issue for Stadia; similar services face the same challenge. Microsoft, for instance, doesn&amp;#39;t want to undercut Xbox sales, and Nvidia benefits from hardware sales.&lt;/p&gt;
&lt;h3&gt;The Current Messaging&lt;/h3&gt;
&lt;p&gt;Here&amp;#39;s the exact copy from Stadia&amp;#39;s homepage: &amp;quot;Stadia turns the things you already own into portals to the biggest games. Try Stadia Pro free for one month, $9.99 a month after trial, cancel anytime.&amp;quot; This messaging doesn&amp;#39;t convey the true value of Stadia. It doesn&amp;#39;t tell me that I can play games like Cyberpunk at higher quality settings than on any computer I own, or on a PS5, PS4, or Xbox One. Instead, it suggests that with a TV and a Chromecast, you can play games—missing the point entirely.&lt;/p&gt;
&lt;h2&gt;The Confusion and Missed Opportunities&lt;/h2&gt;
&lt;p&gt;The entire page neglects to mention that Stadia has a free tier, allowing users to play without a monthly fee or additional hardware. This oversight creates confusion. Stadia could be a cash cow if it adopted a business model similar to console hardware vendors, who lose money on hardware but recoup it through software sales. Google could control the marketplace, encouraging third-party games on Stadia, which should be straightforward given it&amp;#39;s a cloud-based PC game platform.&lt;/p&gt;
&lt;h2&gt;A Vision for Stadia&amp;#39;s Future&lt;/h2&gt;
&lt;p&gt;Imagine if Google allowed users to use any controller with any hardware, similar to how Game Pass Ultimate operates. They could potentially earn more from software sales than the $9.95 monthly fee from Pro users. This pricing model seems out of touch with the potential of the platform.&lt;/p&gt;
&lt;h2&gt;The Competitive Landscape&lt;/h2&gt;
&lt;p&gt;Game Pass Ultimate could be the Xbox One killer if Microsoft chooses to pivot. They could partner with Apple to bring Game Pass Ultimate to Apple TV, offering a smooth experience that competes with Google TV and Fire Stick. It seems like Microsoft&amp;#39;s game to win if they&amp;#39;re willing to make sacrifices.&lt;/p&gt;
&lt;p&gt;Google is the only player gaining new market share, while others like Nvidia aren&amp;#39;t selling titles with GeForce Now subscriptions. The economics of server space may not work out positively for cutting-edge Nvidia hardware. Microsoft could capture more PC game sales from platforms like Steam and Epic by bolstering their own store.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Stadia represents a massive opportunity for Google, yet its current positioning is painfully inadequate. There&amp;#39;s so much potential here, but the execution leaves much to be desired.&lt;/p&gt;
&lt;p&gt;This is me posting an audio log after a while. Cheers!&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/9e7b4d15b42267f8b60240bb9fbcdc0b.mp3" type="audio/mpeg" length="0"/>
  </item>
</channel>
</rss>
