[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)