you need this
extra special blogs
poet, technologist, cynic, father of five, child of chaos, punker, prankster, patriot, punster, leftist, latino, japanophile, audiophile, beer drinker, quiche eater, dog walker, soft talker, deep thinker, shallow sleeper, introvert, covert operative in a parallel universe.
|extra special bitter|
|hops are bitter. life is bitter. coincidence?||
Sunday, April 28, 2013
Todos Santos dream
We were in Todos Santos, but not for a hit-and-run vacation; our dog Tito was with us. It seemed that we were there to stay, except that we were in some sprawling resort - the type that doesn't exist in Todos Santos - and were still getting the lay of the land. Helping us in our transition was none other than Cesar Millan, sporting a Skrillex-like haircut and seeming not at all like the confident, macho Dog Whisperer. He was weepy and nostalgic and unable to keep Tito from jumping on him. When I tried to engage him in my elementary Spanish, his reply was always much too fast, so we kept reverting back to English. At one point he saw some children playing nearby, and was close to losing his composure. "We're going to have children soon - maybe in a year". His girlfriend seemed doubtful. He snapped to attention when the subject came to lunch. "Tortas," he said. "I know just the place." He pointed beyond the horizon of condos made to look like the mansions of plantation owners, the Sugar Daddies of another era. He confirmed the directions and the schedule of the restaurant on his iPad. He was right. It was the best Torta I had ever tasted - in the Todos Santos of my dreams.
Sunday, August 19, 2012
One More Dark Hour
Actually there were more than a few lighter moments — starting out with a four-song bluesy, rootsy set, meandering into dreamy, drony noise, and wrapping up with some crisp, melodic power pop. An MP3 of the hour’s festivities can be found here.
All in all it was a great time — the hospitality of Lisa and everyone at WMBR is a recurring dream come true.
Saturday, June 23, 2012
Puppet and Poetry
I have written literally thousands of haiku since the mid-90s. Most of them are archived, thanks to a program called Hypermail, which converts individual emails to individual HTML files. Ever since September 1999 I have been emailing my haiku to a special email address, which, in turn, saves it in a dedicated email folder. Every so often I'll execute a shell script to process the haiku in the folder using the aforementioned Hypermail. I put the resulting HTML files in a directory and then ftp it to my website so that I can view archived email at www.haikupoet.com/archive/.
You'll notice that the archive starts at the beginning of the year. That's because Hypermail runs more slowly as more files are added to the folder. I got around this by renaming the archive folder at the end of each year and starting from scratch on January 1st. I have a separate folder for each year dating back to 1999. This made it easier to search archived haiku based on date, or sorted by subject (in my case also the first line). But if I wanted to search based upon a word appearing anywhere else in the haiku, I had to resort to onerous finds piped into greps - or primitive shell scripts.
Not one to reinvent the wheel, I contacted David G. Lanoue, whose Kobayashi Issa website includes a nifty search feature. Each of the Haiku Master's 10,000 poems were saved in a single CSV file, which were then searched using PHP code. My haiku, however, were not saved in a CSV file, but in individual HTML files, stored in multiple folders.
I busied myself with writing yet another shell script to process the the HTML files into a single text file. I added some post-processing using sed to translate unprintable characters and to strip extraneous text from the file. Then I taught myself just enough PHP to write a very simple search function, which I then added to my website. Victory at last!
...except that I still had to email each new haiku to myself and then use Hypermail to convert it to a new HTML file; and that I still had to process the resulting HTML file into a new line of text to be appended to the ever-growing file. The fact that I still write haiku daily - often several times a day - means that this is not a static archive, but rather a living document. I couldn't help think that the primitive techniques used to aggregate my haiku and make it available for searching mirrored some of the challenges I saw every day in the workplace. Scope creep: what had been a simple archive had evolved into a searchable archive; Scalability: what worked for dozens or hundreds of haiku is insufficient for thousands; Maintainability: the tools being used may not be around forever, after which the whole process breaks down.
There's also the issue of execution - it's in two parts. The shell script that invokes Hypermail was written in 1999. I usually run it manually at the command line, but I used to run it via cron - that is, until I decided to make the archive searchable. Now I have another more recent script that calls the first script and then concatenates all of the HTML files created this year into a single text file. I could "automate" this by running it once a night via cron, but what if I write several haiku during the course of a day and want the archive to be as up-to-date as possible at all times? What if I don't write anything for a day or two? The cron job is running in vain. Why isn't there an easy way to sense when I've added a haiku and then append it to the existing archive without a time trigger or a manual process?
Enter Puppet Labs. Their flagship product, Puppet, is software that enables systems administrators to automate configuration management and application deployment. My employer uses it for this and more, deploying and maintaining systems and application software to hundreds of servers in a sprawling, complex enterprise. Surely it's up to the task of automating updates to my haiku archive.
So here's what it needs to do: 1) detect a new email sent to my haiku archive address, 2) convert the email into a format readable and searchable on my website, and 3) append it to the existing data. Pretty easy, huh?
To do this, I'm going to need to know puppet much better than I do now. Like most lazy sys admins (which I realize might be a redundant term), I tend to copy an existing puppet configuration file and modify it for my own use. The puppet ecosystem we use in my workplace was put together by another team and handed to us. I've never built it out from scratch.
HyperMail is still available for free download from SourceForge, but it hasn't been updated since 2004. Who knows whether or not it will continue to be available? Besides, now that the goal is a single repository of searchable content, there's no need to have an interim step consisting of converting individual emails to individual HTML files that are then concatenated into a text file. Instead, each email should be processed as it arrives, directly into a searchable format, and added to the existing repository.
Puppet will work with an ever-increasing number of tools, so as the technology changes, the puppet code can change with it. I'll use puppet to detect the new email and to orchestrate its inclusion into the archive. Under the hood, I have some ideas on how to replace HyperMail (ActiveMQ? RSS?), as well as alternatives to a flat text file (MySQL? NOSQL?). The PHP code would need to change in order to search a database instead of a text file, but maybe I'll use a programming language like Ruby instead.
I don't know how to do many of the things I've suggested above, but I can't wait to get started...
Friday, May 25, 2012
I hear your voice
and it’s taking longer and longer
to remember you’re not there.
it scares me to know
that I want to fall off that ledge
and will you back
that I can’t and won’t
I’m doing this
because I lost my perspective
at the bottom
of my favorite beer.
I’m doing this
because it hurts too much
to say goodbye.
Friday, May 04, 2012
what's in a name?
With a new grandchild born today, it’s time to determine how popular their names are. For reference, I went to the Social Security Administration’s Popular Baby Name website. Here is a list of my grandchildren’s names, along with the popularity of the name in 2010. The rankings only go up to 1,000.
Righteous (born in 2006): > 1000
Nevaeh (born in 2008): 25
Gabriel (born in 2008): 21
Charis (born in 2010): > 1000
Zoe (born in 2011): 31
Samara (born in 2012): 606
My name, incidentally, was 17th most popular in the year I was born, but was only ranked #178 in 2010.
Thursday, April 19, 2012
I was going to blog about the mid-April sunset as a metaphor for hope juxtaposed with the conclusion of another day. Instead, I’ll just look out my window on an unseasonably mild spring afternoon and write down what I observe.
spring sunset —
Tuesday, April 17, 2012
Walking my dog tonight, as I do five nights a week, I notice it’s getting darker later and later. Bonita’s age — she turns twelve next month — renders her more and more anxious to indulge herself in her favorite activity earlier and earlier. Tonight it was about a half hour past sunset, but still light enough to see the vapor trails from passing airplanes that are ubiquitous in the Suburbs. I had seen this phenomenon countless times before, but tonight it got me thinking, first of the classic song by Ride, and then a myriad images of things ephemeral...
news of his illness —
|design by may|