[HN Gopher] All hyped up for Hypercard: further adventures with ...
       ___________________________________________________________________
        
       All hyped up for Hypercard: further adventures with an Apple legacy
       format
        
       Author : zdw
       Score  : 100 points
       Date   : 2021-12-14 17:28 UTC (5 hours ago)
        
 (HTM) web link (blogs.loc.gov)
 (TXT) w3m dump (blogs.loc.gov)
        
       | phaedryx wrote:
       | Oh man, Hypercard and ResEdit were my gateway drugs. I don't know
       | of anything equivalent nowadays.
       | 
       | The pinnacle for me was getting it to run my teacher's laser disc
       | player.
        
       | cstross wrote:
       | Looks like the LOC folks are also unaware of the existence of
       | HyperCard clones such as SuperCard (a compiler) and subsequently
       | Runtime Revolution (now discontinued): before the company stopped
       | selling its end-product cross-platform HyperCard clone there was
       | a brief open source foray, and some folks appear to still be
       | trying to develop an open source XTalk platform (XTalk is the
       | generalized descendant language of HyperTalk):
       | 
       | https://openxtalk.org/forum/
       | 
       | https://en.wikipedia.org/wiki/XTalk
       | 
       | ... They also don't seem to know about how files on an HFS
       | filesystem all have separate resource/data forks: it's a
       | distinctly different paradigm from the familiar a-file-is-a-
       | stream-of-bytes convention of Linux/UNIX/NTFS, and some of their
       | problem seems to arise because they're looking at a "flattened"
       | HFS file that has been squished to fit on a non-HFS filesystem.
       | (Modern macOS makes almost no use of resource forks, so they're
       | vestigial in HFS+; not sure APFS even provides them.)
        
         | GeekyBear wrote:
         | The original version of Windows NT Server allowed you to
         | install Services for Macintosh and act as an AppleTalk file
         | server, so support for resource forks was added to NTFS.
         | 
         | https://en.wikipedia.org/wiki/NTFS#Alternate_data_stream_(AD...
        
           | p_l wrote:
           | Alternate Data Streams are pretty interesting, cause I'm
           | pretty sure Services for Macintosh weren't the only users -
           | it's also way more powerful (closest thing on Unix would be
           | Solaris-style extended attributes) and pretty fundamental
           | part of NTFS on-disk structures (in fact, "alternate" data
           | streams differ from main one only by having a name - the
           | default data stream simply has no name, and all data streams
           | are equal in importance)
        
             | retrac wrote:
             | Extended attributes aren't limited just to Solaris. A
             | variety of *nix file systems have generally supported
             | forks/multiple data streams for some time. FreeBSD has
             | support for arbitrary-sized extended attributes in UFS/ZFS,
             | for example, and implements its access control with them.
             | Linux probably has the most limited form, where the xattr
             | are capped at 4 or 64 kilobytes depending on the underlying
             | FS.
             | 
             | I think the big issue for uptake is that it just doesn't
             | fit into the UNIX world. Nothing else is aware of
             | xattrs/forks. The basic file utilities will blindly strip
             | them so you can't just cp or tar such a file, for example.
             | If cp transparently breaks all your files, that's pretty
             | much a show-stopper as anyone who remembers the classic Mac
             | to OS X transition will know.
        
               | p_l wrote:
               | The reason I mentioned Solaris is because Solaris
               | behaviour is closest to NTFS, whereas linux API is based
               | upon Irix, which is closer in behaviour to OS/2 (OS/2
               | subsystem was another use case for ADS), as well as
               | implementation on a bunch of other systems where extended
               | attributes were treated as just that, attributes.
               | 
               | Comparatively, NTFS is very... flexible navigational
               | database and a bunch of things are just "this is the
               | default parameter set, not exhaustive".
               | 
               | I wasn't aware that FreeBSD copied Solaris in this (ZFS
               | extended attributes by default create a sort-of directory
               | object allocated linked from the file, linux supports
               | inlining simplified xattrs for speed)
        
             | [deleted]
        
         | soapdog wrote:
         | Runtime Revolution is not discontinued, it is alive and well,
         | it just rebranded to https://www.livecode.com many years ago.
        
         | pstuart wrote:
         | It seems like it would be reasonably straightforward to create
         | a hypercard clone on top of js and the DOM. Or maybe that's
         | already been done? (a lazy search did not reveal this to be the
         | case).
        
         | ksherlock wrote:
         | The HyperCard stack's resource fork contains icons, sounds,
         | xcmds, xfcns, and probably some other miscellanea. Most of the
         | stack is stored in the data fork.
         | 
         | APFS doesn't specifically have resource forks. They're handled
         | as the com.apple.ResourceFork extended attribute (which is also
         | one way OS X exposes them on HFS+ but with HFS+ the fork/xattr
         | always exists; on APFS it has to be explicitly created).
        
         | kragen wrote:
         | The other post linked from the one you're commenting on
         | (https://blogs.loc.gov/thesignal/2020/11/an-archivists-
         | perspe...) talks specifically about the problems of preserving
         | and reverse-engineering dual-fork files, so the problem is not
         | what _they 're_ unaware of, Charlie. You just aren't aware of
         | the problem they're trying to solve.
         | 
         | The LOC, the Internet Archive, and the UK National Archives
         | don't benefit from proprietary compilers for proprietary
         | operating systems like SuperCard; their remit is to preserve
         | these files for centuries or millennia, not until the next
         | update of macOS X. If SuperCard interprets a HyperCard stack
         | differently than original HyperCard did, or SuperCard on a new
         | version of macOS X displays or behaves differently than it did
         | on the previous version, that's a failure of digital
         | preservation. Unless, that is, you notice --- and to notice,
         | you need to emulate the original HyperCard environment and/or
         | be sufficiently familiar with the semantics of the file
         | specification. If https://news.ycombinator.com/item?id=29555959
         | is to be believed, SuperCard is 32-bit-only and so will not run
         | on the most recent version of macOS X, which lack 32-bit
         | support, which if true demonstrates the enormity of the
         | problem.
         | 
         | As for streams of bytes, a _disk_ is a stream of bytes, or
         | rather a collection of fixed-size blocks of bytes. _HFS_ is
         | looking at flattened HFS files that have been  "squished" to
         | fit on a medium that does not, itself, implement HFS. Therefore
         | anything that you can represent with an HFS dual-fork file can
         | also be represented losslessly in a stream of bytes. (You do of
         | course benefit from understanding the dual-fork structure.)
         | HFS+ actually went further, implementing files with an
         | arbitrary number of forks, like sections in ELF or PE. As
         | GeekyBear points out, NTFS did the same, leading to path
         | traversal vulnerabilities in early Microsoft web servers.
        
       | Isthatablackgsd wrote:
       | Wow, it has been a while since I play with Hypercard. I remember
       | doing this in my 7th grade science class back in the 90s. I and
       | my classmates have to create something out of Hypercard for the
       | project.
        
       | dbg31415 wrote:
       | HyperCard and Excel were my programming gateway drugs.
       | 
       | HyperCard was a mix of like PowerPoint and HTML / JavaScript.
       | Just was so much fun for a kid to play around with. And
       | everything you built had a visual element you could show your
       | friends.
       | 
       | I used HyperCard to re-create a MUD I really liked with a visual
       | interface. Sort of like Myst... I had a blast. Certainly wasn't
       | the first person to do that, but all the little coding tricks I
       | had to learn to pull off my vision all came in handy later.
        
         | tombert wrote:
         | > HyperCard and Excel were my programming gateway drugs.
         | 
         | Same! I had played with C++ a bit, but what really made
         | programming logic stick for me was when I made my teacher a
         | gradebook in Excel in 9th grade. His logic for calculating the
         | grades in class was a bit strange, and he was doing it all
         | manually, and my grades were exceptionally bad in that class,
         | so I asked if I could get some extra credit if I could make his
         | grading easier. Surprisingly he said yes [1], so that weekend I
         | really crunched through Excel and pumped out a gradebook that
         | implemented all the rules he was using to grade.
         | 
         | It was the first time that "if" and "else" statements really
         | clicked for me, and it got me interested in "real" languages.
         | 
         | [1] In hindsight he really shouldn't have. It was sort of an
         | unfair bit of favoritism he was paying to me, but 15 year old
         | me didn't really care.
        
         | karmelapple wrote:
         | What was the name? I played plenty of stacks back in the day!
        
       | webwielder2 wrote:
       | I've just learned that the would be de facto successor to
       | HyperCard, SuperCard, is still being maintained/updated
       | https://supercard.us
        
       | jrochkind1 wrote:
       | I wonder if it would be possible to get entries for hypercard in
       | "magic byte" databases like
       | https://freedesktop.org/wiki/Software/shared-mime-info/
       | 
       | The work is figuring out if it's even possible, and what the
       | bytes would be.
        
         | Someone wrote:
         | FTA:
         | 
         |  _For instance, a stack file begins with a stack block
         | (signified by the hexadecimal values, "53 54 41 4B," which
         | correspond to the ASCII characters, "STAK"), and the file is
         | terminated by a tail block (signified by the ASCII characters,
         | "TAIL"_
        
           | duskwuff wrote:
           | Fun fact: the tail block contains the constant string "Nu ar
           | det slut...", Swedish for "this is the end".
        
         | rvense wrote:
         | You want the file type and creator code, but they're eaten
         | along with the resource fork when you move the file to
         | something that's not HFS, I think.
        
         | duskwuff wrote:
         | > The work is figuring out if it's even possible, and what the
         | bytes would be.
         | 
         | Easy.                   4 string STAK\xff\xff\xff\xff
        
           | jrochkind1 wrote:
           | OK, I guess now the work is getting it into the magic bytes
           | databases! :)
        
       | lr4444lr wrote:
       | _Bill Atkinson allegedly came up with the idea for HyperCard
       | during an LSD trip_
       | 
       | Makes me pause to think what innovations we missed out on for
       | loss of creative inspiration from all of our anti-drug policies.
        
         | hvgk wrote:
         | Well the last dude I know who took LSD tried to call an
         | ambulance for a pile of sacks of builders cement and pissed
         | himself. YMMV on that one. There are probably more failures
         | that are not romanticised and more successes that involved hard
         | work.
        
           | [deleted]
        
         | jazzyjackson wrote:
         | the book "what the dormouse said" is an amazing retelling of
         | this era detailing who tripped when and what they went on to
         | invent
         | 
         | IIRC photolithography and CPU architecture came out of this
         | subculture, berkeley and harvard both had sanctioned LSD
         | experimentation that grad students were happy to participate
         | in, in the "center for advanced studies"
         | 
         | it's been a few years since I read it so my memory is hazy
        
           | golemiprague wrote:
           | The question is how many of the LSD takers invented something
           | in relation to all the other ones who just had some fun. Is
           | it bigger percentage than in the general population?
        
           | cmg wrote:
           | Your comment made me go search for a short article that I'd
           | seen in the past [0] with a text version at [1]. "Use of
           | LSD-25 for Computer Programming"
           | 
           | "While stimulated by the LSD I was able to get the entire
           | system wholly in my mind at the same time. I spent some time
           | mentally visualizing various aspects of the compiler, the
           | language and the processing which would take place. I did
           | discover three or four design inconsistencies while being
           | stimulated by the effect of the LSD, and I made notes for
           | later checking."
           | 
           | [0] https://maps.org/news-letters/v18n1/v18n1-MAPS_24.pdf [1]
           | https://slidelegend.com/use-of-lsd-25-for-computer-
           | programmi...
        
             | rightbyte wrote:
             | He probably just felt like getting the whole system in his
             | head?
             | 
             | Shouldn't LSD trivially make people score higher on IQ test
             | otherwise.
        
               | jazzyjackson wrote:
               | maybe "felt like" is the important part?
               | 
               | just spit-balling here as a non-lsd-user, but I do have
               | the experience of "writers block" when I feel a program I
               | wrote is too complex, I feel like it would be better to
               | scrap it and start over
               | 
               | perhaps the effect of LSD is more anti-anxiety of
               | approaching the problem despite its complexity, not
               | improving your IQ, but lowering your inhibitions that
               | otherwise prevent you from problem solving
               | 
               | (I am on the side of things that drugs in general turn
               | parts of the brain off, rather than somehow making you
               | superhuman, but maybe there are parts of the brain we
               | could do without from time to time)
        
               | tomc1985 wrote:
               | I've said the same thing about smoking sativas, so to
               | learn that others have capitalized on this sort of
               | 'increased visualization capacity' of LSD is not
               | surprising.
               | 
               | > (I am on the side of things that drugs in general turn
               | parts of the brain off, rather than somehow making you
               | superhuman, but maybe there are parts of the brain we
               | could do without from time to time)
               | 
               | They do neither as a rule. They just twist thinking
               | around as they mess with your brains chemistry. Sometimes
               | that puts you in a better place for a given activity,
               | sometimes it puts you in a worse place. I think that, as
               | society wakes up to the lies promulgated by the War on
               | Drugs, we will revisit these positive interactions that
               | are otherwise collectively forgotten.
        
       | tombert wrote:
       | I generally hate the expression "Ahead of its time", but I think
       | that it definitely applies to Hypercard.
       | 
       | I've only played a bit with Hypercard, but it's one of those
       | things that feels almost anachronistic; it's hard to believe that
       | something released in 1987 would be as trivial to use and be
       | productive with as Hypercard.
        
         | jandrese wrote:
         | It's a language that is object oriented without having to teach
         | the programmers any of the theory. The language has a
         | considerable amount of syntactic sugar but makes for some
         | pretty incredible looking code.                  on mouseUp
         | put "100,100" into pos               repeat with x = 1 to the
         | number of card buttons                 set the location of card
         | button x to pos                 add 15 to item 1 of pos
         | end repeat             end mouseUp
        
           | kragen wrote:
           | Although I hate to recommend proprietary software, you might
           | be interested in looking at Inform 7, designed for authoring
           | interactive fiction;
           | https://rosettacode.org/wiki/FizzBuzz#Inform_7 has an
           | example:                   The space is a room.  An item is a
           | kind of thing.  In the space are 100 items.              To
           | say the name:                 let the count be the number of
           | items carried by the player;                 say "[if the
           | count is the count to the nearest 15]fizzbuzz.[otherwise if
           | the count is the count to the nearest 3]fizz.[otherwise if
           | the count is the count to the nearest 5]buzz.[otherwise][the
           | count in words].".              To count:                 if
           | an item is in the space                 begin;
           | let the next one be a random item in the space; silently try
           | taking the next one;                         say "[the name]"
           | in sentence case;                         count;
           | end the story;                 end if.              When play
           | begins: count.  Use no scoring.
        
           | tombert wrote:
           | That's really cool! Reminds me of some of the crazy stuff you
           | can do with the Lua metatables to get really pretty code (if
           | you are careful).
        
         | jimbokun wrote:
         | I worked on interactive software for learning Japanese in
         | Hypercard many years ago. I think it's still the most
         | productive system for building user interfaces I've
         | encountered.
        
       | JALUK wrote:
       | There are still Apps out there that are derivatives of the
       | HyperCard family.
       | 
       | LiveCode is based upon Metacard and was the subject of another
       | Hacker News Thread:
       | 
       | https://news.ycombinator.com/item?id=24874102
       | 
       | There is also SuoerCard:
       | 
       | https://supercard.us/index.html
       | 
       | Which unfortunately is 32 bit only so only works on older
       | variants of modern day OSX.
        
       | gnufx wrote:
       | Not relevant to the article, but while people are talking about
       | HyperCard and derivatives generally, it inspired HyperNeWS, which
       | I remember fondly, though it wasn't free software. Perhaps that
       | kibozes Don Hopkins:
       | http://www.art.net/studios/Hackers/Hopkins/Don/hyperlook/ind...
        
       ___________________________________________________________________
       (page generated 2021-12-14 23:00 UTC)