<![CDATA[Michael Bester]]> http://michaelbester.com The occasional thoughts and insights of Michael Bester, developer and musician. Tue, 05 Jun 2018 12:00:00 -0400 en-us [email protected] (Michael Bester) Copyright 2019 3600 <![CDATA[Unexpected]]> ( ) http://michaelbester.com/journal/unexpected http://michaelbester.com/journal/unexpected article Tue, 05 Jun 2018 12:00:00 -0400 Thanks to YouTube’s recommendation engine, I came across something which just floored me. It’s a clip from a 1965 Italian TV special called Chitarra, Amore Mio (“Guitar, My Love”).

In it, we are introduced to a modest, soft spoken man named Vittorio Camardese. We learn that he’s a doctor—a radiologist—working in San Filippo Hospital in Rome. Because of his work, he says he doesn’t travel to play music, despite all the stickers on his guitar case. The host asks him about a “particular technique” he uses when playing the guitar, and Dr. Camardese sheepishly says yes, he always plays this way, and that he is self taught. After a brief explanation and demonstration with a major scale, the host says “Let’s hear a piece”. The good doctor suggests a Mambo.

Then he plays…

I hope you watched that through to the end. I quite literally gasped the first time I saw it. This hit me hard on multiple levels.


When I was a kid, hearing the otherworldly sounds that Eddie Van Halen was able to coax out of an electric guitar for the first time transported me. I didn’t know sounds like that existed, much less that people could make them. I needed to learn how to do what he was doing. I soon got my first electric guitar and quickly learned about tapping. For the uninitiated, it’s a technique guitar players use where they tap notes on the fretboard with their picking hand, allowing them to play quick, wide interval arpeggios and lines, as well as percussive sounds. Eddie Van Halen uses it extensively and is widely considered to be a pioneer of the technique. When the first Van Halen album was released in 1978, guitarists everywhere were blown away when they heard what EVH could do with tapping. Many guitarists adopted the technique and some, like Steve Vai, took it even further than Eddie did.

For me, seeing what the humble autodidact, Doctor Camardese, was doing on his classical guitar, well over a decade before Eddie Van Halen popularized the technique, upended what I thought I knew about how this way of playing evolved.

Now, I’m not suggesting that Eddie Van Halen got it from hearing Dr. Camardese—he probably didn’t. As far as I can tell, aside from a few appearances on Italian Television, Camardese never recorded any of his playing and was unknown outside of Italy. Plus, there were other guitarists in the ’60s and ’70s who used versions of the technique in their own playing, albeit to a more limited degree than what either Van Halen or Camardese did. What fascinates me about this is the multiple discovery aspect of it, where disparate people can independently develop similar ideas more or less simultaneously.


The other thing that hit me about the video is that it’s a strong reminder that there is talent all around us that we don’t know about, or perhaps choose not to see. Most of Doctor Camardese’s patients likely never knew that he was a guitarist, much less that he was a mad genius at it. Perhaps his coworkers didn’t even know.

Every person you encounter has a story, most of which you have no idea about. Remembering that idea fosters empathy. To me, it also means that plenty of people have skills and talents we just don’t know, and I find that idea endlessly fascinating. Look out the window, see someone, anyone, and wonder what his or her talent could be. Their stories, their skills, have the potential to transport you, if only you knew what they are.

]]>
<![CDATA[Homenaje a Debussy]]> ( ) http://michaelbester.com/journal/homenaje-a-debussy http://michaelbester.com/journal/homenaje-a-debussy article Fri, 28 Aug 2015 00:56:00 -0400 Homenaje a Debussy (the full title of which is Homenaje sur Le Tombeau de Debussy, or Homage to the tomb of Debussy) was composed by Manuel de Falla in remembrance of the great impressionist composer, Claude Debussy in approximately 1920, or two years after Debussy’s passing.

As I read more about this piece, I’ve come to learn that the intentions of it are twofold. It is at once a dirge, funereal in feel, and it also should invoke the feel of a Habanera, which is a slow Cuban dance. On its face, the two sides of this dichotomy seem to be at odds with each other, as the feels of each are quite different. I mean, how do you play a solemn dance? I’m not sure I successfully invoked both in my interpretation here, but it is definitely food for thought as I explore this piece further.

]]>
<![CDATA[Sakura Variations]]> ( ) http://michaelbester.com/journal/sakura-variations http://michaelbester.com/journal/sakura-variations article Fri, 24 Jul 2015 18:03:00 -0400 Sakura (“Cherry Blossoms”) is a very well known Japanese folk song which evidently dates back about 400 years or so to the Edo period.

In his arrangement, Sakura Variations the Japanese guitarist and composer Yuquijiro Yocoh took the melody and set it against a counterpoint line. To that, he added 4 variations which are evidently intended to evoke the sound of a Koto by using playing techniques such plucked harmonics and tremolo. Certainly Yocoh’s best known work, Sakura Variations has earned its place as a popular piece in the classical guitar repertoire. I hope you enjoy my interpretation of it.

]]>
<![CDATA[Junto a tu Corazón]]> ( ) http://michaelbester.com/journal/junto-a-tu-corazon http://michaelbester.com/journal/junto-a-tu-corazon article Tue, 21 Jul 2015 23:43:00 -0400 I’ve started a project this month to get some of my guitar playing recorded. For now, I’ll be focussing on my classical playing, recording both solo guitar pieces as well as duos that I’ve been working on with my friend and fellow guitarist, Frank Papineau.

This first track, Junto a tu Corazón, composed by the Paraguayan guitar pioneer, Agustín Barrios, is a truly elegant, romantic waltz—one of the few composed specifically for classical guitar. It’s not a very widely played piece, which is a shame, because I think it is so lovely. On the other hand, the virtue of it not being widely played makes it all the more special for a performer to have in his or her repertoire.

]]>
<![CDATA[Remembering What's Important]]> ( ) http://michaelbester.com/journal/remembering-whats-important http://michaelbester.com/journal/remembering-whats-important article Thu, 03 Apr 2014 11:03:00 -0400 Today, Eric Meyer wrote about an unimaginably difficult situation that he and his family are dealing with:

We asked Rebecca to sit with us on the half-couch situated against the short wall of the child psychologist’s small office. She clambered up into Kat’s lap, facing toward me, looking at me sidelong with her unique mixture of shyness and impishness. I was already having trouble drawing my breath, arrested by her affection for and trust in us, and pierced by the knowledge of what we were about to do to her.

“Honey, we want to talk to you about something.”

Do take the time to read the whole post. Powerfully poignant and heartbreaking in its vulnerability, it reminds us what is really important in life. It isn’t work, nor is it gaining material possesions. All that falls away when what really matters is thrust in to such sharp relief. Go give the people you love a big hug and treasure the time you spend together with them. There is nothing more important.

]]>
<![CDATA[Online Homesteading]]> ( ) http://michaelbester.com/journal/online-homesteading http://michaelbester.com/journal/online-homesteading article Thu, 16 Jan 2014 11:10:00 -0500 Two Thousand Fourteen is the year we all take back ownership of our data, or so I’ve been hearing, anyway. Whether or not that is any sort of official marching order for content creators for this year, it is a sentiment I can get behind.

For those of us creating content that we post online, why do post so much of it only to services which we have little to no control over the fate of? Services that we can’t pay money to use—even if we wanted to—so they reserve the right to use our content in ways that may be unsettling to us. Of course, I’m talking about services like Twitter, Facebook, and Instagram (nobody really uses Google+, right?).

Is all that content we’re creating so ephemeral that it’s not worth hanging on to?

Of the services I listed, Twitter is the only one I use with any regularity. My relationship with it has been pretty durable, too. I’ve been posting there regularly since 2008. I find value in occasionally going back over my old tweets when I remember that I posted something I found interesting, something which I’d like to dig up again because I can’t quite remember it. The trouble is, Twitter’s search is useless for searching through your tweet archive. There are other options to help with this problem, but they are somewhat clumsy tools, in that they retrieve and keep copies of what was posted to Twitter. They still don’t provide you with a sense of ownership of the content you authored and posted.

When I look at the body of content I’ve produced and posted to Twitter over the past 6 years as a whole, I begin to look at each of those items in that corpus less as tweets and more as short notes. In this view, it doesn’t make much sense to me to have Twitter be the canonical source of that content, particularly if it something I’m posting which I think may come in useful at a later date. It’s something I, as its author, should have the original source of. Because of this, going forward, I’ll be posting these short notes in the Notes section on this site.

I still love Twitter, though, and don’t want to leave it behind. It’s still valuable to me as a broadcast platform and a place for public conversation. I’d still like to post—or, rather, syndicate—my short notes there. That’s why I’ve implemented POSSE for them.


The rest of this post is going to be a bit more nuts-and-bolts oriented, seasoned with implementation details. If that sort of thing makes your eyes glaze over, feel free to stop reading. I won’t be offended.


POSSE is not a particularly new idea. A clumsy acronym though it is, it stands for Post on your Own Site, Syndicate Elsewhere. I first came across this idea last month in a piece by Chloe Weil in which she describes implementing POSSE on her own site to post short, Tweet-like entries and syndicate them to Twitter. Chloe is not the first to do this, though. Tantek Çelik has been at it since early 2010, and others have followed suit, not only with Tweets, but full blog posts, too.

The sort of moving parts POSSE requires in order to function aren’t available by default in Statamic, my CMS for this site. It does, however, offer a fairly robust API which you can utilize to author your own add-ons (Statamic parlance for plugins). So over the past few weeks, I’ve cobbled together a workable system for syndicating my short notes to Twitter.

The first thing I did was to set up the Notes section. I wanted to pre-populate it with my existing Twitter archive, creating one entry for each tweet in the archive. Twitter offers each user the ability to request an archive of their tweet history, so I did exactly that. Within a few seconds, I had a bunch of JSON files, each representing a month’s worth of tweets. Since I wanted each tweet to be an individual entry in the notes section, and Statamic expects each entry to be a Markdown file, I pieced together a PHP script which read through the JSON files and generated a .md file for each tweet. I quickly had over 2,200 .md files which I dropped into the new notes section1 and voilà—instant tweet archive2!

Now that the Notes section will be the canonical source of useful3 short-form content I write going forward, I needed to set up a way to syndicate new posts to Twitter. In order to make it all work, there were a couple of things I needed in place:

  1. Set up a way to auto-generate titles and slugs for each note.
  2. The ability to set up a short link to the post.
  3. A mechanism to post the entry to Twitter as a new tweet.

The first point isn’t so much a necessity of POSSE, but rather, a need to reconcile the format of short post content with the needs of the CMS. Statamic requires each entry to have a title and a slug4, like a typical blog post. Tweets, and things that take a similar form to tweets, like the short notes, don’t typically get proper titles—it’s just the tweet/note text. As for the slug, in the case of a tweet, its slug is its ID, or identifier in the Twitter’s database. Since Statamic doesn’t use a database, you’ve got to provide a slug. To satisfy the CMS, I wrote a bit of JavaScript which truncates the first couple of words of the note into a title, and I generate a short unique slug based on the time the note is authored. It ends up looking something like KRyRb. Both are populated automatically by the JavaScript when I author a new note.

Moving on to the second point, one of the basic tenets of POSSE is the idea of original discovery. That is, when you post something and you syndicate it out, you provide some way to identify the original source of the content. Permashortlinks and their cousins, permashortcitations, are used to create references back to the original post. A permashortlink is a short URL points to the original post, typically rendered as a hyperlink. A permashortcitation is a unlinked, text only shortener of the permashortlink, and is included in a syndicated copy of a post when that copy of the post is displayed in its entirety. If you have a permashortlink like http://mub.io/KRyRb, the permashortcitation of it would look like (mub.io KRyRb)5. For the note at that permashortlink, you can see the permashortcitation in the POSSE‘d tweet.

Of course, to do that, I needed a short domain, so I purchased mub.io. I also needed a URL shortener service. In keeping with the ethos of owning your own content, I opted to build my own rather than tie the domain to an external URL shortener service. Once I had that up and running, I hooked into the publish event back in Statamic. I send the URL of the new post over to my domain shortener and get a short URL in return. It gets saved along with the post, as well as tacked onto the copy of the post that gets syndicated to Twitter. Which brings us to step 3.

If the post is short enough to be fully displayed as a tweet, the permashortcitation gets appended to the tweet, otherwise the permashortlink gets tacked on. This allows people who see the partial post as a tweet to follow the link back to the note on this site so they can read the whole thing. Of course, now that the tweet version of the post has been constructed, it needs to be posted to Twitter. I set up application-only auth credentials on Twitter so I could use its API to post new content to my timeline from this site. Using those credentials, I wrote a bit of PHP utilizing the awesome TwitterOAuth library which makes the post on my behalf when I publish a new note in Statamic. The response from that posting returns metadata about the new tweet, including its ID on Twitter. That ID gets saved along with the note so I can then create links to view, favorite, reply or retweet the syndicated tweet on Twitter from my original post.

Now that all that is in place, the process is complete. The note gets published here, it gets a shortlink and it gets syndicated out to Twitter. I have the original post in a Markdown file that I can keep as long as I have disk space to keep it on. POSSE, baby. It’s a bit of a rigmarole get it to work, but it feels good to have a sense of ownership.

I’ll refine the moving parts as I utilize this more, and am thinking of ways to POSSE more content, like my photos I post to Flickr. If you’ve done anything similar, I’d love to see it. Send me a tweet and let me know!


  1. I did have some reservations over the potential performance hit of a dropping a few thousand entry files into Statamic for it to chew through. I considered using a database in which to store the notes, but was pleasantly surprised to see that the speed to load the pages averages around 2 seconds. Not exactly blazing, but still acceptable for now. I’d still like it to be faster, though. As Fred suggested, this sort of thing is an edge case for Statamic, and it would probably perform best with a database. Given that Statamic’s philosophy is to be a flat file CMS, that doesn’t feel right to me. I’m more inclined to implement a caching layer rather than add a database as a sidecar to a Statamic site. 

  2. I’m not displaying @ replies in the short notes section, so that brought the archive of tweets I’m displaying from about 2250 down to around 1450. 

  3. I don’t intend to post everything I would normally tweet as a note. Retweets, @-replies to people, and silly tweets like this one will by in large still get posted directly on Twitter. Things which I think may be useful or interesting both now and at a later date will get posted here as a Note and POSSE‘d to Twitter. 

  4. The slug is the part of the URL, or address of a web page, that identifies a particular page within a section. In the case of this post, the section is journal and the slug is online-homesteading

  5. The whole point of the format of a permashortcitation is that it doesn’t get converted to a link when it gets posted on a service like Twitter. If you syndicate a post to another service, it’s poor form to include a fully fledged link to the original post if the reader isn’t going to see any additional content when they follow the link. If they really want to, they can copy the permashortcitation without the parenthesis and replace the space with a slash. That turns it into the permashortlink, which will bring the reader to the original post. 

]]>
<![CDATA[A man must constantly exceed his level]]> ( ) http://michaelbester.com/journal/a-man-must-constantly-exceed-his-level http://michaelbester.com/journal/a-man-must-constantly-exceed-his-level article Mon, 13 Jan 2014 11:10:00 -0500 I just came across this passage, and I think it’s terrific:

Bruce had me up to three miles a day, really at a good pace. We’d run the three miles in twenty-one or twenty-two minutes. Just under eight minutes a mile [Note: when running on his own in 1968, Lee would get his time down to six-and-a half minutes per mile]. So this morning he said to me “We’re going to go five.” I said, “Bruce, I can’t go five. I’m a helluva lot older than you are, and I can’t do five.” He said, “When we get to three, we’ll shift gears and it’s only two more and you’ll do it.” I said “Okay, hell, I’ll go for it.” So we get to three, we go into the fourth mile and I’m okay for three or four minutes, and then I really begin to give out. I’m tired, my heart’s pounding, I can’t go any more and so I say to him, “Bruce if I run any more,”—and we’re still running—”if I run any more I’m liable to have a heart attack and die.” He said, “Then die.” It made me so mad that I went the full five miles. Afterward I went to the shower and then I wanted to talk to him about it. I said, you know, “Why did you say that?” He said, “Because you might as well be dead. Seriously, if you always put limits on what you can do, physical or anything else, it’ll spread over into the rest of your life. It’ll spread into your work, into your morality, into your entire being. There are no limits. There are plateaus, but you must not stay there, you must go beyond them. If it kills you, it kills you. A man must constantly exceed his level.”

It’s from a book called The Art of Expressing the Human Body, which compiles notes and stories from Bruce Lee. While the quote may come off as sounding high-minded or too hardcore to take too seriously, I think that it’s a powerful thing to remember during those times you find yourself stagnating. For me, anyway, it’s the sort of mental kick in the ass I occaisionally need to push me forward during those moments.

]]>
<![CDATA[How do I "think in AngularJS" if I have a jQuery background?]]> ( ) http://michaelbester.com/journal/angular-js-for-jquery-developers http://michaelbester.com/journal/angular-js-for-jquery-developers article Tue, 26 Nov 2013 00:00:00 -0500 In recent months, I’ve worked on a few different projects which utilize AngularJS as their foundation upon which to build. The first one ended up being highly complex—and is still ongoing—and I was totally unfamiliar with utilizing Angular, or even how to think about using it effectively. Previously, my application programming experience centered on DOM manipulation, AJAX requests, callbacks and server side templates—not always utilizing jQuery specifically, but doing the kind of things that jQuery excels at. Coming from that mindset, it was a real struggle to get comfortable with Angular and begin to find my legs with it.

Through tutorials, trial and error, as well as dogged persistence, I eventually did find a level of ease and familiarity with Angular, but I wish I had found this Stack Overflow answer while I was learning the basics. One choice cut:

First know that single-page applications are applications. They’re not webpages. So we need to think like a server-side developer in addition to thinking like a client-side developer.

If you’re comfortable with jQuery, but you’re interested in learning Angular as well, go read the whole post. It’ll be well worth it.

]]>
<![CDATA[On being a Digital Craftsman]]> ( ) http://michaelbester.com/journal/on-being-a-digital-craftsman http://michaelbester.com/journal/on-being-a-digital-craftsman article Mon, 25 Nov 2013 00:00:00 -0500 I have, for some time now, considered myself to be a “craftsman” of code. In my Twitter bio, I’ve even been calling myself “A craftsman of fine digital goods”. By using that term, I intend to convey that I take a good measure of pride in the fact that on whatever project I’m currently working, I do my best to build interfaces that are a pleasure to use. That is, interfaces that help a user get their job done, and don’t get in the way by being showy or gimmicky. It also means that the code which I author to realize those interfaces is meticulous and rigorously written. Logically structured? Check. Namespaced to avoid scope collisions? Check. Thoroughly commented? Linted? Minimized for production? Check, check and check.

The use of the term “craft”—as well as its variants “hand crafted” and “craftsman”— arose in the collective consciousness of the web developer community perhaps 5 years ago as a synonym for “high quality”. Of course, I strive to produce the highest quality work I can in both my personal and my client’s projects, so I started to apply the word “craft” and its variants to my own work. I must admit that I hadn’t considered all the implications of what the word actually means.

I recently came across some posts1 which take critical views on the term and this particular application of it. They are The problems with ‘crafting’ code by Harry Roberts and I’m not a Craftsman by Mark Boulton. Together, they’ve made me consider more deeply the term which I’ve chosen as a convenient handle to represent the level of work I do and the pride with which I do it. Am I really accurately representing myself by calling myself a “craftsman”?

Among web development folks, in addition to denoting “quality”, I think the word “craft” and its variants also connote some gauzy, romanic notions of spending hours in a cozy workshop, whittling away at code to produce this perfect little, artisanal, one-of-a-kind handcrafted thing. Now that I consider the word in this light, it strikes me as sounding self-congratulatory, twee, and not really appropriate for the realities of the work we developers produce.

Most of my work day is spent doing contract development for clients. My clients expect that I deliver code that is efficient, fast, solid, robust, and scalable. They expect that I can turn their requirements into a functional product that adheres to those standards and do it reasonably quickly. While I’m fortunate to typically have a lot of latitude in my projects in which I can inject my own approaches methods and tastes, my clients couldn’t give a toss whether or not I “craft” my code. They only care that my code is clear, maintainable, and bulletproof.

While I’m not yet sure what the appropriate alternative to “craftsman” should be to describe development work of a certain quality, I do like the terminology used by Thomas Moser to describe himself and the people who work for his company.

…designers and builders of fine, solid wood furniture…

It’s earnest, unfussy and thoroughly appropriate for what they do. By using the adjectives fine and solid, it also connotes an easy, mature confidence in the idea that when you buy a piece of Thos. Moser furniture, you’ll enjoy using it, you’ll enjoy looking at it, and it will last you a lifetime.

So what is the most appropriate analogue to connote those ideas as they apply to development work? Am I a “designer and builder of fine, solid user interfaces”? Using the same adjectives is too facile and rings with a bit too much pretense to my ear. How about a “designer and builder of robust user interfaces”? Perhaps, but perhaps I should simply call myself a “designer and builder”, code the highest quality work that I can muster, and let the quality speak for itself.


  1. Via a retweet of this tweet by my colleague and pal, Chris Casciano

]]>