All hyped up for Hypercard: further adventures with an Apple legacy format
blogs.loc.gov
blogs.loc.gov
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.)
https://en.wikipedia.org/wiki/NTFS#Alternate_data_stream_(AD...
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.
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)
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.
Aside from the emulation/undocumented-format problem that the librarians here are suffering from, a really big problem with born-digital archival work for more recent formats is copyright. Although libraries are permitted to make copies for archival work, in many cases the software tools they would need to make those copies don't exist, because those tools would circumvent an effective technological protection measure within the meaning of the DMCA, so writing and distributing them is potentially a crime. So in effect copyright law is privileging the business interests of Harvey Weinstein, Dan Brown, Bob Guccione, and Adam Sandler over the academic interests of scholars, historians, and the Library of Congress.
I don't think there's anything wrong with Pee-wee Herman or Amy Poehler making movies, but I don't think it's worth sacrificing the intellectual heritage of humanity to buy them second vacation homes.
It isn't the kind of thing where a summer intern can ask permission to break a DRM scheme for archival purposes and then be successfully preserving material the next week.
HyperCard graphics were bitmapped, not vectors. There's no additional resolution available.
> There may also be metadata or "forensic" data that isn't visible directly in HyperCard itself, which may be of interest to future historians.
This, on the other hand, is interesting (and potentially a little scary). The HyperCard stack format is practically a tiny little file system, complete with unallocated space; it's not uncommon for FREE chunks to contain bits of data that happened to be in memory on a computer that interacted with the stack.
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).
Each of those platforms has an analog to HFS forks.
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.
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 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.1. Inform7 source is released under an OSS license
2. Patrick Rothfuss finishes the Kingkiller Chronicles book 3
3. George R.R. Martin finishes the final A Song of Fire and Ice book
4. Dean Koontz finishes the Moonlight Bay trilogy book 3
I'm skeptical any of these events will happen in my lifetime. Or the lifetime of the universe we live in.
sigh
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.
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.
Guess what Myst was developed in.
(HyperCard! With some custom extensions to display color images and video.)
Makes me pause to think what innovations we missed out on for loss of creative inspiration from all of our anti-drug policies.
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
"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...
Shouldn't LSD trivially make people score higher on IQ test otherwise.
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)
> (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.
Many here are familiar with the term "fire an event". I coined that in the late 1980s when I was at Cooper Software working on a program that would become Visual Basic. (Our team did the "Visual" part, and Microsoft added the "Basic".)
Our system was event-driven just like pretty much any GUI app or system. Under the hood, of course, we used the Win16 SendMessage, PostMessage, GetMessage, and PeekMessage calls.
But we had a habit of using creative names. In fact Alan Cooper once said that "one of my most important programming tools is a thesaurus."
We had already decided to call them "events" instead of "messages" for whatever reason, and now I needed a way to talk about sending them.
At my previous job we had "SQL triggers". I started thinking along that line but wasn't getting anywhere.
So I turned to a trick I often used when I felt stuck: I started firing rubber bands against my computer screen. I kept a stack of them on my desk for just that purpose.
(This was an IBM Monochrome Display with a sturdy glass front. Do not try this on your modern LCD/OLED displays.)
I still wasn't getting anywhere, so I fired up a doobie. I flicked the lighter a few extra times and looked at the flame.
And then it all fell into place: Fire a rubber band. Fire up a doobie. Fire an event!
I must also confess I haven't felt this way about sativas in a long time. Not sure what happened but sometimes it makes me kind of sad to not feel that big brain effect. Been meaning to microdose LSD but it's hard finding a reliable connect
On another note, a young tweenage me wrote his first program on my uncle's copy of VB3. I wanted to write a terminal-type app that could dial a BBS and interact with it. I got about as far as getting the modem to dial.... I'm sure there's an angry BBS operator out there somewhere who got sick of this kid dialing his number and then never initiating the handshake. So... thank you for helping to create the tools I used to do that!
The pinnacle for me was getting it to run my teacher's laser disc player.
http://www.art.net/studios/Hackers/Hopkins/Don/hyperlook/ind...
Ask him, he is on HN regularly.
The work is figuring out if it's even possible, and what the bytes would be.
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”
Easy.
4 string STAK\xff\xff\xff\xffLiveCode 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.