Category: Personal

  • Mushrooms

    [Pulled from journal archives . Perhaps it could be useful to someone, but on rereading sounds a blt trite in certain areas.]

    There’s nothing that can prepare you for the experience. No amount of reading of another person’s account—even this one—that will help you understand what you might go through.

    I was a fool, thinking that I could attempt my first experience having just read about it, and without a guide who had done it before, and for thinking I could handle the larger amount. I don’t know how someone could just go to the mountains and ingest the mushroom without support. After my experience that seems somewhat suicidal.

    I took too much. I experienced astoundingly beautiful images and had insights on things that were important to me. I also thought I had overdosed and could really have died—my heart stopping, really just an extension of the slight facial muscle paralysis or weakening on my left side. I rolled around on the floor with nausea and almost-shock from lack of food from probably foolishly attempting it in the morning after a long fast. Perceptions altered, short term memory somewhat unable to function as it normally does to weave moment to moment into a more coherent story. The in-between wake and dream state extended into an hour or more. I was desperate at times to want it to stop. I wanted to know if the drug had peaked so I could convince myself that my heart wasn’t going to stop, that I didn’t overdose.

    Downstairs in the darkened room with the meditation music going, I had clearly started on the pleasant journey after close to two hours after the first mushroom stalk and head. Absolutely exquisitely beautiful images in my mind morphing as the music played. Millions of points of prismatic pins of light shaping the outlines of castles and plants,
    iridescing into brilliantly lit other-colors. Simply no words can describe what was in my head, my mind. I didn’t know where those images came from—the music was an important part, guiding in some sense the transformation from moment to moment. When the sounds subsided between “songs” I ached for the music to come back to guide the images some more.

    For most of my pleasant side of my journey I was also grounded by the physical body. I felt weak and hungry and slightly nauseous while experiencing the grand images of my mind. The awareness of the physical and the non-physical was certainly a theme in the overall experience—I was at times intensely aware of my mortality yet was off in an intensely non-physical experience.

    Around three hours after first ingesting I went upstairs—I was feeling quite sick and needed something, food, water, sugar, anything to help me feel better. That was the beginning of when I started to seriously wonder if I had taken too much and was in real danger of dying. I felt stupid for having put me—no, Helen, really—in that position. I wasn’t okay with dying and wasn’t okay with having her have to be the the one to call 911 or to tell anyone what had happened.

    I can’t recall the sequence of where I was when what happened—I know I was on the couch with Helen talking with me and I was feeling less scared about dying. It was clear that I still had paralysis/slowness from the mushroom, but I felt at some point that I was past the critical am-I-going-to-die point and so Helen and I went back downstairs to the music and the glorious glorious mind images.

    “Break me down” is what said out loud and to myself when I first started experiencing the effects. I was doing this “trip” for a purpose, dammit. I asked that my subconscious give me insights on my (conscious) fear of death, and on relationships. I wanted to break myself down, to get rid of the “ego” that incessantly talks (and listens). Later on, toward the end after I knew the effects were fading and I’d live, I also asked to be healed. I breathed “break me down” and “heal me”, with tears slowly streaming down each cheekbone.

    Somewhere in the middle of the experience my insight was “life is precious”. I don’t remember why that came up, only that it was important, very important. I now take that to mean my life and the lives of others, and that by important I, or whatever it was that was talking and listening, mean that experiencing life is important, that the physical body is important (keep it healthy). Life is a gift, although that word wasn’t used in the message at that point in the experience. There was no morality attached to things, which to me in this moment could be interpreted as “do what you want” selfishness, simply a message that life is precious.

    After most effects had faded and I was trying to come to grips with my original question about fear of death, I realized that “life is precious” is the answer to my fear of death. Possibly. I’m still trying to make sense of it all.

    It’s been several hours since I knew the effects were mostly gone. I couldn’t conjure up those beautiful images in my mind if I tried now. My left hand isn’t typing well—it seems like the left-side semi-paralysis dropped from my face to my hands. I trust that will pass in time. I’m trying to sort things out still. I know that it felt like both an important spiritual experience and a letdown as I didn’t have new profound insights. It’s clearly too early to know of long term effects on my outlook and behavior, but right now I’m feeling like it’s easier for me to help people in their own journeys.

  • Fun with recursion–or how to solve a maze

    When I was really young, maybe ten years old, I loved mazes, both solving them and creating them. That was decades ago, prior to personal computers (I’m dating myself with that disclosure) and so the only mazes we could really solve were in small books my friend and I bought (or could get a parent to buy). The mazes in those books were often done in shapes of dinosaurs or dragons or what have you, and the mazes were (sometimes) made more difficult because of those shapes. We learned to draw mazes, in both the original between the lines and in the style of on the lines. Depending on details such as curves, hatch marks, and size, these mazes we made were easy or hard.

    When I got my first “personal computer” (a TRS-80 Model I, with 16K of RAM with a display that showed 16 rows of 64 columns of uppercase-only text, with the ability to switch into graphics mode that allowed 48 rows of 128 columns of blocky pixels), I (somehow) found a BASIC program that I typed in that would create and solve mazes; at least I’m pretty sure I didn’t create the algorithms by myself, but it’s been so long ago (45 years) that maybe I actually did create it myself. If so, I apologize to my smarter younger self.

    Then, for decades I forgot about all that until we purchased the game quoridor at a local bookstore , where the goal of the game is to get a pawn from your side to the opposite side where the path to the other side can be (will be) blocked by walls that you and your opponent put up between the squares. After playing it I thought about writing a program that would play it better than humans could (even though the branching factor on each move is well over 100–more than chess has, if I recall correctly).

    One of the rules of the game–which is what prompted my recall of all the maze-making and -solving days in my past–is that no placement of a wall can totally block a player from reaching the other side. This translates to making sure that there’s some path from the current position to the finish, which is essentially the same as solving a maze.

    There are significant differences between a well-crafted maze (i.e., a single non-trivial path from start to finish) and the path problem presented by quoridor rules (i.e., sparse wall placement, allowing many paths from start to finish), but the general problem is the same.

    So I started a quick prototype of a computer game and got sidetracked on the movement rule that disallows a complete block to the finish, and after a false start on a generalized maze-solving algorithm, I got a simple algorithm fully working, and it’s this algorithm that I’m covering in this post, mostly because it brings back a lot of good memories of just working through a completely abstract problem.

    What is a maze?

    From a conceptual perspective (with a big, big, lean toward computer science concepts), a maze is just a tree with the start position as the root of the tree and some leaf node (or nodes) being the finish. This is packed into a visual 2D form that is intended to make it difficult to see the path from root to leaf. (Note: if the maze is not a tree, then there is at least one node that has two distinct paths to it, which can make it easier to solve the maze.)

    So in essence solving a maze is equivalent to walking a tree structure, and the algorithm presented here does indeed traverse a tree structure in a typical recursive fashion.

    What is recursion?

    I’m not sure who will end up reading this post, so I don’t know what to expect in terms of knowledge of computers and programming, so I’ll cover the concept of recursion very briefly.

    To recurse is for some operation to refer back to itself only with simpler information. The prototypical mathematical function that’s defined in terms of recursion is the fibonacci number:

    fib(n) = fib(n-1) + fib(n-2)   ; for n > 1
    fib(0) = 1
    fib(1) = 1

    In some sense recursion breaks down a problem into a simpler one until the problem size gets to an easily solved (or defined) case.

    Tree walking

    If the goal of solving a maze is equivalent to finding a path from the root of a tree to a specific leaf node(s), then we just need to walk the tree keeping track of just how we got from root to leaf. There are two general ways of tree walking: breadth-first and depth-first. The basic difference between the two is that depth-first walking usually uses recursion and a parallel stack to keep track of the (current) path while breadth-first uses a queue to visit all the tree nodes.

    As this post is implying that recursion is fun, it should be clear that for this problem that recursion was chosen as the way to solve a maze.

    Problem details

    For our purposes, let’s say the maze is on a square grid of size n, meaning that there are n^2 “cells”. Let’s further say that it’s possible–subject to wall placement–to move only in one of four directions from a given cell: up, left, down, right. Walls between adjacent cells disallow a move between the cells, and a move from one side of the grid directly to the opposite side (via “wrapping around”) is never allowed.

    Additionally, let’s say the start position is given as start and can be any cell on the edge, and finish is also any cell on the edge (things get more interesting if a few things are relaxed: if start and finish are not on the edges and the maze is not a tree, then I believe it might not be always solvable as the algorithm could end up going in circles).

    Finally, let’s say that the maze maker did the proper job and the maze is actually solvable, meaning that there really is a path from the root of the tree to the finish leaf–if that’s not the case then there wouldn’t be a single tree that represents the problem.

    With the above, we’re now ready to jump into the recursive algorithm…

    Recursive solution

    As mentioned above, the idea of recursion is to break the problem down to a smaller problem and the apply the same algorithm to the smaller problem. In our case, the “smaller problem” is looking for a path that’s one move shorter than where we currently are in the maze–basically we’ll see if we can take a step in the right direction and then try to solve the maze from that just-stepped-into position in the maze.

    Let’s assume (with good reason) that the current position (cell) in the maze that we’re currently at is a valid position, meaning very specifically that there’s a path from the start position to the current position. This is trivially true if we start at the start position–there’s a path (of zero steps) from the start to there. From that point on, if we only take valid steps then there will still be a path from the start to the current position. So we just have to define what a valid move is, which is pretty easy: a valid move is one that meets the following conditions:

    • it doesn’t go outside the grid
    • it doesn’t go through a wall
    • it doesn’t go into a cell that’s already been visited

    The final point is to check if we’ve actually solved the maze–that we’ve reached the finish. This is equivalent to defining what fib(0) and fib(1) are above. So, if our current cell is the finish, then we’re done–we’ve found a path from start to finish.

    With that in mind, the basic algorithm in sort-of-code for solve() is

    solve(position)
      IF at-finish(position)
        RETURN true
    
      visited[position] = true
    
      IF ((can-move(position, UP) AND solve(move(position, UP)) OR
          (can-move(position, RIGHT) AND solve(move(position, RIGHT)) OR
          (can-move(position, DOWN AND solve(move(position, DOWN)) OR
          (can-move(position, LEFT AND solve(move(position, LEFT)))
        success = true
    
      visited[position] = false
      
      RETURN success   

    The core algorithm really is that simple–and it doesn’t matter what order the UP, RIGHT, DOWN, LEFT are done in, as long as all four directions are tried. I’ve left out the definition of “can-move” but it really just tests the three conditions above.

    Getting the path

    While it’s true that the algorithm to find a path from start to finish is as simple as what’s shown above, the path from start to finish is held only in the recursion info of which particular line of code above that’s doing the can-move(position, direction) AND solve(move(position, direction))— each correct step (can-move line) is encoded by which one of the four lines was chosen.

    In order to be able to extract the path in a more convenient form, it’s necessary to use a stack, where a position is pushed to the top of the stack when it’s visited, and then removed from the top when we’re done visiting it. On success at finding the finish, we just don’t remove anything from the stack, and then the path is the whole set of cells from the stack.

    Finally, some code…

    Here’s some (verbose) Java code that puts all the above together (and that is a bit more generalized in that it can find all solutions):

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Stack;
    
    public class Visitor
    {
        private int[][] visited;
        private int     size;
        private Grid    grid;
    
        /**
         * Non-static class so it has access to visited grid
         */
        private class VisitContext
        {
            private List<List<Cell>> solutions = new ArrayList<>();
            private Stack<Cell>      path      = new Stack<>();
            private int              depth;
            private int              maxDepth;
            private Cell             finish;
            private boolean          stopAtFirst;
    
            VisitContext(boolean stopAtFirst)
            {
                this.stopAtFirst = stopAtFirst;
            }
    
            void enter(Cell pos)
            {
                path.push(pos);
                depth++;
                maxDepth = Math.max(depth, maxDepth);
                visited[pos.getCol()][pos.getRow()]++;
            }
    
            void exit(Cell pos, boolean solved)
            {
                visited[pos.getCol()][pos.getRow()]--;
                if (!solved)
                    pos = path.pop();
                depth--;
            }
    
            boolean addSolution()
            {
                solutions.add(new ArrayList<Cell>(path));
    
                return stopAtFirst;
            }
    
            boolean finished(Cell pos)
            {
                return ((pos.getCol() == finish.getCol()) &&
                        (pos.getRow() == finish.getRow()));
            }
    
            Stack<Cell> getPath()
            {
                return path;
            }
    
            int getMaxDepth()
            {
                return maxDepth;
            }
        }
    
        /**
         * Grid is what has the walls defined to make the maze
         */
        public Visitor(Grid grid)
        {
            this.grid = grid;
    
            size    = grid.getSize();
            visited = new int[size][size];
        }
    
        /**
         * Find a path(s) from start to finish, returning true if a path was found
         */
        public boolean findFinish(Cell start, Cell finish)
        {
            VisitContext context = new VisitContext(true);
            boolean      solved;
    
            context.finish = finish;
    
            solved = solve(start, DirVec.RIGHT, context);
    
            if (!solved)
            {
                System.out.println("No solution found");
            }
            else
            {
                for (List<Cell> soln : context.solutions)
                    System.out.println("solution: " + soln);
    
                grid.setPath(context.solutions.get(0));
            }
    
            return solved;
        }
    
        /**
         * The recursive algorithm
         */
        private boolean solve(Cell pos, DirVec dir, VisitContext ctx)
        {
            boolean solved = false;
    
            if (ctx.finished(pos))
                return ctx.addSolution();
    
            ctx.enter(pos);
    
            if (canMove(pos, dir) && solve(dir.apply(pos), dir, ctx))
                solved = true;
            else if (canMove(pos, (dir = dir.rotateLeft())) &&
                     solve(dir.apply(pos), dir, ctx))
                solved = true;
            else if (canMove(pos, (dir = dir.rotateLeft())) &&
                     solve(dir.apply(pos), dir, ctx))
                solved = true;
            else if (canMove(pos, (dir = dir.rotateLeft())) &&
                     solve(dir.apply(pos), dir, ctx))
                solved = true;
    
            ctx.exit(pos, solved);
    
            return solved;
        }
    
        private boolean canMove(Cell pos, DirVec dir)
        {
            return (grid.canMove(pos.getCol(), pos.getRow(), dir.asBits()) && notVisited(dir.apply(pos)));
        }
    
        private boolean notVisited(Cell pos)
        {
            return visited[pos.getCol()][pos.getRow()] == 0;
        }
    
    }
    

  • January 2019 – Scott’s horrible, no good day–aka mushrooms #2

    January 20, 10:07pm

    I thought I had mushrooms all figured out—I would eat breakfast and wait for 5 hours and make a tea from the 3.5g, thinking that a fuller digestive system and no actual mushroom tidbits would lessen the nausea. So I ate breakfast at 8am, waited until 12:30 to prepare tea by crushing it all and putting the powder in a tea bag and brewing it on a slow boil for five minutes with a little bit of lemon juice would work. I drank probably a bit over half at 1pm, thinking that I would drink the rest at 1:20 or 1:30. I was downstairs in the darkened family room, fireplace was going and meditation music was playing. By 1:30 it was clear that it would best that I not take any more. By that time my muscles were starting to tense and shake and I could feel that this wasn’t going to be like the first time with a very pleasant beginning.

    I started by wanting to know more about my missing experiences in life, and wanted a non-dual experience. Instead I realized through the nausea and shaking that mind and body are not separable in any possible way, at least for me. I kept asking “why am I so different” meaning both with my reaction to mushrooms and why in general in the world—the lack of experiences, my fucking food intolerances, my body sensitivity, and all that. The music I picked this time was different—not the Native American flute as it was the first time but a more modern set that brought different images to my mind. More science fiction-y and fewer in general. I was aware of human faces or humans in my images but no interaction with any entity (again).

    it was harder this time. and Helen wasn’t here. I went upstairs earlier than the first time and tried to eat a little, drink a little, anything to help relieve the nausea. I lay down by the french doors again and opened them to get the cold air on me, to make me shiver and quake, hoping that would help me. I was deep in the distortion and disassociation phase with no signs of letup on it. I alternated between going downstairs and lying down on the carpet, hands wide, thinking of the crucifixion, closing my eyes and letting images and sickness take me, and then going back upstairs to try to feel better.

    The ends of the tree branches were animated and morphing; later they looked like they were enveloped in a cottony fog—my brain was pulling down the effect of the clouds to the trees. Dreamlike state as I walked through the house, going to the bathroom.

    At one point the only thing I could do to keep myself going was to set a goal of going downstairs and turning off the fireplace. Then my next goal was to call Helen. She wasn’t able to talk long as she was in the car driving with Karen and their cousin Michael. Then I had a goal of telling S.—anyone, really—what the details were of the tea and the lemon juice and how much I had taken. S. offered to come up and I said yes. I was still on the floor by the back doors when he came in 15 minutes later. it was almost 5pm at that time—about 3.5 hours of mostly constant nausea and it wasn’t going away. I wanted to black out but I realized that the mushrooms just amplify whatever my mind was feeling and I knew that if I blacked out, if I let go, that i’d just experience the sick feeling even more, so I tried hard, so hard, to keep awake and to distract myself.

    S. called a friend who said that alcohol stops a mushroom trip so I had some amaretto liqueur; I don’t know if it really does stop it as later searches strongly implied that people mixed them to good effect, but within 20-30 minutes I was feeling enough better to eat a bit more, which helped me feel even better.

    By 6pm I was still experiencing some disassociation with space still being wrong but I was mostly over it. By 7pm I was just hungry and tired and feeling off but nothing like what I felt before.

    Lessons learned: NEVER EVER do this again—my body is very sensitive to it in a negative way (2g tea not after fasting lasted 4+ hours, almost all of that time I felt quite sick), that body and mind can’t be separated, that music became reality (at the first of the trip) which made me think that generally what we focus on becomes reality for us.

    January 21, 2019 7:50am

    My sense of full reality hasn’t yet fully returned—dimensions are still off and I’m still a bit disassociated from things. Things are both familiar and not familiar. It could be from the ½ a pill I took last night to help me sleep.

    I don’t mind this mild state too much—and I can see that feeling non-nauseous while experiencing this could be interesting but I expected it to be all over by this morning.

  • Sweat lodge – January 2019

    Saturday night Sterling texted me at 6:30pm to see if I wanted to go to a sweat lodge. I was about to ignore and/or say ‘no’ to him when I thought that I should continue this “yes man” approach to life and so I went with him.

    What to say about the experience? We stood outside in our swim suits, with towels around our top to keep somewhat warm in the 40 degree night; my bare feet were in the wet lawn/dirt/mud while we waited for the ceremony to start. Women went in first—first timers first—followed by men, first timers last. I was close to the end of the line of people. We stood around the large fire that heated the stones and I tried to keep my feet from going totally numb from standing in the cold mud by holding one foot up to the fire, then the other. By the time I got inside the lodge, they were both partially numb.

    I had forgotten about the “smudge pot” before entering. Wafting cedar smoke over myself, kneeling to the east, rotating clockwise, then crawling on hands and knees into the dark and low lodge. I was positioned in a sort of middle row—in front of Sterling but behind an experienced man who was at the edge of the pit where the hot stones would be put.

    Jerry, the shaman, spoke about the purpose of the lodge, the ancestors, the spirits. I don’t recall details as I don’t find that I believe much in that. I do feel the specialness of life, and the reverence shown by Jerry and others there for the sacred is something that I find some comfort in. There was a Native American woman there and Jerry asked her to talk and sing. She sang and chanted in her native language—Shoshone? I find it oddly nice to not know the words so I pay attention to the sounds.

    Inside the lodge were hanging strings of flowers or branches of some sort of plant with roundish leaves. I had taken my glasses off—no need for them in the dark and they’d fog over anyway—so I couldn’t really make out just what they were. But I liked the image of all these branches and leaves and flowers hanging down.

    They brought in ten stones from the fire pit and placed them in the central hole dug out for them. Glowing red orange from the inside. Jerry sprinkled dried ground up plants—maybe sage—onto the hot stones and pinpricks of orange lit up the surface as they were immediately burned. We could smell the smoke, though I don’t know what the plants were from the smell.

    Jerry splashed water onto the hot rocks—the tarp door was still open so it was still relatively cool even though there was steam immediately produced.

    Finally the door was closed and all was dark. After more words Jerry poured more water onto the rocks and the sweat part of the lodge began.

    This ceremony consisted of four “rounds”–one for each compass direction—and each round consisted of four songs. The first round was for the east and the prayer we offered prior to the third song was for ourselves. I wasn’t moved to pray—at least not out loud and certainly not specific wishes for myself—but many were. There was a Muslim man behind and to my left who spoke in Arabic–loud and long, long after Jerry started the third song in that first round. It made for an unusual experience: complete darkness, oppressive heat and steam, a general background murmur of prayers from the group, and a loud prayer in a different language. After what felt like too long of a time, the first round was done and the lodge door was opened and the cool night air came in to refresh us.

    I had forgotten how oppressive and strong the heat and moisture are in a lodge. I recalled the single session of “hot yoga” I had take a number of years ago and how hard that was and how I had at that time tried to keep close to the ground and still to minimize the heat transfer to myself. I never went back to that yoga but here I was in lodge, having made it only through one of the four rounds, wondering if I was going to be able to make it through all.

    When the steam first hits, droplets of water form quickly on your body and you don’t know what’s sweat from your skin and what’s from the water that was poured on the hot stones. You’re quickly drenched from top to bottom. I wiped droplets from my face and my body, foolishly hoping that doing so would provide some cooling and comfort. Trying to chant or sing along with the songs was the only thing that made it somewhat tolerable. I felt my heart beat faster as my body reacted to the heat and I wondered at what point it would be too much and I’d ask to be let out.

    The details of the rounds blend together. The south was for praying for our loved ones; the west to pray for our enemies. In each round I wondered how I would get through to the next. I counted songs, taking solace in the fact that this was the third song and there was just one more before the door was opened and I would be able to be cool. I’d recall meditation and feel my heartbeat and take a deeper breath and know that I’d made it through worse and that I’d be alright. I found coolness in the damp dirt I was sitting on so I moved so my leg was on it as much as possible. I recall early in the third round a new wonderful smell—Jerry must have put some new herb or plant on the rocks. Lavender maybe.

    I made it through all rounds, surprising myself somewhat. After the door was opened for the last time Jerry finished the ceremony by passing around the pipe of tobacco—always stem first to the next person. The tobacco smell in the lodge was pleasant—even the smoke from it was different from what I associate with tobacco. I chose not to take puffs of it when it came to me, but instead said “to all my relations” as Jerry instructed us to say if we chose that route.

    Finally we crawled out—clockwise—and “smudged” ourselves again and we were done.