Greetings,
There’s an interesting few blog posts going on about folks who work really hard. It started from Jason Calacanis’s article of tips on how to save money when running a startup (many of which are good, but #11 is ‘Fire people who are not workaholics…’) and that was picked up at the 37signals SvN blog which comes out strongly against workaholics.

As with everything else, it’s not that simple…

In the successful startups I’ve worked at, a core of people staying late, working long hours, was a symptom of having an idea that people can believe in.

I have not seen any very successful startups where the developers weren’t at least a little monomaniacal about their work.

On the contrary, I’ve been at two successful startups (defined here as wildly successful IPO’s) where having those fanatic developers was a core reason of why they were successful.

The people who were putting in overwhelming hours at those companies weren’t doing it because they’re workaholics. They were doing it because they were true believers. Both in the company itself and the product they were building.

It’s not about the workaholics making the company successful, it’s about the company being one that the employees can believe in, to the point of _wanting_ to be there, wanting to be making it better.

In those cases, you don’t fire the people who are passionate about building your company. You support them, and accept that they’re going to crash occasionally, and try to nerf the crash some…

In my experience, it’s the fervent employees who are the core of successful startups. This was true at McAfee Associates (went public in 1992), and PayPal (went public in 2002), both successful startups that I was part of.

You also need people who aren’t as fervent, who can see a wider view, so it’s always a balance. So you can’t really ‘fire’ either of them, out of hand.

I’ve been that true believer, focusing everything into a job or project that I deeply care about. I’m a much calmer, more balanced person now, though. We’ll see what happens in 2012… 🙂

— Morgan


January 2nd, 2008

A son.

Greetings,

I have an important personal announcement!

My wife and I have a baby on the way; he is due in early May!

(The linked post also includes details on what I’m working on for JBidwatcher2.)

As I say in the post, we’re incredibly excited, and a bit scared. It’s going to be an amazing journey.

I’ll post more about it later, but it’s…well, it’s been incredible and wonderful, and terrifying and astonishing.

I’m not entirely sure I’ll know how to be a good father, having lacked that particular role model in my own life, but I’m sure going to try.

The joy and thankfulness of a new year is upon me, and the vast majority of it surrounds my wonderful wife and our growing baby-to-be.

Happy New Year to all, and best wishes for a great 2008!

— Morgan Schweers, CyberFOX!


Greetings,

I want to start by making it clear that I know why testing is good, and that it’s really important, but I think that the TDD proponents are glossing over the most difficult part of a project.

I would very much like someone to address the issue of modifying code that is not new, and not already perfectly tested (or even completely specified!).  That is to say, the vast majority of actual code out there.

TDD is intensely focused on the early development phase (or at least TDD proponents are), and on writing new code, as opposed to what the majority of software developers actually do; maintain and update existing code.

It’s really straightforward (and fun!) to write entirely new code in the TDD fashion.  I’ve done it for about 3 decent sized projects now (one Java and two Rails), and it can be really pleasant, and a great focusing tool.  No arguments there; when you do it from the start, it’s really wonderful.

On the other hand, when you’re making incremental changes here and there throughout a very large, pre-existing, only partially tested codebase, it’s vastly less pleasant to try and do it test-first.

The Ruby Autotest tool is not such a pleasant tool at that point.  You stop wanting to write failing tests, because fixing it means autotest is going to try to do a full retest, which sucks for developer flow…  Even if your tests take ‘only’ 5 minutes to run, breaking a test makes you wince, and writing a failing test and then fixing it is for masochists only (and ones who want to miss the project milestones at that).

The focus of every presentation (this one included) I’ve seen on TDD being on the start of a project makes me wonder why nobody’s talking about later in projects…

Nearly every developer out there is going to face a large codebase with poor testing coverage, and will have to make changes that aren’t entirely new code, to existing code that isn’t entirely tested.  Does TDD have a solution for the ‘large, crufty codebase’, or is it suited only for 1.0 versions, small projects, and projects that were TDD from the start?

This isn’t really a rhetorical question for me.  I really want to get my organization’s culture more oriented towards testing.  I’ve got buy-in from lots of people that when they’re writing new modules and services, they’ll do it test-first (or at least ‘test around the same time as the code’, which is all I can ask for at this point), and that’s great.  But has anybody developed any tools to make TDD better suited to maintenance and improving existing code?

—  Morgan

p.s.  I’m skipping BDD entirely, because BDD is so hardcore in the ‘only for already very well specified solutions’ camp, that it’s meaningless for this question.  I’m also using ‘TDD’ and ‘test-first’ interchangeably, and I probably shouldn’t be.

p.p.s.  The title refers to how in Logans Run, everybody was destroyed at 30, so there weren’t any old people. In the world of TDD (or at least TDD presentations), there are no old projects, every one is fresh and new, so the issues that come with an old code base are never addressed.


Greetings,
This is in response to:
http://wabisabilabi.blogspot.com/2007/05/when-vendors-get-nuts.html
“When vendors get nuts”

I’m not sure I deserve the shout-out from Kelly G, but I appreciate it! 🙂

To address one point in the post, though, you have to step back a minute and remember that those McAfee posts are probably made by one of their devs.  They’re human and, while it’s been over 13 years since I’ve been anywhere near there, they probably wish that the company was unnecessary as much as we did back then.

We (meaning I) always used to dream (not fear!) that Microsoft would destroy the anti-virus business by actually implementing a good file and disk security system in DOS…only in nightmares did we imagine that it’d be 2007 and this crap would still be around.  I lay most of the blame at Microsoft’s door, for some fundamental design failures (too-easy blending of data and code), but it’s also possible we didn’t do enough to evangelize TO the OS vendors.

Still, shareholders be damned; for the people in the trenches of anti-virus work, what many REALLY wanted is the world to be a better place, so our software wasn’t necessary.

It was often quite exciting work, and I freely admit I made a small bundle out of it (not anywhere near as much as some, and I got screwed by the IRS in the end!), but there was always that thought of, ‘I wish these twits would stop writing this crap.’

Every single time you talk to a customer (which even devs did back then) it was driven home once more how much heartache viruses caused people.

What I wouldn’t give to take every person who wants to write a virus because they think it’s ‘cool’, to sit on a customer support line for a few hours, talking to people who’ve been hurt by viruses.  🙁

I’ve never (before or after) been exactly a law-abiding citizen online, but after my experience at McAfee I had a very strong aversion to building things that can cause pain to others.

There are people who build viruses because they’re paid to, and there’s nothing really to be done about that, and there are people who don’t care about anybody because of psychological issues…
If you just think it’s cool, though…just imagine someone you cared about, losing all their data, because of what you’re doing.  Find a better hobby.

—  Morgan Schweers


June 15th, 2007

Almost home…

Greetings,

Five hours to home,

Five hours to go.

Five hours to drive us there…

Five hours too slow.

—  Morgan

Comments Off on Almost home…
Posted in road trip |

June 4th, 2007

The Daily Show!

Greetings,

Melissa and I got to see the Daily Show! June 4, 2007, with Ron Paul (the Republican’s Kucinich). Melissa found out about 2 days ago that tickets had become available, and we jumped on it. We got there in line about 3 hours early, and were about 10th in line.

It was AWESOME!

They had a warm-up with a comedian who came out and joked around with the audience, and then introduced Jon himself.

Jon was GREAT. I’m really happy we got to go and see it in person! It’s really just as long as the show, no retakes or anything.

We’re still giddy, it was a real blast!

— Morgan Schweers, CyberFOX!

Comments Off on The Daily Show!
Posted in politics, road trip |

Greetings,

I’m in New York.

Glen Cove, my home town, to be precise. Even more precisely, I’m staying at a mansion converted to a hotel that is one block away from the high school I graduated from. 🙂

I still remember the structure of Glen Cove (despite having never driven here), but most of the details are new… It’s a strange feeling coming back after about 14 years.

Anyhow, I’m off to show my wife around my old stomping grounds…
— Morgan Schweers, CyberFOX!

Comments Off on A Knife, a Fork, a Bottle and a Cork…
Posted in contemplation, road trip |

May 28th, 2007

George, WA

Greetings,

(Sorry, technical difficulties…pictures will have to be included later!)

So my wife and I are in the midst of a grand adventure, driving across the top of the country. Starting from Seattle, heading to New York, puttering around there for a few days, and heading home.

We left on Saturday, around 1pm, after saying good bye to our good friends who are watching our house and cat (whom we also said goodbye to). First, a stop at a local drugstore to pick up a chotsky to act as our talisman for the trip. We then started for the eastern half of Washington, with the fervent hope that we could get out of the state before the end of the day…

Cresting the Snoqualmie pass, there was a traffic advisory for just a few miles ahead…an accident had left a mess of traffic behind. A mess that mostly involved putting the car into Park, while still on the freeway (but by a beautiful lake!), and just waiting.

That seemed to clear up entirely all at once, without much of the slow growing back to speed that normal traffic jams get, so about an hour later we were moving at a decent clip again, and once again hopeful (although less so) that we’d make it out of the state.

At one point along the way, we saw a sign for ‘Wild Horses Monument’, and decided to take a breather and check it out. It was also a lookout point, which gave a beautiful view of the valley below. The main point of the monument, however, was a metal sculpture set up on the top of a nearby hill (with a very steep climb up to it) of a herd of horses along the hilltop, silhouetted against the sky. It’s very evocative, and worth a stop, although we decided it wasn’t worth climbing up to also…

Washington is a truly exquisite state, and the forests and lakes gave way to rolling farmland, and some neat traveler-friendly features. For example, for about 14 miles, someone decided to put signs on the fence beside the freeway, every odd while, with the name of the crops that were being grown at that particular point. Peas, Field and Sweet Corn, Potatoes, Wheat, and even Peppermint flew by.

And then things turned ugly. 🙂 In the back half of WA, we found a small town, whose city name in the ubiquitous green freeway signs, read simply, ‘George’. A few groans later, and we had reached this annoyingly named town… There, they had a business named ‘Valley Forge Fruits’, and ‘Martha’s Inn’, and the home of the Half-Ton Cherry Pie. *sigh*

We started punning (*I* started punning, I should say, despite physical threats against me, and it dragged out my wife’s competitive nature to respond with puns), and that brought us through a lot of the remainder of the state…

After reaching Spokane, and realizing that indeed, we would make it out of state (albeit barely), we made the decision to end in Couer d’Alene, ID. The small panhandle of Idaho was our stopping point for the first day.

Driving down the main street, the first thing we saw were a pair of Very Large feathers, like from a seagull, but scaled up to truck size. Confused, but dutifully camera-happy, we caught one of them in the camera, and moved on…

Also in Couer d’Alene was the large burger-hoisting Paul Bunyan cutout, which we dutifully took pictures in front of, and Melissa got an onion rings from the associated Paul Bunyan Famous Hamburger. (Mini-review: ‘Greasy and tasty as onion rings should be.‘)

Back to our hotel, across the street for some Outback (and a photo with the outsized alligator in front), and back to the hotel to crash…

Oh, and I finished about 1/2 of The Hobbit over the course of the day, another purchase in the drug store we started from.

All in all a good first day; out of the state, and the speed limit started being 75, which didn’t really change my driving, but more merely legitimized my normal speed.

Sunday was all about the Future Pot Roasts of America. 😉

— Morgan Schweers, CyberFOX!

Comments Off on George, WA
Posted in contemplation, road trip, weekend |

Greetings,

eBay recently launched their Bid Assistant, which acts similarly to JBidwatcher’s Multisniping feature, except without the sniping.

None the less, it’s good to see them adding features JBidwatcher had six years ago. 😉

Being serious for a moment, I’m actually really happy to see them do this. It’s a straightforward feature, and one they should have had long since. If they make it easy to use it’ll increase bid volumes, and thereby their end revenue. Speaking as an ex-employee, and a shareholder, this is great!

I always considered multisniping a ‘good for eBay’ feature, because it meant one bid could get applied to a number of items, without the user really intervening after the initial setup.

It’s also a hint that they might still be putting new ideas into their platform, which I’m very happy to see. It also ups the ante for programs like mine, to add more extensive algorithmic bidding. (e.g., ‘If I win this, THEN put a snipe on that, because if I can combine shipping I’d want them both…’)

What it is not, is sniping. Specifically:
You cannot schedule bids to be placed at a specific time.
The first version of JBidwatcher that included Multisniping was December 16, 2001, and is the earliest implementation of bid groups / multisniping / bid assistant functionality that I know of. It’s not world changing, but I’m proud of it. 🙂

Best of luck with your auctions!

— Morgan Schweers, CyberFOX!


Greetings,

I’ve put up the latest version, 1.0.1 of JBidwatcher.  It’s mainly a bug fix release.  It includes a few new features towards better documentation, error messages, and recognition of eBay states, and a new (still completely optional) approach to the eBay affiliate idea.

One of the important fixes has to do with a wording change; eBay changed ‘You have been outbid’ to ‘You’ve been outbid’, and JBidwatcher didn’t handle the wording change, reporting it as an ‘unknown error’.  Also eBay changed the text on their captcha pages, so JBidwatcher was failing logins for unknown reasons.  Now it should be better at recognizing those situations.

There was a sporadic startup failure when sorting by a currency-based column with unknown values in it, and saving and restarting.  I hope to have addressed that as well.

Very little UI has changed, although the internal FAQ has been enhanced a little, and a whole new FAQ has been put on the web site.  There is also a new community forum area that’s much better than the old SourceForge forums.  In fact, SourceForge is deprecated for everything except bug reports, feature requests, and CVS access to the source.

More information is available at the JBidwatcher 1.0.1 changelog.

  • Windows users can download a Windows executable!  (No installation required, it just runs!)
  • Mac OS X users can download an app.tar.gz.
    Download (it’ll automatically decompress) and double-click the .tar file to extract the Application!
  • You can also download the Java binary for any other platform, including Linux and Solaris.
    Launch with: java -Xmx512m -jar JBidWatcher-1.0.1.jar
  • As always, you can download the source and build it for yourself.

Best of luck with your auctions!

—  Morgan Schweers, CyberFOX!

Comments Off on JBidwatcher 1.0.1 is released
Posted in coding, ebay, jbidwatcher, sniping |