The Psychedelic Inspiration for Hypercard (2018)
mondo2000.com
mondo2000.com
I've been "maintaining" this collection of stacks for around three years - keeping the uploader[2] running (yes, you can add your own stacks!), checking the stacks for bugs / errors in the emulation, etc... and the range and breadth of what was created in HyperCard is just amazing.
You've got silly little animations[3], sound samplers[4], choose-your-own adventure stories[5], reference guides[6] and teaching materials[7] (that last one was added to the collection with the very kind help of someone at the USGS who mailed me a CD-ROM so I could add it).
I thoroughly recommend that those unfamiliar with HyperCard have a browse of the collection and see what was made possible by this groundbreaking 1980s tool.
[1] https://archive.org/details/hypercardstacks
[2] http://hypercardonline.tk/
[3] https://archive.org/details/hypercard_computer_sind_doof
[4] https://archive.org/details/hypercard_cheapsequencersit
[5] https://archive.org/details/hypercard_inigo_gets_out
[6] https://archive.org/details/hypercard_macprinters-11
[7] https://archive.org/details/hypercard_usgs---teaching-earth-...
[1] https://jamesfriend.com.au/pce-js/
[2] https://jamesfriend.com.au/why-port-emulators-browser
[3] https://jamesfriend.com.au/porting-pce-emulator-browser
(As an aside, the Readme file probably didn't work because no text editor was installed - the items in the HyperCard stacks collection typically only include the OS, HyperCard and the stack itself. If you try opening the stack it should work just fine.)
I remember seeing a video of someone loading Google with an old Macintosh(tan tube type) it took a while, but it eventually loaded, felt like time traveling or something.
[1] https://archive.org/details/hypercard_the-meeting-watcher
This is an apple emulator with hypercard boot disk.
To you run the stacks (you have to double click the 2nd disk icons) once the machine boots.
If I clicked on the ? on the top right of the menu bar I could drop into hypercard and see how it worked, which was kinda amazing (though I couldn't figure out how to inspect the existing stack..)
amazing what browsers can do. Although I couldn't get the sound working
1.) Open the stack.
2.) Type Alt-M to open the message box.
3.) Type "set the usermode to 5" and press enter. (This sets the usermode to the highest level).
4.) If the menubar isn't showing, type "show menubar" into the message box and press enter.
Voilla! Full access to edit and inspect the stack. (Note that all changes are lost when you close the tab - the emulator does not yet have persistent storage).
https://jamesfriend.com.au/projects/tryhypercard/
For Mac users, you can also easily run it on your local machine: https://jamesfriend.com.au/running-hypercard-stack-2014
Also, if you're taken by the HyperCard aesthetic, you be interested in this interactive artwork created in HyperCard (which I contributed technical assistance to): https://www.upprojects.com/projects/commissions/formality/
if the number of chars in field "Customer Code" is not 7 then
ask "Please type in the 7-letter customer code"
put it into field "Customer Code"
end if
This is a real language! 'ask' pops up a modal dialog. 'it' is a special identifier meaning "the last result", like Perl's context variables.But what is most lovely about this language is that it focused on users. As a user you could drag out a button, then double click and write some Hypertalk scripting. It was part of a vision where computing would empower amateurs to become desktop publishers or artists or programmers or...
The web captured that magic for a time, when it was about HTML with light JS. But the modern web has advanced beyond the amateur.
I think the hardest thing about AppleScript was the strict typing system. Dealing with files and paths was nigh-impossible. AppleScript also had the unenviable task of wrangling this typed data between different applications each with their own dictionary.
I love this idea. Combined with a language like Hypertalk, a new user could foreseeable just figure out the syntax without looking it up.
But they did with hypercard, right? I remember my sister showing me a hypercard presentation she did while she was in primary school.
I don't think COBOL is a good comparator. Although COBOL uses 'English' words, it has massively idiosyncratic programme structure (data division! [0]) and weird data structures (PICTURE clause! [1]), and it was these that made it hard to understand and maintain without a very steep learning curve.
Source: I had a language trajectory that went Pascal -> COBOL -> C -> Hypercard. I was stunned by how rapidly I could create impressive Hypercard applications, with quite sophisticated (for the time) UI and graphics. This was invaluable in the group I worked in, a research group in a large UK engineering company in the early '90s.
Another similar language is Inform 7, the text adventure authoring language, which came out in 2006, about 20 years after Hypercard.[1]
Below is a simple example program in the language. A more involved example can be found here: [2]
"Hello Deductible" by "I.F. Author"
The story headline is "An Interactive Example".
The Living Room is a room. "A comfortably furnished living room."
The Kitchen is north of the Living Room.
The Front Door is south of the Living Room.
The Front Door is a door. The Front Door is closed and locked.
The insurance salesman is a man in the Living Room. The description is "An insurance salesman in a tacky polyester suit. He seems eager to speak to you." Understand "man" as the insurance salesman.
A briefcase is carried by the insurance salesman. The description is "A slightly worn, black briefcase." Understand "case" as the briefcase.
The insurance paperwork is in the briefcase. The description is "Page after page of small legalese." Understand "papers" or "documents" or "forms" as the paperwork.
Instead of listening to the insurance salesman:
say "The salesman bores you with a discussion of life insurance policies. From his briefcase he pulls some paperwork which he hands to you.";
move the insurance paperwork to the player.
[1] - https://en.wikipedia.org/wiki/Inform_7There is a wider world where they prefer ".length" over some english sentence. Even the ".length" is difficult for them but it's still less grammar to learn.
For contrast, JaveScript's .length definitely does not count the number of characters, it returns the count of UTF-16 units, which for Emojis yields an incorrect result.
My point being that the conveniences we all enjoy with `.length` come with subtle gotchas that we overcome as devs but are perhaps not necessarily as user-friendly as a more long-winded approach.
HyperTalk was the second programming language I learned (after BASIC) and I had no trouble remembering the grammar. It probably helped that I didn’t have too many preconceptions to unlearn.
One big thing in HyperTalk’s favor that rarely gets mentioned is that it pretty-printed your code automatically. That was a massive help, and well ahead of its time.
I really like this though!
It's true, you can't just write English sentences and expect the computer to understand you—you have to learn the "formal syntax". But, once you've written that code, it comes out as English sentences, so you can read what your code is doing in English!
I love this. I've never used Hypercard (too young), but I do use Applescript, which was based on Hypertalk's syntax and which—sometimes, when Applescript isn't being crappy—has the same property.
If there are other modern languages that do this effectively and can be used for more than just macOS automation, I'd love to know about them...
(Personally, I do still happen to like Applescript, but it has a lot of problems.)
It is powerful, stable, and addresses many of the issues of using an English-like syntax. It comes with an IDE and two hyperlinked manuals, which contain hundreds of working code samples implementing everything from basic conversations to systems of weights and measures. Finally, as one of the pillars of the modern interactive fiction<1> development community, it is under active development by its creator, in the saddle for twenty-plus years now.
Here's a sample (syntax may be slightly wrong):
A person can be nervous or relaxed. A person is usually relaxed.
The Train Station is a room. Joe is a man in the Train Station. Joe is nervous. "Joe shifts from foot to foot, looking uncomfortable." The description of Joe is "[if Joe is nervous]He's shifting uncomfortably[else]He's standing tall and proud[end if]."
Understand "cheer" as something new. Cheering is an action related to one person.
Carry out cheering (x - a person): if x is nervous: now x is relaxed; otherwise, say "[X] doesn't need to be cheered up." instead.
Report cheering (x - a person): say "You clap [X] on the back. It works: [regarding X: his] mood lightens."<2>
That's all you need for rudimentary gameplay:
TRAIN STATION
Your buddy, Joe, shifts from foot to foot, looking uncomfortable.
> look at joe
He's shifting uncomfortably.
> cheer joe
You clap Joe on the back. It works: his mood lightens.
> examine joe
He's standing tall and proud.
<1>: the medium started by, but not limited to, text adventure games like ADVENT and Zork
<2>: [regarding X: his] is roughly the syntax used to change "his", "her", etc. into the appropriate gender for the variable X. Because games and experiences built with Inform have all-text contents and interfaces, Inform provides a large number of constructs to tame printed strings.
In syntax, the two languages are quite unalike, so I think the relative "easiness" will come down to whether or not the learner was already a programmer.
As for "better:" better at what? better for whom? and why?
.length, .size, .len, .count, then all those again but as functions taking an array argument, then again but as method calls, are not. And that’s not all the possibilities!
Seriously I bounce between languages enough that I have to look this shit up every time if autocomplete doesn’t help me out, and even that might take a couple tries.
It's a good thing that Intellisense is top notch !
I guess you could make IEnumerable's Count() into a property and enjoy the same syntax but I am not sure it's a good idea, because Count() needs to enumerate and is therefore O(n), and property syntax may coax you into writing with the expectation that it is O(1).
Then suddenly (it's been years since I did c#) I recall that Count() is added to the interface as an extension method with the "this" keyword. Is it possible to have an extension property? I do not think so but again it's been a while.
I wrote some industrial control apps using HyperCard. Unfortunately, it was at a time when the Mac OS was going through a dark period, and just wasn't stable enough to use in a factory. We ended up with Visual Basic instead, but I continued to use HyperCard at home.
If you still have copies of those industrial control HyperCard stacks, I'd love if you were to upload them[1] for the online collection[2] (provided, of course, that doing so doesn't violate any NDAs / etc...).
It's a similar problem to visual programming and AI based programming (GPT-3), where you're fundamentally describing a very implicit program. In some use-cases this is fine, but in many situations it can be difficult, unpredictable or even impossible to describe the program using implicit language.
You just have to remember longer commands, which while cute at first gets tiring quickly, even for novices
And it’s also easier to read if you’re not an expert on the language.
I think something like this has its place. I found it very empowering as an 8 year old kid.
Which is obvious. What's less obvious is that a good accessible scripting language for non-technical users renders plenty of inaccessible programming redundant. So in the bigger picture it's much less tiring than the alternative we have today, which locks users out of all but the most trivial and useless DIY web publishing.
Hypercard could easily have become the foundation for a different vision of the web. If it had, the current shitpile of competing frameworks, languages, levels of concern, and so on would have been hugely lessened.
If this crap had had to compete with anything else in the marketplace it would have never flown. It is so bug prone and user unfriendly that it is hard to describe. We will also likely never get rid of it.
Just a few samples:
As for CSS, if the goal was to create a pixel perfect way to lay out webpages it may have succeeded, but the whole idea of an information web where rendering was supposed to be the problem of the consumer went out the window.
CSS also got a huge bump for me when everyone started consistently supporting flexbox.
But hey - it's super easy to hate on web languages/markup/stylesheets while linking to JS quirks so here we are.
It competes every day.
The morass of terrible tooling is explained by the reason that so many other nice-to-have resolutions to common problems don't materialize: even though things suck, improving them is a problem for someone else to solve. Anyone who complains about the state of things (or doesn't) and then proceeds to do things the broken way is contributing to the problem.
The JS example is overstated. People who are slinging code around with a nary a care for what types the objects have deserve everything they get; if you end up in a situation where x can be either a string or a number or a list and you're somehow freely making comparisons between them, then the problem is on your end, and it's way further up the pipeline than where the equality comparison token appears.
FWIW, HyperTalk wouldn't have fared any better[1]:
> Data types usually did not need to be specified by the programmer; conversion happened transparently in the background between strings and numbers.
Note that this is not a defense of mainstream professional web development. I probably abhor it more than you do. But the problems need to be connected to their source and not misattributed to a popular punching bag just because it's easy to score points that way.
In some ways it directly inspired it. I believe that the pointing hand cursor made its first appearance in HyperCard.
The idea back then was that a computer existed to augment human intelligence, not to trap you in a dopamine loop Skinner box to maximize "engagement." In fact, the phrase "augmented human intelligence" was present in the actual name of the SRI research program that originally developed early GUIs, hypertext, and the mouse among other things.
GUIs are an area where I think computing has gone very significantly downhill.
Modern interfaces are superficially prettier than those old GUIs, but the majority of this superficial aesthetic improvement can be attributed not to UI improvement but to technological advancement. It's much easier to make things pretty when you have high-DPI 24-bit or 32-bit true color displays and absolutely massive (by old time standards) amounts of computer power and RAM to draw on them. The flat panel revolution also contributed a lot. Has anyone around here actually tried to use a CRT monitor recently? It's astounding that we ever used those things. Even a bad LCD is much better than the very best CRTs ever made.
If you ignore the superficial eye candy, many if not most modern GUIs are objectively worse on almost every metric.
They're inconsistent, disorganized, unintuitive, and often distracting. Sometimes distraction is the actual objective, such as with mobile apps trying to dominate your attention to "go viral" or anything touching social media. Every app invents its own UI metaphors and design, increasing cognitive load, and apps frequently change their UIs needlessly and force their users to re-learn everything. These last two things were explicit no-nos in old school guides to UI best practices. The goal was to decrease cognitive load and maximize productivity, not create an employment program for designers and coders.
The developer experience behind modern UIs is even worse than the user experience. Many of those old systems offered WYSIWYG GUI development environments that were a breeze to use and delivered fast maintainable low-bloat (you couldn't get away with bloat back then!) applications. Design your UI and then double-click on its elements and it would jump right to the code. Amazing!
We've ditched this in favor of the modern bloated web clusterfuck, XML-based eyesores like XAML, or manually coding UIs in programming languages element by element. The amount of work required to build a UI has multiplied, but the value delivered has stayed the same or actually decreased. Some of this would be forgivable if we got something for it, but we're still stuck in the paradigm of "code everything for every platform" vs "bloated ugly cross-platform GUI toolkits" (the latter includes Electron).
Other areas of programming have advanced, but GUIs are a neglected ghetto in spite of the fact that UIs are absolutely fundamental to the use of computers. It's hideous. If we'd kept the principles of thoughtful UI design while advancing the underlying technology we would have computers that are all a dream to both program and to use.
put it into field "Customer Code"
What is it bound to? This reminds me of anaphoric macros in Lisp.(If you don't know what that means, it's just a fancy name for automatically binding the variable "it" to some expression, which makes for lighter code in simple situations. Usually these are combined with some other operation like a boolean test, so they save you two lines of code instead of one. Some people hate them, but let's not go there.)
(as penance for the above: I was once told the Reed College student handbook contained a sentence saying the trouble with psychedelics is that one will be tempted to contemplate grand questions such as "what is love?" or "are there a finite or infinite number of gods?" when one is in a mental state completely unable to adequately address petty questions such as "what is toothpaste?" or "where is my left foot?")
Most people on HN will try to reduce these experiences and theory-craft over why/how, instead of giving in (and accepting the fact) that these things and experiences are something which have puzzled the human civilisation for ages, so instead just try it once and make your opinion then.
Now obviously some of the psychedelic purists will claim to do a higher dose to see the full potential, but I would recommend to do just a very very light dose, such that effects are noticeable but not overpowering at all.
My reasoning for a lower dose is that, our mind quickly starts craving the experiences of a higher dose (if the experience was good). Craving not in the sense of doing the psychedelics again, but craving in the sense that if-only-I-was-in-that-state-of-mind-all-my-problems-will-be-solved sense. Contrary, any bad experience(trip) can cause severe PTSD symptoms. If you see, both positive and bad trips have the same effect in some sense (just in opposite directions).
Now, with a lower dose, the chances of bad trip happening is quite lower. A bad trip happens when you feel you are losing control, chances of that happening on lower dose is very very small. From a purist perspective the lower dose does not "unlock" the full potential of the psychedelic. Of course, there is always set-and-setting which also effect what you feel and how you integrate the experience later on.
The effects of a lower dose are similar to just feeling "good" about yourself, like waking up after a good nights sleep and looking at a valley of colourful flowers without any sort of mental burden. You could be just looking at your room and feel the same way. The experience of lower doses, can also give you a window into how the affects of a good meditation session feels like.
This is not the entire picture, but I suppose I should just stop writing.
Also psychedelics for me rarely tried to make me push for a better future as discussed in the article. If anything, they thrust me directly into the present, 'the felt presence of direct experience' as McKenna called it.
Trips for me, were always like dreams, in that they are ultra vivid and lucid, and worthy of remembering, but quickly fade away like RAM when a computer turns off. Kudos to the author for bringing something back from the trip, something I could rarely do.
One insight I did have though is the importance of knowing the time[0], which is why I surround myself with several clocks, which are all synced together, and none of them would be fast or slow. That's the only insight I gained after 10+ powerful trips!
[0] Anecdotally I once had a situation entirely absent of clocks which freaked me out whilst tripping. My phone was absent, I didn't own a wristwatch. The TV had only international stations with different time-zones, and there was no-one nearby that I could ask for the time. Lesson learned.
An iOS shortcut can be executed when iPhone is touched to a piece of paper with an NFC tag, or a geofenced zone is entered. The script can manipulate apps in iOS, then SSH to a remote device, invoke Linux code or SaaS APIs, then pass that data back to iOS for local processing and presentation to the user.
The iOS Shortcut language editor is free on hundreds of millions of iPhones. Sadly, there is little support for backup, restore, sharing, discovery, versioning or auditing.
As it turns out, I’m weird, and very few people made that jump to XCMDs and soon I had a full time job writing them. Eventually our products were so XCMD heavy that I started writing Mac apps from scratch in C. It was a nice gradual seduction into programming from the career I was originally trained for.
If they're still on old media (floppy disks, SCSI hard drives, etc...) contact me[3] and I'll do by best to help get them transferred.
[1] http://hypercardonline.tk/
[2] https://archive.org/details/hypercardstacks
[3] HyperCardOnline@gmail.com
> It occurred to me the weak link for the Blue Marble team is wisdom. Humanity has achieved sufficient technological power to change the course of life and the entire global ecosystem, but we seem to lack the perspective to choose wisely between alternative futures.
Are we any wiser today?If you're looking for an objective (in my opinion) perspective on LSD and other psychedelics, consider getting a copy of How to Change Your Mind by Michael Pollan. Definitely a good read.
I now someone may polarize what I said with some whataboutims, but I think it's good to focus on the positive once in a while.
It's a little hard to explain what's so great about it. What I remember is that it was my first real exposure to scripting vs systems programming. So for example, I played with the little MIDI-style music generator forever. It blew me away that such simple notation controlled the complexity of the music chip. I sort of knew that somehow computers used binary and converted bytes to the shape of sine waves and stuff, because I was also using an old program called SoundEdit to kind of draw sound using commands like "envelope" and "FM synthesis" if I remember correctly. But being able to command that complexity from a conversational or human standpoint really blew me away.
And everything in HyperCard was like that. You could dial the modem, speak text, make your own calculator or rolodex, just on and on and on, in probably the smallest amount of code that I've ever encountered. And my parents could even read the code, without ever learning how to program!
So what that ended up creating was a feeling that the computer was full of easter eggs. For example, I didn't have access to array functionality (or more accurately, wouldn't have known how to use such a construct). I needed it to store the piece locations for the walls in a Gauntlet-style game I was making. So I ended up storing the coordinates like (100,200) as lines in a text field, and then seeing if that text "contains" the coordinate I was trying to move onto. But see, the text search functionality even on an 8 MHz Mac Plus is so fast as to be effectively infinite from a human frame of reference. So even though I was full-text searching these text fields, the game ran in real time and was a lot of fun. I still use this technique today in languages like PHP, where I know that the language is slow, but I can call down to any system call or compiled C function, and it will generally be faster than I need it to be.
The only downside is that it opened my eyes to how tech could serve humanity, only to see that vision inverted so that we ended up at the present day where humanity serves tech. I know that the direction that tech is going is wrong, but I have trouble articulating how or why. And it kind of haunts me that something as revolutionary as HyperCard could be written in the 80s in Pascal, such a primitive language by today's standards, but we keep missing the mark with all of our modern tools.
What's the next tool like HyperCard that could free humanity from this tedious labor? I just don't know, and that bothers me. I think loosely that it will work like J.A.R.V.I.S. on Ironman, but I know that all of the current approaches like Alexa and Siri are coming at it from the wrong direction. They're trying to find use cases for consumers from a profit motive perspective. But digital assistants need to work more like wolframalpha.com, and give users access to all of the capabilities in their computer (only in a notation that isn't terrible, no offense to Wolfram Alpha). I do know that some of the prerequisites are blocked by corporations though, like we should have had a cross-platform scripting language like HTML/Javacript long before the arrival of the internet. Apple and Microsoft would never allow that though, obviously. It should have been more of a hybrid between AppleScript and VBScript, only not terrible. Even AppleScript is a profoundly worse language than HyperTalk, and I don't know why. These deep questions get glossed over by everyone, and I hear quips and solutions for this or that. But remarkably, everyone is wrong, or else we'd be using that next better thing.
It's Sir Roger Penrose & Dr. Stuart Hameroff talking about the physics of consciousness - for the first time I think a truly compelling idea of what consciousness is in a scientific way that could potentially be empirically measured. They mention the use of psychedelics to create more "conscious moments" - and funnily enough in this piece, Bill Atkinson talks about pockets of consciousness.
I wonder if there is really an argument to say that A) We have conscious beings on Earth due to some kind of quantum effect in our space (that is we really are just the bi-product of the quantum process in our universe) and B) Psychedelics can make humans more in-tune to quantum effects that give rise to consciousness - but as to your point I agree you don't need them for brilliant ideas.
I think hallucinogens might "turn the dial" on our quantum consciousness and "tune you in" to different parts of the signal, possibly meaning they can "entangle" the quantum structures in our minds with persistent information structures present somewhere. Maybe they do this randomly, or perhaps each drug is "frequency locked" to some particular part of the "spectrum" (not that I think it's anything so simple as a spectrum defined by a couple of parameters like 'virbation frequency' or whatever, but...), because there are often the same qualia reported for some chemicals independent of the person or setting (like DMT, apparently everybody on that saw an entity once).
Maybe the way chems affect us like this, is the same with getting into altered states without drugs. Or, to take a line from the matrix, "disrupt your input/output carrier signal" (as the red pill did).
I'd be interested in a quantum theory where this statement made sense, to be sure.
Penrose's ideas about quantum consciousness are widely challenged and not the mainstream, and his basing it on the Incompleteness Theorems is especially problematic, as those only even make sense in the context of certain kinds of formal systems. The later Orch-OR theory has been falsified, in fact:
particularly 2nd one. seems very interesting. really appreciate! :P;) xx fascinating both :p ;)xxx
Consider the lifecycle of a butterfly: learn how to navigate as larvae/caterpillar, learn how to identify appropriate food, flee danger, find a place to build a cocoon, perform a metamorphosis, learn to fly, instinctively navigate across a continent - all with one million neurons. All on a trickle of electricity.
Meanwhile, a self-driving car with laser arrays, cameras, GPS, and a quarter rack of computer equipment can't reliably move when the options are forward, reverse, turn left, turn right.
Focusing the puny brainpower of something like a ringworm at a specific problem may result in some basic (as compared to a human brain) learning ability, navigation, and pattern matching, but there's a reason the "real" breakthrough is always just around the corner. No one in AI or neurology wants to admit that the traditional model of neurons and synapses could simply be wrong.
[1] https://en.wikipedia.org/wiki/Orchestrated_objective_reducti... [2] https://www.molbiolcell.org/doi/full/10.1091/mbc.e16-05-0271
So while Hypercard was initially "invented" under the influence, if they would have kept being on LSD while developing at as, it would have been a mess.
I recall one afternoon I took mushrooms, when I was perhaps 15 years old. Not a huge quantity, but enough for a mild, pleasant experience.
That same evening I realised that I had to write an essay for school - it wasn't like me, but I'd completely forgotten about it, and now had a single evening to write a whole essay... bah, how could I possibly do that?!
I sat down, and... it just flowed. Words, sentences, paragraphs, ideas, characters, just sprang to life on the page - and it was good, really good! My mind felt amazing - like my consciousness had been expanded. I'd never felt such pure imagination and joy of knowledge before.
By the end of the evening I had unquestionably the best essay I'd ever written, and about twice the target length.
A week or so later when I got the results, it was a B, and I was kind of shocked. But the teacher called me back after class - he told me what I submitted was way better than A+ work, more what would be expected at university level. He also asked who wrote it, because "it obviously wasn't you" - he didn't believe my insistence that I'd written it. He couldn't prove anything, so gave it a B and strongly warned me not to "pull a stunt like this ever again".
Of course, people can have great ideas and do great work without hallucinogenic drugs - that should really go without saying. But the results with such drugs can be utterly incredible - Also keep in mind the effect is not only while using the drug, but afterwards too.
Just some weeks later, I took mushrooms again - but this time we took way, way more. Hundreds of them.
Shortly after the effects started coming on, I had a stupid argument with my friend and I was left alone for a while feeling bad. It all went down hill from there. I was disorientated and confused, lost all depth perception, and was seeing small monsters all over the place - I'd turn round and see one huddled in a corner, staring at me like it was planning an attack, then it was gone and I'd see another elsewhere. I was absolutely terrified; the whole experience was like the "essence" of terror.
I seem to recall that in total the effects lasted for something like 12 hours. For the last few I was huddled up on a bed, shaking uncontrollably, thinking it would never end.
Right at the end, another friend sat with me and talked about something terrible that had happened to her, getting it of her chest, perhaps thinking I wouldn't remember afterwards. I actually became quite lucid then, and felt such empathy and human understanding that I haven't felt before (some people think I'm autistic, so in retrospect it was particularly meaningful!).
Anyway, that was the last time I ever took mushrooms, or any hallucinogen. Parts of the experience seem imprinted in my mind forever, and 20+ years on I'd still be really wary of taking hallucinogens again.
I think hallucinogens can be extremely powerful, but must be used with care, and in the proper setting. I learned that the hard way.