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

[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
[1] 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.