Postgres GUC as Session/Transaction Variables

Edit Feb 8 8:53: After playing around a bit more with the functions, I’ve added another caveat dealing with the function volatility.

Some time ago, I wrote about session variables in PostgreSQL. I’ve been using the solution for some time to address the problem of performing a more-or-less-automatic audit trail for certain important tables when using accounts defined by the system and not the database, and it’s been working pretty well so far. However, I’ve always been concerned about the idea of potentially creating a new table for every transaction, even if it’s temporary. The database in question is a very small low-throughput system just used internally, but being inefficient just cause nobody will notice doesn’t seem like a good enough excuse.

As Rails is our front-end and it uses connection pooling, there’s a possibility that two subsequent pageviews would use two different connections to the DB. While that doesn’t always generate a new table (the second connection could have already had the temporary table created), it does necessitate resetting the values in the table that I use for auditing (current_user and audit_notes) every time, just to be sure. I’m unsure where on the scale of efficiency it would fall to validate that an update must occur before actually doing it, but it seems, due to the fact that I must validate the table as a whole exists before trying to do anything, that this is the least of my problems.

However, I recently had the magic of Tom Lane shine down from on high in this recent thread on the pgsql-sql mailing list, wherein he made mention of a feature of which I had been previously unaware: custom GUC variables. I’m not actually sure what the GUC stands for, even. However, what it provides is a namespace into which you can throw arbitrary variables. It’s designed for modules that are loaded at run time and need configuration (like plperl.use_strict).

If you clicked on the link to the thread, you’ll realize that Tom suggested this as a solution to the very problem I had built my “variable” temporary table method to address. The requested solution involved transaction-level isolation, but as ActiveRecord doesn’t seem to like using them unless you beat it thoroughly about the head, I’m more concerned with connection-level isolation. Fortunately, it looks like this does both! Instead of my big long complicated functions, you can simply include “custom_variable_classes = ‘audit’” in postgresql.conf, reload, and in any connection do “SET audit.”current_user” = ‘whoever’;” There are a couple of small caveats worth noting, however:

  • This is not the usage for which the GUC system was designed; as such, it is somewhat a Bad Thing to do, as it can potentially cause screwing around with modules that are loaded. This is particularly notable if you have multiple databases in your server, as it’s a global setting. Each one of your users will have that variable namespace. As far as I know, that’s not a security concern, but rather a nuisance concern, if they’ve never asked for such a thing. However, I think it’d be charitable to describe the situation where it’s problematic as an extreme edge case. And as far as the loaded modules, it would seem fairly trivial, unless you have millions being loaded and unloaded all the time (I don’t even know if you can unload without a server restart), that assigning a unique name to your variable class should not be a problem.
  • SET statements in PostgreSQL allow for setting string literals with optional quoting. This may not be obvious if you’ve never used the SET command (which I tend only to use for search_path), but it means you can’t set the value using variable substitution, i.e. in a function call. You’ll have to compile the query at runtime of the function using EXECUTE and that can be unpleasant for everybody if you’re not careful about it. That is, use pg_catalog.quote_literal() to make sure your variables are safe, because any characters PostgreSQL can’t figure are part of the string will cause errors. You shouldn’t bother using pg_catalog.quote_nullable(), for why, see the last point.
  • Certain values of variables must be ident-quoted. So far I’ve found that to be true of “user” and “current_user” at least (so, set audit.”user” instead of audit.user), and I presume there are others. Someone smarter than me may have an answer for this.
  • If you want to access the value of a variable via a function, the function must be declared as VOLATILE. IMMUTABLE is clearly out because it doesn’t depend on inputs, and for some reason that I’m unaware of STABLE is also out. This is probably a function of the SHOW command rather than of custom GUC variables in particular. Speaking of SHOW…
  • Retrieving the value of the variable, say in a PL/pgSQL trigger, can be done via “SHOW audit.”current_user” INTO some_variable;” – I’m not sure if there are more efficient ways but that’s the one I’ve found that works. At least, most of the time…
  • Retrieving the value of a configuration variable that has not been set yet causes an exception to be raised. This is not an insurmountable problem, as you can simply trap the exception, but as the documentation warns, an exception-trapping block in PL/pgSQL is far more expensive than a regular block, so it shouldn’t be done if you can avoid it, which would be easy except…
  • SET statements do not allow you to assign NULL values to configuration variables. This is problematic if, like me, you want to allow someone to optionally insert some notes to go along with any auditing for a particular chunk of work (“I just changed the received time on this log because it turns out that was a 2 not a squiggled-out number”), but don’t want a pile of empty strings littering everywhere. You can handle it in one of two ways: have your trigger functions call NULLIF() and always assign the return value of the variable you want to NULL if it’s set to ”, or just trap any exceptions from unused variables and return NULL. While I think NULLIF() is probably the cheaper option (without any benchmarks backing this gut feeling up), the trapping exceptions method is probably the Right Thing to do.

So, for all those things to be kept aware of, the end result can be just as simple as:

CREATE FUNCTION audit_user(OUT TEXT) LANGUAGE PLPGSQL AS
$$BEGIN
    SHOW audit."current_user" INTO $1;
EXCEPTION WHEN OTHERS THEN
    $1 := NULL;
END;$$;

CREATE FUNCTION audit_notes(OUT TEXT) LANGUAGE PLPGSQL AS
$$BEGIN
    SHOW audit.notes INTO $1;
EXCEPTION WHEN OTHERS THEN
    $1 := NULL;
END;$$;

I trapped the exception OTHERS for two reasons: one, I assumed that OTHERS would be faster than comparing against a specific case; and two, I plain just don’t know what specific exception gets raised when this happens. I also did not create a function that would set the auditing variables, as I figured there would be little point to creating a function that would basically just be wrapping a SET call. It’s all clearly much shorter and more sane than the temporary table solution, not to mention it seems it’s likely to be a lot faster.

I think I’ve found myself a winner.

#FollowFriday

I can’t really get behind Follow Friday. I like it when people mention me, perhaps because I enjoy the confidence boost of someone saying what I think is interesting. But honestly, I don’t think anyone new has ever followed me from being mentioned, and I don’t think I’ve ever followed someone who was mentioned. In spite of the fact that I feel guilty for not giving those people props back, I feel like it would be a disservice to all 20 people and 140 spam bots following me to simply spam a bunch of names of people who have mentioned me.

It wasn’t always that I felt so negative about this particular aspect of Friday, but these days it seems like follow lists are just that: lists of names. If you throw my name in there with about 10 other people in one of 3 tweets that is nothing but names and “#FF”, it doesn’t really show much of an effort. The first times I saw anything about Follow Friday, it had “#FollowFriday” and a single name with a reason to follow them. That’s something worth doing. It shows you’ve put some thought into it. Of course, these days if I actually spent that much time it’d practically seem like a love letter to spend that much time thinking about a single person on my list.

Twitter’s always been a pretty ephemeral medium, so it makes sense that over time processes that occur on it will be condensed. But the law of diminishing utility comes into effect nonetheless. If you give me more and more names and do that at the expense of the “why,” because it’s “more efficient” that way, then you’ve lost any sort of meaning with it. Few people will click through the list and figure out if they want to follow those people as well.

I doubt this will impact anyone and prevent them from doing their own list come Friday, and that’s fine, really. I don’t intend to convince people, but merely explain why I won’t just “hit you back,” as it were. I prefer a high signal-to-noise ratio in my personal Twitter feed, despite what it may seem like sometimes. That’s why I skip the “Good Morning!” tweets and the (to me) meaningless “#FF” list.

Now, #WhiskeyFriday is all well and good, and #FridayReads, in spite of not being alliterative, is just fine by me. Like #MusicMonday (which I haven’t seen in quite some time), I am always ready for some new media (but not New Media) recommendations. I’ve also been told about #FridayRide, though I’ve never actually seen that one before. Hey, biking to work is always good (although for me, it might take about three or four hours each way).

T-Shirt Idea

If life were like a yarn twisted about, what kind of clothing would your existence make? It seems like one of those stupid questions that stupid people ask to get stupid responses that people think are deep. There’s nothing really to it. Your life isn’t cloth, it’s flesh and blood and bone and pain and misery. That’s what I’ve always thought, what I’ll always think. Sometimes people get fooled by the shadow of their fathers and mothers, and think there’s someone watching over their shoulder, but it’s just a tree scraping against the window, nothing more.

We’re all just empty little hobgoblins pressing up against the roof of our world, with most ignorant of the quiet vacuum lying just beyond. It’s big, and it’s cold, and it’s empty. Our lives, they’re just a fraction of a blink to a universe that’s only now waking up. Even the people who “matter” are just insects crawling next to us. They found a tiny little crumb to make them seem important, but they all died too, when the ever-impending flood rose up and washed them away. Maybe the stupid and the lazy have it right; you’re going to die, you’re going to end up not mattering in the slightest, and you’re going to be alone; why bother making anything bigger out of it than it is?

I want to matter, I want to be important. But a flash in the pan is nothing to write home about, and the soup will still be cold. Even if I could turn this world into a burning star with my passion, the stars themselves die long before the space that birthed them could be considered young. Why am I fighting, then?

I don’t know.

I should get that printed on a shirt.

Line in the Sand

I wrote this about a week ago, in response to a then-current news item. Fearing a tide of Charles Village people (or anyone, really) who would read into this that I just didn’t give a shit about someone dying, and come and harass me, I didn’t post it. However, I guess at this point I’m either going to have to post it or delete it, and I’m getting tired of deleting the thoughts I have. So, while no longer timely (and thoroughly unedited), here’s my thoughts:

If you’re one of the people who follows me from Baltimore, you’re probably aware of the homicide that happened in Charles Village this weekend. I definitely am; it was at the end of my street. I wasn’t made aware of it until the next morning, somehow I missed the commotion that must have been made. However, I haven’t missed, for the past three days, repeated news crews, and a press conference the Commissioner of Police himself attended. Huzzah, you might be expecting me to say, the city is responding to a violent crime in my neighborhood with a swift hand and recognizing that there’s a problem.

Except I’m not saying that.

The thing is, and I know I’ll sound callous and unfeeling for saying it, is that Stephen Pitcairn is a small number in a large statistic. Baltimore is not a safe city. There have been one hundred and twenty homicides in the city limits this year so far. And while Mr. Pitcairn was doing valuable research, every single one of those other people were flesh and blood just the same, and so few have received the attention he has. It’s partially due to who he is, and partially to do with where he was when it happened.

And that’s really the problem. I don’t want people to marginalize his death, but I don’t want people to marginalize the 119 other people who’ve died this year, either. But they are marginalized, because so many of them occurred in poor, black neighborhoods where that’s just part of the deal. We just finally caught some of the spillover in our little hamlet between multiple sections of town people colloquially call “ghetto.”

I’ve seen a number of extra police in the days since it happened, typically buzzing around the exact location, as though there’s a mystical significance to that specific spot and any future murders would only take place there. I do not feel safer for the over-the-top show. I don’t feel any less safe than I did last week, as a matter of fact.

Because this is Baltimore, this is one of the murder capitals of the world, and if you felt invincible cause your house had some cute paint and you can walk to a farmer’s market in a parking lot, even though you can hear the semi-automatic fire that periodically rings out from Waverly, then you’re a fool. You’re not any less safe than you were before, your eyes have just been opened to the reality of where you live and you’re hysterical. And it’s disrespectful to the people who, when murders happen around the corner from them, are ignored.

It’s a major tragedy that Stephen Pitcairn died. It’s an outrage that the people who did it were released repeatedly into the world after apparently committing other robberies. But it shouldn’t be so much more than when someone else dies senselessly. The city is dying all around us, and we can’t just draw a line in the sand and say “Not HERE. You can kill them THERE but we will HAVE our painted ladies, damn it!” Cause the problem with a line in the sand is that when the wave comes crashing down it gets washed away.

Dealing With YAPB

It’s been a while since I blogged. Sue me.

I fully intend to get into a regular posting schedule, one of these weeks. I’ve even got a plan mapped out. But that’s for later. For now, I’ll detail how I set up my partner’s photoblog. It was actually less than completely straightforward.

We run our sites on Dreamhost, and setting up the MySQL database, subdomain, and WordPress installation went about as easily as it ever does (that is to say, in about 5-10 minutes I had it all running). Then, I went to install a plugin called “Yet Another Photoblog” which I had read in at least one place was a pretty decent plugin for converting WordPress more easily into a photoblog. The plugin installed fine, after a couple of attempts – for whatever reason, WordPress was giving me unzip errors and I thought I’d have to do it manually; fortunately they resolved and installation proceeded.

The plugin itself makes minimal changes to the overall admin interface of WordPress. There’s basically an additional file upload field above the “Add New Post” main editbox, as well as an additional section in the Settings sidebar. I hadn’t played with it before, so I tried a few posts. Here’s where I ran into issues.

I kept on getting errors saying “Error: File does not exists!” when I would get to the preview page. I tried with just jumping straight to publishing, and that didn’t work either. The posts had thumbnails on the admin side, but nothing showed up on the front-end. Also, the pictures were in the uploads directory, so I knew they were there.

I read on the plugin’s page that themes had to be chosen specifically for YAPB, and so I loaded the site up with one. The thumbnails showed a frame, but no actual picture. Chrome said the thumbnails were being sized as 1px X 1px. I couldn’t figure out how to get the full CSS picture with Chrome’s interface, so I jumped over to Firefox where I had some neat tools, and found the thumbnails showed up just fine there. That’s odd.

Eventually, through much Googling and hair-pulling, I tried manually creating the cache directory (didn’t fix it), renaming “phpThumb.config.php.default” to “phpThumb.config.php” in the plugin directory (god only knows why it was named that way anyway, nothing mentioned it except an obscure forum that I’d link to if I could find it again; still didn’t work though), and some hackery with the PHP in the phpThumb library itself (which also didn’t work).

Eventually, somehow, I managed to find this forum page, which linked to this other forum page, and detailed exactly how to fix my problem: Going to the Settings page, then to Media (it said Miscellaneous in the forum, but I guess the name or changed since then), and manually setting the uploads folder to “wp-content/uploads/”. This shouldn’t work, as the default is ALREADY “wp-content/uploads/”, but it does. I haven’t had any other problems.

If this post was incredibly boring to you, it’s because dealing with figuring this out sucked my brain out through a straw, threw it in a blender and hit “fuck this motherfucker up.” I think it wouldn’t have been so bad if the error message had been slightly more explanatory (a file name/line number would have killed you?), or if the solution hadn’t been so mind-numbingly stupid at the end.

Winding Up at a Comics Festival

Saturday, among other things, I went to the Windup Comics (“Comix”?) Fest[ival]. If that wrestling match with punctuation didn’t completely turn you off, you’ll now be entreated to a review of that experience:

I actually really liked it. Like DC Comic-con, it was pretty much a single room, i.e. The Windup Space on North Avenue in Baltimore. It had a completely different feel from that convention, though. More on that “feeling” thing later; first, location: fortunately for me, it was within walking distance (only about 6 or so blocks), so I didn’t have to worry about parking. Had that been a concern, it may have been less awesome because North Avenue isn’t always the nicest of streets. It was my first time at The Windup Space, and it seemed like a nice enough little bar. I can’t speak to the quality of drinks or service, though, cause I was mostly focusing on the comics (and I was poor that day).

As I said, this gathering had a completely different feel than my sole previous experience at a comics gathering. I think that’s because this event focused primarily on the artists, and not the retailers. There were a couple of retailers, but most of the people were actually local, independent, artists and writers. That can be attributed to the difference in who was the chief organizer: from what I understand, DC was organized by a retailer, and Windup was organized by an artist (in fact, one with whom I went to high school) and an art studio. Suffice it to say, without dragging out the comparisons much longer, I walked into DC Comic-con with a decent amount of money and nothing I wanted to spend it on, while I walked into this place and found plenty of stuff I wanted to buy but had almost no money with me.

The artists were all really friendly, and that was pretty great. I came in towards the end of the day, since it started about 1pm and closed at 7pm, and I wasn’t able to make it until after 5:30. In spite of what I heard was lower turnout than expected (maybe due to the rainy day and this being the first such event), everyone was pretty happy and readily willing to interact with me, explain what they were doing and selling, and just be generally quite congenial. I found a couple of things I really wanted to get, a couple of things I thought would be cool to check out, and a couple of things that were neat but not really my speed. Fortunately everyone had plenty of business cards and flyers, and I managed to get something from almost everyone so I could remember to check them out later.

I got a bunch of flyers, business cards, and a free button!

Local Artists' Media

Ultimately I had to whittle down my must-purchase list to one item, which was the Floppy Boy comic on the left. While many things caught my attention, as I said, I stuck with this one because I thought it’d be particularly cool to have something written by someone I know personally. I wound up with Volume 2 rather than Volume 1, though, so I’ll have to pick up the rest of the collection later. It’s a collection of former-webcomics (the server blew up, I think, and if I remember correctly I was told it was “a long story”), which Gavin admitted were pretty hit-or-miss with the comedy, but I thought were pretty entertaining.

I’ll try to remember to update this later with links to the artists, as was my original intent, as the picture of a stack of flyers is clearly not legible enough to make them out, but I don’t have the physical copies with me. Hopefully in the meantime this link to Interrobang’s page on the festival (with list of artists) will suffice.

In closing: it was really an awesome show, and I’m glad I went. From what I heard from the organizers, they’re going to try to do it at least annually, if not twice a year, and I’ll definitely head back for more. If they can keep the same positive energy going towards it, I think it has the potential to turn into a Pretty Big Deal.

Adventurous Talk

Last night, I decided to try a little literary experiment. And, actually, it turned out pretty well! Just see for yourself. I asked several people to write me one sentence of a fictional nature. It could be any valid sentence, like you’d read out of a novel. The rules evolved as I went along, and eventually people asked for an example. As I didn’t want anyone to see anyone else’s, I came up with my own: “The single most important thing I was ever told was not to cry in front of witnesses.” As I didn’t necessarily care to embark upon the story until after I’d collected everyone else’s statements, I didn’t use that line. However, it’s at least here for posterity.

My original intent was to get five people’s sentences. I had picked the people out carefully based on what I figured was either a guaranteed willingness to help with literary excursions or importance to my life or some combination of both. However, I started late at night and most people had gone to sleep, and I wanted to strike while the iron was hot, so I shotgunned a request to a number of people. As it turns out, I got almost everyone I was going for initially, plus a couple extra, and wound up with seven sentences to use.

One of the things I liked was how each sentence completely rearranged what I thought was going to happen based on everything I thought might happen beforehand. As I said, I didn’t really start writing until after I collected everything, but ideas were coalescing with each puzzle piece everyone gave me. Here’s what people gave me, in the order I got it:

  • Larry Saunders – My partner gave me the simple and straightforward line “I went to work today.” I eventually added on the clause that it couldn’t simply be something that was an inverted true statement, i.e. “the sky is not blue.” Given how short and straightforward it was I thought his sentence would be easy to work in and wouldn’t have an impact, but given the nature of the last paragraph, and the way it showcases Mildred’s escapist desires, I think it added some nice depth.
  • Eric Will – Eric, who has contributed to this blog and works with me, gave me the statement “When I was young, I met this beautiful girl by a lake.” His was particularly interesting in that he started a trend that would be shared later where he gave me something from an abandoned story he had started himself. This beautiful girl turns out to be a pretty pivotal point in one of the narrators’ lives.
  • Jason House – Another coworker, after giving me a bit of grief, as he is prone to do, gave me the most difficult sentence to work in: “Unicorns are primarily found in warm tropical climates but have been known to travel as far north as new hampshire in november to enjoy the changing colors of the evergreens.” I’ll admit that I cheated and used it as a quotation from a non-existent book. However, like the girl, this book turned out to be a key component in altering the first narrator’s life.
  • Jessica Hughes – From an old character biography, I got “She stood tall and boldly faced the east with the burning remnants of her house and former treasure behind her.” Jessica has been a long-time friend of Larry’s and now we converse regularly on Twitter about music and many other things. Her statement contrasts with Eric’s pretty well, with the fire and water dichotomy, and features prominently at the point where the two narratives intersect, which I didn’t even realize until I was almost finished.
  • William West – A friend made entirely through the power of social media (read: we are Twitter buds) gave me “I never did find out if she was a stripper or a bank teller.” He apologized for it, which he said himself he should stop doing, so shame on him. The character he gave me turned out to be more of an indication of the kind of life the first narrator led, free-wheeling and womanizing. That made me re-think the love interest with the girl at the lake, because I still wasn’t sure what was going to happen there.
  • Molly – Another Twitter user, interesting in that I think she lives at most 500 yards away, I’ve probably seen her without realizing it, and I don’t know her full name, told me yet another line from a story she had started herself: “Mildred made weekly trips to the farmer’s market for social interaction and intrigue.” Strangely, this seemed to fit into the kind of lifestyle that the narrator would find interesting, per William’s entry earlier. It was also curious in that she finally used a proper name. I had considered restricting to pronouns in my request at first, but finally decided I wanted people to have as much freedom as possible. She was the only one who picked up on that open-ended promise. And it turned out to be the key to the hook that I came upon with the next and final sentence.
  • Mykl Levi – A recently-made good friend gave me the final sentence I would collect: “He was institutionalized when I met him, but that didn’t make me want him any less.” At first I thought I’d turn my narrator into a bisexual or something, but then I realized I could simply make him crazy all along. Of course, after flipping that switch, I had to decide if all the women he was after were fantasies, or reflections of the same woman, or any number of other things. I eventually settled on his mother, who it turned out would be Mildred. Naturally, she couldn’t say she wanted her son unless I wanted to make this a really twisted story (which I did not want to do), and she definitely wouldn’t have just met him anyway.

From this point out, I created the whole story. A lot of what I said in the comments happened anachronistically from how it’s presented here. Clearly, the second narrator didn’t even come into play until after Levi gave me his sentence, but I mentioned both of them as early as the first as though they were a given. At this point, it’s sort of difficult to remember at what points which portions came into being. What really matters is that I really love the end result. It turned out amazingly well, better even than I had hoped it would be.

I know there is probably some medical fallacy in the son’s insanity, Eric or Molly (who I think is a doctor or a researcher, I’m not sure which) could probably set me straight on that. This story was not really about doing tons of research, though. Usually I pop open Wikipedia and Google and go to town researching everything, but for this I just had the quotes at the top of a text file and just streamed it through the fingers. I edited two sections after the fact, adding one or two sentences a the top and taking out a couple at the bottom, but ultimately it just flowed.

So, after all that has been said, I’d like to issue a big thank you to everyone who helped me out with this. It sounds like I’m making a big huge deal out of such a short story, but I think it’s pretty good and I have some good people to thank for that. I hope none of you are offended at how I used (abused?) your creative contributions.

A Life of Adventure

Do you ever meet someone who’s so startlingly beautiful that you’re not quite sure you can handle it? Sure, we’ve all got those little adolescent crushes where your heart beats a mile a minute and your throat closes up and your mouth goes dry just before you can ask them how they’re doing, but I’m not that young anymore. Of course, when you’re any age love still feels the same, and the story stays the same.

When I was young, I met this beautiful girl by a lake. We spent the summer with our legs drifting off the sides of the pier, where there never seemed to be any boats to anchor or sail, and just talked. It must have been utter nonsense, because I can barely remember any of it. We were reading books at the same time, like we were going on adventures together. I still remember one of the curious little facts: “Unicorns are primarily found in warm tropical climates but have been known to travel as far north as New Hampshire in November to enjoy the changing colors of the evergreens.” Maybe it was the utter strangeness of the idea, or maybe it was that, while we were giggling about the book and watching the little waves glisten with stolen sunlight, that she leaned over and kissed me. Though it should be a happy memory, it’s not; because the picture of a Unicorn watching evergreens change color made me laugh, and she thought I was laughing at her. I apologized, and life went on. We played together, laughed together, and read together the rest of the summer. But she never kissed me again. And the next summer I was at the dock alone.

Maybe that informed the rest of my relationships. Sure, that seems like an easy thing to say, because it was just one girl and one summer, but it’s the truth. I never wanted to have attachments. Well, maybe I did, but I couldn’t let myself get close. They say there are many fish in the sea; well, I swam the depths for years. I met firefighters, secretaries, and even a writer or two. They were great at giving me what I needed, but I was terrible at giving back. I felt badly about it, but I never wanted to change. There just wasn’t any reason.

The longest I stayed with a woman was Mildred. Mildred made weekly trips to the farmer’s market for social interaction and intrigue. She saw adventure in every corner and under every bed. There was no story she couldn’t spin out of a few bare threads she’d overhear in the morning, and nothing she wouldn’t do for me. One day I told her I’d had enough and thought I’d like to move to Vermont. I said something about New England drawing me. I left, and when I came back to get my things, I saw the house on fire. She looked at me and her face was covered with soot. Then she looked away. She stood tall and boldly faced the east with the burning remnants of her house and former treasure behind her. I knew she wasn’t coming with me, although that was my first thought. No, I’d broken her heart, and I could see it melting, like glass, in the flames behind her that were blowing her ragged hair and filling it with ash.

Vermont was a fine place to live, but it didn’t have what I wanted. For years I went through each and every town I could find, trying to locate a little piece of something I’d never know was missing. Maybe it was a sense of adventure, I’m not sure. Somehow I got involved with a shady woman who dealt drugs for the mob. She had some strange cover stories for why she’d be late to everything. There was her job, of course, but it changed day by day, though I had a tie for the best two. Eventually, she made some mistakes and disappeared without a trace. I never did find out of she was a stripper or a bank teller.

My latest stop is at a nice hostel. I’ve been here for a while, now, and it seems nice enough. I can’t really tell you how long it’s been, exactly. Sometimes you lose track of time. A couple of the guys here are into that real hardcore stuff, and it messes with my mind a little bit. It gets foggy every now and then and I forget what time it is or how long I’ve been awake and little details like that. But the sense of adventure is still calling me. One of these days I’m gonna get up and get out. But for now, I’m pretty happy and I think I’ll just stay for a bit longer.


Sometimes, on hard days like this, the weaker parts of me think that maybe I should just abandon him here. He’s the only part of his father that I have left, though, and my only child. I couldn’t really let him go any more than I could rip out my heart and offer it to a stranger. Sometimes I wish he weren’t so much his father’s son. His father, he was such a charming man. He was institutionalized when I met him, but that didn’t make me want him any less. As a day helper I met with the patients and told them stories, and he was always the most lucid, and always offered me something nice, or something he thought was nice. They didn’t exactly have lots of disposable income or any trips to the local stores. Still, it was an incredibly thoughtful gift with a compliment each time. I often credited myself with his recovery, but I’m sure I was more of a bystander than an incentive.

I’m glad I had that experience at the institution, though. Fifteen years ago, they told me: “Mildred, you have to talk to him, you have to keep him grounded with your voice. It’s the only way he’ll stay cognizant of the real world.” It was easy at the time, because I always thought he’d get better. When they found him by the docks he was babbling about a girl and a book and a unicorn, saying he only wanted to read her something funny he had found. It turned out, the girl was a neighbor’s daughter who I’d seen playing by herself at the dock while my son was in his room, and that day I learned that no amount of apologies can make up for a lost child. But I still had mine, or so I thought.

He had a breakthrough a few years back. Each story I told him seemed to bring him back to the room a little bit more. He stopped fidgeting and stared directly at me. The new medications seemed to be working, finally. One day, he even asked for me by name to tell him a story. But then, a few days later, he looked at me and said “Mildred, I think I’m going to Vermont. Something about New England is calling me.” I don’t remember what happened next but I know that later I was sobbing outside with a doctor rubbing my shoulder and telling me that it was probably just temporary. But he didn’t know, he didn’t even have any children. I stayed away for weeks after that, and when I came back, he was the same as he had always been.

I went to work today. It was my first day on a new job, trying to make ends meet. The hours are horrible, and they keep me away from my son. But it pays the bills, and each time I walk through the door, I feel freedom for a brief moment, as I take in the world around me and think how I’ve given up and moved on with my life. But then the doors swish closed behind me, and the moment is gone. I know I have my obligations.

Hotboxing Again

I went to a concert tonight. Yes, that’s pretty much my evening in a nutshell.

It was a pretty good concert, though, all things considered. I work with the drummer, and its via him that I know of the group. He’s a nice guy and pretty laid back about everything, and is none too shabby of a drummer, so I was looking forward to the performance. This wasn’t my first encounter with this group (HotBox) nor the 8×10 in Federal Hill, so I figured it would be a pretty decent show based on my past encounter, but became concerned when I had to make my way down via the MTA.

The venue’s all right, they get some really good music, but the drinks are pricey (though, honestly, try to name me a bar/club where they aren’t). I’ve attended three shows there, one for a guy I played a run of The Fantasicks with back in the day (his group is Ayurveda and is awesome) and two shows for HotBox. Weirdly, the first show included a band with another drummer I know and went to high school with, called Pasadena, but due to circumstances out of my control, I have yet to see them perform. Aaron (the co-worker drummer) said they were pretty good, and I can believe it as Cory (the co-student drummer) was pretty good and I can’t see him easily associating with not-good-at-music types.

Now that I’ve gotten the name-dropping out of the way, I’ll say this: the 8×10 gets some quality guys in there to play (I may have mentioned this before). The first band tonight, whose name escapes me now as they did not receive billing on the website so I only saw them on the flyer in the basement once, was musically not bad. Of course, the lyrics were ridiculous, as they seemed to be covering a lot of Kanye West, and playing it like they were Dave Matthews. Comically, it worked, but I’m not entirely sure they meant for it to be funny. Also, I know Autotune is “a thing” these days, but is it really in any way considered appropriate to use it during live performances? Considering that’s where at least 90% of the melodic voice parts got their lines from, I’d say it was a bit much.

The Grilled Lincolns were up next, and though I distinctly remember thinking that they were quality music, I’m having a hard time recalling any specific songs. It may have to do more with the fact that by this point I’d hammered down a beer pretty quickly and was working on a 7&7, when normally I have a sip of Kool-aid and get a little bit tipsy, than it has to do with anything the band did wrong. Realizing I’d probably have to walk a few blocks to a bus stop, though, I stopped pretty quickly after that and stuck to water. Oh, wait, I lied: they played Super Mario Bros. music. I would have gotten up and whooped and hollered but I think it was the wrong crowd for that sort of thing. Still, I guess while they were playing the star music I should have done it anyway, it wasn’t like anyone could hurt me while I was invincible.

Finally, HotBox got on stage and did their thing, and I wound up running into one of the percussionists’ brother (they have two percussionists, the guy I work with and a guy wailing on the Djembe). He had looked familiar, and we struck up a camaraderie over two ditzy chicks who dragged bar stools across the venue and plopped them dead in front of the speakers. Sure, go deaf, it isn’t like you’re using the other organs in your head, apparently. Anyway, the band: in spite of HotBox’s hyper-sexualized lyrics, they’re a pretty good band. Like I said, the 8×10 pulls in some good bands and tonight was this band’s second round in under a few months. A staple of the show seems to be a djembe solo, which actually feels a bit out of place, like the guy’s just showing off, but he’s good at it so it’s hard to complain too much about it. One of my favorite songs I sadly don’t know the name, as it’s not on their page and they don’t announce, but it’s a radical departure from their normal live fare, and drops the djembe in favor of a keyboard riff, which is pretty awesome.

The main thing that stuck with me was the balancing issues. I’m not sure what about balancing a voice against a band is so difficult, having not spent any time behind a mixing board myself; but it’s apparently very difficult for HotBox for whatever reason. I singled them out because it seemed like the other bands balanced out fairly well tonight. On previous nights other bands have met with the same balancing issues, but tonight only one band did, and that stuck out. It’s my only major complaint on a night that went, interestingly enough, pretty well.

It was a pretty good night, and I am pretty glad I went, in spite of various issues (paying the tab after I ran out of cash with only one drink on it and a $15 minimum on credit resulted in a shot of Jaeger which pushed me into I-will-have-a-hangover territory being one of them). Funny enough, I meant this to be a retelling of all the hilarious things that happened tonight, but I guess I realized partway through the first paragraph that none of it would be very funny to read on a blog.

National Day of Whatever

I don’t pray. I haven’t in years. For me, the issue of whether or not to pray today was a complete nonsense kind of question. If you went to my house and tried to find some Christian memorabilia, you’d be hard-pressed, and the closest thing you’d find is old wedding and funeral programs, along with some religious music I’m paid to play at such occasions.

With all that being said, I don’t care about the national day of prayer. I don’t consider it an affront to my non-believing ways that people want a proclamation of a day of prayer. Here’s the code, in case you’re curious (emphasis mine):

The President shall issue each year a proclamation designating the first Thursday in May as a National Day of Prayer on which the people of the United States may turn to God in prayer and meditation at churches, in groups, and as individuals.

You’ll note the “may.” It’s splitting hairs, but then if we’re going to parse the law (i.e. the first amendment) that everyone’s getting their panties in a twist over, then we’re going to parse the damn law. Note that “may” means we don’t have to pray, we just can if we want to. Here’s what the first amendment text is:

Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances.

You can point directly at this thing and say that Congress is respecting Christianity by giving it a special day all to itself. Of course, you can also point at Christmas break and talk about how the federal holidays recognize it as well, but people are suspiciously less outspoken against a day off work.

And that’s the thing, really. This law has hardly any force and effect, other than mandating a proclamation from the President, who, to date, has been a Christian of some variety exactly 44 times. If the law were suddenly repealed, I’d be doubtful that it’d stop the President from issuing some sort of proclamation, and therefore I also doubt it’d shut up the critics of the day. And that’s assuming the law could get repealed in the first place. For it to be challenged up to the Supreme Court, at which point I’d assume you’d have to have a case, at which point I’d assume you’d need to prove that this law adversely affected you directly, that hearing the words cascading from the President’s mouth asking people to honor something you simply don’t believe in has caused you literal harm. The only way I can see this is if people get beaten for not praying on this, our day of prayer, and somehow convert that to “it’s the law’s fault” (as though people who are nonsensical enough to beat someone for not praying are rational every other day without such a proclamation).

Aside from that avenue, which feels unlikely, it seems equally unlikely that Congress will overturn it by virtue of the fact that the Christian base is pretty damn strong in elections. Basically, what I’m saying is: “They’re here, they fear [God], get used to it.”

And that little play on words is where I really get to the meat of why the criticism I’ve heard thus far bothers me: I know plenty of atheists. Some of them are even, dare I make this joke, gaytheists (they’re gay and atheists). And that last pun represents the only people I’ve seen up in arms about this. Just a few months ago, I could have dropped some article about Proposition 8 in front of them and they’d get royally heated, how the Government stripped people’s rights. They might even say “Hey, if the people who hate gay marriage don’t like it, they just shouldn’t get married to another person of the same sex.”  That argument is perfectly valid. Then they’d go on about challenging such an unjust thing in the courts.

And they wouldn’t see any parallels.

The problem with Proposition 8, is that it was an amendment to California’s constitution. Now, I don’t know the process in California by rote, but it stands to reason it’s like US Government Jr., as are most state constitutions. That means that it’d be pretty difficult, if not impossible, to mount any sort of legal challenge. But that won’t stop people from arguing that it violates some basic legally-guaranteed rights. Well, in California, it technically doesn’t.

And that’s the thing, fighting against this religious thing while fighting against that anti-gay thing is cherry-picking your battles. You either respect a Constitution, or you don’t. And you either recognize people’s right to do things their way, or you don’t. I don’t pray. I haven’t in years. This law has no force and effect to make me pray, so I just plain don’t see why we have to fight this battle.

Return top