Your leaking thatched hut during the restoration of a pre-Enlightenment state.


Hello, my name is Judas Gutenberg and this is my blaag (pronounced as you would the vomit noise "hyroop-bleuach").


decay & ruin
Biosphere II
dead malls
Irving housing

got that wrong

appropriate tech
Arduino μcontrollers
Backwoods Home
Fractal antenna

fun social media stuff

(nobody does!)

Like my brownhouse:
   emo crow
Sunday, August 19 2018
The day was cooler, perhaps even slightly unseasonably cold for late-mid August. I awoke late with a little checklist in my head. All but one of the items in that list concerned the Symfony-React project I'd been busting my ass on for the past few days. A couple of items were regarded minor styling changes (to make things look more contemporary). But the biggest item was hosting the app. I'd put the code on GitHub, but somehow it hadn't occurred to me that I needed to host it somewhere so someone could test it without having to go through the bother of installing it. In the past, when webapps were simpler, installing them and getting them running was simply a matter of FTPing files to a server and giving the URL of the new home. With sites using databases, there was also the hassle of setting that up, but it's all straightforward stuff. With the thing I'd built, though, there were many more moving parts to deal with. Not only was there a backend and a database, but that whole section was essentially a different website than the frontend. It produced only JSON, true, but the Symfony framework likes to claim a whole webroot as its own. And then it enforces rules within it that make a React App difficult to host.
I couldn't use the shared hosting for something so complicated; I needed root access and complete control of Apache. I also needed to be able to upgrade PHP to at least version 7.1, since modern versions of Symfony require the latest and greatest of everything. I might've tried hosting it on the same server that hosts that keywording app, but there was a strong chance I would break other sites by doing the things I would need to do. I needed a host that not only offered me complete control, but also one that nothing critical on it. So I ended up using my virtual host, which these days I only use for one thing: Bittorrent downloading. (I can't do that on personal devices that access the internet via Verizon, as they've warned me so many times about copyright claims that if I do it one more time, there's a chance we will lose access.)
Initially I had trouble getting apt-get to install a PHP 7, but when I did research on the server's particular operating system (Debian 8), I was able to get that working. Then I could install composer, a command-line tool necessary for managing packages and Symfony components. Mind you, this all strikes me as far more complicated than it needs to be, but Symfony is such a mystery inside (for example, API routes are specified in the comments preceding a controller method) that I didn't want to jinx anything. Once composer was working, I went through the arduous task of creating a skeleton Symfony app and then copying over the controllers, entities, and configurations I'd already developed on my local machine. Then I tried to view the JSON that the backend is supposed to produce. Inevitably, I'd see an error and have to install another Symfony component. There were over a dozen that were required, probably because I was building onto a very skimpy project skeleton. Composer installs components much more slowly than other command-line tools I've used, so there was considerable downtime in the process. By now I'd watched all the To Catch A Predator content that is watchable on YouTube and I was left with watching the Eight Bit Guy unbox random tech donations sent in by viewers.
Eventually things turned hard when Symfony complained about needing the DOM extension, and there was no component for this issue. What it was actually needing was something in the PHP layer, and from all indications it should've been there. I don't know how long I fought things until I restarted the web server, and once I did that, Symfony mercifully moved on to complaining about other things.
My next big hurdle was getting Symfony to catch the 404 errors and translate them into routes to such endpoints as api/user/1. This took another appalling long amount of time to figure out, partly because I was deceived by a "mod_rewrite tester" that claimed mod_rewrite was working. It was not. Once I got it working, the routes also started working, and for the first time ever I got Symfony working on Apache (on my localhost I'd been using Symfony's built-in web server, not Apache). I've never been so happy to see a screen full of JSON!
In the midst of all that, I'd managed to get the backend running on a subdomain and I'd also gotten the React frontend working in a subdirectory (outside of the backend's webroot. Linking the two together caused CORS (cross-origin resource sharing) issues, though I managed to solve that later tonight by adding a line to the backend's .htaccess file.
By the time I had both the backend and frontend working, it was about 6:00pm, and I'd been working on this stuff since around 10:00am. I was so weary of sitting in front of a computer that I decided to go hunting for mushrooms. I'd gotten a taste (literally) of this unusually bountiful mushroom season earlier today when I'd chopped up some chanterelles and put them in a can of Trader Joe's chili. Knowing the mosquitoes would be bad, I sprayed myself with repellant, something I almost never use (because I do not like that chemical smell on me). Then Ramona and I set off for where I knew there should be lots of chanterelles: the place I call "the Valley of the Beasts" (41.919454, -74.103536). On the walk there, there were plenty of mushrooms to be seen. There were whole walls of coral mushrooms in places, and I also saw a great many of the red-capped russulas and also the occasional amanita. In the Valley of the Beasts (which I might start calling "The Valley of the Chanterelles"), I found multiple patches of chantarelles, and gathered all I could find, resulting in a hefty bag. I have enough experience with chanterelles now to anticipate them when the habitat is suitable. Typically it will be on flat land in a hardwood forest near (but not surrounded by) water.

In addition to chanterelles, I found a promising bolete that later proved too bitter to eat. Ramona was with me the whole time, though she didn't seem as inspired to do things like dig holes in the absence of Neville. He and Gretchen were pulling a shift at the bookstore at the time.
I had my phone with me when Gretchen started asking (via Facebook Messenger) if maybe I could cook dinner. I responded that I was in the forest hunting mushrooms. So she decided to pick up a pizza from Catskill Mountain Pizza instead.
Back at the house, I cooked those chanterelles with onions, and they lost the bulk of their mass as the water boiled away. I kept hearing a weird "Emo! Emo!" call in the forest that I thought must be a crow, since it was closely associated with a crow making the growling, clucking sound one sometimes hears. I went to look for the emo crow and, at my approach, the clucking crow flow away and made a more normal "Caw caw caw!" call. The emo crow was silent after that. Edgar Allan Poe, if your ghost is alive, you should write a poem about a crow quothing "Emo! Emo!" That's the most emo thing ever.
When Gretchen came home, we ate the pizza out on the east deck. She'd requested a Tecate with a bunch of lime juice, so I'd squeezed half a lime into a glass before adding the beer.

Sometimes I lose my mind with obsession when there is something I want but cannot find. Many years ago our neighbor Andrea gave me a Leatherman multipurpose tool that I have never used. It always sat among the other tools at the top of a plastic set of drawers in the laboratory. I liked having it, but there has never been a need for it, since there is always a better tool handy than the conjoined ones it provides. But today when I went to look for it, it was gone. Where could it be? Had I put it somewhere else? I searched everywhere it might have ended up multiple times (this included both cars). But it had vanished. Then the question became: where had it gone. I gradually came to feel it had been stolen by one of our housesitters, probably the tweaker from last summer who stole my last few pills of adderall. May he suffer a life of pain and rejection!

An amanita along the Gullies Trail.

My haul of chanterelles just before I started cutting them up.

Some sort of white caterpillar (dogwood sawfly?) defoliator attacking an ornamental red dogwood off the east deck this evening.

For linking purposes this article's URL is:

previous | next