2012-05-03 The New Boy

When I was 9, we moved back to Africa after a stint in California and Oregon over 5 years. I went from my suburban Portland elementary school to a strict and proper British school where I was only referred to as The New Boy. It worked out okay; I'm not sure how long it took but soon enough I was David again. This is my first week at Vertigo, and I'm excited to step again into the role of The New Boy. I upgraded my JAPH to a "JAVH" commemorate the experience:

 
map{print "$_ "}
split(/\d/, 
        join('', 
               map /(\w)\w/gi, 
               qw(Jaubsctd1a Aenfogthhiejrk2b Vlemrmtniqgnov3c Hoapcqkresrt)
        )
);

personal
programming
vertigo
[0] Comments
2012-04-27 Everything Ends

They must often change who would be constant in happiness or wisdom.

From Confucius, Analects

Yesterday I said goodbye to Daktronics, my employer for the last 3.5 years. It was bittersweet. I’m excited for the future but there were many friendships I built in that time that I am leaving behind. Even though I got to work on some exciting projects like Australian Horse Racing systems and large scale IPTV, the thing I liked most of my work was the people around me.

After my goodbye email, I got a lot of kind notes in response. I treasure each one because even though we had performance reviews and official metrics, I think the best measure of performance is what your peers have to say. I can step away knowing that I made a mark and it was appreciated.

The future is on its way and I am looking forward to it. But until the full force of its impact I’ve got a little time to think about the last few years, the friendships I’m going to keep, and the lessons I will be carrying forward.

personal
[0] Comments
2012-04-16 Chase It

This is where so many people go wrong, the say "I don't have the talent, I never did... "

I say if you had the desire, you had the talent. What you didn't do was chase it.

A blurb from an interview with Janny Wurts, fantasy author, illustrator amongst other things.

personal
quote
[0] Comments
2012-04-13 The Real You

"The real deep down you is the whole universe
You are something the whole universe is doing
the same way a wave is something that the whole ocean is doing"

Sampled on Depth - Self Like Ocean

personal
quote
[0] Comments
2012-04-07 Confucius on Job Interviews

The Master said, 'Yu, shall I teach you what knowledge is? When you know a thing, to hold that you know it; and when you do not know a thing, to allow that you do not know it; - this is knowledge.'

From Confucius, Analects

quote
[0] Comments
2012-03-30 What's In a Name?

A superior man, in regard to what he does not know, shows a cautious reserve. If names be not correct, language is not in accordance with the truth of things. If language be not in accordance with the truth of things, affairs cannot be carried on to success. When affairs cannot be carried on to success, proprieties and music do not flourish. When proprieties and music do not flourish, punishments will not be properly awarded. When punishments are not properly awarded, the people do not know how to move hand or foot. Therefore a superior man considers it necessary that the names he uses may be spoken appropriately, and also that what he speaks may be carried out appropriately. What the superior man requires is just that in his words there may be nothing incorrect.

From Confucius, Analects

programming
quote
[0] Comments
2012-03-29 Trendy Typefaces

Consider your haircut in high school. Is that school photo one that you'd use as your headshot for publications?

From Thou Shall Not Use Comic Sans..., a little charmer I've been reading lately.

design
[0] Comments
2012-03-20 A RESTful L'esprit de l'escalier

I was asked about REST and it stopped me dead in my tracks. I have met people who have read Dr. Fielding’s dissertation and aren’t afraid to use it. I remembered Rob Conery’s recent blog post on the topic:

I don't know any single term more explosive and zeal-inducing than REST and "what it means to be RESTful".

I will dare to admit publicly that I’ve abused REST to ditch SOAP as a serialization format. I did not sit down and carefully think about resources or collections. I went operational. I have written things like:

    [ServiceContract(Namespace="http://foo.bar.baz", Name="ApplianceService")]
    public interface IApplianceService
    {
        [OperationContract]
        [WebGet(UriTemplate = "SwitchOn")]
        OperationStatus SwitchOn();

        [OperationContract]
        [WebGet(UriTemplate = "SwitchOff")]
        OperationStatus SwitchOff();

        [OperationContract]
        [WebGet(UriTemplate = "Time")]
        string GetTime();
    }

But I also appreciate beautiful RESTful APIs. I appreciate when people have taken the time to really understand something and make it beautiful. Especially in scenarios that are very clearly resource oriented, REST not only makes sense, it is a model of elegance. Some place between the hacks and the purists there is a zen like balance. Now, just to find it.

programming
[0] Comments
2012-03-14 The Dark Matter Developer Behind Me

Scott wrote a blog post about so called Dark Matter Developers. There are many valid points however I thought I'd lend my own experience with one of these developers who is utterly disinterested in conferences, blogs, and twitter.

He works like a fiend. His exploits are whispered in murmurs by other developers after he has left the room. He prefers C++ but uses C# when necessary. He will grudgingly use WCF for a RESTful service but will admit that he prefers writing things from scratch with HttpListener. It's not like he isn't on the web, I see him reading documentation on the MSDN library from time to time. I also saw him reading the ATOM spec because he needed to in order to implement it in full for a custom server.

There is a notion out there that the devs who don't look at blogs or treat the Program Manager for the products that they like as a celebrity are the slackers for whom programming is just a job. It might be true for some, even most. But in my experience, there are a large contingent of Dark Matter Developers who are fiendishly productive and utterly disinterested.

I'm not like the developer behind me but you better believe I respect him and try to learn from him whenever I get a chance. As a person who usually errs on the side of chasing every shiny new thing, he is a perfect foil, a reminder that being a good developer, more often than not, is to just Do The Work rather than follow trends or even new technologies that are not mature.

programming
[0] Comments
2012-01-11 Embracing RavenDB as t3rse

I have been having a lot of fun getting to know RavenDB. It started off with my first wanting to have a quick way to model some data for a prototype I was building at work but has blossomed into a core piece of a forthcoming t3rse application (to be announced!).

Ayende posted a few days ago on the process of embracing RavenDB and something he said really struck me:

In 1980, a 10 MB hard disk (that is in megabytes, about 2 songs or 3 pictures) cost around 4,000 $ US. Adjusting for inflation, that comes at about 11,000 $ US in today’s dollars. Just to compare, today a 10 MB of disk space would cost you about half a dollar.
It seems kind of crazy now to put those costs in terms of today's data, but it's true. The rest of the post is true as well and although I'm still a little shy (mainly because of my own learning curve at modelling data for this environment right) I think I'm going to start using RavenDB a lot more as a commodity and less as a curiosity/learning experiment.

Although he highlights it in the post (which I'm having trouble finding directly on the site - I read it in Google Reader) is how using NoSQL allows for a lot more flexibility with data structures. I could not agree more and can honestly say this has been one of the bigger pleasures of using it to this point.

programming
[0] Comments
2012-01-01 On 2012 1

A wish from Neil Gaiman

I hope that in this year to come, you make mistakes.

Because if you are making mistakes, then you are making new things, trying new things, learning, living, pushing yourself, changing yourself, changing your world. You're doing things you've never done before, and more importantly, you're Doing Something.

So that's my wish for you, and all of us, and my wish for myself. Make New Mistakes. Make glorious, amazing mistakes. Make mistakes nobody's ever made before. Don't freeze, don't stop, don't worry that it isn't good enough, or it isn't perfect, whatever it is: art, or love, or work or family or life.

Whatever it is you're scared of doing, Do it.

Make your mistakes, next year and forever.

Via Neil Gaiman

personal
quote
newyear
[1] Comments
2011-11-05 Perseverence

"If you are going through hell, keep going."

Winston Churchill

quote
[0] Comments
2011-11-01 Joi Ito On Leadership

Leadership today is about empowering those around you share your vision, embrace serendipity, have the courage to take risks and learn from failure rather than be crushed by it. Diversity must be embraced and organizational borders made porous. Assets such as intellectual property and lines of software code must not prevent aggressive agility. Organizations must be willing and able to pivot away from attachment to such assets lest these assets become liabilities holding back innovation and progress.

In this new world, leaders must be courageous, visionary and comfortable in an environment where control and complete knowledge are impossible and their pursuit futile and counterproductive.


More here.

quote
[0] Comments
2011-10-25 On Ideas 1

"... while ideas ultimately can be so powerful, they begin as fragile, barely formed thoughts, so easily missed, so easily compromised, so easily just squished."
- Jonathan Ive

quote
[0] Comments
2011-10-13 Service Oriented Architecture

Steve Yegge surfaced recently by inadvertently making a public post on the foibles of Google compared to his experience at Amazon. Well worth the read, some interesting data points for me:

  1. Bezos, for all the disparaging, demonstrated vision and strength of will to force Service Oriented, Platform style approaches across Amazon.
  2. The tension between "Accessibility" and "Security" is interesting. Most people I've worked with find it easier to be obsessed with the latter than the former
  3. Amazon got better at SOA over time

I once joined a big chorus of detractors when SOA was still more in the realm of hyped consultingware. But a careful reading shows not only the practical future that SOA meant at the time but also how an investment in something (I'm thinking HTML5 right now) early in the hype curve makes for big dividends after the fact.

programming
[2] Comments
2011-10-06 On Steve Jobs

I feel compelled tonight to join in the chorus of sadness over the passing of Steve Jobs. It is a rare event that a single person can touch so many lives and as a result we all share the loss. It is also sobering to see the truth of the fact that no matter what our station or accomplishments in life, death is an inevitability.

There is some well worn material circulating on Jobs, especially his commencement address at Stanford. But it seems like Jobs pops up everywhere if you read about technology at length and every encounter describes a gifted, obsessed and brilliant man.

One of the more inspirational encounters that I’m not sure will get as much airtime is Jobs legacy at Pixar. Jobs bought Pixar in 1986, long before the success of Toy Story and supported the company for many rough years as they sought to find an identity and become successful. Jobs could see their vision and their success, even when others like George Lucas had given up on them. Now we all revel in the success of Pixar but it was a 9 year journey before Toy Story achieved box office success. Those 9 years, all the ups and downs, were tempered by a vision of what could be; what would be.

As the obituaries are written about Jobs, the genius, the thought leader, the innovator, my thoughts will dwell on how the innovation was less in the day that he walked on stage in jeans and a black turtleneck and more in the times like his 9 years of keeping Pixar on life support because he believed in the work they were doing.

I will always be inspired by that. Thank you Steve Jobs.

[0] Comments
2011-09-30 Fast Fashion

The look of developers has been in circulation quite a bit recently. This Developers Life touched on it recently in an episode about "taste." Yesterday my friend sent me a blog post that referenced a Hacker News thread on the topic.

I joke around about the "IT Uniform" consisting of khaki pants and a polo (or plaid) shirt but behind the jokes is a sentiment that I wish I had a sense of self I could project better with my appearance. The truth is I haven't really shopped for clothes in a long time and when I do it's something safe, comfortable, and baggy enough to endure my battle of the bulge where my weight vacillates from a summer's worth of motivation to a winter's malcontented weight gain.

Sense of self should be the point, not buying products or looking like an advertisement in Details or Monocle. I notice how fashion icons, both male and female, seem to have a core that they stick to without need for drastic change: Michael Kors in his black seems to look sharp enough to the point where he can think and be productive and I love the fact that Anna Wintour hasn't really changed her hair in a long time. Before I give an overrated sense of my knowledge of the industry, my main sense is that there are people who dress as who they are and others who remain either tepid or confused. We get some baggy jeans and a safe plaid shirt or we shop from ads because it's safer to outsource the thinking of what our clothes should say about us.

As a developer, and more importantly as a person, I would want to understand what I want to say with my appearance and then choose an outfit that helps me do it. Maybe that's a suit. Maybe it's something comfortable and less formal. Mostly it's just something that gives the impression that I thought about it and paid attention to detail.

[0] Comments
2011-09-27 On Architecture 1

Like many software developers, I have more than a passing interest in architecture. Over the years I've taken lots of photos and been on a bunch of tours trying to understand that world of the built environment which had so long been invisible to me. I also developed a fascination with architectural form - mainly a Frank Gehry thing but extending beyond him to other architects who know how to push those dynamics and engage a person who finds themselves in front of their work.

I've recently caught myself wondering about that focus on physical form and realizing that much of the time it fits more into the category of decoration or sculptural expression. At its worst, it proclaims "look at me!"

For work I've been to a couple of stadiums in the last month (Target Field, KFC Yum! Center) and it has made me think that the kinds of problems an architect would run into with a facility like that tend to pose some interesting questions - a lot more interesting than a residence or small scale building. Questions like: how does one make it easy for 22,000 people to go to the bathroom? How is a building that large ventilated? How is each point in the building accessible given some maximum distance from an entrance? What kind of material is durable for that much use by that many people?

Although I will still enjoy looking at work that is sculptural and evocative, the more my eyes are opened the more I find the interesting questions asked and answered with work I previously overlooked.

personal
architecture
[0] Comments
2011-09-20 Good Software 1

Over the last months I've spent a lot of time thinking about good software. I've asked some close friends and coworkers for examples1 of what they think are good. Although the answers have far ranging there is one common thread in the reasoning for every one given: there is no mention or emphasis on how the software was made. Even for the most attuned developers this was a lesser matter. Most software was noted for its use and how well the user understood it rather than the style or approach in which it was delivered.

In the same passing months, like most developers, I find myself under siege by things which are either new, fashionable, or overlooked. The new is what comes with product cycles and innovation; things like the recently announced Windows 8. The fashionable is what's abuzz; going to "HTML5" or doing "SOA." While fashions may have value in their underpinnings, there is usually a beast of hype that creates cynicism in those of us who have lived through some previous wave of marketing related euphoria toward a technology that will change everything. The overlooked are usually valuable things that, although they have been around for some decent amount of time, escaped my notice. I have a long list of overlooked technologies that I want to experience at a deeper level.

As a developer, it's hard to balance the "good" with that steadily accumulating stream of new, fashionable and overlooked. I usually forget or minimize this disparity without data points that are a constant reminder. It's not hard to find data points. What I usually do is make a note of software in use when I'm either the primary user or close enough to see a person interact with it: when I'm a customer at my bank, when I'm at the check out counter and a clerk uses a point of sale system, or when I'm leveraging something surprises me with its utility.

The balance, for me, comes in those data points. At each one I realize that whether the software was written in Visual Basic or the most advanced Test Driven Development style, it makes no matter. My goal as a user for the software to serve my purpose.

Joel Spolsky, in an old essay on the topic of elegance, wrote:

"Unless [the users are] software reviewers for a living, they don’t really care about the software itself, and the more they notice it, the more annoyed they’re going to be."

My modest emphasis from Joel is that elegance is a component of software serving its purpose well and yet it is not always necessary in order for people to find real value. When I go to the bank and I notice the teller open up the VB6 or Windows Forms app that time forgot, aesthetics or elegance are much less in question than how quickly and easily they can perform their task at hand. It's interesting how many times a piece of software like this is rewritten and users complain it is not like "the old system."

This brings up one last point on the definition of good: it is largely in the eye (and, indeed, the use) of the user. As a person builds experience with software, despite design flaws or aesthetic problems, the software will become "good" or "good enough" as long as they are able to more accurately address the need the software is designed to fulfil. To be sure they'll have a list of things they wish were different but for situations like this an objective measure for "good" can come from their productivity.

I read a lot of fantasy fiction and not too long ago found myself surprised by a sentence in a blog post by George R.R. Martin, arguably one of the best living authors within the genre, on his writing process. He wrote: "I write with WordStar on a DOS machine, so that number is my own page count."

Dos. WordStar.

But my argument is that those are good pieces of software! Not because they were developed with Ruby or TDD or MVVM or SOA or HTML5, they are good, specifically for Mr. Martin because he understands them and can be fiendishly productive in that environment. It goes without saying that he's an anomaly (I can imagine how the publisher has to go to lengths to cater to the habits and preferences of a popular author) but it doesn't change the focus upon how something is used rather than how it is built.

As a developer, beyond the usual slogan to "focus on the user," my take away is to try to connect with use rather than the technology. All of the techniques I employ are in support of building things that people find useful. The best software is the kind in which a broad group of people can be productive. The best software is driven by its quality in addressing needs, not in the quality of its architecture. The wrong way to read this is that software architecture does not matter. It's not that simple. In the sense that the jury of your software will not care about it, it doesn't matter. In the sense that the goal of software architecture is to position you to focus on the user (make it durable, easy to make changes, etc...) then it is critical.

1People favored small scoped utilities: Linqpad, Evernote, YouSendIt as examples. I think this factors into my idea that these utilities can be well understood and are very productive in the singular tasks they address.

[0] Comments
2011-09-14 Endtroducing

I've had many identities on the web. When I first got on in 1993 as a young and unsure freshman in college it was typical to have a handle; an alias for the new identity one created for themselves online. I don't remember what I started with but over the years I've assumed identities under a bizarre caravan of names, names like Everyman, Hobbitwerk, Metadeveloper, Donkey Kong, Sophtwarez and Parse.

I can't shake the past. Look online hard enough and you'll see its remnants in places beyond my reach, locked into the past but as with everything on the internet, archived whether your posterity would have it or not.

And yet let this mark a new beginning. A line in the sand between what was and who I am now. t3rse (pronounced like the adjective terse) is inspired by the Perl programming language and the ability to express idiom and intent in short form. t3rse is all things David Seruyange; it is my programming projects, my services, my ideology and my nuances.

And who, pray tell, is David Seruyange? I am a software developer living in South Dakota. My Ugandan extraction is the story behind the last name. I've lived in many places, most recent before moving to South Dakota is southern California just shy of the city of Angels.

What is this blog about? This blog is about things I find interesting and the things that go on inside my head. That is what gives the symbol "t3rse" meaning. Robert Pirsig in his book Zen and the Art of Motorcycle Maintenance was writing about perfection and he said the following about getting to perfection in craft:

Some could ask, “Well, if I get around all those gumption traps, then will I have the thing licked?” The answer, of course, is no, you still haven’t got anything licked. You’ve got to live right too. It’s the way you live that predisposes you to avoid the traps and see the right facts. You want to know how to paint a perfect painting? It’s easy. Make yourself perfect and then just paint naturally. That’s the way all the experts do it. The making of a painting or the fixing of a motorcycle isn’t separate from the rest of your existence. If you’re a sloppy thinker the six days of the week you aren’t working on your machine, what trap avoidances, what gimmicks, can make you all of a sudden sharp on the seventh? It all goes together. … The real cycle you’re working on is a cycle called yourself. The machine that appears to be “out there” and the person that appears to be “in here” are not two separate things. They grow toward Quality or fall away from Quality together.

The motive behind this blog is to work on what's inside so that my outer self can benefit from processing what is on the inside. Part of that work is writing about it; being definitive, forcing an explanation so that the ephemeral thought can become a more concrete foothold on the path of being better. I hope other people find value in my efforts of doing so; I know this is a favor I've received from countless blog entries and web sites since those early days in my dorm room on a Powerbook 160.

personal
[0] Comments

Concept, design, and implementation by t3rse, © 2011 All Rights Reserved. Logo by Paul Hess.