Ship It! LIVEShip It! LIVE
home about services writing contact

We develop, test, and create fine software products, and design creative solutions to your problems.
The development of software is an intrinsically creative process. We are dedicated to improving our mastery of the art.
Links · RSS Feed
Popular Pages

I was amazed that these five chapters only take about 160 pages and yet tell you all you need to know about successful projects. I’ve experienced a lot of these problems myself, and so did/do you, ...
.. it is a really special feeling when you give someone a book and it changes the way they think and act. So I'm really pleased to have just finished reading a book that I know I'll be handing out ...
-Jeffery Fredrick
More practical advice from the pragmatic crew. This is another excellent book from the guys at Pragmatic. In this book Jared and William cover pragmatic project management with down to earth advic...
-Jack D. Herrington

Feed the Seed, with Some Help From Seinfeld! (Nov 5)
After my last blog posting I received email from an old friend who works at SAS and speaks on the NFJS tour. The email had a great tip that I wanted to pass on to you.

Here's a direct link to the Seinfeld Productivity Tip on LifeHacker.


That was a very well written and well timed post.

The first few paragraphs talks to all of us -- ok, most of us; and it is very true. I like the motivational ideas that you suggested. The challenge I face, however -- and I doubt that I am alone -- is to keep at it. A technique to help with that that you may have heard is the Seinfeld calendar. It is was created by Jerry Seinfeld as a productivity aid. The concept is very simple

You print out a calendar month starting with today.

Set a goal of something that you want to do -- LOTY, lifting weights, running, whatever.

Now, Do something on that topic. Today. Something. Anything. OK, now put a big red X on today's date.

Rinse and repeat. Tomorrow. And the day after.

Pretty soon you see a row of X's. And somehow you don't want to break the chain. And that keeps you going.

The concept is deceptively simple -- but effective.

Keep the posts coming ;-)


Enjoy! And 'feed the seed' every day.

Category: Misc

Feed the Seed (Oct 29)

I've been seeing, in my own life and others, a powerful principal at work. It is extremely powerful, very well-known, and often forgotten. So in this blog post, I'm not trying to educate, but to remind.

"Use it or lose it" is a common saying. Whatever skills you value, from speaking a foreign language to creating art, you must exercise those skills to keep them in top shape. We know instinctively that if we stop lifting weights we lose some of our muscle's size quickly.

Unfortunately that's where most of us stop the thought process. If we don't exercise, we're not at our peak. We're still good though.. just not perfect. Right? Wrong.

We forget that an unused muscle begins to atrophy immediately and continues to wither. You know this if you've ever had your leg or arm in a cast. When the cast was finally removed, you were shocked at the size of your injured limb. The forced inaction had cost you more muscle than you realized was possible. But where does it end? How much damage do we pay for neglecting our skills?

It depends. The skills in our life are easier to ignore than muscles. We don't have to put them in a cast to have them slowly die. Muscles (usually) get a small amount of exercise when go through our daily routine, but we rarely practice forgotten skills as we move through a day.

Eventually a neglected arm atrophies to the point of no return. It becomes useless and can't be recovered. The same happens to our skills.

It's like the grass in our lawns or the vegetables in our gardens. If we don't water them, they die. If we water and fertilize them, they live.

At the end of the day, we all invest time into what we value. It's easy and cheap to plant a "seed," but it takes a great deal of the work to grow until it can be harvested. We all plant a lot of seeds in our life, but only the ones that we invest our time, and ultimately our lives, into are the ones that will ever come to fruition.

To put it another way, feed the seeds you value. Any seed you neglect will certainly atrophy, and probably die. Random time investments are usually feeding the weeds.

Here are a few ideas for us to consider watering in our own lives.

  • LOTY - Language of the year... are you learning a new programming language this year, or are you letting that part of your brain get weaker?
  • Get in shape. Run a 5k at a conference.
  • TOTY - Technology of the year. Still using last year's cool new tech? Pick up something new (like the hot new Java Rails clone, Play)
  • A new operating system. Between Virtual Box and Linux Mint, you've got no real excuse. (My Mother is a Mint user!!)
  • Write - Have you always wanted to write a book? Now's the time to start! Hit the Pragmatic Programmer's November Writing Challege
  • ...
  • Obviously I could add to this list for a while... and we all need to pick what matters most to us.

    The reminder I leave with you is simple. Pick your seeds carefully. Water them faithfully. Make sure you've got something worth the harvest.

    Category: Misc

    The Engine Yard Challenge is Over (Jul 22)
    For those of you who missed it, Engine Yard sponsored a contest that involved cracking (or attempting to find a collision match) of a SHA1 hash. For the price of an iPhone or two, and credits on their own cluster, they captured a small army of developers and an insane amount of mind share.

    One of the big surprises was the emergence of the GPU as a huge factor. I've been excited about the potential of various GPU wrappers for a while now, but it was cool seeing them in action. For certain operations, the video card processors are insanely fast. Nvidia's CUDA was first to the scene, but Intel, ATI, and even Apple have their own wrappers. Write your code in C, but use the multiple pipelined, insanely fast GPUs. No specialized graphics experience needed. (Is this why current Apple laptops have two video cards in them?)

    Here are a few links to stir your imagination.

    Engine Yard's winners page

    A very nice summary and write-up of one person's efforts. BTW, he tells you how he got 690,822,188 hashes/second on one machine's video cards.

    Another competitor's Flickr pic of his results, separated by GPU and CPU.

    A few teams even released a browser based engine for distributed cracking. Very, very cool, but too slow to be really competitive.

    I started on a small effort myself, but I wrote it in Ruby, and it generated and tested a million sha1 hashes in the insanely slow time of 3.5 seconds. Not even worth reporting on. I did have quite a bit of fun thinking about the approach, and coming up with some very pragmatic trade offs. For example, if you know you can't come up with a solution that let's you cover the entire solution space, there's no point it spending hours on a perfect solution. (The contest only had 30 hours of run time.) I started to integrate the Polaris SSH C library, but decided to just code for fun instead. In hindsight, I should've gotten the C code embedded.

    Also, I used half a dozen virtual machine instances at Mosso/Rackspace. At 1.5 cents an hour, it's easier than dragging my old dual Opteron out of the closet!

    So when's the last time your company put out a thousand dollars or so, and got a few thousand developers to think about something interesting?

    And when's the last time ~you~ looked at something non-traditional, like GPUs, for your high performance computing?

    Category: Misc

    Career 2.0: Take Control of Your Life is now available! (Feb 17)
    After a month of working overtime on evenings and weekends, the Career 2.0: Take Control of Your Life book is now available for purchase! You can find it on ( link) now, and it'll be on Amazon in a few months.

    Support independent publishing: buy this book on Lulu.

    The content in the book was shaped by the feedback and blog entries from so many people... I sat down and tried to figure out how many people I'd given the Career 2.0 talk/keynote and realized it was (conservatively) over two thousand people! And after nearly every talk a few people came up to share a new idea, or a better example, or to ask why I hadn't added in this or that idea. The talk has really grown, and this is the culmination.

    But it's not done either... given how works, I can upload and entirely new version of the book in about 10 minutes, and you'll get the latest version. So I'll be fixing typos as they're reported. The time line to finish the book was so tight that I've still get reviews I haven't had time to incorporate. We're close to getting them all fixed though.

    One addition that's been getting rave reviews is the "Rogue's Gallery" appendix. I received so many great career stories from people that I couldn't fit them into the book as sidebars as I'd planned. Cutting down content from Neal Ford or Venkat Subramaniam is hard! Which part do you take out? So I added in an appendix with the best stories I received. Whether you're reading about Chad Fowler or Nathaniel T. Schutta, I think you'll find more gold in their stories and advice.

    If you've been thinking about your career, or job, in these times, I'd really encourage you to check out Career 2.0. I hope it'll remind you of what you knew you should be doing, and provide new ideas and directions as well.

    New content will also be pushed out to the Career 2.0 blog as well.

    See you there!

    p.s. rumor has it that Chad Fowler's new book, The Passionate Programmer: Creating a Remarkable Career in Software Development is coming up soon as well!

    Category: Misc

    Career Survey (Jan 5)
    The upcoming Career 2.0 book is in high gear, but we'd like to include more than our experiences. Over on the Career 2.0 blog we've posted a few questions about your career. Best moves, worst experience, etc.

    Please drop by and let us know, or send Matt or me email. We're hoping to gather nuggets of wisdom for the book, but we won't quote you without permission. ;)

    What's your strategy?

    Category: Misc

    MSI Wind: Kubuntu 8.10 (Dec 16)
    It took me some time this evening, and some helping/shaming by Dan Hinojosa, but I got X running on 2 monitors nicely on the MSI Wind. So I'm posting the xorg.conf details so I can find it next time I need it. :)

    First, to conserve memory, X caps itself at the maximum resolution of the monitors it sees when it's starting. You fix that by adding the "Virtual" section to your Display block.

    And in the "Device" block I added a few performance tweaks I found on the web.

    It's still not as snappy as I'd like (and as I'm sure it can be). Anyone spot anything else I can add?

    Section "Device" Identifier "Configured Video Device" Option "AccelMethod" "exa" #Option "AccelMethod" "xaa" #Option "MigrationHeuristic" "greedy" # mess up systray Option "FramebufferCompression" EndSection Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" SubSection "Display" Virtual 2464 1500 EndSubSection EndSection

    I'm amazed at how small the config is these days. Nearly everything is autodetected. I'm running the external monitor at 1440x900 and the laptop at 1024x600. Once you get the Virtual setting in place, the packaged GUI works fine.

    If you are having trouble, I suggest you try out xrandr. It provides the error messages the GUI tends to suppress.

    Category: Misc

    Kobe Steak in Dirty Newspaper (Oct 21)
    Soft skills matter more than many of us realize. I'm working on a part of the Career 2.0 book dealing with public speaking and realizing all over again how important this topic is.

    How often have you tried to introduce a new idea or technology at work and been shut down? Who's fault is it that no-one listened? I'd suggest it could be your fault, although it's easier to blame the audience.

    As the "presenter" in this scenario, it's your job to find a way to reach your audience. If you've never taken the time to learn the basics of presenting and communicating then you've got no-one to blame but yourself when you do a poor job selling the idea.

    Here's another way to think about it. Imagine you're at a nice restaurant and order a very expensive Kobe steak. When your waiter delivers it to your table you see it's cooked perfectly, smells great, and just looks incredible. Except for one detail: it's wrapped in a dirty, oily piece of newspaper. It looks like someone picked it up from the alley behind the restaurant, from a puddle of smelly water that leaked out of the dumpster.

    Are you still going to eat that steak?

    Of course not. And that's the same problem you have when you present a great technical idea without bothering to learn how to present it well. It's a rare manager who's willing to peel away the newspaper and still eat the steak.

    Category: Misc

    Put the Trip It Badge on my About Page (Oct 7)
    I really like the Trip It badge, but it's a bit too large for any of the spaces on the front page... so I've put it on the About page.

    Category: Misc

    Training: Deadlines Approaching and New Announcements (Sep 23)
    Two quick announcements.

    First, there's a new class coming. It's a product owner course... this isn't one of the certified Scrum courses... it's about creating good stories, managing the backlog, etc. It'll be in North Carolina, but we'll take it on the road soon.

    You can register at Product Owner Training.

    Secondly, the early bird discount deadline is approaching for the test automation class in DC. Register before the 26th to get the discount.

    More details can be found here: Testing Automation in DC

    Category: Misc

    Trip It Blog Badge (Sep 17)
    I might put this in blog long term, but wanted to experiment with Trip It's new blog badge feature.

    Category: Misc

    Previous page Next page

© 2007 Agile Artisans.