[HN Gopher] Show HN: A new native app for 20 year old OS X
___________________________________________________________________
Show HN: A new native app for 20 year old OS X
A few of us here are probably familiar with the original Xbox
modding scene and the iconic xbins FTP server. Recently, I came
across an amazing tool called Pandora by Team Resurgent [0], which
got me thinking about how incredible something like this would have
been 20 years ago. Just to clarify, I had no involvement in
creating Pandora--I'm just inspired by their work. For those who
aren't familiar, getting access to xbins involves a rather dated
process. You need to connect to a channel on an EFnet IRC server,
message a bot for temporary credentials, then plug those
credentials into your FTP client to access xbins. Pandora (and my
app) simplifies this entire workflow into a single click. Inspired
by Pandora, I decided to build my own take on what this dream tool
might have looked like back in the day. I wrote a native Mac app on
original hardware--an Intel iMac (20-inch, 2007)--running a
20-year-old operating system, Mac OS X 10.4 Tiger. This was my
first foray into native Mac app development, though I've done some
iOS development in the past. The result is Uppercut [1], and the
source is available on GitHub [2]. For the development process, I
used Claude to help with a lot of the coding, especially since I
was constrained to Xcode 2.5 and the pre-"Objective-C 2.0" features
available at the time. I had to be very specific in prompting
Claude to avoid newer features that didn't exist back then. Since
the majority of Objective-C code out there comes from the era of
iOS development (which relied heavily on Objective-C 2.0 until the
arrival of Swift), this was a unique and challenging exercise in
retro development. [0] - https://github.com/Team-Resurgent/Pandora
[1] - https://uppercut.chadbibler.com [2] -
https://github.com/chadkeck/Uppercut
Author : chadkeck
Score : 136 points
Date : 2025-01-24 00:46 UTC (3 days ago)
(HTM) web link (uppercut.chadbibler.com)
(TXT) w3m dump (uppercut.chadbibler.com)
| mrcwinn wrote:
| Meh. I'm holding out for Leopard. Sure hope it's good!
| Wowfunhappy wrote:
| I'd expect an app that targets Tiger to work fine in Leopard as
| well!
| TheSmoke wrote:
| I so miss this look and feel.
| NikkiA wrote:
| I actually liked the stronger pin stripes on Jaguar
| p_ing wrote:
| Same! And I really liked the pill on the upper right of each
| window. Brings back that Mac OS feel.
| xattt wrote:
| I would best guess that each era of Mac OS design was
| heavily intertwined with display technology of the time.
| Pinstripes were for CRT raster. Brushed metal detail was
| for LCDs. "Sparkly" metal in Leopard was for higher res
| LCDs, and so on.
| landr0id wrote:
| Cool project! I remember back in the day having to poke my
| friends with xbins upload access to drop things for me. It wasn't
| super clear who anyone involved with the service was in that
| capacity. I'm surprised xbins is still kicking and with the same
| model it used to have, but it's kinda cool at the same time.
| randall wrote:
| i love you this is amazing
| Lammy wrote:
| Very cool. Is Tiger the minimum bound for the app itself, or just
| for the Intel Mac? I have 10.1 on a Wallstreet and can give it a
| shot if not.
|
| > thinking about how incredible something like this would have
| been 20 years ago
|
| There are a couple of iterations of this idea that are slightly
| older than Pandora. Key word "Easy-Xbins" or "AutoXbins":
| https://www.se7ensins.com/forums/threads/how-to-use-auto-xbi...
| (2007)
|
| The one I liked most for Windows was called Auto Xbins 2009 and
| had embedded mIRC which would trigger every anti-malware system
| under the sun due to looking exactly like malware C&C lol
| chadkeck wrote:
| > Very cool. Is Tiger the minimum bound for the app itself, or
| just for the Intel Mac? I have 10.1 on a Wallstreet and can
| give it a shot if not.
|
| I recall seeing stuff in Xcode about building for down to 10.2,
| but I don't have anything set up to test on 10.2. I'd bet this
| build won't work on 10.1.
| ChrisMarshallNY wrote:
| A labor of love!
|
| Thanks for sharing it!
|
| I probably won't use it, though.
|
| On a practical note, when I release apps, I generally try to
| support as far back as possible (usually a couple of major
| releases). Supporting these can be challenging. I can only
| imagine what this was like.
| Wowfunhappy wrote:
| > On a practical note, when I release apps, I generally try to
| support as far back as possible (usually a couple of major
| releases). Supporting these can be challenging. I can only
| imagine what this was like.
|
| This isn't to diminish OP's work, but I imagine it's quite a
| bit easier if you're _only_ targeting an older platform.
|
| Basically, just write the software as if it's the year your
| target platform was released. It shouldn't be more difficult
| than writing any software was back then. Heck, it may even be
| easier because you have access to more modern tools, like AI.
| chadkeck wrote:
| > Basically, just write the software as if it's the year your
| target platform was released. It shouldn't be more difficult
| than writing any software was back then. Heck, it may even be
| easier because you have access to more modern tools, like AI.
|
| I used Claude heavily for this project. I doubt I would've
| put the time in to get this to an acceptable release state
| without being able to use Claude. I did buy a few old books
| and reference them for Xcode things, but most was done with
| Claude.
| Wowfunhappy wrote:
| Thank you OP, it's great to see new apps for old OS X!
|
| One thing I noticed is that the main menu has some items I don't
| think apply to your app:
|
| https://i.ibb.co/7rXcMCH/Screen-Shot-2025-01-26-at-7-37-12-P...
|
| Page Setup? Print? Unless there's an aspect of your app I'm
| missing, I think you want to get rid of these.
|
| The other menus also have some stuff you may want to cut down on.
| Correct me if I'm wrong, but, I don't think you can actually open
| files in this app, right? So then `New` `Open`, `Open Recent` and
| so on probably shouldn't be there.
|
| I'm using 10.9 instead of 10.4, still pretty old but a lot newer
| than Tiger, so if this is OS specific please ignore me. :)
|
| ----------
|
| Edit:
|
| Your app stopped loading new categories for me, so I tried
| disconnecting and reconnecting. When I tried to reconnect, it
| never completed. Then I saw this in Console.app:
|
| ```
|
| 1/26/25 7:44:36.466 PM Uppercut[80462]: IRC | Received message:
| NOTICE AUTH :*** Found your hostname :irc.swepipe.se NOTICE
| nZuLWvRtl :*** Banned Temporary K-line 4320 min. - Open proxy
| found. See http://rbl.efnetrbl.org/?i=###.###.###.### for more
| information. (2025/1/27 00.37) ERROR :Closing Link:
| syn-###.###.###.###.###.###.com (*** Banned )
|
| ```
|
| (I've censored my IP address by replacing it with #).
|
| Is it possible the irc server detected your app as malicious
| activity? It is a bot, after all. But I don't know why it would
| only happen for me?
|
| It's theoretically possible there is something else wrong with my
| network, but (1) I took a quick look at my router's traffic and
| did not notice anything amiss, and (2) I wasn't banned when I
| first started using your app, and I am now.
|
| On yet another separate note, I tried checking the log window in
| your app (window - show log) before I checked the system Console,
| but it was empty. If you're going to have a log window in your
| app, IRC connection messages might be a good thing to put there!
| chadkeck wrote:
| > One thing I noticed is that the main menu has some items I
| don't think apply to your app:
|
| Yep, I'd forgotten about those default menu items and need to
| remove them in a future version.
|
| > Is it possible the irc server detected your app as malicious
| activity?
|
| Yes, during my testing I got banned with a similar message from
| one of the servers. Uppercut randomly selects an EFnet server
| from a list, so trying again may have everything go smoothly.
| I'm not sure what exactly some servers are looking for to
| determine a ban or not.
| cmiller1 wrote:
| Nice, it's a universal binary! Works great on my PPC machine.
| chadkeck wrote:
| Good to know, thanks for testing on PPC.
| eahm wrote:
| "The tool we all wished we had back in 2005 for homebrew
| development and exploration." but we did have one, it was called
| Auto-Xbins, it had an integrated console irc client and
| FileZilla.
|
| I even used to release my own version with updates etc., cool
| stuff. Even this new project is cool.
| chadkeck wrote:
| I never came across Auto-Xbins, but it's good to know it
| existed. Hopefully it got a lot of use over the years.
| ralphc wrote:
| Can you give some examples of the prompts you used to get Claude
| to generate the old-enough code?
| asow92 wrote:
| I asked Claude "As a developer writing for mac os x 10.4 tiger
| on Xcode 2, write me a hello world mac app with a button that
| outputs the string "hello world" to the console" and it seemed
| to produce correct results in Objective-C.
| chadkeck wrote:
| Here's the prompt I ended up with after several iterations of
| Claude trying to spit out Objective-C 2.0 code:
|
| "This project must generate code that works with Mac OS X Tiger
| 10.4, Xcode 2.5, and Objective-C 1.x. The Objective-C code
| generated MUST NOT have ARC, blocks, @property, @optional,
| @try, @synchronize, NSInteger, auto-layout, or modern features,
| NSCharacterSet doesn't have newlineCharacterSet. I know it's an
| old, obsolete version but I must use it.
|
| Generate clean code with comments and debug logging to NSLog."
| asow92 wrote:
| Any reason Xcode 2 was chosen? Wouldn't have Xcode 3.2.6 on
| Snow Leopard but targeting OS X 10.4 and including ppc as an
| architecture also worked?
| troad wrote:
| This is really neat!
|
| It's a real shame there's nothing like Wine for the late
| PPC/early Intel era of OS X. That entire galaxy of apps basically
| just no longer have anything to run on. I would love to fire up a
| game of Pac the Man X, but no dice.
|
| (I'm aware of Darling, but its development seems to have
| stalled.)
| miles wrote:
| > It's a real shame there's nothing like Wine for the late
| PPC/early Intel era of OS X. That entire galaxy of apps
| basically just no longer have anything to run on.
|
| PPC apps run great in QEMU/UTM on Apple silicon:
|
| Run Tiger, Leopard, or any Mac OS X PowerPC version on M1
| https://tinyapps.org/docs/tiger-on-m1.html
|
| Intel emulation works too, but is not nearly as performant at
| present:
|
| Virtualizing OpenCore and x86 macOS on Apple Silicon (and even
| iOS!) https://khronokernel.com/apple/silicon/2021/01/17/QEMU-
| AS.ht...
|
| Emulating Windows XP x86 under M1 Mac via UTM & QEMU
| https://tinyapps.org/blog/202105220715_m1_mac_emulate_x86.ht...
| gizajob wrote:
| I always feel like Tiger was the pinnacle of the Stevesie era
___________________________________________________________________
(page generated 2025-01-27 23:02 UTC)