 Hi, this is Allison Sheridan of the NoCellicast podcast, hosted at podfeat.com, a technology-eek podcast with an ever-so-slight Apple bias. Today is Sunday, April 21st, 2024, and this is show number 989. By now, you've probably figured out how to follow podcasts in your podcatcher of choice. I've just learned of another option that I'm not sure is easy or will be a widespread method, but it's definitely interesting. You've at least heard of mastodon by now, even if you're not an avid user like I am. Mastodon is a decentralized social networking platform which means nobody's in charge and there's no algorithm running around in the background suggesting that you follow Nazis. It's quite refreshing, actually. While mastodon is a platform, that platform runs on a decentralized social network protocol called ActivityPub. Mastodon is just one of the more than 40 different platforms now based on the ActivityPub protocol. Probably the most well-known platform using ActivityPub is Threads from Meta. Another term to understand is the Fediverse because so many platforms use ActivityPub, it's possible for the platforms to intercommunicate and this collection of social networking platforms is called the Fediverse. Imagine writing a post on Threads and it shows up on mastodon to your followers there. Threads is just kind of starting to open up in this way but you can already do things like cross posts to services like micro.blog from Mastodon and vice versa. Okay, so we've got the Fediverse, which is a collection of social networking servers and we have platforms that talk to each other over the ActivityPub protocol and one of those platforms is Mastodon. But what the heck does all of this have to do with podcasting? Well, a gentleman named Evan Pro-Dromu and I put his link in Mastodon in the show notes if you wanna follow him, he wrote a post on Mastodon explaining how you can subscribe to podcasts through Mastodon. This is all thanks to ActivityPub using the underlying open source protocol and podcasting depends on an open source RSS. I'll walk you through this slowly and then give you the short version of how to do it again at the end. So I'll get all into the detail and then we'll just do the few simple steps you actually have to do. So it all starts with a service called podcastindex at podcastindex.org. The podcast index is an open database of over 4.2 million podcasts running on an open source API. If you search for a podcast, say maybe, I don't know, the no-silicast, for example, you'll be shown a page dedicated to the no-silicast. It's a beautiful layout with the album artwork and the tagline for the show. You can scroll through the episodes with the most recent at the top and each has a nice player. This is already a terrific site to know about even if you don't think subscribing to podcasts inside Mastodon is cool. The podcast index is funded by donations so if you end up using it, maybe throw them some coins. Now let's talk about using the podcast index with Activity Pub to subscribe inside Mastodon. Here's where it gets just a smidge nerdy. After searching for a podcast in the index, look at the URL for the show. All of the shows in the podcast index will start with the same URL. It's gonna be HTTPS podcasting, I'm sorry, podcastindex.org slash podcast. But after that, they each have a unique number at the end of the URL. The no-silicast unique number happens to be 851643. Now we're gonna need that unique number in order to follow the podcast on Mastodon. All people slash accounts that you follow on Mastodon have a username and a server where they're located. For example, to follow me, you look for apppodfeed at chaos.social. Because of the integration of the podcast index in a Mastodon, you can follow a podcast in the same way you follow a person. But instead of a username like apppodfeed, you follow that unique number on the server at ap.podcastindex.org. And this is all in the show notes, of course. So the account to follow in order to subscribe to the no-silicast inside Mastodon would be that unique number, so at 851643 and then at and that URL for the podcast index. To follow an account, you have to search for it. So just plop that at 851643 and then at ap.podcastindex.org into the search field. You're gonna copy and paste it from here probably. When the search finds the account, it will look like any normal Mastodon account with the album artwork for the podcast, a link to podfeed.com, and even the RSS feed URL will be visible to you there. It'll show one post and one post only, which is to the most recent episode of the show. The body of the episode post will start with the words new episode colon followed by the title of the episode. That title is a link to the episode on the podcast index website for the no-silicast. Now my first thought was that I wish the link took people to my website for the episode, but as I thought about it, the podcast index gives the user a delightful experience. The episode they clicked on is ready to play and they can see older episodes and play them directly there too. There's also a swell little globe icon indicating where to click to jump to my blog post for the episode so you can see the full show notes. Heck, they even give you a link to open a download link to where my audio files are stored so you can have the podcast episode for posterity if you want to. They even make it easy to share links with others. I really couldn't find any reason not to love the interface of the podcast index. I was curious whether all podcasts look and act the same. So I looked for Bodigrim's Kilowatt podcast and easily found the unique number for the show, 52 300. When I searched for it and then followed Kilowatt on Mastodon using the podcast index number, I could see the podcast but I didn't immediately see a post for the latest episode. I'm not exactly sure what causes the latest episode to show up on Mastodon but later I went back and I could see the most recent episode of Kilowatt. It's not that he posted a new episode and that made it show up. It was an episode that had aired before I ever subscribed on Mastodon. It's almost as though the podcast index is recreating this account for each person who asked for it because I had Steve subscribe to the Nocella cast on Mastodon and it didn't show a new episode right away and it says zero following even though I am following the Nocella cast on Mastodon. If my observations are leading to the correct conclusion then it makes sense that the newly created account on Mastodon hasn't had time to pull any content yet and only does after some short bit of time. Now, as usual, I made this long and detailed which I hope is valuable to understanding how this stuff works. It can make things sound harder than they really are though so let's go through the three easy steps of subscribing to a podcast in Mastodon as I learned from Evan. First, look up a podcast at podcastindex.org. Find the unique number at the end of the URL under your browser and then follow that unique number at AP at, I'll get it yet, follow that unique number at ap.podcastindex.org. Then get podcast updates over ActivityPub, that's it. I think this is a cool example of the power of the Fediverse and of ActivityPub and of open source. Maybe too nerdy of a solution for you but at the very least you learned about the podcast index where you can go to find your favorite podcast and listen in a beautiful web interface with links to the original source. While Steve has been continuing to work his little video editing fingers to the bone making content for us and he's got another audio file for a company called Scosh and it's fantastic. This one's from CES 2024. One of the great companies that does a lot of really cool electronics, consumer electronic devices has a name that everybody argues over how to pronounce and I've just been instructed by Daryl Mia that it is Scosh. Correct, Scosh Industries. All right, so you've got a really, it's a funny thing to be excited about that you have a cable that really excites me. Now this is an audio podcast but with some video so describe what you have in your hand here. So this cable right here is magnetic. The whole cable is actually magnetic it's USB-C to USB-C and what's great is it creates a really clean environment. If you're anal and you like a nice clean environment and you don't like your cables all wired around this is a great solution where it coils on itself and that's why we call it the strike line cobra. Strike line cobra. Yep, because it coils up on itself and it kind of resembles a cobra or a snake. So he's not talking about the ends are magnetic he's saying the entire length of the cable. The cable itself is actually magnetic not the ends. Let me feel what this feels like when we, I'm gonna loop it out here and hold it and it actually feels like a noodle. I mean it's limp, it's not stiff or anything like that but as soon as I try to put it into a coil it sticks to itself, right? Yeah, that is really pleasing because I am anal and I do like my stuff neat. Yeah, and as an added feature if you get the diameter just right you can use it as a kickstand on your iPhone 12 or newer. As a MagSafe kickstand I love it. You also said you can stick it to a metal filing cabinet whatever you got, very good. If you have a desk that's a metal desk you can just stick it right along your file cabinet and create a nice clean environment. Okay, I've gotta get a strike line cobra there's no question about that. So now we've got one of the things that my family just swears by is keeping a battery pack for jump starting cars. I've got grandkids they leave the lights on. Every car needs a power jumper. This is our 2,000 P-Camp power jumper here. It'll jump start vehicles up to eight liters and eight cylinders and it has a built-in flashlight and USB-C and USB-A output. Now if the people listening don't already have one of these you should absolutely get one. I drive an EV but guess what's dead in my Tesla Model 3? My 12 volt battery is dead right now so I actually could use this. I don't know if that would actually work in the Tesla but this is great. So you can add the little jumper things the red and the black clips. You can carry it to save somebody else too, right? Yeah, you can jump start multiple vehicles multiple times on one battery charge. The battery charge lasts about six months on these. I'm gonna turn around here. Go down a little bit. Very good. Why don't you walk in front of me and take over on this side? This is baselinks 2.0. It's our second version of it. It is a modular charging system. You can configure it however you want. You can add different components so you could take two or three of the Qi wireless stands and put them together. Let me describe what this looks like. So he's got one block that's plugged into power and it's got an AC outlet. But then it's got a 67 watt USB-C outlet. Okay, so that's just standalone but then he can connect up to that standard Qi charger with a... This is gonna be Qi 2 certified. There you go. So you have a wireless charger here and then down below you can charge your AirPods or your wireless... So you've got a phone and AirPods. You can stick that one on and then the next thing looks like something I'd stand by bicycle up in. This is a BERT stand and it's really good for phones and tablets and it has three USB-C outlets here. It's a shared 60 watts. So you can do up to 60 watts to one device or you could share the 60 watts through... But it's got these little bars like a bike stand so you could just slot in a bunch of phones instead of them slapping around on top. I have never seen that design. Then what's the last module we have here? This is the Apple Watch charger. Okay. But you can mix and match these within this unit. You can mix and match. This is just a kit that we're showing with one of everything that you can select but you can customize it. You could add on two or three of the BERT stands. You got six kids you could do. And he's on absolutely. Depending on how you want to customize it you could set up a phone here and a phone here so that you don't grab the wrong phone. I love it. So the great thing is we're really known for magnets so they magnetize together. And it just kind of clicks right into place. And through the magnets you run in the power. Well, the power, no, the power is through the... Right here. He's pulling it apart here. Oh, okay. Oh, I see. I see. That's a power adapter on the edge. The magnet just connects them together and holds them so they don't separate. So again, need an orderly like we intended, right? And what is this whole scheme called? This is baselinks 2.0 modular charging system. Very cool. I see like what looks like a water bottle but it also looks like a MagSafe charger. It is not a charger. It is a phone holder which is... This is the Magic Mount Flask. And so what's great about this is it has an adjustable phone holder on the front here. It also has a flip cap so you can flip it, sip it and mount it. So if you're one of these people that carries a water bottle around all the time you can also sit and watch your phone. You can watch your videos. You can watch your phones. You can use it as a tripod. What's great is if you have your pet with you you can pull the bottom off of it and it is a BPA free silicone dog bowl. Oh, that's perfect. Hydrate your pet and hydrate yourself. You know, like that. And that's called the Magic Mount Flask. The Magic Mount Flask. And this will actually be an Indiegogo campaign that starts February 13th. Very good. So if people want to find out more about the Strikeline Cowabra and all the other things that use the Baselink 2.0 where would they find out about all of this? scoche.com S-C-O-S-C-H-E dot com. Very good. Thank you very much. This is great. A few weeks ago I told you about how much fun I was having learning MKDocs to create the user guide for our XK PassWD project. Once I got past the hurdle of fighting with Python mostly by avoiding it which limited what I could do I was able to produce beautiful online documentation. MKDocs allowed me to write the content for the docs in the simple text format called markdown and then using a little YAML configuration file I could link the pages together. MKDocs did the heavy lifting of formatting the HTML pages and made them easily navigable. Now I thought I was done but when I showed it to Helma van der Linden who's running the XK PassWD project she explained to me that MKDocs isn't the only game in town. Tools like this that turn text files into nice web pages are called static site generators and there are several of them. Now since it was a bit of a struggle with Python to get MKDocs to work which stopped us from investigating prettier themes I thought it might be worth investigating some of the other static site generators Helma told me about. The advantage of testing more of them was to see if maybe a JavaScript based tool would work better for XK PassWD. You see Bart taught the programming by stealth audience JavaScript and if others in the audience are gonna help with the development of XK PassWD one of these other tools to create the user documents might be a better choice. Of the tools she suggested so far I've had the most success with one called Docsify from docsify.js.org. Let's start with the initial setup. I've spoken often about installing applications on the command line using Homebrew which is a package manager and we just talked about MKDocs using the PIP package manager for Python. Docsify uses a third package manager called the Node package manager or NPM and that comes with Node.js. Bart taught us all about NPM back in installment 127 of programming by stealth when we were just starting to learn JavaScript. With NPM you can install Docsify with the very simple command NPM I docsify dash CLI dash G. Step two is to initialize a docs directory in a folder of your own choosing with another trivially simple command docsify init dot slash docs. Docsify at this point has already created a working website. Just like MKDocs we can launch a Docsify web server to see our new static website. The command to launch the web server is docsify serve dot slash docs. When the server launches it tells you to open the server by going to localhost colon followed by a port number in a web browser. It's usually but not always port 3000 so it would tell you to go to localhost colon 3000. Just like MKDocs this little web server gives you live updates as you add and edit content. Now the initial website it created is not very interesting. It's created by two files a markdown file called readme.md and an HTML file called index.html. The readme markdown file simply has a heading that says headline and a greater than symbol to create a quoted line that says an awesome project. That's the text of the one web page we can see served by default by docsify. The HTML file is pretty simple too. It's only 21 lines long. The head section is pretty standard. The body includes three lines of JavaScript with one object and then there's a script call to docsify for from a content delivery network. That three line script is where we'll be adding the configuration information to change the way our documentation website appears to the user. I've said, I've always said that I'm not a fan of reading documentation. You've heard me say that over the years many, many times. But I'm starting to think that might not be true any longer. I think maybe Bart broke something in me and programming by stealth with his constant read the fine documentation comments. Well, in this case I was pretty sure there would be good documentation because it was built by people who write a tool to make documentation. You may remember that at the end of my article about MKDocs I said that starting with a new static site generator wouldn't be all that burdensome. This is because the real work is in writing the text of the instructions for the XK PassWD users in Markdown. And those Markdown files will be portable to any static site generator. I copied the Markdown files I created for MKDocs into the docs folder I just created with Docsify and then I got to work learning how to use Docsify to point to them and make them work together. I'm a big fan of left sidebars and documentation. I like to be able to easily jump to the section I wanna read and I want that for XK PassWD users. To get a sidebar with Docsify, you create a Markdown file called underscoresidebar.md and you simply put in bullets with Markdown links to each page. For example, to add my about.md document to the sidebar, I would enter a link into the underscoresidebar.md file. It'd be asterisk and then the syntax for a link to the about.md file. Ordering of the Markdown links defines the order you'll see the documentation in the sidebar. Once we have the underscoresidebar.md file created, we need to tell Docsify to actually render the sidebar. We do that in that HTML file with that wee bit of script that I mentioned earlier. It was pretty simple to add loadsidebar colon true to the existing script and magically I now had a sidebar populated with links to each of my pages. Clicking on any of these links in the sidebar, changed the body of the web page to the content I'd created in that portable Markdown file. I had the documentation working within maybe 15 minutes of when I started to learn Docsify. Now you could create a large number of individual Markdown pages for each concept you wanted in a manual, but that gets kind of tedious for the user. Instead, these static site generators do a good job of letting you create subheadings for new subjects. If you do it this way, there's no waiting for page loads because the user's simply scrolled down right to that section in your documentation. When I first started working with Docsify, the sidebar had the page names I'd identified in the underscore sidebar.md file. And if and when a page was selected, it would unfold and show the level two headings. You create those in Markdown simply by typing two hash marks. But then I also had level three headings with three hash marks, but they weren't showing the sidebar and I wanted them to show. I wanted these level three headings to show because they were the presets Bart has built for XK past WD. And I wanted people to be able to jump right to them in the Docs to learn what they were for. I headed back to the Docsify documentation and I learned that we can add to that we script in the HTML file a simple line that says submax level colon three. Instantly upon saving that file, the documentation now allows easy navigation right to each preset. However, it had also picked up a few heading level twos that I didn't think really merited inclusion in this sidebar table of contents. Back to the Docs where I learned that if you had a simple Docsify dash ignore comment to any heading you don't wanna see, it won't be visible in the sidebar. How cool is that? I get to have the document have a, you know, looks like a heading and it would navigate as a heading with a screen reader, but it doesn't have to be messing up the sidebar. While this does make our generic Markdown files a bit Docsify specific, it's just a comment so it won't hurt anything. If I move the Docs to other static site generators. Our documentation has several Markdown files such as how to help the project, what XK PassWD has to do with XK CD and the maths behind the tool. In the sidebar, I named that page about maths, Barbie dragons. Now that's kind of a standard in the industry, right? Since Bart loves emoji, I added a little dragon emoji to the title. The meat of the documentation though is a very long file simply called user guide. When you click on user guide in the left sidebar, it reveals all of the glorious subheadings I just described. But automatically that long list disappears when you choose another page to read in the documentation and instead expands to show any subheadings on that new page. The magic of static site generators doing all of this without any heavy lifting on my part is just delightful. With a lot of separate documents and sections within the document, the left sidebar is definitely ideal for our documentation, but it's often helpful to have a navigation bar at the top. Just as the sidebar was created with a simple underscore sidebar.md file, you create a navbar and doxify by creating a file called underscore navbar.md. If you wanna have dropdowns from the items in the navbar, you simply create indented, bulleted lists in the underscore navbar markdown file. It literally couldn't be any easier. The default theme for doxify puts the navbar items right justified and they slide to the left as you add more. I added just a couple and it looks pretty nice on the desktop. I'm not found of how it works on mobile though. Because of the small screen, the sidebar and the navbar aren't visible by default. They're both collapsed down into a hamburger menu at the bottom left of the screen. When you select the hamburger menu, the navbar and the sidebar are all in the sidebar together, which is very confusing. It's just one long list. Everything I put into the navbar is a link to something external, like Xhapast.md itself, the GitHub project page, and a link to programming by stealth. So the first thing people wanting to read the documentation are likely to click on at the top in the sidebar takes them somewhere else, which I don't want to do. In the end, I think I'll have to abandon having a navbar and instead maybe put these links at the bottom of the sidebar so people can still see them, but not immediately click them and leave the documentation. Now we have our underscore sidebar.md file and underscore navbar.md. There's one more thing we need to do. By default, GitHub Pages, which is where I'm going to be pushing this documentation, ignores any files that start with an underscore. I don't understand why this fixes the problem and I bet somebody else does, but if you create a hidden file called .nojeckl and you put it in this docs folder, it'll prevent GitHub Pages from ignoring those files that begin with an underscore. You don't put anything in this file. It's mere existence tells GitHub Pages to let you have your sidebar and navigation bar documents. Now, our documentation isn't terribly complicated and it's only a handful of files, but if you're creating complex documentation, you can create subdirectories for your files and each sub directory can have a different navbar and a different sidebar by including new ones in the sub directory. I also figured out how to create a cover page for the documentation. I bet you can guess how. Yep, that's right. You create a page called underscorecoverpage.md. I don't think I'm actually gonna keep it because it's kind of a waste of the user's time to have to click through this page, but it was kind of pretty. It has a nice pastel gradient and it actually changes each time you refresh the page. I think having people go to a page where they have to click through to another page might not make people happy. I'm not sure we could take a vote on it. One of my assignments in investigating other static site generators was to see if changing themes for the documentation could be any easier. The user docs for Docsify give links to the content delivery network, CDN, for jsdeliver.net for three alternative themes. To switch themes, you simply plop any one of these links into the bottom of the index.html file to change the theme. Now I put screenshots of the four themes into the article about Docsify and it's kind of funny. Three of them kind of look exactly the same. I'm not sure that they have slight differences I think, but one of them does look a little different. The default I think is the cleanest and most elegant, but I must carry on and see if I can crack the code on how we could create our own theme just to see if it's truly daunting like MK docs or if it follows maybe a bit more standard way of creating themes. The documentation for Docsify linked to one more theme called Docsify-Themable. This theme is designed to let you change it using standard cascading style sheet syntax, also known as CSS. They give clear instructions for the kind of people who understand CSS on how to link to the CDN for the base simple theme and then how to create a custom CSS file to change the look and feel of your documentation. They even give quite a few examples of ways to modify your theme using custom CSS. I'm not a CSS person, but Helma is, so it's possible she'll become inspired to make our documentation prettier or maybe do something to match the theme of XK-Past-WDD itself. But for now, I like the very simple theme that comes with Docsify and so does she. But maybe with Docsify-Themable, she can figure out how to make there be a nav bar on mobile instead of collapsing it into the sidebar. While I read manuals more than I used to, I'm still a big fan of a search box so I can jump right to what I wanna learn. Docsify has a plugin architecture and one of them lets you add a search box. Again, it's just a script tag to a CDN for the plugin that you add to the HTML file. As soon as I pasted in the script link to the search plugin and hit save, the XK-Past-WDD documentation instantly out of search box. The documentation shows a lot of options on how to configure the search box, but I'll admit I didn't understand most of it. The only tricky thing I figured out how to change was the default text in the search field. It used to say type to search, I changed it to search me with a little emoji or a, well, one of the ASCII emojis for the shrugging shoulders. I felt very clever doing that. Now here's the thing about Docsify search though. While it appears to search all of the markdown files and it returns accurate and complete results, clicking on those results in the sidebar did not take me right to where I found the result of my search. For example, if I type in web 32, which is one of the presets, it finds it in two places, the first of which is under the heading presets as you might expect. If I click on that search result, it highlights the heading presets in the sidebar under user guide, but it does not scroll to the content it found. It doesn't even scroll down to the preset level two heading, which would maybe be helpful, much less the level three heading for web 32. It doesn't start at the top of the user guide either. It scrolls kind of part way down into the copying password sections. This is super confusing because you end up searching the page thinking I should be able to see what I searched for because it took me here, but it's not there on the page. I'm hoping somewhere in all of the configuration options for search, there was a hidden nugget that meant if I click on a search result, scroll to the result of the search. Maybe somebody smarter than me working on the project can find that setting for us. The bottom line is that as much as I adored learning MK docs, I have to say I like the result and documentation much better from Docsify. It's cleaner and more elegant and people are fluent in CSS will be able to make their documentation even prettier with Docsify and the easy theming options. There are more plugins that I haven't even explored yet so there's lots of fun to be had. There's another reason I'm now a Docsify convert. Just like with MK docs, I can push it up to my GitHub repo and you can view the GitHub page to see the beautiful documentation in its current form. I don't even need to run any code at all to tell GitHub to create the page. It just works. But that's not all. With Docsify docs, you can clone my repo from GitHub and then run Docsify serve locally at the command line and you'll have a local copy of the docs and all of their beautiful form. No need to install Node.js to get MPM. No need to install and run Docsify itself. It just works right from the clone of the repo. If you'd like to see the docs and all the glory that is Docsify, check them out at podfeed.github.io, a specific link in the show notes or you can clone the repo at github.com.podfeed. It's that time of the show where I panhandle for money, making the show cost money and if you get value out of the content we produce here and you don't like ads, be really swell if you would consider going to podfeed.com.patreon and choose to pledge some moolah to help keep things going. Thanks for considering the idea. If you did consider it, that is. And if you didn't, well, thanks for listening anyway. In November of 2021, I bought the first M1 Max MacBook Pro. Within a few months, I noticed that the battery life was nothing like what Apple had promised. I worked with Apple and had them replace the battery since it had gone down to 85% in just those few months. After the new battery and a clean install of all my apps because they erased everything when they've repaired it, things seemed to be okay. Then I started noticing it was dying quickly again. I was starting to get like two and a half hours of battery life on a Mac that was supposed to get 10. I dragged my feet on calling Apple but finally in April of 2022, I called them to get this resolved. It has been 373 days since I opened the case. I've had 29 phone calls with Apple and 27 emails. Much of this you've heard over the course of the year but there's news. So I wanted to tell you a bit more about the story. But first a quick recap. Over the course of the last 12.3 months, Apple has had me do a wide variety of experiments, always blaming the problem on my third party apps. They finally convinced me last October to wipe my Mac and do a clean install. I begrudgingly complied. It was hard to measure the battery problems while the Mac was in use, but I was able to show that the Mac lost about 7% every four hours while sleeping. After each change, I had to run what they call a captured data, which is basically a bunch of log files that lets them look and see what the problem was. After the clean install with no third party apps installed, but while logged into my Apple ID, I was able to demonstrate that the Mac still lost 7% every four hours while sleeping. I thought that would be conclusive evidence that the Mac itself had a problem. I even bought a new MacBook Air, which has been a delight by the way, and proved that the problem didn't happen on that Mac with the same apps installed. It's six months later, and I was never able to convince them that it was a hardware problem. Now the senior advisor who stayed with me the longest was Margo, but she actually stopped responding to me for over a month. She'd been telling me that engineering was pointing again to specific applications as being the root cause, even though we clearly know it's not the root cause. Now we can fast forward to last week where I told you about my possibly compromised Apple ID and the lovely senior advisor, Makaya, who helped me work through what was going on. I promised you that it wasn't the last time you'd hear about Makaya. After we got done messing around with my Apple ID, I told her of my now longer than a year old battery problem. She brought up the case to look at it and noted that, well, she could see that I had tried to get a response out of Margo. Engineering had responded to what I had written to Margo, but Margo had never called me back about it. Makaya was much better than any previous advisor giving me detail, and she read me everything engineering had written. Instead of trying to summarize it, she read me exactly what they said. And it's funny, it sounded much more reasonable when you read what they wrote. So they said that they'd understood that I did do a clean install and that they'd tested the battery life after the clean install without any of my third-party apps. But they believed that the battery drain at that time could have been caused by the fact that my Mac was syncing everything from the first time, first download of like all my photos. I have to admit that could have been the problem. I did not wait for my 100,000 photos to download before doing those battery tests. But then again, they didn't tell me to do that. They went on to say that they still saw elevated battery use with a few third-party apps, calling out back plays in particular. I wish I'd remembered while I was on the phone call with Makaya, but back plays had been mentioned a month or so back and I had turned it off at engineering request and it had no effect on the battery drain while sleeping. Makaya and I talked through all of this and then she said something interesting. She said, have you thought about just trading it in? I later kidded David Roth, asking why hadn't he ever suggested this? He told me about 28 times to do it. For some reason when Makaya said it though, I thought to myself, maybe life is too short. Maybe I should throw in the towel and move on with my life. What really pushed me to take her advice was Steve's reaction when he heard her say it on speaker phone. He vigorously nodded and mouthed the words, do it with enthusiasm. We chatted after I got off the phone and unlike David who basically just lost sympathy for listening to my endless stories about this when money could fix the problem, Steve said that he just feels bad for how sad this continues to make me. My two and a half year old 14 inch M1 Max MacBook Pro with a four terabyte SSD and 64 gigabytes of RAM would return me $1,800 on trade in. It's nowhere near the $5,000 I paid for it but it's not that bad. I tutored off to the Apple website to see which Mac I should buy. You may remember an article I wrote in September of 2023 that I entitled, do you really need a MacBook Pro? In that article I explained the testing I did comparing the high demand work I normally do on my computer. I looked at audio encoding, video encoding and audio transcriptions with Mac Whisperer. In the end my answer was that even I didn't really need a MacBook Pro when I compared it to the MacBook Air, it was fine. Not quite as fast but it certainly wasn't bad at all. It is just fine but I'm limited by having only two ports on the MacBook Air and it can only be configured with a two terabyte drive. Those 100,000 original photos at 1.1 terabytes will not fit on a two terabyte drive and allow me to have much breathing room for say things like screencasts online tutorial videos. Clearly if I didn't really need a MacBook Pro for its power I did definitely didn't need the Max chip within it. A regular or a pro version should be fine. The Max chip is distinguished by its high number of CPU and GPU cores. The Max has 16 CPU cores while the pro has only 12. The Max has 40 GPU cores versus 18 on the pro. I highly doubt I would be able to tell the difference but what I did care about was getting 64 gigabytes of RAM. I can't prove I need 64 gigabytes but I can say that I run out of RAM on the 16 gigabyte MacBook Air. I actually get errors that pop up on occasion. Turns out if I go for a lower version of the M3 Max with fewer cores or even an M3 Pro I can't get 64 gigabytes. I'd have to go with 36 gigabytes or 96 gigabytes. So one of them would be too little RAM and the other one would cost me a fortune. Now I considered that this Mac doesn't actually need to be a laptop. Since I bought an M2 MacBook Air to hold me over while I tried to get Apple to fix my MacBook Pro. Unfortunately the Mac Studio and the Mac Mini are not yet out with the M3 chip. The M3 chip I should say so they're quickly dropped from consideration. I'm not gonna buy a Mac that's, I mean the M3 has already been around for a little while. I'm not gonna buy an M2 for crying out loud. So in the end I bought the exact same machine as last time but with a fancy M3 chip instead of M1. Oh and I wanted space black this time instead of silver. Whoop dee doo. Anyway, it really bugged me to spend $4,900 before tax to replace a Mac I bought for $4,700 and Apple refused to replace. I hesitated over that buy button. Fast forward a few days when I was hanging out with Pat Dengler. She suggested I look at refurbs from Apple. I was certain they would not have a four terabyte, 64 gigabyte M3 Macs but guess what? They did. It was $740 cheaper than list price. I really had no choice but to click buy. So you might be asking yourself how's that battery on the new Mac? I ordered on a Saturday night and by Monday it was delivered by local Apple store. While I was probably gonna keep the new machine no matter what happened, I didn't actually do a trade-in just yet. I can easily find a way to spend $1,800 on a gift card at Apple and do the trade-in later, especially since those OLED iPad Pros are supposed to be right around the corner. That also gives me more time to experiment with the new machine and see what the battery life is like. The first test was just to charge it to 100%, log into iCloud and put it to sleep. This would replicate the clean install I did on the M1 MacBook Pro. Now remember, Apple said the problem was that it was syncing everything and that's why it was draining the battery so quickly. While the M1 drained 7% every four hours, the M3 drained 2% in four hours. Even while syncing the new Mac, it was 3.5 times better in draining. That improvement cannot be accounted for merely by the 86% battery health of the older Mac. In my opinion, the myth that the root cause was that it was syncing has been debunked. For my next test, I needed to let iCloud finish downloading all of my photos. As I've mentioned, this is the Mac on which I keep all of my full resolution photos. I was taught years ago by an Apple senior advisor that the fastest way to get them down is to start from scratch and download originals. If you let it download optimized images first and then change to full resolution, iCloud has to check every single photo one at a time to see if it's full resolution. Back when I had around 75,000 photos, it would take 3.5 weeks to bring them down after optimized were already there. Apple said that was normal and to be expected. So I flipped the switch to download full resolution images. I plugged it into power. I changed the battery settings to force it to stay awake. Every so often, I checked how many had downloaded and how much elapsed time had passed and then I grafted to predict when it would be done as one does. The entire download took about a day and a half and it was ready to run another sleep test. I started the test at 8.36 a.m. and I finished at 6.16 a.m. so just under 10 hours. In that time span, it lost drumroll please, 0%. It stayed solid at 100% for 10 hours while sleeping. I never ran this particular test on the original M1 Mac so I don't have anything to compare it to. Since the M3 lost 2% in four hours while it was trying to do some syncing, it does add credence to engineering suggestion that maybe my clean install test on the M1 did include drain because of syncing. Now my final test has to prove or disprove that the severe battery drain is caused by my third party apps. Now you know I'm a big advocate of doing a true clean install of apps but I had just done one six months ago on the M1 so I decided to use migration assistant to move all of my data, setting and apps. Since a vast majority of my desk is taken up by my photos migrating the apps and data only took an hour or two. I was surprised at how many apps lost their launch and login status and I'm gonna get into that in a later article I think and talk about permissions and things but I really thought migration settings would, you know, migrate settings. I've so little experience with migration assistant I guess I didn't know what to really expect. All right, final battery test. It was finally time for the big test to definitively tell us, was it Allison's third party apps or was it the hardware fault for the massive battery drain on the M1? I unplugged the Mac with 100% charge, it's got all of my apps, is the photos of all downloaded, everything's running and I closed the lid at 9 p.m. I woke it up at 6.40 a.m. the next day for an elapsed time of nine hours and 40 minutes. In that time, it lost no battery at all. Nothing, it was still at 100%. So, there's two ways to look at these test results. One that a rational person who can weigh cost benefit of their own time and sanity might choose, which is to be relieved that the more-than-year-long nightmare is finally over and sell the old Mac back to Apple for $1,800. But you know, I'm not gonna choose that path just yet, am I? I plan another call to my new little friend Makaya to discuss these results. Now, it would be delightful if after I tell her this, the response back from engineering was, golly gee, Allison, we're so glad you ran all of these experiments and obviously we've been wrong all this time. We now understand you've been right all along and we apologize for what we put you through. Obviously we should pay the $5,000 for your new machine and we would be delighted if you would send us the M1 so we can tear it apart in our lab and see what caused this terrible battery problem. But they won't do that, of course. Before I let everybody go, I wanna remind you that there is a transcript of the entire podcast and there has been for quite a while. It's got these great links that can jump you right to where you need to go and if you wanna reread something or you wanna see if you can replicate my dramatic reading of that particular part of the article about the battery. Even though we have the blog post that you can read that are essentially everything that you heard tonight, there's things like the CES interview that we did with Scosh, the text of all that is easily searchable so you can jump right and go, what was the name of that really cool cable again? So I did wanna remind everybody in the blog post for this podcast episode and everywhere you look, you're gonna find that transcript link. But that is going to wind us up for this week. Did you know you can email me at alisonatpodfeed.com anytime you like? You can write to me and tell me, Allison, I'm so glad you were right. Keep up the good fight with Apple. We're so proud of you. Anyway, remember everything good starts with podfeed.com. You can follow me on mastodon at podfeed.com slash mastodon. And if you wanna listen to the podcast on YouTube because the kids do that these days, you can go to podfeed.com slash YouTube. If you wanna join in the conversation, you can join our Slack community at podfeed.com slash slack where you can talk to me and all of the other lovely no-sella castaways. You can support the show at podfeed.com slash Patreon or with a one-time donation at podfeed.com slash PayPal. And if you wanna join in the fun of the live show like Corky Heath did this week, don't show up on my house, just head on over to podfeed.com slash live on Sunday nights at 5 p.m. Pacific time and join the friendly and enthusiastic no-sella castaways. Thanks for listening and stay subscribed.