#macstodon

Scott Small 🇨🇦smallsco@oldbytes.space
2025-04-01

It's time for a #MARCHintosh retrospective!

Firstly: I've attached a photo of the remaining gifts to the drop box that have come in since the 15th!

Secondly: I've completed a final pass-over of the servers on #GlobalTalk, left my calling card, and a print job for anyone who hasn't had one yet (as long as they have open file shares/printers). Results of that are attached as well.

Finally, the retrospective itself:

It's been an absolutely CRAZY month:
- On Day 1, my SE came home from the workshop with a fully-serviced floppy drive and '030 accelerator...
- ...which I didn't even end up playing with at all, because on Day 2 I bought a Power Mac 6500 for an absolute steal (and I STILL have to explore the other external HD that came with it)
- GlobalTalk completely dominated the month just like it did last year. I rebuilt my QEMU VM for running AIR a couple nights before the start of the month and it's been absolutely rock solid stable ever since.
- I made great progress on my project for the month, archiving my collection of Mac floppies from the early 90's. I'm only about 40% done, so this will continue into April as "bonus content" 😁
- No updates on #Macstodon - but I did verify that it works perfectly fine on Mastodon 4.3 if you manually authenticate by copying the URL to a modern machine, and copying the auth token back to your Mac.

Lastly I want to give thanks to everyone in the #VintageMac #RetroComputing community for making this such a fun event every year! I love seeing all the greetings showing up in my drop box, and to my printer (which is now off for the year - but the PDF printer is available year round!) But I especially want to thank the following folks:
- @kalleboo for TalkCrawler and for putting together an amazing GlobalTalk scavenger hunt!
- @europlus for his hard work on the AIR Administrator's Manual Addendum and VM images for QEMU!
- @scj for the GlobalTalk updater app!
- @theirongiant for 68K Radio, which has been my background music while working on my vintage Macs this month!
- @polpo for creating the ImageScribbler card which made it possible to send print jobs to so many more people this year!
- @dmark for maintaining netatalk, making it possible to share files over AppleTalk directly from my NAS instead of having to keep an old Mac running all the time!
- @DrJosh9000 for jrouter, which I'm looking forward to trying again now that the month is over and I can start messing around with my setup - it's had a lot of bugfixes and updates!
- @_the_cloud and @jimluther , for sharing great knowledge from their time at Apple with the community (and for helping me troubleshoot some crashes)!
- @RonsCompVids , @MuseumJoe , and @mac84tv for putting together the annual MARCHintosh event!

Until next year!

Picture of the desktop of my 6500 showing all the greetings I've received to the dropbox since March 16thPhoto of a BBEdit text document showing which GlobalTalk shares and printers I've been in contact with. First page.Photo of a BBEdit text document showing which GlobalTalk shares and printers I've been in contact with. Second page.
2025-03-05

I can't believe I'm saying this, but I was able to log into my account on good old mac os 9. What's the point of this? The same as the first humans did when they ate everything in a row to see if it was poisoned or not. Or when they told their girlfriend, “Look what I can do.” Thank you so much for your help, @smallsco

#RetroTech #macos #macstodon

2025-03-05

Okay. I tried. My knowledge wasn't enough :blobfox:
#RetroTech #macOS #macstodon

Scott Small 🇨🇦smallsco@oldbytes.space
2025-02-20

#Macstodon hit 300 stars on GitHub today: github.com/smallsco/macstodon/

I feel bad that it still can't authenticate with the latest Mastodon release, but I just can't bring myself to work on it right now when I'm burned out from writing Python at my day job all day.

(as always, contributions welcome!)

Scott Small 🇨🇦smallsco@oldbytes.space
2025-02-01

Folks are posting about their #MARCHintosh plans, this year I really just have one set in stone and it's the one I didn't get to last year: organizing and archiving the giant collection of Mac floppies from my childhood. I'm pretty sure I've got a few apps that aren't archived online yet - or different versions of ones that are.

Other, less concrete plans: better organizing my #GlobalTalk public folder and splitting off the Apple IP Gateway into its own VM. Also maybe trying other MacIP options like IPNetRouter and the VICOM Internet Gateway.

"But what about the #Macstodon rewrite? Isn't that your big project?"

That's not going to happen any time soon - I've been very busy with my day job since September, which involves a lot of coding, and I just don't feel like coding much in my off time. Now don't get me wrong, I still plan to do some, but not enough to have any kind of app ready by March. C'est la vie.

Scott Small 🇨🇦smallsco@oldbytes.space
2025-01-08

(🧵 6/7) #Macstodon, REALBasic, and Proxies

I've been planning - since last April - to start work on Macstodon 2.0. This is going to be a rewrite using REALBasic instead of MacPython, in the hopes of getting around many of MacPython's limitations - poor performance and memory leaks, primarily.

But I discovered pretty quickly that REALBasic has its own set of problems - lack of support for custom LDEFs being a big one, unless you use a plugin. Fortunately there is such a plugin - Einhugur Software's CustomGrid, which incorporates the features I want. It has a big problem though, it corrupts the menu bar and window title font when running on 68k machines...and other plugins that provide comparable features don't work on 68k at all.

I have a hard requirement that Macstodon needs to run with System 7.1 on a 68020 system. Sure, things would be a lot easier if I wrote something that was for PowerPC only, or required Mac OS 8 - but I'm stubborn like that!

Anyway, after about 8 months (seriously) of trying different things, I've managed to find a solution that doesn't corrupt the menu and window title when rendering a custom grid with REALBasic. So now I can _actually_ proceed with the project... until the next roadblock, that is 😅

Meanwhile, there's another problem with Macstodon, which is that it doesn't work correctly with
Mastodon 4.3. Well...technically it's not Macstodon that's at fault here, the problem is that Mastodon 4.3 changed how the login page works, making it incompatible with vintage web browsers. So Macstodon can't do the initial login/authentication, unless you manually copy the authorization URL to a modern computer, log in there, and then copy the authorization code back into Macstodon. Yuck!

To resolve that problem, I've been looking into MacProxy Plus (github.com/hunterirving/macpro) as a replacement for WebOne on the backend, via its' extension mechanism. In addition to SSL-stripping, this should let me "massage" the login form into a format that works with vintage web browsers. And not only that, but it'll also let me do things like transform the JSON that gets sent from the Mastodon API before it reaches the client, as some things are much easier to do with modern Python than in a vintage app.

I've already made a bunch of contributions to the MacProxy Plus codebase already over the last few weeks, including support for SVG rendering and a number of bug fixes.

So, between the MacProxy Plus work and the REALBasic work, things are _finally_ starting to come together for Macstodon 2.0. I'm sorry it's taken so long - and it's going to continue to be in development for a while - I'm taking things slow so I don't burn out, but work is picking up.

Oh, and one more thing - I'm looking into Bluesky support for Macstodon 2.0 as well. No promises yet, but I'd like to do it 🙂

Scott Small 🇨🇦smallsco@oldbytes.space
2024-11-27

Adding my two cents to this thread:

For #Macstodon, I've always used the `authorization_code` grant flow, in order to support multi-factor authentication. The app would pop the browser, you would log in and get your code, and then copy and paste that code back into the app.

This worked fine until Mastodon 4.3 - now, when trying to log in from a vintage Mac web browser, it will just hang, give a white screen, or show an error page.

I'm all aboard the device code grant flow train. Requiring another device isn't a dealbreaker - Macstodon already requires the use of another device in order to run an SSL-stripping proxy, so I think that's a great long-term solution, and it doesn't sound very difficult to implement.

When it comes to a short/mid-term solution, the personal access token option is probably fine? I'll have to read up more on how it works but I assume it's pretty similar to the existing oauth flow, the user would generate a code and provide it to log in instead of their username (and then the app could cache it). Hopefully it involves minimal code changes.

I'm not opposed to there being some degree of friction when it comes to getting a retro client to work. I think most retro clients don't take themselves too seriously (Macstodon certainly doesn't), and the folks who use them are probably expecting that it's not going to be the smoothest experience. Like I said earlier, Macstodon already requires that you set up an SSL-stripping proxy, so what's another token on top of that?

Ultimately what I care about is the least degree of friction for myself, as a developer. At the end of the day, Macstodon is a toy/hack project, and if I'm putting as much effort into it as I am into my day job, I'm going to burn out and become disinterested in working on it (which is why I've been avoiding a screen-scraping solution).

Scott Small 🇨🇦smallsco@oldbytes.space
2024-11-08

If you’ve ever wanted to say thanks for #Macstodon or any of my other side projects with some disposable income, I ask instead that you please donate it to Child's Play (childsplaycharity.org) via Desert Bus For Hope ( @desertbus ) during their charity drive this week. It's a cause that I’m very passionate about.

#DB2024 #DesertBusForHope

Scott Small 🇨🇦smallsco@oldbytes.space
2024-10-16

I’m doing some preliminary investigation into the #Macstodon login issue on Mastodon 4.3. I haven't found the specific cause of the problem, but the error message (“Security verification failed, are you blocking cookies?") seems to imply a CSRF failure.

I'm not entirely sure why the vintage Mac web browsers I've tried are unable to satisfy this requirement - maybe WebOne is mangling the CSRF cookie, I have to do more testing here.

One approach to solving this problem would be to use the "password” OAuth grant type, rather than the "authorization_code” grant type that is currently being used. Basically, you would log in to Macstodon with your Mastodon username/password directly, instead of using a web browser. This is the same approach that is currently being used by #DOStodon (github.com/SuperIlu/DOStodon/b) and some other retro clients.

However, there are two problems with using the "password” grant type:

1. Not all servers support it. For example, compare the outputs of mastodon.social/.well-known/oa and urusai.social/.well-known/oaut - and note that mastodon.social lists "password" under "grant_types_supported”, but urusai.social does not (also, that endpoint doesn't exist prior to Mastodon 4.3, so if the server is running an older version you just have to perform trial and error to see if password grants are supported)

2. MFA is not supported. If you're using multi-factor authentication with your Mastodon account, your only option is to log in using the "authorization_code" grant type. There is no option for appending your MFA token to your password.

The other option is to use a hybrid approach, where Macstodon would continue to use the "authorization_code" grant type, but would prompt for a username and password as if it were using the "password" grant type. Rather than launching a web browser, it would make the request for the login page directly, fill in the user's credentials and post the form, then screen-scrape the result for the authentication code. This is the approach currently being taken by #MastAppleII (github.com/colinleroy/a2tools/).

This approach is more brittle, and a much more challenging development effort, but it should work with most servers as well as for users with MFA.

Of course, this approach has one big gotcha of its own - older and newer Mastodon versions are less likely to work correctly due to changes in the design of the login page. Perhaps the "password" grant type should still be offered as an option (if the server supports it), and we allow the user to choose how they want to log in? Or would that be too confusing for users? Alternatively we could try the hybrid approach first, and then fall back to the password grant type if that fails.

Anyway, I'd love to hear your thoughts on how to approach this!

RE: oldbytes.space/@smallsco/11331

#RetroComputing #RetroProgramming #VintageMac #68K #PowerPC #Apple #Mac #MacOS #ClassicMac

fergycoolfergycool
2024-10-15

@smallsco That worked and here's my first tweet from Nice!

Scott Small 🇨🇦smallsco@oldbytes.space
2024-10-15

Attention #Macstodon users - it looks like Mastodon 4.3 has broken the login flow.

I'll investigate later this week to see what can be done... more info in this quoted post: oldbytes.space/@smallsco/11331

EDIT: reposted with hashtags, for visibility

#RetroComputing #RetroProgramming #VintageMac #68K #PowerPC #Apple #Mac #MacOS #ClassicMac

Scott Small 🇨🇦smallsco@oldbytes.space
2024-10-01

After seeing @ActionRetro ’s video on building a game for classic #MacOS using #REALBasic, I decided to take another look at RB.

Something that's been on my to-do list for a while is to look into porting #Macstodon to RB, in the hopes of getting around many of the limitations I've run into with MacPython.

But I hit a problem early on, which is that the only grid controls I've been able to find for RB2/3 either don't work at all on 68k systems, or if they do, they corrupt the font used in the menu bar and window titles.

This font corruption only happens on 68k, and only on System 7. Installing the Appearance Manager partially fixes the issue - the font no longer changes, but the spacing of the menu bar and window titles is affected.

Also, building a fat binary executable on a 68k host doesn't work properly for some reason, it will crash when run on PPC. But building it on a PPC host produces a binary that works on both architectures. mastodon.social/@stroughtonsmi

A screenshot of an Excel spreadsheet showing my attempts to produce a working REALBasic app using the CustomGrid control. Different columns indicate the version of RealBasic, CustomGrid, and its various dependencies in use, along with additional columns that indicate whether the result runs in the IDE, and as a 68K or PPC app. This one shows the results when building on a 68K host.A screenshot of an Excel spreadsheet showing my attempts to produce a working REALBasic app using the CustomGrid control. Different columns indicate the version of RealBasic, CustomGrid, and its various dependencies in use, along with additional columns that indicate whether the result runs in the IDE, and as a 68K or PPC app. This one shows the results when building on a PPC host.The CustomGrid demo app running in REALBasic.An example of the visual corruption that happens after a REALBasic app using the CustomGrid control has run. The font used in the menu bar and window titles in the Finder has changed to Geneva 10 bold.
2024-09-14

Anyone had success making #macstodon work on System 7.1? Installed it on my Classic II. I have a WebOne proxy running on a RPi, with the mastodon server’s hostname added to the ForceHTTPs section. I can reach the url from Netscape, so I guess the proxy works as it should, but when trying to authenticate with Macstodon it still says that it’s unreachable and I should check my proxy settings. #macintosh #RetroComputing

Anna Christina :verified_pink:acn128@oldbytes.space
2024-05-09

Greetings from #Macstodon, a classic Mac Mastodon client! This toot was written on a Performa 475 running MacOS 7.6.1 while also being connected to the #GlobalTalk network (zone BabCom).
#retrocomputing

Scott Small 🇨🇦smallsco@oldbytes.space
2024-05-05

I’ve just pushed an update to #Macstodon that fixes the installer so that it won't trash your system any more if you're running a localized/international version of Mac OS 7.1.

Get it at the usual place: github.com/smallsco/macstodon/
(it’s also available on #GlobalTalk in my Public share on 40Mhz is enough for anyone!)

Sincere apologies to everyone who was affected by this, and a double apology for it taking over a month to get a fix in place - I've been extremely busy lately.

With this updated installer, if you're on a non-English version of Mac OS 7.1, and your Finder version is below 7.1.3, instead of trying to automatically update it, the installer will pop a dialog and let you know that you'll need to update it by hand (and manually install the Finder Scripting Extension) if you want to use the text-to-speech functionality.

AFAIK, this bug didn't affect anyone using System 7.5 or greater since we don't need to update the Finder in that case.

#RetroComputing #RetroProgramming

A screen capture of the Macstodon 1.2.1 installer running under a French Canadian - localized version of Mac OS System 7.1. The installer has popped a dialog box that reads:

“You appear to be running an international version of the Mac OS that is earlier than System 7.5. If you would like to use the Text-to-Speech function of Macstodon, please update to Finder 7.1.3 or later and install the Finder Scripting Extension.”
Scott Small 🇨🇦smallsco@oldbytes.space
2024-04-16

PSA - don’t install the latest #Macstodon release (1.2) if you are running an international version of the Mac OS, because my "clever" installer will "helpfully" overwrite localized OS components with English versions, if they're older 🤦

I don't have a great way to fix this, I think what I'll do for the next release is try to detect international OS versions, just install the app, and maybe pop up a dialog that tells you what localized extension versions you need to hunt down and install on your own if you want to be able to use all the features. mastodon.social/@bjornheirman/

Scott Small 🇨🇦smallsco@oldbytes.space
2024-04-05

Got a little light reading to do this weekend…

#Macstodon #RetroProgramming

mirrorless gameraruben@friendship.quest
2024-04-02

Was able to get #Macstodon working! Hello from a Macintosh SE/30 running System 7.5.5

#VintageMac

Scott Small 🇨🇦smallsco@oldbytes.space
2024-04-02

Now that it’s been a few days since the big release, I want to talk about what’s next for #Macstodon!

Working on the toot-to-speech feature, trying (and failing) again to tackle the memory leaks in PIL, and implementing stability patches have lead me to conclude that I've gone as far as I can with MacPython 1.5.2.

So I'm starting to look into REALBasic as a potential new framework, something that's much more modern but still supports System 7, for what will ultimately become Macstodon 2.0. REALBasic has a great plugin ecosystem on Mac, and it looks like supporting things like JSON, SSL, and maybe even Unicode will be much easier when compared to MacPython.

Now, the gotcha is that I'm not familiar with REALBasic. But I have dabbled in Visual Basic on Windows, and the learning curve is a lot less steep than trying to write C/Pascal code directly.

Over the next few months, I'm going to start messing around with it, and we'll see just how feasible this idea is! Release next March? 😉

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst