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:
   Judas Gutenberg's rule
Monday, February 24 2014
This morning I discovered that an attempt last night to push a git repository to a QA server had gone horribly awry. Somehow my local repository was some weird merger of a new project and a very old one, and what had been pushed was a combination of all the files from both projects. What a mess! Looking at the situation further, it seemed that the directory for the old project had simply turned into the directory for the new project, and all the files I'd put in there recently were mere additions to the sprawling mess of the old project. This was fixable, but only after I'd remembered how to use git commit. (The only way that I ever want to issue that command is in the form git commit -a -m 'COMMENT', though somehow I'd forgotten about the -a flag, which it is pretty much useless without.)

A new web development project I'm working on involves two newish Javascript and PHP frameworks. The first of these is called AngularJS and is a sort of HTML compiler written in Javascript that supposedly simplifies a lot of the drudgery of building an AJAX (that is, a modern, highly-responsive) website. The other is Laravel, a more conventional PHP framework designed to force web developers (as most frameworks do) into building within the Model-View-Controller (MVC) paradigm. So far in this project, my interactions have mostly been with AngularJS, which, from the videos I've watched, looks like it has a lot of potential. As a framework, it provides numerous hooks allowing a web developer to connect HTML tags to Javascript so as to automate its dynamic creation in the frontend while abstracting away the messiness of old-school AJAX. In principle, it's gorgeous, but in practice (at least at this stage of the learning curve), it's just as hard to work with as any framework, with the added disadvantage that I'm still learning how. Call it Judas Gutenberg's rule: anything non-trivial is going to be a bitch to implement no matter how you're doing it. Today I had multiple browser pages open trying to figure how to do three different things in AngularJS. The actual documentation for the framework is essentially unreadable, and everything that happens computationally inside the framework itself is so non-linear that it cannot be explained except by example. But nobody has ever done what it is that I need to do, and so I had to attack the problem from multiple fronts. But it was extremely frustrating. After reading a paragraph like this

Since JavaScript is a dynamic language, DI can't figure out which services to inject by static types (like in static typed languages). Therefore, you can specify the service name by using the $inject property, which is an array containing strings with names of services to be injected. The name must match the corresponding service ID registered with angular. The order of the service IDs matters: the order of the services in the array will be used when calling the factory function with injected parameters. The names of parameters in factory function don't matter, but by convention they match the service IDs, which has added benefits discussed below.

I screamed at my computer, "It's so fucking complicated!" All this talk of "injectors" without any satisfactory definition of what an injector actually is. All I wanted to do was implement some click-instigated dynamic HTML generation using data from a database. Doing so is easy in traditional AJAX (which at this point I know very well; I'm talking about the pre-jQuery version of the language). But no, evidently there's something too linear and direct about traditional AJAX that makes everyone cast about for new frameworks and meta-frameworks to learn. At this point, the traditional LAMP Stack has more layers than the geologic column, with the topmost layers constantly being eroded away and replaced by whatever happens to be fashionable. Don't get me wrong, AngularJS seems to have a lot of potential, but for now I kind of hate it.

Part of my frustration with Angular was a result of a general feeling of suddenly being overworked. It's not just that I still have Lightroom plugin work to do, or that that schoolmarmish professor from Pace University has started bothering me again about bugs on those Business Simulation games that I helped build for her (I fixed one of those bugs today and it took one or two precious hours of my afternoon to diagnose and then fix). It's also that Mark (that friend I share with Ray who randomly appears every now and then) needed help fixing a bug on his website. And then Gretchen came home from the bookstore and expressed dismay that I've yet to fix our Honda Civic Hybrid and that she's tired of driving the Subaru. Somehow I thought she'd be having the car worked on when the tires are replaced (which they need to be; the two year old tires from Mavis Discount tire are already balding).
The problem with the Honda is that it's been dragging parts of its plastic belly shielding on the road. A couple weeks ago I'd tried to drive it up onto the plastic tire ramps so I could fix it, but the ice in the driveway had made it impossible. That ice only disappeared two or three days ago. When Gretchen wondered about the car, it was the one additional demand that threw me into a rage (one worsened by an empty stomach). I went out into the cold (which, by late this afternoon, was being worsened by the approaching Polar Vortex), dug the plastic ramps out of the snow bank, and got the car up onto them. In the past I've repaired the plastic shielding with zip ties, but today I used steel wire. There is a large steel part of the undercarriage frame that lacks attachment points, though that's precisely where the plastic shielding would best be riveted or bolted. I didn't have any way to do that, so I ran the wire over some other inconveniently-located piece of metal instead. I have a feeling someday I'll have to revisit this issue again.
In my failed attempt to get the car up on the ramps two weeks ago, I'd managed somehow to pull the whole front body of the car off its skeleton. Securing it back in place would have required replacing the crappy plastic rivets that had originally secured it. I don't stock such things. Instead I installed some metal screws that sort of held. Having to make such compromises in the face of such crappy engineering further worsened my mood, but at least I got the car back together in time for Gretchen to drive it to her new volunteer gig teaching literacy to women prisoners in the Ulster County Jail.
I felt kind of bad for having been mean to Gretchen, so I had a dinner of rice and beans waiting for her when she came home after 8:00pm.

For linking purposes this article's URL is:

previous | next