Archive

Archive for the ‘Progress’ Category

Bonanzle: “The Best eBay Alternative They’ve Seen”

July 31st, 2008

An incredible accolade for a site that’s still technically in beta, Ecommerce Guide just named Bonanzle “The Best eBay Alternative They’ve Seen” in four years of reviewing eBay alternatives.  Pessimistic side of me says that an article this effusive is an open invitation for every Tom, Dick and Harry to quibble and point out the faults of Bonanzle (of which there are admittedly still several… we’re haven’t even officially launched yet, people), or question how Bonanzle can be called an “eBay alternative” when it doesn’t even do auctions.

That said, it’s hard to imagine this project going much better than it has so far.  While I’m fully aware that the hundreds of PHP eBay lookalikes are going to slowly start nibbling at what are now Bonanzle-only features, it’s comforting to know that they’re going to have to program those features in PHP (or maybe Java).

If you haven’t already, pay a visit to Bonanzle and cast your vote that Rails is an unfair advantage.

Bill Progress, Technology

Craigslist Buyer and Seller Paradise

May 21st, 2008

Bonanzle is aiming to be the Seattle Craigslist seller paradise by offering two sweet new features:

  1. Item importing. Items can be imported directly from Seattle Craigslist (or any other Craigslist, for that matter) by following the link to our Seattle Craigslist offer.
  2. 0 red tape account setup. You can test drive what it’s like to sell on Bonanzle without even setting up an account. I don’t think it could get much more simple if we tried.

Visit the link to see what Bonanzle is all about. The more people on the site, the more fun and addictive it shall become.

What is Bonanzle?

Bonanzle is an online marketplace for buying and selling goods faster while having more fun. We also aim to create the marketplace that is the most simple, yet powerful choice around.

Is Bonanzle a real word?

It is now. And it’s a verb. Bonanzle combines the wealth and excitement inherent in Bonanza (a large pocket of valuable mineral, or a source of prosperity), and the action implicit in -le (as in babble, burble, bustle). To Bonanzle is to spend quality time at an online space buying and selling goods, and meeting people.

What’s the launch plan?

In the month of May, we get as many items as possible on the site. Hopefully more than a thousand, hopefully from eBay and Craigslist refugees that are sick of complexity/fees, and who want a more immersive experience, respectively. On June 14th, the site opens to buyers. On June 21st, the great Bonanzle Bonanza happens (where as many booths as possible have a Bonanza on the same day). Sometime thereafter, we officially launch, depending on when the site achieves consistent stability and zippiness.

I care about the environment.  Does Bonanzle? 

Well that’s a loaded question if ever I heard one!  We run a carbon-offset surplus. At Bonanzle, our goal is to offset twice the carbon we create, so that we will actively reduce CO2 levels. And when you consider that environmental watchdog ClimateCounts.org gave both eBay and Amazon.com its lowest score for online businesses, it is pretty important that we go beyond offsetting just our own use. We know of no other online marketplace committed to offsetting double the carbon it uses. We believe this makes us the environmental leader amongst online sellers. And we feel pretty good about that.   But not so good that we’re going to relegate ourselves to advertising as a foofy environmental site.

Bill Progress, Technology , , , ,

Rails Internet Explorer Integration Guide

April 21st, 2008

After about nine months of blissful Firefox-only development, Bonanzle finally started down the long road to Internet Explorer-compatibility a couple months ago. Though I’ve met few web developers who like the process of supporting IE, browser statistics show that fully 50% of users are still on some version of it (IE 6 has about 30%, IE 7 around 25%), so it’s something we have to deal with. Having just about wrapped up our backporting, I thought I’d share a few observations and tips on the process.

First of all, for background, I had never really touched web development of any sort until about 9 months ago. At the beginning of the backport, we had nary opened IE to see how our site would fare in it. As you might guess, the answer was “not well.” Because Bonanzle is rife with rich Javascript, and we use CSS-based layouts, few of our 30-ish pages were IE-compatible at the start of our backport. Many of our most substantial pages could not even render in IE without spewing 10+ JS errors.

But with a couple tools and rules, the process of moving toward IE compatibility ended up becoming relatively straightforward, and even our most complex and nuanced functionality has now been coerced into IE compliance.

The most important lesson I would impart to aspiring web applications: use a Javascript library. Like all young Rails sites, we started with Prototype. Once we were ready to take the training wheels off, we started using jQuery. Our backport revealed that only about half of our handwritten JS code worked in IE without modification. Some but not all of our Prototype worked. And almost all the jQuery did.

There are plenty of pages already out on the web dedicated to the comparison of jQuery to Prototype, but suffice to say for our purposes, my relationship with Javascript was an antagonistic one until I met jQuery. Now, I almost look forward to writing JS. Being able to batch select elements using pure CSS selectors, not needing to check for nulls when accessing selectors, and being able to concisely make complex behaviors happen with concatenated method calls are all big reasons. The rich plugin architecture is an even bigger reason. There seemed to be no task too large or small for a cross-browser jQuery plugin. Some of our heavily utilized plugins included the drag and drop ui-*.js, the jqModal plugin, and the jquery delegate plugin. We also worked with a contractor who custom-wrote some jQuery plugins for us that, like all jQuery I’ve encountered, “just worked” in IE (well, after they worked in Firefox, but that’s easy to make happen with Firebug).

If you do choose to go the jQuery route in writing your site, do yourself a favor and look into the JS QueueSpring plugin — it’s discussed in the previous blog, and is ideal for binding jQuery behaviors with your DOM elements in a clean and fast-loading way.
As far as CSS goes, there is no easy way to sum up means by which to write CSS that is IE6/7 compatible. I think that for all but the most experienced web developers, it is an iterative process. What I can recommend are some tools to speed up your iterations. First of all, if you’re on Windows, you’ll need to be able to install the version of IE you don’t have (6 or 7). This is most easily done by downloading the IE virtual machines Microsoft provides on their site. These provide an out-of-the-box solution for running IE6 and IE7 side-by-side on your machine (not otherwise possible). They also come bundled with some of the best tools available for figuring out what you’re looking at in IE: the Web Developer toolbar and the Script debugger. The former is basically a wussy version of Firebug that allows you to mouse over elements and see their properties, but not modify those properties dynamically, the way Firebug allows. The latter is a fairly lame way to see what’s going on in your JS when IE encounters errors. For both IE6 and IE7, you’ll need to ensure that you allow Script Debugging, which is under Tools -> Internet Options -> Advanced.

If you’ve got a big project on your hands, you’ll probably find the Script Debugger to be too barren… from what I’ve seen, it doesn’t allow you to set breakpoints in an arbitrary file, it has no watch window, and you can’t edit code from within it. A better choice is to install Visual Studio and use that as your JS debugger. If you don’t have it, you can download a free, “text only” version of Visual Studio with Ruby in Steel. You can then uninstall the RiS if it’s not your cup of tea (though it should be), leaving Visual Studio installed.

That’s the basic framework of what we’ve used to get our site from IE crashfest to lovable huggable puppy dog. Hopefully this may start off you other intrepid cross-browser souls on your journey as well. May you be strong, and repeat after me… “only 12-20 months until IE6 is obsolete.”

Bill Progress, Rails, Technology

Bonanzle.com

November 26th, 2007

Oh yeah, and anothing thing!  Have you checked out bonanzle.com lately?  It’s looking like the programmer finally got some help with design…

Bill Progress

Inflection Point

August 30th, 2007

2-3 weeks.  That is apparently about how long it takes to reach the productivity inflection point with AJAX/Ruby on Rails/Javascript.  After spending many a day stumped on various problems that seemed like they ought to be “minor,” I found myself today refactoring our most complex controller from top to bottom, fixing a couple bugs, and having the damn thing improbably work.  Cool.  Maybe there’s something to this language.

In seriousness, most all of this week’s interviewees have expressed considerable curiosity in how RoR differs from the other scripting languages, and why we chose it.  I don’t know that I’m entirely qualified to compare it to “other languages” since my experience in both ASP and PHP has been purely C-like procedural goop written before I had OOP experience.  Though that does hint at the first difference I can confidently draw between the three languages:  whereas other languages tempt you at every turn to write ugly code, RoR takes MVC architecture and unit testing into its own hands to minimize the initial time penalty for writing clean code.

The database model conventions and migrations took some getting used to, but I am growing to appreciate them more as well.  There is sense and utility in having a memory version of your class that mirrors the database version of the class.  And it’s convenient to be able to quickly and easily commit a class instance in memory into its database counterpart.  I have never even attempted to do that in another language, but I know that last time I used ASP it wouldn’t have been easy, and I imagine that is probably still the case with them.

I’m also very fond of the gem packaging system that is used to add plugins to RoR.  Even with lowly DOS, installing a new plugin for one’s site is often as easy as “gem install pluginname.”

These are amongst the more superficial differences between the languages, but some of the easier ones to describe.  It feels a little bit jurassic to be debugging with a console again after having used Visual Studio debugging, but it works and you get used to it.   An applicant who I asked about PHP debugging wasn’t even sure if/what PHP debuggers existed, so I can’t imagine that the situation is radically better for PHP.  Though I doubt it’s worse.

So, on balance, I’m giving a thumbs up to the advantages of RoR over the other languages we could have chosen.  And this is after using it but a couple weeks.  I’m very much looking forward to seeing what I can get done with it once I truly learn to start think like a Ruby programmer.

Bill Progress, Technology

Thousands of Pieces

August 20th, 2007

Apologies, blog.

Clearly, there’s something of an inverse relationship working between how exciting my life and blog are at a given time.

Because while days pass without an entry on here, we are still full tilt in developing a working prototype of Bonanzle. bonanzlelogo.pngEvery day a new piece falls in place, but with what seems like thousands of pieces to assemble, a fully functioning and tested commerce site isn’t something that pops up when you turn around. Recently we have recruited an everyday web designer, and we have launched a search for another everyday web developer (hey ma, we’re on Monster!). I’m confident that if we can find the right person for this role, progress will be faster still.

Talking to Jordan today I compared the process of getting a project like this fully functional is like body building for the brain. It starts with a rush of adrenaline. Then you start getting stuff done. Every day we become stronger and smarter in the ways we get stuff done. Some days I can’t wait to get on whatever the task du jour is, some days notsomuch. But then I look behind at what we’ve done, and I realize that work accumulates and we’re on our way to building one hell of a thing. Beats watching late night TV.

Bill Progress

The Storm

July 20th, 2007

The storm of activity has begun, as we have finally found the web designer/scripter we need to finish the alpha push.  Without further ado, let me introduce (ahem)…. me!

I tried to do it otherwise.  The eMyth guy would surely have a cow about the entrepreneur/technician overlap, but at some point, I’ve found that the complexity of proposing deals to web designers in the relative absence of cashflow and a demonstrable user or technology base is just less efficient than getting my hands dirty in the Javascript/CSS/AJAX/Ruby/Rails/HTML.  And besides, most all of the contributors to the project so far have found me, not vice versa.

But I like learning, so I’m generally enjoying the web development experience so far.  Moving from console/application development to web development really does bring into focus the issue of “what satisfies you” as a developer?  I speculate that most people find the greatest satisfaction when they can use their creativity to make coolest possible stuff happen on their technology platform.  Web development has those overtones, but it seems to me to be just as involved “how to get your code to run on buggy browsers developed 10 years ago” as it is creative problem solving.  I don’t know who finds that satisfying, but as a means to an end, that’s what this game seems to be about.

Bill Progress

Be Wrong

July 12th, 2007

I love being wrong. Actually, check that, I hate being wrong. But I love finding out how and why I am being wrong.

When considering whether to undertake a new type of challenge, my guess is that “being wrong” is a big component of what makes people hesitate. Why?

In school, we all had regular opportunities to be wrong. Every test you took, you would probably be wrong on at least 10% of the answers. And there was no subjectivity; no “this seems wrong but it could just be me.” You simply didn’t “get” the test question, or you misunderstood the homework instructions, and you had to learn what had caused your reasoning flaw.

Graduating to a professional environment, it seems like the opportunities to be bona fide “wrong” are few and far between. Those who are regularly told they are “wrong” are often people who become disgruntled and leave their job. The rest of us glide happily along, forgetting what it was like to get a “C” on the final.

But what more fundamental component of personal growth is there than learning, and what more fundamental component of learning is there than experiencing failures? If you haven’t been exceedingly wrong at least six times in the last six months, I’ll bet you’re becoming less than your potential.

Bill Motivation, Progress, Rants

Lull Before the Storm

July 9th, 2007

Here it is.  Do you hear it?  It is the sound of nothing happening.  It is the sound that indicates that my video game is almost done, and has at long last provided a bit of that “end of project crunch” that the game industry has become famous for.

The game is preliminarily done tomorrow.  It’s done in final form a week or two after.

And that’s when this party really gets afoot.  Immediately following the conclusion of my regularly scheduled programming, two weeks of “vacation” follow.   And by “vacation,” I of course mean discussing, designing, and maybe even developing, if that’s what it takes, to put the legs on this here hobby horse.

Stay tuned…

Bill Progress

Buy! Buy! Buy!

July 4th, 2007

I think I’ve hit upon a pretty apt analogy for the ebb and flow of getting one’s business rolling. It is the very indicator used by millions of business the world over. It is the stock market.

200_year_stock_chart.gifFirst of all — and you won’t hear me admitting this again at any point in the near future — a lot of what comprises “success” is stupid luck. I have spent hundreds of hours recruiting our team to this point, and the best people we have all 1) came from different sources 2) did not find out about Bonanzle through any of the numerous postings I’ve made to sites like Jobster and the UW Career Center. People routinely ask me (and I routinely ask other people) how to find the best people for a project, and the generally accepted answer is that nobody’s got a clue. You just keep talking to people and eventually get lucky. The stock market analog is the (fairly common) incident where a lifelong financial analyst is beaten by the S&P 500. Even seasoned analysts can’t generally compete with luck.

Second, no single day is very indicative of the overall trend. I think this is one those principles you hear a lot when talking about entrepreneurialism without really understanding it. It’s often worded as “you should expect a lot of adversity and challenges to overcome,” but when you actually experience these “challenges” (or less nicely: failures) on a daily basis, it is easy to get discouraged and lose track of the overall upward trend. What it feels like is that every time you get traction with a new idea or new recruit or well-executed maneuver, it gets negated by the Looming Unforeseeable Obstacles. But, viewed objectively, a business only needs to have slightly less failures than it has successes to win. In the stock market (and in my stock market, fantasy basketball), the same is true: trend trumps daily blips.

And the correlate to both the first and second principle? That the best you can do for either your business or stock is to put yourself in the best possible position to succeed, cross your fingers, and pray to the law of averages for a break. Oh dearest law of averages always comes to the rescue of the worthy. But eventually.

Bill Entrepreneurship, Hiring, Motivation, Progress