<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>mmatt.net</title><description>&lt;_&lt; ^_^ &gt;_&gt;</description><link>https://mmatt.net/</link><item><title>i really really really hate AI images &amp; music</title><link>https://mmatt.net/post/3mu35coarbs2o/</link><guid isPermaLink="true">https://mmatt.net/post/3mu35coarbs2o/</guid><description>the death of mediocre</description><pubDate>Thu, 27 Aug 2026 15:16:14 GMT</pubDate><content:encoded>&lt;p&gt;nobody wants to be &quot;just okay&quot; anymore, nobody wants to &quot;put something together real quick&quot; anymore. the billboard shown above was a prime example of mediocrity at its finest, and was rewarded greatly for it. the image went viral and inspired a handful of replicas that you can find with a quick google search.&lt;/p&gt;
&lt;p&gt;going on facebook dot com in 2026 shows exactly what I mean. what was charming small businesses with their own identities and brands turned into homogeneous AI images with the same style, mistakes, and laziness. the &quot;AI Content&quot; badge on the facebook post acting as a form of shame to the shameless. everything looks the same now, its these bright and bold color schemes with the bubble fonts and oversaturation. theres false advertising contractors, unappetizing fake food, local high schools switching to AI flyers instead of Canvas, you&apos;ll find it all in your local small town&apos;s facebook group.&lt;/p&gt;
&lt;p&gt;its annoying and I don&apos;t like it. it signals a lack of care for whatever you&apos;re trying to promote.&lt;/p&gt;
&lt;p&gt;the school thing was whats really been screwing with my head as of late. the high school I graduated from uses AI imagery for every social post now. they have like a full program for fine arts, art classes are a required part of the curriculum required to graduate. how does one not get demotivated to continue being passionate with their work when their own administrators don&apos;t care.&lt;/p&gt;
&lt;p&gt;AI music might just be worse&lt;/p&gt;
&lt;p&gt;I&apos;m a music lover to my core, most of my waking moments are surrounded by the artform. I help run an independent music label, even the music business side of logistics and distribution are incredibly interesting.&lt;/p&gt;
&lt;p&gt;reducing the music artform to a prompt is a disgusting and disappointing trend we as humans are moving towards.&lt;/p&gt;
&lt;p&gt;AI in music isn&apos;t a tool, at least right now its not. if you&apos;re completely replacing the production process with prompting, you&apos;re not using it as a tool. and using Suno is the worst crime.&lt;/p&gt;
&lt;p&gt;being a mediocre artist is just part of the process of learning and getting better as an artist. its always better to be just okay and learning than replacing the sacred workflow of creating art with a machine.&lt;/p&gt;
&lt;p&gt;most would call me a big fat hypocrite&lt;/p&gt;
&lt;p&gt;and I&apos;d probably agree somewhat. you&apos;ll never see me post AI generated imagery for replacing brand assets, or in general. you&apos;ll never see me use AI music generation services.&lt;/p&gt;
&lt;p&gt;but I do enjoy using (and think it&apos;s required for the future of computing) LLMs for agentic code work and deep research. both let me learn faster and better than anything I&apos;ve done before.&lt;/p&gt;
&lt;p&gt;I&apos;m a self taught programmer, I started learning programming when I was 12, I was teaching myself Linux when I was even younger to setup Minecraft servers* for me and my friends. programming is in my blood, ever since I was a child I&apos;ve been a computer-boy. I always knew this was what I was going to be doing with my life. and agentic coding and researching tools have accelerated my learning, and helped me build things in a higher quality than anything I&apos;ve written before.&lt;/p&gt;
&lt;p&gt;there&apos;s no doubt that this is the future we&apos;re going towards, if I&apos;m not proficient with the latest and greatest models, I&apos;m falling behind. I&apos;m also just interested in LLM development and agent harnesses and tech in general. I like learning how they work and how they&apos;re improving.&lt;/p&gt;
&lt;p&gt;all that to be said, I think agentic coding and deep research is fundamentally different than AI generated images and music. these &quot;Diffusion&quot; models are way different in terms of what you gain and lose vs. LLM models.&lt;/p&gt;
&lt;p&gt;what you lose in agentic coding is syntax&lt;/p&gt;
&lt;p&gt;what you lose in AI images &amp;amp; music is personality&lt;/p&gt;
&lt;p&gt;so..&lt;/p&gt;
&lt;p&gt;we need to think twice on the development of these AI image &amp;amp; music services. its not a positive trajectory we&apos;re heading towards for the future.&lt;/p&gt;
&lt;p&gt;and developers of these services, you have to listen to the people you&apos;re trying to replace. artists don&apos;t want these services, artists aren&apos;t interested in replacing the production workflow with a prompt.&lt;/p&gt;
&lt;p&gt;sorry to maybe beat a dead horse, but I needed this out of my brain and onto a page. its hard seeing the AI images especially take over my local town timeline.&lt;/p&gt;
&lt;p&gt;lets get together and be &apos;just okay&apos;.&lt;/p&gt;</content:encoded></item><item><title>oops! your pds is gone :(</title><link>https://mmatt.net/post/3mha4nn7ae222/</link><guid isPermaLink="true">https://mmatt.net/post/3mha4nn7ae222/</guid><description>a short story of scams &amp; a devops eng. worst nightmare</description><pubDate>Tue, 17 Mar 2026 04:20:16 GMT</pubDate><content:encoded>&lt;p&gt;❕ Note: Bluesky has banned *.hf.space from their relays, seemingly just before the writing of this post.&lt;/p&gt;
&lt;p&gt;sigh, we&apos;ve all seen them. the inauthentic fundraising spam&amp;amp;scam bots have taken over Bluesky. but today, I decided to do some research into a specific tactic these scammers were using.&lt;/p&gt;
&lt;p&gt;HuggingFace Spaces&lt;/p&gt;
&lt;p&gt;One of my posts was auto-reposted by an account with a domain ending in .hf.space, I knew this was a HuggingFace domain, so I looked into this one.&lt;/p&gt;
&lt;p&gt;the huggingface spaces domain system gets provisioned as follows: {user}-{repo}.hf.space&lt;/p&gt;
&lt;p&gt;here is an example of one of these repos. its just a Dockerfile with some default README.&lt;/p&gt;
&lt;p&gt;this Dockerfile includes eeeeeeeverything you need to run a PDS. including the PDS secrets...&lt;/p&gt;
&lt;p&gt;the first thing I noticed was the PLC signing key. using boat, I was able to change one of the spam account&apos;s handles to something else.&lt;/p&gt;
&lt;p&gt;you can of course do more than just that with the PLC key, repo signing key, JWT secret, and PDS admin password.&lt;/p&gt;
&lt;p&gt;so...&lt;/p&gt;
&lt;p&gt;I made a set of tools to 1. empty all of the repos in a PDS, 2. generate a new rotation key and remove all other rotation keys (for all repos in a PDS), 3. post to all accounts on a PDS, 4. reset all passwords and set new ones on a PDS, 5. takedown all repos on a PDS. you can do all of this with just these secrets!!&lt;/p&gt;
&lt;p&gt;and...&lt;/p&gt;
&lt;p&gt;I made a script that watches the PDS for new accounts, and then automatically resets the password and performs a takedown with the PDS admin password.&lt;/p&gt;
&lt;p&gt;this was, safe to say, very fun to watch the new accounts roll in and automatically get taken down.&lt;/p&gt;
&lt;p&gt;eventually I built out a way to discover new .hf.space PDSs and automatically run all the tools &amp;amp; start watching for new accounts to autotakedown.&lt;/p&gt;
&lt;p&gt;now thankfully as stated at the top of the post, Bluesky has now banned HuggingFace spaces from showing up on the relay. so this specific method of hosting spam&amp;amp;scam won&apos;t work anymore, and neither will my trolling :(&lt;/p&gt;
&lt;p&gt;anyways, don&apos;t post your keys online dummies &amp;gt;_&amp;gt;&lt;/p&gt;</content:encoded></item><item><title>it&apos;s my following and i want it my way!</title><link>https://mmatt.net/post/3mcvlmb65dc2s/</link><guid isPermaLink="true">https://mmatt.net/post/3mcvlmb65dc2s/</guid><description>a late response to the social graph talk from last week</description><pubDate>Wed, 21 Jan 2026 02:07:52 GMT</pubDate><content:encoded>&lt;p&gt;So last week Spark Social announced their Open Beta and with that their separated social graph.&lt;/p&gt;
&lt;p&gt;This choice ended up starting a bunch of discussion about how we should be using the social graph in the ATmosphere. More specifically I remember these posts from @dame.is and @iame.li. Between the two posts, I definitely lean towards dame&apos;s post. And I hope this post explains my vision behind that reasoning.&lt;/p&gt;
&lt;p&gt;This whole debacle sparked a lot of thoughts in my mind about how we do social graphs in the social internet, and how a shared account (your ATProto repository) that you use to login to multiple services (Bluesky, Tangled, Streamplace, Leaflet, etc.) should handle your social graph. One of the benefits we bring up for ATProto&apos;s superiority is that you own your social graph, but what happens when the apps decide how your social graph is used? I know this is kinda necroposting but I wanted this out of my mind and onto paper.&lt;/p&gt;
&lt;p&gt;Old Social: Different venues, different music.&lt;/p&gt;
&lt;p&gt;In old social land, my social graph is separated per account each with a different login. Instagram doesn&apos;t know about my YouTube followers, TikTok doesn&apos;t know who I&apos;m following on Instagram, etc.&lt;/p&gt;
&lt;p&gt;Anecdotally speaking, each of these apps have very different usage for most people. Most people use Instagram for connecting with personal friends and family and sharing moments of their life, they use YouTube for entertainment, and TikTok for short form quick entertainment.&lt;/p&gt;
&lt;p&gt;If each of these apps knew about the other&apos;s social graph, my Instagram feed gets cluttered with public figures and entertainment, and my TikTok feed gets cluttered with people I know.&lt;/p&gt;
&lt;p&gt;To some people that doesn&apos;t matter to them, but to me each app is specifically tailored to the content I want to see. If my Instagram social graph is also my YouTube social graph, the little control I have over the content I see starts slipping more and more. Like sure I love LTT videos but I don&apos;t need to see their Instagram content too.&lt;/p&gt;
&lt;p&gt;New Social: We&apos;re all breathing the same air in the ATmosphere.&lt;/p&gt;
&lt;p&gt;In old social land, none of these accounts are connected in any way. @mmatt on Twitter isn&apos;t connected to @mmattbtw on Twitch which isn&apos;t connected to @mmattbtw on YouTube.&lt;/p&gt;
&lt;p&gt;In the new social world, your identity holds everything. My Bluesky content is posted by the same identity that posts my Leaflet blogs that is posted by the same identity which chats in Streamplace streams.&lt;/p&gt;
&lt;p&gt;When you &quot;Follow&quot; someone on Twitter, you&apos;re following the Twitter account, not the person. In the new social world, when you follow someone on Bluesky, technically, you are following the person with the intent of keeping up with them specifically on Bluesky.&lt;/p&gt;
&lt;p&gt;For all intensive purposes, these two mean the same thing to the user. But when thinking about it from outside of the apps itself, the relationship made is more interesting.&lt;/p&gt;
&lt;p&gt;This person your account is following on Bluesky might also use other apps on that identity, but your &quot;follow&quot; is only intended for Bluesky via the app.bsky.graph.follow lexicon. Your relationship is also visible to these other apps, whether these apps choose to look at this relationship is up to the developer.&lt;/p&gt;
&lt;p&gt;So where should the control go? In my eyes, lexicons are intent based, and should be scoped towards the applications they are intended for. This is why lexicon.community never really stuck to me, applications and lexicons to me should be heavily opinionated with how they want their applications shaped.&lt;/p&gt;
&lt;p&gt;ON THE OTHER HAND: BLOGS, WRITING, AND OTHER LONG WRITING MEDIUMS.&lt;/p&gt;
&lt;p&gt;Something in my brain clicked when standard.site launched however. And I think thats because the writing medium is so standardized. Text on screen with formatting and authors, everything else is on the side. Why shouldn&apos;t my WhiteWind posts and Leaflet posts be able to be read in the same place?&lt;/p&gt;
&lt;p&gt;Matter of fact, they can! On mmatt.net/writing, this post (on Leaflet), my WhiteWind posts, my Teal Notes post are all viewable in one location. Each of these pieces come from different contexts, so for outside posts not meant for the exact context of publishing onto my site have a little disclaimer saying &quot;this was written over here, view the original.&quot; Of course you can still view the post in its entirety on mmatt.net, everything still works just like it would over here on Leaflet.pub.&lt;/p&gt;
&lt;p&gt;So, when it comes to writing, I actually flip on the whole social graph take. Being able to &quot;follow&quot; an individual author that might post on one publication via Leaflet, or make a guest post on another publication via Offprint, I should be able to follow my author across the ATmosphere and be able to see all their writing in one place.&lt;/p&gt;
&lt;p&gt;What if, site.standard.graph.author.follow, let me follow an individual author across all of their standard.site publications. Writing usually doesn&apos;t have the explicit context shifts of long form / short form video, or microblogging, or live streaming, etc. A lot of people consume blogs, news, and other forms of long writing through RSS readers which ultimately eliminates the context of whatever site or platform the piece was written for. And I think this works perfectly for writing.&lt;/p&gt;
&lt;p&gt;In the same sense, what if site.standard.graph.publication.follow. Similar to an RSS feed just let me keep up with an entire publication on any reading platform. (I think this is already a thing?)&lt;/p&gt;
&lt;p&gt;For some reason, only in this context do shared social graphs make sense to me. When you&apos;re all using a standardized lexicon and interop is the default, this just makes sense to do.&lt;/p&gt;
&lt;p&gt;The case for &quot;genre based&quot; following instead of global following.&lt;/p&gt;
&lt;p&gt;I think the example above with following an author for their writing is a great case for a genre based social graph system instead of a global social graph.&lt;/p&gt;
&lt;p&gt;I think this post from @iame.li perfectly frames how I view this. If there are multiple streaming services, let me follow once and view that streamer on all the platforms. If there is an artist I find on plyr.fm, why not be able to keep that relationship to another music platform?&lt;/p&gt;
&lt;p&gt;Global following on the other hand still doesn&apos;t sit right with me. I appreciate getting updates on some brands on Bluesky, but do I need their livestreams or short videos in their respective apps? Not in my mind.&lt;/p&gt;
&lt;p&gt;I think in either situation (genre or global) user control is still key. The UX of that would take some time to plan out, and out of scope for this post (because I want this out asap lol).&lt;/p&gt;
&lt;p&gt;AT THE END OF THE DAY, ITS JUST SOCIAL MEDIA RIGHT?&lt;/p&gt;
&lt;p&gt;I think I derailed at the end here, but feel free to ask questions about anything in the post, would be more than happy to clarify!&lt;/p&gt;
&lt;p&gt;thanks for reading &amp;gt;_&amp;gt;&lt;/p&gt;
&lt;p&gt;@mmatt.net&lt;/p&gt;</content:encoded></item><item><title>i wish Bluesky&apos;s streaming thing was better</title><link>https://mmatt.net/post/3mciryxlovs2n/</link><guid isPermaLink="true">https://mmatt.net/post/3mciryxlovs2n/</guid><description>just a little explanation</description><pubDate>Thu, 15 Jan 2026 23:57:47 GMT</pubDate><content:encoded>&lt;p&gt;re:&lt;/p&gt;
&lt;p&gt;I&apos;m shown as being Live on my Bluesky profile, but I&apos;m not live on the linked stream at all.&lt;/p&gt;
&lt;p&gt;Matter of fact, I haven&apos;t streamed on Twitch in 4 months.&lt;/p&gt;
&lt;p&gt;Penny isn&apos;t Vinesauce, Vinesauce is not live on Twitch.&lt;/p&gt;
&lt;p&gt;I appreciate this feature, but when you&apos;re limiting the feature to just one streaming platform, I&apos;d wish it was &quot;smarter&quot;.&lt;/p&gt;
&lt;p&gt;Why am I setting exactly how long the status shows for? I don&apos;t know how long I&apos;m going to be live for most of the time, and why are there so many options?&lt;/p&gt;
&lt;p&gt;I feel that avoiding using the Twitch API for seeing if a said user is live or not for this feature makes using this feature quite mechanical. When starting a livestream, I&apos;m more focused on getting all the streaming part of it than the marketing part of it. Thus, being able to input my Twitch username once into Bluesky, and the service automatically sets my live status on the app when I go live / offline and where I&apos;m live at.&lt;/p&gt;
&lt;p&gt;I also wish each live status was verifiably connected to the user. A Twitch OAuth check for just getting the user&apos;s Twitch ID that you can use for setting the live status would make this feature much much much more serious. Without anything like that, users will set their live status as anybody, at all times of day, without being live at all. Which can really dumb down the feature, if I&apos;m seeing a bunch of Live statuses and click on them with half of them not actually being live or not actually being them, I&apos;m gonna stop clicking on them.&lt;/p&gt;
&lt;p&gt;I understand why you didn&apos;t include Stream.place at this time, (see post), but as the native ATProtocol streaming service they implement the above exactly right. Upon going live and announcing your stream, they make the app.bsky.actor.status record for you which inherently is verifiably connected to your Bluesky account. Just add some more trusted streamers for stream.place, thanks.&lt;/p&gt;
&lt;p&gt;thanks for reading!
&amp;gt;_&amp;gt; @mmatt.net&lt;/p&gt;</content:encoded></item><item><title>how i&apos;m feeling now</title><link>https://mmatt.net/post/3lzlwe6puis2l/</link><guid isPermaLink="true">https://mmatt.net/post/3lzlwe6puis2l/</guid><description>what we&apos;re doing now, and where we are going from here</description><pubDate>Wed, 24 Sep 2025 17:06:53 GMT</pubDate><content:encoded>&lt;p&gt;On Friday, September 19th of 2025, I (@mmatt.net) sent out a Bluesky post asking for community feedback on how exactly the public listens to their music nowadays. I also sent a similar line of questioning to my friends at @gusic.opn.haus. These antics all have the goal of: let&apos;s get people tracking on Teal.&lt;/p&gt;
&lt;p&gt;Community member @baileytownsend.dev has been tracking his music listening habits on Teal since around May of this year, using our work-in-progress tracking solution: piper [github, tangled]. Piper has been built up by Bailey, Natalie, and Loveless to be our first party tracking solution. Right now, it currently supports Spotify and (experimental) Last.fm syncing. I&apos;ll let one of them do the talking on the technical details about piper (I know about as much go as I know Spanish) on a later note, but for now what you need to know is that it polls your streaming service of choice for what you are listening to and makes a Teal.fm record (fm.teal.alpha.feed.play) for what you&apos;re currently listening to.&lt;/p&gt;
&lt;p&gt;I want to open up a public instance of piper for everyone to use to start tracking their listening now while we are getting the frontend application ready to use.&lt;/p&gt;
&lt;p&gt;Before we get too into the weeds, let&apos;s back up and explain how Teal.fm works.&lt;/p&gt;
&lt;p&gt;visions: How does Teal.fm work.&lt;/p&gt;
&lt;p&gt;Teal is built in three parts.&lt;/p&gt;
&lt;p&gt;1. The Frontend Application&lt;/p&gt;
&lt;p&gt;This will be the bsky.app of Teal. You&apos;ll be able to view your profile with your plays, along with other profiles. You&apos;ll be able to make posts with songs, interact with other posts (likes/reposts/comments), view your timeline, etc. This will be what replaces the current landing page at teal.fm, and will also be our mobile app.&lt;/p&gt;
&lt;p&gt;2. Our AppView/API&lt;/p&gt;
&lt;p&gt;Handles everything to get data from our database &amp;amp; your PDS, onto your screen through the Frontend Application.&lt;/p&gt;
&lt;p&gt;3. The Song Tracker / Stamper / Song Ingest&lt;/p&gt;
&lt;p&gt;This is the part that actually tracks what you are listening to. In the future, this (referring to piper) may be integrated into the Frontend Application so that you have a seamless experience connecting your accounts.&lt;/p&gt;
&lt;p&gt;Piper is our first party effort at this. However, anyone is more then welcome to build one for themselves. All it takes is 1. a way to programmatically pick up to what you are listening to, and 2. a way to create a fm.teal.alpha.feed.play record on your PDS. Your PDS and our AppView take care of the rest.&lt;/p&gt;
&lt;p&gt;i finally understand: Now, did the audience help answer your question?&lt;/p&gt;
&lt;p&gt;Yes! Thank you everyone for the responses on my original post, I really appreciate it! Here are the main things I&apos;ve gathered.&lt;/p&gt;
&lt;p&gt;1. Spotify Support&lt;/p&gt;
&lt;p&gt;We already support Spotify in piper, yay!&lt;/p&gt;
&lt;p&gt;2. YouTube Music / Tidal Support&lt;/p&gt;
&lt;p&gt;A lot of y&apos;all use YouTube Music and Tidal. At this time, both of these services&apos; API aren&apos;t friendly enough to provide us with the data we need for tracking your listening. Tidal has native Last.fm support, which means you can use piper&apos;s Last.fm syncing to get tracking from Tidal. YouTube on the other hand has nothing of the sort. The best way to go about tracking your listening on YouTube is by using a web browser and the WebScrobbler extension.&lt;/p&gt;
&lt;p&gt;3. Apple Music Support&lt;/p&gt;
&lt;p&gt;I really want Apple Music support on piper. Luckily enough, Bailey has guided me in the right direction with the MusicKit documentation to where Apple Music support should be coming soon to piper. No promises haha, but everything is pointing in the direction of this being possible!&lt;/p&gt;
&lt;p&gt;If you use the Apple Music Client: Cider, @regnault.dev is working on an application to track from Cider! You can check out the repo on Tangled.&lt;/p&gt;
&lt;p&gt;4. (lovingly) You Guys Are Nerds&lt;/p&gt;
&lt;p&gt;A significant portion of the replies here have made me realize, (in a very positive tone) you guys are nerds! I mean, I can&apos;t say much because I&apos;m the huge nerd who wanted this project to exist, but y&apos;all surprised me here!&lt;/p&gt;
&lt;p&gt;Quite a bit of repliers use modified Streaming Service clients, local files on various media server software and local music software, Linux &amp;amp; Android, internet radios, etc. etc.&lt;/p&gt;
&lt;p&gt;Any non-streaming service stuff is outside of the scope of piper BUT, making some of these work isn&apos;t outside of our thought bubble, just might be the lowest on the priority. Foobar2000/MusicBee/Jellyfin plugins are doable. A lot of the other stuff would either require modifying the client itself, or using a Desktop Application to listen to your system&apos;s &quot;Now Playing&quot; status. This stuff, again, wouldn&apos;t be immediately ignored by us, but it&apos;s just the lowest priority.&lt;/p&gt;
&lt;p&gt;The best part of Teal is how incredibly open ATProto is. If we don&apos;t make a way to track your music from your favorite niche music software, you are more then welcome to make your own! You don&apos;t need our approval or verification to make additions to your own listening history.&lt;/p&gt;
&lt;p&gt;5. WebScrobbler&lt;/p&gt;
&lt;p&gt;Mentioned above, WebScrobbler is a browser extension for submitting your listening status to services like Last.fm or ListenBrainz. We have been thinking about trying our hand at getting Teal added as a service to the extension! It would vastly improve the number of services you can submit to, such as YouTube, Soundcloud, Bandcamp streaming, and more. I personally use WebScrobbler all the time for watching music videos on YouTube and listening to tunes on Soundcloud. Should be easy enough, especially if we implement compatible Last.fm / ListenBrainz API routes into piper.&lt;/p&gt;
&lt;p&gt;6. Compatible Last.fm / ListenBrainz API routes&lt;/p&gt;
&lt;p&gt;These routes would make it easier to integrate Teal into existing plugins, services, and applications. This has been something we&apos;ve been wanting to add to Teal since day one, so these will be coming sooner or later.&lt;/p&gt;
&lt;p&gt;forever: Our priorities as of now, and where we&apos;re going.&lt;/p&gt;
&lt;p&gt;In regards to piper, our priority right now is:&lt;/p&gt;
&lt;p&gt;1. Apple Music&lt;/p&gt;
&lt;p&gt;2. Last.fm / ListenBrainz API compatibility&lt;/p&gt;
&lt;p&gt;3. WebScrobbler support (not apart of piper, but y&apos;know)&lt;/p&gt;
&lt;p&gt;4. stable Last.fm sync&lt;/p&gt;
&lt;p&gt;5. everything else.&lt;/p&gt;
&lt;p&gt;In regards to the project as a whole:&lt;/p&gt;
&lt;p&gt;1. Get a public piper instance running &amp;amp; getting everyone to start tracking.&lt;/p&gt;
&lt;p&gt;2. Refine frontend experience to focus on music tracking/statistics, and make it available to use to everyone on the web.&lt;/p&gt;
&lt;p&gt;3. Roll out the Social Side.&lt;/p&gt;
&lt;p&gt;More info on Teal&apos;s Social Side at a later date. :)&lt;/p&gt;
&lt;p&gt;anthems: From the heart, to the reader.&lt;/p&gt;
&lt;p&gt;Thank you for reading the first Teal Note, I really appreciate it! Thank you for replying to my post, I appreciate it a ton! And most importantly, thank you for caring about Teal.fm. I see your pleads for the best place for tracking and sharing music! With both me and Natalie being occupied full time (me: full time student &amp;amp; part time retail, Natalie: full time @stream.place) it may take a while for the visions of Teal to truly come to fruition, but this limbo of waiting will hopefully be worth it.&lt;/p&gt;
&lt;p&gt;With Love,&lt;/p&gt;
&lt;p&gt;Matt M.&lt;/p&gt;
&lt;p&gt;@mmatt.net, Technologist at Teal.fm&lt;/p&gt;</content:encoded></item><item><title>Running the iCloud Drive PDS.</title><link>https://mmatt.net/post/3lu4ttw3wf22z/</link><guid isPermaLink="true">https://mmatt.net/post/3lu4ttw3wf22z/</guid><description>Because I saw a Dame post.</description><pubDate>Fri, 19 Sep 2025 01:10:25 GMT</pubDate><content:encoded>&lt;p&gt;⚠️ You probably shouldn&apos;t do this.So.. you&apos;re probably wondering how we got here.Bluesky post from @dame.is, &quot;i wanna run a PDS on iCloud&quot;In case you&apos;re unaware, a PDS is a &quot;Personal Data Server&quot; for ATProtocol. You can learn more about what a PDS is and how to host one on atproto.com. A PDS is practically just an Express webserver responsible for storing an account&apos;s data into an SQLite database. The PDS also communicates with the AppViews of ATProto applications to make actions with said applications.Running a PDS on iCloud is, pretty silly. But... I did it.Bluesky post from @data-stored-on.icloud.mmatt.net, &quot;i just have the best news for you all&quot;. With the following photo attached: &quot;a screenshot showing that in /iCloud Drive/pds/data/actors/73, this account&apos;s did has a directory with its key and store.sqlite&quot;Here&apos;s how I did it.Requirements:A device that can run Docker, access iCloud Drive, and accept incoming network requests.Any computer running macOS or Windows should be able to meet these requirements.About:I&apos;m simply just running the default compose.yaml Docker Compose file from the official bluesky-social/pds repository, just a bit modified. I&apos;m using OrbStack for running Docker on my Mac.The main trick here is binding iCloud Drive to Docker. You can see this under volumes:.Your iCloud Drive is located at /Users/matt/Library/Mobile Documents/com~apple~CloudDocs on your Mac. As you can see, I didn&apos;t use that directory in my compose.yaml. Instead, I used a symlink. I&apos;m unsure if this is really needed, but when I tried using the real directory, it just wasn&apos;t working.ln -s &quot;/Users/matt/Library/Mobile Documents/com~apple~CloudDocs/pds&quot; ~/Desktop/pds_shortcutI simply created a folder on my iCloud Drive called pds, in there I created a pds.env and then blobs and data folders.For directing traffic to my Mac, I used Tailscale and Caddy. I had my Mac and my Hetzner VPS on the same Tailscale Tailnet, then used Caddy to just reverse proxy from my Hetzner VPS to my Mac through Tailscale&apos;s Tailnet. Then I just ran docker compose up on my Mac within the directory where compose.yaml was located, and it was up!The following is the exact files I used for the whole setup. Please let me know if I missed anything!Caddyfile{ email matt@thisdomain.net on_demand_tls { ask http://matts-mac-mini:xxxx/tls-check } } *.icloud.mmatt.net, icloud.mmatt.net { tls { on_demand } reverse_proxy matts-mac-mini:xxxx }compose.yamlversion: &quot;3.9&quot; services: pds: container_name: pds image: ghcr.io/bluesky-social/pds:0.4 network_mode: host restart: unless-stopped volumes: - type: bind source: /Users/matt/Desktop/pds_shortcut target: /pds env_file: - &quot;/Users/matt/Desktop/pds_shortcut/pds.env&quot;pds.env# See more env options in src/config/env.ts # Hostname - the public domain that you intend to deploy your service at PDS_HOSTNAME=&quot;icloud.mmatt.net&quot; PDS_PORT=&quot;xxxx&quot; # Database config - use one or the other PDS_DATA_DIRECTORY=&quot;/pds/data&quot; # Blobstore - filesystem location to store uploaded blobs PDS_BLOBSTORE_DISK_LOCATION=&quot;/pds/blobs&quot; # Private keys - these are each expected to be 64 char hex strings (256 bit) PDS_REPO_SIGNING_KEY_K256_PRIVATE_KEY_HEX=&quot;xxx&quot; PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=&quot;xxx&quot; # Secrets - update to secure high-entropy strings PDS_DPOP_SECRET=&quot;xxx&quot; PDS_JWT_SECRET=&quot;xxx&quot; PDS_ADMIN_PASSWORD=&quot;xxx&quot; # Environment - example is for live network PDS_DID_PLC_URL=&quot;https://plc.directory&quot; PDS_BSKY_APP_VIEW_URL=&quot;https://api.bsky.app&quot; PDS_BSKY_APP_VIEW_DID=&quot;did:web:api.bsky.app&quot; PDS_CRAWLERS=&quot;https://bsky.network&quot; # OAuth Provider PDS_OAUTH_PROVIDER_NAME=&quot;on da icloud&quot; PDS_OAUTH_PROVIDER_LOGO= PDS_OAUTH_PROVIDER_PRIMARY_COLOR=&quot;#7507e3&quot; PDS_OAUTH_PROVIDER_ERROR_COLOR= PDS_OAUTH_PROVIDER_HOME_LINK= PDS_OAUTH_PROVIDER_TOS_LINK= PDS_OAUTH_PROVIDER_POLICY_LINK= PDS_OAUTH_PROVIDER_SUPPORT_LINK= # Debugging NODE_TLS_REJECT_UNAUTHORIZED=1 LOG_ENABLED=true LOG_LEVEL=debug PDS_INVITE_REQUIRED=0 PDS_DISABLE_SSRF_PROTECTION=0&lt;/p&gt;</content:encoded></item><item><title>The Grim Barbarity of Optics and Design</title><link>https://mmatt.net/post/3lmam3ommzs2r/</link><guid isPermaLink="true">https://mmatt.net/post/3lmam3ommzs2r/</guid><description>This is another Switch 2 Blog Post.</description><pubDate>Tue, 29 Apr 2025 18:39:37 GMT</pubDate><content:encoded>&lt;p&gt;A screenshot of the new Nintendo Switch 2&apos;s home menu. A blank gray background with rounded square tiles in the center to show games, one has Mario Kart World. The bottom menu buttons are rounded circles containing an icon pertaining to what the button does.This is what the Nintendo Switch 2&apos;s Home Menu UI looks like. It&apos;s lame as hell. Blank grey background with rounded tiles in the middle for game icons and a plethora of circular menu buttons on a bar below the tiles. It&apos;s all in this boring, monotonous, and assumingly silent menu.To those new here, this is almost identical to how the Switch 1&apos;s UI looked. To those who had a Switch 1, welcome back! This is all too familiarly disappointing, isn&apos;t it?A screenshot of the old Nintendo Switch 1 home menu. It&apos;s the same, without the rounded corners on the icons.It&apos;s all so bare and boring. The &quot;Themes&quot; menu in the System Settings just has &quot;Basic Light&quot; and &quot;Basic Dark&quot;. After 8 YEARS of speculation, more themes were never available for purchase, like how the 3DS had.After 8 years of this system theme, hopes were really high for the next system in Nintendo&apos;s lineup to go back to the old infinitely replayable menu music of the Wii era, or the lively social landscape of Wara Wara Plaza from the Wii U (that even had its own jingle for when it was your birthday!), or the ever infectious startup sounds for the GameCube, or the iconic jingles and tunes in the Wii&apos;s Mii Channel. All of these made opening the console on Day 1 so exciting and fun. I remember opening the Wii U on my birthday, booting it up, setting it up, and then getting into Wara Wara Plaza with that birthday jingle mentioned before, it was so magical and it&apos;s something I still think about to this day.All of this was thrown away in the Switch&apos;s UI design! There&apos;s no music! There isn&apos;t any music when you open the main menu, unlike the amazing ambient soundtracks of the Wii or Wii U era. The ever-evolving eShop themes from the 3DS and Wii U, nor anything like the iconic Wii Shop Channel are present in the Switch&apos;s eShop app. Instead, you are met with a (very slow on the Switch 1) baren webapp. Giant sidebar, slowly transitioning into your main content view. Just an unpleasant experience, especially compared to Nintendo&apos;s previous home consoles.A screenshot of the Wii&apos;s system menu. Shows all the default channels in a 4x3 grid layout akin to TV channels. There is a blue Player 1 cursor shown on screen from the Wii Remote. Below the channels has the system date and time, with a settings button, SD card menu, and the Wii Message Board.Part of the Wii&apos;s charm was its system UI. The iconic TV channel layout was easy to understand to ANYONE, gamer or not. The included channels (Mii Channel, Photo Channel, Wii Shop Channel, Weather Channel, and News Channel) were all fun to use! The Mii Channel was infectiously fun and filled with creativity, you can make yourself, your family, celebrities, anybody!! It&apos;s always a fun time gathering around the TV and creating a new Mii. You could manipulate and draw on images from your SD card in the Photo Channel, look at your local weather forecast in the Weather Channel, look at local and worldwide news in the News Channel, and shop WiiWare and the Virtual Console in the Wii Shop Channel. All of these channels had incredible soundtracks, and were fun to play around with! These were included with the console, just on the system UI. The Wii&apos;s system software is notable enough to even have its own Wikipedia Article.All of this has ultimately gone to dust in the Nintendo Switch era. You make Mii&apos;s in the System Settings. YOU MAKE MII&apos;S IN THE SYSTEM SETTINGS... The system is practically on mute until you start up a game. It&apos;s so sad! I really thought that with the Switch 2 Nintendo was gonna do something more. I think all the UI concepts I kept seeing on Reddit and places alike had me too hopeful. It&apos;s sooo boring and sad! The death of the Mii&apos;s as branding is just sad to see, like we&apos;ve seen some glimpses of them using Mii&apos;s again (Virtual Game Cards promo video and Tomodachi Life: Living the Dream) but not the abundance of Mii&apos;s found in the Wii and Nintendo DS era. Which, okay, makes sense, and yes, I&apos;m incredibly blinded by nostalgia here, but still, I think that use of branding was so fun and flavorful.All this to say, I really miss how creative Nintendo was with their UI design. These flat muted colors with nothing to have fun with out of the box is so soul-sucking. &quot;So excited to open my new console! What&apos;s there to do? Okay... system settings... eShop......... aaand playing the 1 game I could afford. This is kinda sad.&quot; I fear this is how I&apos;m gonna think when opening my new $450 console. Oh well, at least Mario Kart will be fun.&lt;/p&gt;</content:encoded></item><item><title>Don&apos;t buy the Nintendo Switch 2...</title><link>https://mmatt.net/post/3llwmrmpyrk2e/</link><guid isPermaLink="true">https://mmatt.net/post/3llwmrmpyrk2e/</guid><description>...at launch.</description><pubDate>Mon, 21 Apr 2025 23:06:42 GMT</pubDate><content:encoded>&lt;p&gt;⚠️ This post was originally posted at 4/3/2025, 4:07:16 PM.⚠️ As of 4/4/2025, Nintendo has delayed US preorders due to Trump-Tariffs. At this time, it is unclear if the Switch 2&apos;s console price has changed from $450. I will keep this section of the post up to date with the latest info on this.⚠️ As of 4/18/2025, Nintendo Switch 2 will remain $450, Mario Kart World will remain $80, Donkey Kong Bananza will remain $70. Accessories have changed price. All details are in the article linked. With that being said, this post is still relevant as the information I knew then and the information we have now are the same.⚠️ The originally published post follows below.Don&apos;t buy the Nintendo Switch 2 at launch. There is practically only one first-party launch title, Mario Kart World, and that will be infinitely replayable for years to come, you don&apos;t need to play it upon launch. Wait for Holiday, at least.The only reason I am personally pre-ordering is beacuse I have been waiting for this system for a long time now, and I have never been able to do a Day 1 console launch. I&apos;m in a silly point in my life where I don&apos;t have any bills, I have a part time job ($13.10/hour and I work around 4 days a week right now), and I&apos;m going to school for a higher paying job (hopefully) upon graduation. While I should be a smart person and start putting more and more money into savings, I would prefer having fun with the money I earn. I can&apos;t wait to go to a midnight launch for a new system, it sounds like so much fun. I watched CND&apos;s Switch 1 Launch Vlogs as they were airing, and I&apos;ve always wanted to do it sense watching those (8+ years ago!!). Again, this is an incredibly stupid decision &amp;amp; I wouldn&apos;t recommend anyone doing the same (it&apos;s also a very privilleged position too). So, again, do not buy the Nintendo Switch 2 at launch.The system should fail upon launch. The system&apos;s price is, fine. The system&apos;s software price is, delusional. I knew we were moving to $70 MSRP for AAA first party games with the release of Tears of the Kingdom for Switch 1, but $80 is pushing it entirely too far. I really hope the consumer market reacts to this push to $80 too, I hope software with this price tag undersell like crazy. I want to see Nintendo backtrack on this so bad, in reality I don&apos;t think they will but I would love to see it happen. People keep bringing up the 3DS&apos;s poor sales performance at launch and how Nintendo backtracked on that, but that wasn&apos;t because of just price. The 3DS had a terrible launch lineup with practically no releases after it, which lead to poor sales and the price cut. The Switch 2 has a brand new Mario Kart game, it&apos;s going to sell just fine.NOBODY SHOULD BUY Nintendo Switch 2: Welcome Tour. No matter the cost, nobody should buy it. End of story, don&apos;t pay for a tech demo. It&apos;s not even a video game, it&apos;s a tech demo, it calls itself a tech demo, don&apos;t pay for tech demos.Switch 2 physical game prices via Target. Donkey Kong Bananza ($70), Bravely Default: Flying Fairy HD ($40), Kirby and the Forgotten Land - Nintendo Switch 2 Edition ($80), The Legend of Zelda: Breath of the Wild - Nintendo Switch 2 Edition ($70), Street Fighter 6 ($60), Mario Kart World ($80), The Legend of Zelda: Tears of the Kingdom - Nintendo Switch 2 Edition ($80), Super Mario Party Jamboree - Nintendo Switch 2 Edition ($80)Mario Kart World is the flagship game for the Switch 2, it&apos;s what&apos;s going to be the Switch 2&apos;s system seller for years to come. At launch, there will be a Nintendo Switch 2 console bundled with the game for $500 USD, with the game valued at $50 in this bundle. This is a no-brainer, obviously everyone should go for this bundle at launch. However, this bundle isn&apos;t a guarenteed offer. As seen on the How To Buy Nintendo Switch 2 page on Nintendo&apos;s website, &quot;[the Mario Kart World bundle is a] Limited-time production through Fall 2025 (available while supplies last).&quot; Right now, we don&apos;t know the confirmed Digital price for the title, except for a Geoff Keighley tweet which I&apos;m taking with a grain of salt. Basically, nobody should be buying this for $80 at launch, just go for the system bundle.$70 for Donkey Kong Bananza is fine. It&apos;ll only be not fine if the game is incredibly short, from the trailer we got at the Direct it seems like it&apos;ll be a large enough game to justify the price point.$80 for some ports??? Actually wild. I understand exactly what they&apos;re doing, with Super Mario Party Jamboree for example, they&apos;re charging $60 for the base game and adding the &quot;Upgrade Pack&quot; pricing on top of that ($20). But this just feels incredibly scummy to me, I wouldn&apos;t even pay $20 on the Switch 1 for the added content in that game, let alone paying $10-$20 for some graphical improvements. Kirby and the Forgotten Land is in the exact same boat. I have a feeling they are justifying these $20 upgrade packs because of these added side story modes that nobody is really fiending for. If there was an option to just pay $10 for only graphical upgrades, I would do that with these two games. I suppose I&apos;ll get Super Mario Party Jamboree one day, it seems really fun, but I don&apos;t think I&apos;ll pay for the upgrade and just play it under the backwards compatibility mode.Both Breath of the Wild &amp;amp; Tears of the Kingdom&apos;s upgrade packs are going to be included with an active Nintendo Switch Online + Expansion Pack membership. This is good, but kinda just wish they were free upgrades in the first place. All the BOTW &amp;amp; TOTK upgrade packs do is improve performance and resolution. I paid for the system to have improved performance and resolution, now I have to double dip on upgrading the software too?The PlayStation 5 does something similar. I bought Gran Turismo 7 for my PlayStation 4 for $20 (on sale) and that game retails (for the PS4) at $40. The PS5 version retails at $70. This game is cross-gen, and released on PS4 &amp;amp; PS5 simultaniously. I paid $10 to upgrade my PS4 copy to the PS5 version. I was plenty happy to do this upgrade, it felt very cost efficient. Nintendo&apos;s way of doing these upgrades don&apos;t feel that way at all. They shouldn&apos;t force us to pay up for a mandatory $20 DLC to upgrade the software&apos;s version to the newest console. Ports should max out at $70 to an upgraded system. These Switch 2 Edition games aren&apos;t cross-gen games, these are ports with tacked on DLC. They already ported half of the Wii U&apos;s library to Switch, and charged $60 for all of those games, are they about to release upgrade packs for those too?Anyways, this was kinda a ramble but I just wanted to put all of my thoughts on the Switch 2&apos;s pricing in one place, and to start using my Blog more.&lt;/p&gt;</content:encoded></item><item><title>Nintendo Switch 2 Misinformation Control</title><link>https://mmatt.net/post/3llxgrml25s2i/</link><guid isPermaLink="true">https://mmatt.net/post/3llxgrml25s2i/</guid><description>An ongoing blog post correcting all the misinformation surrounding the Nintendo Switch 2.</description><pubDate>Tue, 08 Apr 2025 03:18:54 GMT</pubDate><content:encoded>&lt;p&gt;⚠️ This is an ongoing blog post. The date listed above is the &quot;last edit&quot; date. This post started being written on April 3rd, 2025. 🚧Hello, this is going to act as my single link for when someone brings up something that isn&apos;t true about the Nintendo Switch 2 launch. This post is going to sound soooooo fanboy-y, so to balance that out you could read my other post criticizing the Switch 2&apos;s software pricing.Game-Key CardsThe Game-Key Card article on Nintendo&apos;s home page. With the text, &quot;The game itself isn&apos;t included on the game-key card, so you&apos;ll have to download it before you can play.&quot;You&apos;ve probably seen this screenshot floating around the interwebs, and you&apos;re probably (rightfully so if you&apos;ve been misled) pissed. Thankfully, I am here to correct your worries, and tell you the gospel about the Game-Key Card.Game-Key cards are NOT replacing the standard Nintendo Switch 2 Game Cart.(let me repeat that again, it&apos;s quite important.)Game-Key Cards are NOT replacing the standard Nintendo Switch 2 Game Cart.What ARE Game-Key Cards replacing?Game-Key Cards are replacing yester-generation&apos;s &quot;Physical Digital Only Games&quot;.The Nintendo Switch release of Overwatch with the disclaimer, &quot;FULL GAME DOWNLOAD: GAME CARD NOT INCLUDED!&quot;Game-Key Cards are actually a good thing for consumers. Instead of having a one-time use download code in these releases, you get a physical key that can be used to unlock that content. This is GREAT for reselling! It&apos;s now, for the first time ever on a console, possible to resell a digital release. These are a giagantic step forward from the old release types.GameSpot has confirmed this.However, these releases are still... very silly. These releases will happen on Nintendo Switch 2 from third party developers cheaping out on game carts, and just going through the eShop instead. Also, when the eShop eventually goes offline, these releases are useless. But again, these aren&apos;t replacing the standard game carts, so this problem, of the eShop going offline, would&apos;ve still been a problem with the old system.According to this post by Emma (@invoxiplaygames.uk), some of last generation&apos;s game cards would only have part of the game and would require you via an online update to download the rest. Also, the Wii Shop is still hosting downloads for games and updates even since the shop was closed in 2019.See the &quot;Digital Only Physical Games&quot; episode of Scott The WozNone of Nintendo&apos;s first party titles (so far from the Launch) are going to be on these Game-Key Cards. Nintendo first party titles are on standard carts with actual game data on them.Here&apos;s a visual:A diagram with the header &quot;GAME-KEY CARDS EXPLAINED (AND STANDARD PHYSICAL GAME CARDS)&quot;. On the left with a red border has &quot;GAME-KEY CARDS (PHYSICAL CARD THAT REQUIRES A DOWNLOAD&quot;. Under that it says, &quot;SWITCH 1 HAD FULL GAME DOWNLOADS.&quot; And besides that it says, &quot;THESE SWITCH 1 RELEASES WERE JUST EMPTY CASES THAT INCLUDED DOWNLOAD CODES. SWITCH 2 GAME-KEY CARDS WILL ALLOW THE RESALE AND SHARING OF DOWNLOADABLE GAMES, BECAUSE THE GAME-KEY CARD ISN&apos;T TIED TO A SYSTEM AND SIMPLY UNLOCKS THE GAME.&quot; On the right of the diagram it simply says, &quot;STANDARD GAME CARDS (FULL GAME ON THE CARD), COMPLETELY NORMAL&quot; Under the GAME-KEY CARDS section shows Street Fighter 6 for the Switch 2, under the SWITCH 1 HAD FULL GAME DOWNLOADS section shows The Outer Worlds for the Switch 1, under the STANDARD GAME CARDS section shows The Legend of Zelda: Breath of the Wild for the Switch 2 and Donkey Kong Bananza for the Switch 2.$90 Physical GamesA screenshot from Spain&apos;s My Nintendo Store, showing Mario Kart World priced at 80 Euros for the Digital release, 90 Euros for the Physical release, and Donkey Kong Bananza priced at 70 Euros for the Digital release, and 90 Euros for the Physical release.A classic Americanism of not understanding other currencies. This was a screenshot from Spain&apos;s My Nintendo Store, that shows Mario Kart World priced at 80 Euros for a Digital Copy, and 90 Euros for a Physical release. This has not been confirmed at all for the US as being $90 USD for a physical release.Best Buy screenshot showing $79.99 for a Physical copy.Best Buy and Target have listings up for physical copies of Mario Kart World listed at $79.99. NOT $90.Switch 2 Upgrades, Download Codes on Physical release.⚠️ Conflicting reports, and unreliable (no shade, its just a single tweet) source.Tweet stating, &quot;Wait... so let me get this straight. Switch 2 Editions comes with the OG Switch cartridge and a download code for the upgrade??? They&apos;re not putting the upgraded version itself in an actual cartridge???&quot; With a screenshot from the Metroid Prime 4: Switch 2 edition box art that says, &quot;Includes the Nintendo Switch game and the Nintendo Switch 2 Edition upgrade pack. Upgrade pack also available separately.&quot;So I saw this tweet and honestly, it made sense to me that it would just be a download code for the upgrade packs. Also, it was &quot;confirmed&quot; by a Nintendo UK Support Rep. Appearently, this isn&apos;t the full story.Tweet from Nintendo Prime stating, &quot;Hey all you journalist and youtubers that ran the story without sending a FREE EMAIL to confirm about Switch 2 Edition games not having the extra content on the cartridge - you got duped. I sent a single email and got confirmed. FULL GAME ON CART, INCLUDING EXTRAS.&quot;According to thie email from the My Nintendo Store recieved by Nintendo Prime, the one cartridge you get with the Nintendo Switch 2 Edition physical games (what a mouthfull) is the upgraded version, not the Switch 1 cart.&lt;/p&gt;</content:encoded></item><item><title>ITL 2025 Is Here!</title><link>https://mmatt.net/post/3lls32ikpkk2s/</link><guid isPermaLink="true">https://mmatt.net/post/3lls32ikpkk2s/</guid><description>How and Why you should play the Biggest ITG Event of the year.</description><pubDate>Fri, 14 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;ITL Online 2025 Pack ImageThe WhatITL Online 2025 is an online, asynchronous event hosted by the Internation Timing Collective! It is the biggest ITGmania event for all things tech and timing! Compiled of ~200 Community Made Charts from all sorts of packs curated by the talented ITL team, learn and perfect modern ITG Tech from lots of bangers in the pack.Not an expert? Don&apos;t worry too much about competition, just have fun! Charts start at just ITG level 7s for both Singles and Doubles play. Have a fun time collecting Points from completing and perfecting your timing on these charts! It&apos;s a super fun event to learn dance gaming.Old-timer getting back into Dance Games? ITL Online is the best time to come back into the game. With a pletheora of entry level to higher level charts, introducing you to all types of modern 4-Panel tech play. Compete with yourself to see if you can get those Quads! ⭐Expert Dance Gamer? You probably already know about ITL, hell you are probably on the first page of the Leaderboard, pls don&apos;t steal my points &amp;lt;_&amp;lt;!!The WhyWhy should you play ITL? It&apos;s fun!!! Even if you aren&apos;t into competition, getting together with the community to play all these charts together is such a fun experience. I can&apos;t just tell you &quot;Its Fun Please Play&quot;, so you&apos;ll just have to trust me and at least try it out.The How⚠️ Play at a public cab? Don&apos;t have a GrooveStats account yet? Both of these are covered in a previous blog post of mine.PrerequisitesA GrooveStats Account.Step 11 on my previous blog post goes through all of this.You can either use a USB/Local profile with your API key OR use the QR codes on the score screens.A 4-panel dance pad.No Keyboard Plays, sorry.Find an arcade with a StepMania Converted Cab on Z-i-V or Buy yourself your own Dance PadITGmania 1.0.0+ w/ Simply Love 5.6.0+These are the supported versions for this year&apos;s ITL. Older versions may work for score submission, but it&apos;s recommended to update.The pack downloaded and in your songs folder.You can find the pack on ITL&apos;s Website after you sign in under the &quot;Downloads&quot; section on the &quot;Rules&quot; tab.How To Play1. Register on the ITL website.Just sign in using your GrooveStats account on the ITL Online 2025 website2. Turn on the FA+ Timing Windows.ITL Online is a timing event, which means we turn on the 15 ms Fantastic window (widely referred to as FA+).2.1 Go into options after choosing a songPress the green button twice.2.2 Go down to &quot;Advanced Modifiers&quot;Modifiers screen showing &quot;Advanced Modifiers&quot; highlighted under &quot;What comes next?&quot;2.3 Turn on all the FA+ options.Advanced Modifiers screen showing &quot;Display FA+ Window&quot;, &quot;Display EX Score&quot;, &quot;Display FA+ Pane&quot; highlighted under &quot;FA+ Options&quot;3. Play your charts!Note:You must keep Decents + Way Offs enableduse XMOD or MMOD when &quot;No CMOD&quot; is in the chart descriptiononly 1.0x song rate mod (not scroll speed)turn &amp;amp; visuals mods are okay (nothing that messes with the step counts)play unlocks with friends and submit later when you unlock the chart.4. Have Fun, and collect Points!ITL is all about having fun, so don&apos;t forget it!ITL Online 2025 started on March 14th, 2025 and will end on June 15th, 2025 at 2:59 AM PDT. You&apos;ll still be able to play the charts of course, and you&apos;ll be able to collect points in the &quot;off-season&quot;, but eventually score submissions to ITL will close out.Thanks to everyone involved in ITL, and thanks to everyone playing. Huge inspirations to me all around. 💙&lt;/p&gt;</content:encoded></item><item><title>Setting up a USB profile for Public ITG machines.</title><link>https://mmatt.net/post/3llrxjxkgws2s/</link><guid isPermaLink="true">https://mmatt.net/post/3llrxjxkgws2s/</guid><description>A full guide on how to set up a USB profile for Public ITG machines.</description><pubDate>Thu, 01 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Before you head to the arcade:1. Grab yourself a USB driveAny size should work, just make sure its formatted as FAT32.SanDisk Cruzer 32GB on Amazon2. Download ITGmaniaMost ITG machines run on ITGMania (my arcade specifically runs ITGmania 0.9.0 and Simply Love 5.6.0), and having it on your own computer will be useful for setting up your profile before you get to the arcade. Go ahead and launch it and then close out of it just to make sure everything initializes correctly.3. Edit ITGmania&apos;s default USB folder location.My arcade&apos;s cab searches for a folder on your USB drive named StepMania 5 instead of the (new) default as ITGmania, so for setting up your profile we&apos;ll need to edit which folder ITGmania is looking for.Open Windows Explorer and head to C:\Users\[Your Username]\AppData\Romaing\ITGmania\SaveOpen Preferences.ini in your text editor of choiceSearch for MemoryCardProfileSubdir in Preferences.iniEdit the value after the = to be StepMania 5 Screenshow showing where to edit.4. Launch ITGmania5. Plug in your USB driveYou should hear a sound effect and a USB icon next to &quot;PRESS START&quot;. The USB icon in ITGmania6. Play a songJust play any song, you can even use a rate mod to make this go faster. Unsure if this matters, but make sure to hit one note, as far as i remember that might be needed...7. Quit back to the main menu(Esc -&amp;gt; &quot;Yes&quot;)8. Your profile is now created! Time to configureYou should now see your newly created StepMania 5 folder, congratulations! Everything has succeeded. The newly created StepMania 5 folder9. Edit your Editable.ini fileHere you can put in your display name to show up in game, as well as metrics for a &quot;&quot;&quot;more accurate&quot;&quot;&quot; calorie counter. (not required) The Editable.ini file10. Add some custom songs! (not required)If you have some files you want to play that aren&apos;t already on your cab, you can add some here! Just put the song&apos;s folder into your /StepMania 5/Songs folder on your USB.IMPORTANT: Make sure you delete any VIDEO files from your songs folder. This may make the song too large for the limit. The Songs folder11. Let&apos;s setup GrooveStats!GrooveStats is an online score submission service (similar to e-amusement) that enables you to upload your scores and participate in events!11.1: Sign up for GrooveStatsYou can sign up for GrooveStats at GrooveStats.comThe Register button is under the Login Forum at the top of the GrooveStats homepageHere you input all of your super secret information to make an account.11.2: Grab your GrooveStats API keyAfter signing in, you can find your GrooveStats API key under &quot;Edit Profile&quot;. On the third line you&apos;ll find the entry for API key, if you don&apos;t have one already go ahead and click Generate, and then Copy to your clipboard.The Edit Profile button is under Profile Options in the GrooveStats header.The API key section is the third line on under Update Profile.11.3: GrooveStats on your USB!Make a new file on your USB drive called GrooveStats.ini. In this file, use the following template:[GrooveStats] ApiKey=Replace_After_The_Equal_Sign_With_The_API_Key_You_Got_From_GrooveStats IsPadPlayer=1GrooveStats.ini contains a line that says &quot;[GrooveStats]&quot;, the next line starts with &quot;ApiKey=&quot; with a space to put your GrooveStats API key, and the last line in the file says &quot;IsPadPlayer=1&quot; which is required for uploading scores.11.4: All Done!Your scores will now be automatically uploaded to GrooveStats! You&apos;ll be able to see a leaderboard in the evalutaion screen by hitting the Left (&amp;lt;) or Right (&amp;gt;) controls under the screen.With events like ITL Online, you&apos;ll be able to earn Points and unlock Titles &amp;amp; Charts to play! Just sign into their respective website to register (for example: ITL Online 2024 is over at itl2024.groovestats.com and you can view all the current events on the left side of the GrooveStats homepage) and begin playing!At the arcade:Where can I plug in my USB?The USB hub is velcroed to P1&apos;s side of the cab. Top slot is P1, bottom slot is P2. It should look something like this: The USB hub&lt;/p&gt;</content:encoded></item><item><title>Mastodon is great, yet confusing for too many.</title><link>https://mmatt.net/post/3lls3oimpf22a/</link><guid isPermaLink="true">https://mmatt.net/post/3lls3oimpf22a/</guid><description>A ramble about a truly user owned social media platform, why it confuses people, and Twitter&apos;s acquisition.</description><pubDate>Sun, 06 Nov 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Mastodon&apos;s Landing PageWith the recent news of Elon Musk&apos;s acquisition of Twitter (-$44 billion) many are thinking of moving away from said platform as Musk isn&apos;t someone without controversy. From emerald farms to just weird transphobia(?) and just straight up being a mega-capitalistic rich white man with too much power, of course many people (including yours truly) aren&apos;t fond of him.With this acquisition, people are looking to move away from Twitter. Not just because of &quot;rocket man bad&quot; (a phrase coined by many Elon Musk super-fans), but because of his recent talks of changing the platform itself. An important one many are talking about (and is about to be in effect this Monday according to many) are Musk&apos;s changes to verification on the platform.Verification on Twitter has always been a strange topic. With lots of verified accounts being hacked/stolen to scam people, and some people getting denied and denied over and over again when they are actually in need of the special blue checkmark due to impersonation in the platform. This special blue tick has also been a status symbol on the platform for a long time, so some may feel like others are better (or something, idk anyone who has felt this way) just because they had a blue checkmark on their profile. So Elon&apos;s solution? Just pay for it!Paying for Verification, the motive, and consequences.So of course Elon &quot;SpaceX, Reddit User, Emerald Miner, Richest Man In The World, Bought Twitter Instead Of Saving World Hunger&quot; Musk&apos;s solution to Twitter&apos;s problem with supposed &quot;verification elitism&quot; is to let every have a check, for just $8/month! Now of course the real motive behind this is monetization and profit, as Musk has admittedly stated (not necessarily this tweet alone, but it&apos;s the first one that came to mind), however there are consequences behind just simply pay-walling the &quot;special&quot; blue checkmark.As stated by many, scams and impersonation (that runs rampant on the platform) will grow exponentially. Elon&apos;s supposed solution is to add previously verified users a &quot;Public Figure&quot; tag like politicians currently have. Example of the tag Musk is talking about. Pictured is @POTUS on Twitter with a status under the @POTUS username saying &quot;United States government official&quot;This, of course, doesn&apos;t solve the issue at all, but puts bandage over the newly created problem, that didn&apos;t need to be created in the first place.So, I don&apos;t like where Twitter is going, where do I move to?Like most news outlets across the world are saying (BBC, CNN Business, USA Today, Forbes), the current move is to go to Mastodon, a decentralized social media platform built on the ActivityPub standard. Now this is great for people that know what those words mean, but saying this to a normal person would confuse them and then cause them not to care and to stay on Twitter.Why should I care about a &quot;decentralized social media platform built on the ActivityPub standard&quot;You should think this is really cool and awesome because it basically means that YOU can own your social media profile. Mastodon is basically just a bunch of different servers talking to each other, kinda like modern email. Email is a bunch of different servers just sending messages to each other. So my Mastodon account is @matt@social.lol, however someone can still reply and talk to me on another server like mastodon.social, and I can talk to them too. This is what makes Mastodon special and what can make it YOURS. This means you can also sign up to servers with specific niche&apos;s like art, or technology. Or yourself could setup an instance for a community your are in, or your friends and family. This doesn&apos;t mean its just your group of people on your server you can talk to, you can still follow and talk to people all across the &quot;feDiVeRsE&quot; (I don&apos;t like that name I&apos;m sorry).Can I move servers?Yes! Because all of Mastodon&apos;s servers are built on the &quot;ActivityPub&quot; standard (or at least this is how I think about it), you can move across different servers and keep all your posts, followers, and following!This is way too confusing, why do I have to find a &quot;server&quot;, I just want to make an account and go.I get that, finding things like servers and all of this terminology is very confusing at first, however I think looking at Mastodon in a similar vain as email has helped me understand it a lot more. With email, you create an account with whatever provider you want (Gmail, Outlook, iCloud Mail, etc.), and then you can send/receive emails to/from whatever &quot;email provider&quot; out there. This is the same with Mastodon, you create an account with whatever server you want (mastodon.social is a big one, and more can be found here), and you can follow/mention/reply to/from whatever Mastodon server out there.ConclusionMastodon is way too good and &quot;user first&quot; for people to ignore. It&apos;s a shame that there is confusion around it because it really is great software. Mastodon really is the best place to move after the Twitter acquisition (if you are considering moving at all) because there isn&apos;t a possibility of Mastodon &quot;getting bought out&quot; because you can&apos;t just buy Mastodon and all of the servers, because servers are set up by individual users, so ironically Mastodon is real &quot;power to the people&quot; unlike Elon Musk&apos;s $8/month Verification on Twitter. This was kinda a ramble and just what I was thinking as I wrote it, but hopefully it made sense to someone, and I hope more people will be able to join Mastodon, if you do end up making an account somewhere I am @matt@social.lol.&lt;/p&gt;</content:encoded></item><item><title>AI TTS Donations is changing...</title><link>https://mmatt.net/post/3llrxgworic2s/</link><guid isPermaLink="true">https://mmatt.net/post/3llrxgworic2s/</guid><description>The announcement of the &quot;deprecation&quot; to the existing AI TTS Donations program (the little Python program you know today) and of the future of AI TTS Donations.</description><pubDate>Fri, 26 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;AI TTS Donations is changing...This announcement is containing 2 things:The announcement of the &quot;deprecation&quot; to the existing AI TTS Donations program (the little Python program you know today)The announcement of the future of AI TTS Donations.First: The existing v3.x.x AI TTS Donations program is, at this point, deprecated This means that it will not receive new feature updates and such for the time being. This is simply because the script has gotten too out of control and the code base is simply too garbage and spaghetti that it&apos;s incredibly hard to keep working on it, and as all of you know, it&apos;s incredibly hard to setup for the streamer.Second: v5 (skipping v4 because i can and v5 looks cooler)v5 is going to be the new AI TTS Donations future. it&apos;s going to be a web app which means no more python, no more downloads, no more configuration. think of regular twitch alerts platforms (streamlabs, streamelements, etc.) nerd stuff: it&apos;ll be built using TRPC, Next.js, Prisma, Cloudflare Workers, and Pusher. That&apos;s all the info I&apos;m giving out for now :^) AI TTS Donations will remain 100% FREE AND OPEN SOURCE with this update. (more nerd stuff: here is an early little preview of how i&apos;m thinking data will flow in v5: https://arc.net/e/4A91AD3E-43F1-42B6-85AC-D2FB63404B47)The first glimpse of v5 is available with this new front page! its actually quite old at this point, but im just now making it known https://aittsdonations.mmattdonk.com/you can sign up for the mailing list at the bottom and you&apos;ll get an email when v5 is done!DO NOT THINK V5 WILL BE DONE SOON. v5 is in the future, probably far future, but i&apos;m just letting you all know the state of the app.anyways go sign up for the list on https://aittsdonations.mmattdonk.com/ and hopefully the next announcement will be when this whole new thing is out :^)i will still be providing support for v3.x.x btw&lt;/p&gt;</content:encoded></item></channel></rss>