[HN Gopher] Show HN: Messages for Macintosh - a classic Mac iMes... ___________________________________________________________________ Show HN: Messages for Macintosh - a classic Mac iMessage client Author : camhenlin Score : 163 points Date : 2022-02-27 14:58 UTC (8 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | behnamoh wrote: | Ok but why? | olliej wrote: | As with many such hobby projects it's a "why not?". Not every | project must have some kind of serious "value" | filmgirlcw wrote: | This is awesome! I sort of want to dust off one of my old PPC | Macs and try this out -- tho I'd have to put MacOS 9 on it first | (I think I've only got OS X on it). What a great/fun little | project! | mistrial9 wrote: | classic Mac coder here -- some experiments might show.. that | software development is not bad for this 25 year old system.. the | user experience is calm, cool and collected IMHO. But anyone with | an interest in graphics will find that even with later "faster" | models of Mac, the JPEG and PNG decompression will be amazingly | slow compared to modern times. That is not to say that plenty of | interesting and modern software will not be useable - it is.. | rather the sheer math and bit-movement involved in quick JPEG | decompression might come as a shock to phone users of today. | Overall, very supportive of "OS archeology" here. | anthk wrote: | M68k may be slow, but a g3 ppc will be fast enough. | Wanzy wrote: | marban wrote: | I miss Classic box art. | olliej wrote: | Yeah, I appreciate a lot of digital distribution but there's | something nice about the packaging of old non-game software | camhenlin wrote: | Yeah! I had a lot of fun gathering up lots of other Classic box | art and designing the box art for this project! | sgt wrote: | Very cool | rsync wrote: | Is there a proper API for Apple imessage such that I can create | imessages from the command line ? | | I send SMS with 'curl' commands using my twilio credentials ... | | Can I do something similar with imessage ? | RL_Quine wrote: | No. | tambourine_man wrote: | Unfortunately, there's no way other than what the author used. | | Not even through a third party like Twilio | anthk wrote: | For iMessage you can use Bitlbee and any IRC client. | pcan77 wrote: | This is absolutely awesome, I cannot wait to install it on my mac | color classic!! | camhenlin wrote: | Let me know how it goes! I'm really interested in hearing how | it goes on some higher end equipment. I personally haven't | tried anything other than 68000-based systems | anthk wrote: | Just 10 conversations? It would be better to use an IRC client | against Bitlbee. | | As for the irc client, use any. | mikestew wrote: | I'm not seeing where Bitlbee supports iMessage. Is a plug-in | needed for that support? | anthk wrote: | Bitlbee supports libpurple (Pidgin) plugins. That's how I | message over Telegram with sic (tiny IRC client) against | Bitlbee to people using smartphones around. | filmgirlcw wrote: | OK, but iMessage isn't Telegram. There are Matrix bridges | that support iMessage to varying degrees of | success/features, but I'm not sure if the Matrix feature | via libpurple would support whatever bridges you have | configured inside Matrix. It seems like a lot of additional | work/hypotheticals for something that is just a fun proof | of concept. | dagmx wrote: | You're perhaps missing the point of this. | | It's clearly not meant to be something you'd use regularly. It | looks like an excercise of "let me see if I can do this" | | If you're arguing about practicality, then you've already | missed the boat by a few decades if you're running on this | ancient OS. | camhenlin wrote: | Certainly there's a lot of opportunities for improvement here! | anthk wrote: | Yep. This looks a bit clunky. Any old/rusty irc client (even | the ones for DOS and a 286) will connect to public bitlbee | servers, where you have several. By typing up 'plugins' at | its &bitlbee channel (not a typo), you will get the supported | chat protocols on that server. | RodgerTheGreat wrote: | An impressive proof-of-concept. | | The UI elements look rather odd. What's the rationale for using a | custom immediate-mode UI library instead of using the Mac's | native forms and toolbox routines for them? | tambourine_man wrote: | Probably familiarity and ease of development. | camhenlin wrote: | Sure, I felt like having a simple immediate mode library would | make UI programming on old Macs a lot easier. I still think | that's true after getting the UI library working and having | used it for a project. I wrote a blog post explaining my | reasoning here as well: | https://henlin.net/2021/12/21/Introducing-Nuklear-for-Macint... | pvg wrote: | It makes a lot of sense and toolbox programming is a pain - | it was quite low-level in its day too. The downside is the | you end up with an app that runs on classic MacOS but doesn't | look anything like a classic MacOS app. I think that's a | problem somewhat inherent in the platform - the system- | provided GUI programming model was primitive but users cared | about the look/feel of the UI just as much if not more than | now. | RodgerTheGreat wrote: | I'm not sure I'd agree that the Mac toolbox is _primitive_. | Reflowing forms to reflect a resizable window wasn 't a | common technique at the time; Macs had a predictable screen | size and DPI. Abstracting the layout of a form from code | via a resource was a very forward-thinking approach for the | day. Among other advantages, fiddling with ResEdit was very | empowering for users who might not even have access to the | source code of an application! | pvg wrote: | It's not really primitive by intent but it's quite | primitive in reality because of the drastic constraints | on the original target platform. So yes, things like | resources are a place where intent and implementation are | relatively close but much of the rest of it isn't. | Consider that System 6/7 are of the same vintage as | Nextstep and the Nextstep model is still in very wide | practical use today. | tambourine_man wrote: | Cameron, that's awesome, congratulations. I'd love to read about | the developing process in a blog post. | | Now you just need a cool icon to go with your app. You already | have the box art spot on | cplusplusfellow wrote: | Does this mean we could write and iMessage client for Linux? | rblatz wrote: | This has the same limitations of every other 3rd party iMessage | client. It needs a companion app running on a Mac so that it | can interface with iMessage running on that Mac. Basically it's | an iMessage proxy/client. | cplusplusfellow wrote: | I would love to transition to a Linux for most things but I | can't give up the ability to text via my mac desktop. It's so | much faster and I barely suffer a context switch. | | Having to stop and pick up my phone to type with my thumb is | just agonizing. And not everyone I deal with is on slack. | smoldesu wrote: | With KDE Connect I can send SMS right from my desktop. It | ain't iMessage, but I have maybe one or two contacts who | use it anyways. Anyone who wants more features can message | me on Telegram or Slack. | olliej wrote: | There are obvious problems with bringing iMessage to other | platforms (basically the standard for any proprietary | platform). | | But a few other issues are these various cryptographic ties | to things like appleid etc, which are likely harder to deal | with. | | I believe old black hat demos from 5+ years ago when they | found some protocol flaws were constructing the message | content manually, but still sending them through the | messages xpc service (which is afaik responsible for | wrapping things in protocol goo) | | There are other issues as well nowadays: all apple hardware | for many years has been able to store keys in the Secure | Enclave (or element? One is for crypto, one is for | javacard, and I can never remember which), so there'd be a | loss in security posture relative to apple hardware (I | would put money on the SE/SEP being more secure than any | hardware crypto wallet - it's just you can't unplug it, so | you lose the very real security of an air gap) | jaidan wrote: | cplusplusfellow if your contacts transition to the likes of | Signal [0], you can then message from phone or computer. | They have software for Windows, Mac and Linux. | | [0] signal.org | camhenlin wrote: | This package would be pretty trivial to port to Linux, and you | could make some pretty large improvements running on a more | modern system | olliej wrote: | The problem is you still have to have a Mac to do the actual | work, but then the M1 mini is fast and reasonably priced so | maybe could be set up with a cross compiler so you could have | it doing something else useful rather than being (despite the | price as a computer being reasonable) a _very_ expensive | messaging client :) | | Obviously assuming linux is your main environment so a single | Mac wouldn't have additional use otherwise. If you did also | run a Mac anyway having the proxy/forwarding to any machine | you were working on would be super nice (similar to text | forwarding to your desktop so you don't need to get your | phone all the time) | camhenlin wrote: | I built an application for interacting with Apple iMessages on | classic Macintosh systems via a modern Mac. I've tested the | software on System 2.0 through System 6.0.8, but it should work | on Macintoshes running up to MacOS 9.2.2. | | In addition to the github repository, I wrote an introduction | blog post about it here: | https://henlin.net/2022/02/26/Introducing-Messages-for-Macin.... | I've also outlined the development workflow on to other posts at | https://henlin.net/2021/12/03/a-simplified-guide-to-developm... | and https://henlin.net/2022/02/26/Messages-for-Macintosh- | Develop.... | | Let me know if you have any questions or decide to try it out on | your Macintosh, I'd love to hear about it. | mpolichette wrote: | I've thought about hooking into messages w/ a running mac | before... Do you have a high level description of your | approach? I looked in the iMessage GraphQL Server server repo | for docs but didn't see anything obvious... | | On a quick investigation I noticed you are reading the sqlite | db... but it wasn't super clear how you send/receive messages? | camhenlin wrote: | I'm doing polling the Messages SQLite database to detect | receiving new messages, and and using built in Messages | scripting capabilities to send messages. See here: https://gi | thub.com/CamHenlin/imessagegraphqlserver/blob/main... ___________________________________________________________________ (page generated 2022-02-27 23:00 UTC)