• We've made some quality of life improvements to the Trading Post. More info here.

Attempting To Program Something Using LLMs With Zero Knowledge or Skill

Hah. Apparently Apple still uses AppleDouble for its Zip after all these years for extracting the resource fork. After some testing, yes, it'll support resource forks ... from Apple's zips. However, DropZip from Stuffit and MacZip each have their own methods. What a mess. I should be able to add support for MacZip, but DropZip wasn't released until much later, and I don't have an OS 8 emulator. Maybe I can use one of the web-based ones. Just need to make a few archives to test against.

Funny, this is exactly why I made my .stac archive. I wanted to use established, free, and open methods that are safe on any platform, that's 100% deconstructable. Apple's Zip was almost there, but instead of encoding the file as a single binary, it did the whole sidecar AppleDouble that's broken on anything but macOS.

Yes, I'm painfully aware for the xkcd comic about standards, but I'm mostly doing this as an exercise. It's just turning out to be a really fun project, and it may actually be useful to someone out there with a hardware compressed DiskDoubler archive they haven't been able to open after all these years.
If you're planning to support all the zip formats, don't forget ZipIt!
 
If you're planning to support all the zip formats, don't forget ZipIt!
Thanks, I'll add it to the list. Since I have to already support AppleDouble, might as well make a plugin. I'll do the same for BinHex and MacBin. I give up, it's officially an Expander/DropStuff clone with an archival-friendly format. :P I'm having too much fun with the plug-ins.
 
Thanks, I'll add it to the list. Since I have to already support AppleDouble, might as well make a plugin. I'll do the same for BinHex and MacBin. I give up, it's officially an Expander/DropStuff clone with an archival-friendly format. :P I'm having too much fun with the plug-ins.
This means eventually you'll need to completely reimplement https://github.com/ashang/unar of course, you know! Including conversion between MacRoman, Unicode, etc. :D

Maybe by the time you're finished, it'll also replace MacLinkPlus XTND translators :D
 
macbinary first, then zip to preserve both forks.
That's fine for creating archives, but he's already got his own superior format for that -- this is for extracting existing zips, and everyone did things a little differently from each other on that. Mostly a mix of applesingle, various appledouble implementations and macbinary II.

Personally, I'd go with just multibin and then whatever compression/archive you want on top for compression. Realistically you could just multibin the files and leave compression for a faster archival system after the fact.
 
OK, the new Zip plugin now supports: MacZip, DropZip, ZipIt, and macOS Zip. Turns out DropZip and ZipIt just do MacBinary encoding first, then zip, so it turns out they're identical (but you have to manually turn it on, and they both default to PC/UNIX Zip and strip resource forks, which I think is odd.) MacZip did AppleDouble, but put it in a custom named folder, so it's almost compatible with Apple's Zip method, but not quite.
 
If anyone is interested in testing the app out and giving me feedback and suggestions, I can post a link to the builds. I just stopped posting any links because I was making so many changes and I couldn't delete or modify the old posts.
 
http://clickwidget.com/dropstac/

I'll be posting updated apps there. I think the only reason I had a Github account was for using a Keyboard layout designer, which no longer works.

I'm thinking maybe I should make a new thread just for DropSTAC since a few people now appear to be interested in it.

I'll try to only post builds after major bug fixes or when I complete features.
 
*Updated DropSTAC from CRC-16 to CRC-32, and made it so the checksum can be exported along with the manifest and log (I may combine these two things.) It also means it can verify the CRC header in Zip files as well as Stuffit archives (*wink*).
 
Last edited:
A couple more changes. Unfortunately won't be able to do much until Wednesday when my tokens reset, but I expect to have some nifty new plug-ins.

Just some quality of life changes. Added a generic ALRT dialog instead of using cryptic beep codes I had been using earlier for testing. This'll stay in the app as it's actually useful. Will let you know if an archive is corrupted or damaged, unsupported, empty, etc.

Also added some modifiers for Command and Option keys. For example, if you hold down the Command Key while dropping a .stac archive onto DropSTAC, it'll just extract each binary encoded file and keep it encoded instead of decoding it. If you do the same with a .zip file or any other file supported through a Plug-in, it'll convert it into a .stac archive instead of expanding it.

If you hold down the Option key while dragging any already-compressed or encoded file or folder, it'll compress it as-is without converting or expanding. For example, if you drop a "sample.zip" file onto while hold down the Option key, it'll create "sample.zip.stac" file.
 
http://clickwidget.com/dropstac/

I've uploaded build 94, now with a new Stuffit™ 1.x plug-in! DropSTAC can now do two things The Unarchiver can't do: Expand LZS compressed DiskDoubler archives, and now, it can expand segmented Stuffit 1.x archives. Oooooo. :whistle: (I actually hope to remedy this because I'm going to be publishing the source code, and these would be some nice additions to Unar/Unarchiver.)

Learning some interesting things about Stuffit 1.x archives that I never noticed until now after testing various archives, and is something I think is pretty important considering a lot of places have "standardized" on Stuffit 1.x: Stuffit 1.x archives do not handle Finder flags or folder bits, and they don't support fdLocation finder flag at all (icon location in a folder.) If you stuff folders that have custom icons, Stuffit 1.x strips the 'Has Custom Icon' bit, even though the invisible 'Icon/r' is there. I tested unstuffing a Stuffit 1.x archive using both the original Stuffit 1.5.1 and later Stuffit Expanders like version 3.5.2, and it's the same: all folders lose their custom icons.

Anyway, I've implemented smart Icon parsing. If extracting a folder and it has a the invisible Icon file in it, the app will toggle the 'Has Custom Icon' bit back on. So this fixes a bug with Stuffit 1.x archives.

Fixed other miscellaneous bugs such as how duplicate file names are handled while Preserve File Extensions is enabled (the default behavior.)

As a side note, this was a "clean room" implementation allegedly without using code from any other program (to avoid licensing and copyright issues), but those are some very heavy air quotes there. The LLM made me snort cuz I don't think there is any such thing as a "clean room" implementation when it comes to LLMs. They're literally built on the massive theft of IP.
 
I've noticed a bug with the progress bar and the app "freezing" while it initializes processing an archive. I'm gonna fix this soon so it's more accurate and no longer freezes.
 
Interesting. Stuffit 1 and 2 were identical, save for the compression methods. Stuffit 1 actually has flags for unimplemented compression methods that were eventually used in Stuffit 2. If there was a way to force Stuffit 2 to use just LZW, it'd probably work with Stuffit 1.

I'm debating about combining all the Stuffit formats into a single Stuffit Plug-in, or to keep them separated by format version. I'm thinking of keeping them separate because I can imagine a use-case scenario where you might want to limit expansion to a specific version. For example, you have a mix of files all compressed in various Stuffit versions, but you want to consolidate everything to Stuffit v3. You could then turn off the Stuffit v3 plug-in, then expand all the non-v3 archives. From there you can re-stuff them with DropStuff v3 to make sure all your archives are the same format.
 
http://clickwidget.com/dropstac/

OK, I've uploaded build 102.

Now supports Encrypted and Password Protected Stuffit Archives.

All plug-ins have been updated (they won't work with previous builds.) Plug-ins now include:
  • DiskDoubler LZS Plug-in
  • Stuffit 1.x Plug-in
  • Stuffit 2.x Plug-in
  • Stuffit 3.x Plug-in
  • Stuffit 5.x Plug-in
  • Zip Plug-in
Before I proceed with building more plug-ins, I'm going to finish implementing the SESA (Self-Extracting STAC Archive). I am still going to add a few more plug-ins (Compact Pro, maybe the rest of the DiskDoubler formats, etc.).
 
http://clickwidget.com/dropstac/

Wow, this is going rapid fire. Build 114 now fully supports Self-Extracting STAC Archives (SESA). Give it a try, I included one. :)

Also did some fixes on the progress bar for encoding/decoding, as well as addressed some memory issues for when dealing with large files. It should be able to do everything in-memory if you have enough, otherwise it'll use a local scratch file.

Also, check out my little juggling guy for the timer. I've wanted to use that in one of my projects for a while after finding it in a different app.
 
Back
Top