Mar 06

I moved offices and residences recently and took advantage of the opportunity to sell off a bunch of stuff. There were a handful of useful lessons that came from this experience and I wanted to post them here for the benefit of anyone else considering hosting a sale.

Maintain a page of thumbnails and post feeder ads

takeaway
This technique worked really well. The idea is to have every ad you make include a reference to a single page that lets someone quickly browse all your items. Each ad becomes a feeder to this central page so while you might advertise a desk on Craigslist you include a link at the bottom showing the other great stuff you have available. I setup a free Photobucket account and used it to host this page which I kept current with photos and prices of stuff that was still available. It made it really easy to take pics with my phone and populate it with items and remove them as they sold.

Distribution before merchandising

takeaway
It’s a daunting task when you realize exactly how much stuff you have to get rid of. The temptation is to immediately begin pricing and organizing things. Resist this. All the merchandising in the world is pointless if nobody shows up. Your first order of business should be to get people in the door and worry about the merchandising task only once you have the problem of shoppers.

The two most effective traffic generation activities for me were making physical signs to get foot traffic and doing the Craigslist ads. For signs I recommend the big bright cardstock at an office supply store, a fat magic marker and taping it to a box that you anchor with rocks. Figure out the closest main traffic arteries and place the signs strategically so they’re visible from both directions and so there’s a sign of the same color visible at every turn until they get there. Start early (6am) – you’d be surprised how many people are up at that hour and looking for yard sales (the majority of my foot traffic came before 10am). There’s seemingly a whole culture of people who drive around looking for these signs and scavenging at yard sales. And that leads to the next point:

For many it’s about the treasure hunt, not the savings

takeaway
I had the preconception that people go to a yard sales because they can get stuff cheap. What I learned is that a lot of the people are there not for the bargains but for the thrill of the treasure hunt and what they might find. Foot traffic brings the treasure hunters and Craigslist brings the bargain shoppers – you need both. Craigslist will help you clear the major items but if you’re like me then you have all kinds of other random crap that there’s no effective way to advertise but needs to go.

One person’s trash is another person’s treasure

takeaway
This is essentially a corollary to the above but it deserves its own mention. I had amassed a huge pile of stuff that I was planning to donate to a shelter; stuff that I figured had no chance of selling but that someone might be able to use. On more than one occasion people made offers for things in that pile: old birkenstocks, ratty jeans, kitchen items. What you consider worthless has value for others.

Traffic sources by effectiveness

takeaway
I asked every visitor how they found the sale. Here’s my best guess at the breakdown of traffic in terms of effectiveness (absolute dollar amount attributed to that traffic source):

  • Craigslist – $600
  • Facebook – $100
  • Signs – $250
  • Blog post – $300
  • In retrospect I should have splurged for the $20 to do an ad in the newspaper but I missed the boat on that.

    Phones aren’t just for calling – think SMS

    takeaway
    This only happened a few times but a couple people texted me. I had listed my cell phone on the Craigslist ads thinking some would call and the others would email but I learned some people prefer texting. If you list a number make sure to use one that can receive SMS messages.

    Time is the key factor

    takeaway
    This is an obvious one but it bears mention because it probably is the single biggest determinant of your profit: start the process as early as possible (not early as in the day, early as in a week before if you can). The more time you have the more you can experiment with higher prices and not get pressured into doing bad deals. I started two weeks in advance and tiered the sale into two phases: reasonable mode and firesale mode. As you near the final hour at which you have to be out your prices approach zero (and actually negative because disposal of stuff costs time/$$). Of course there is a point of diminishing returns at which time spent optimizing prices isn’t worth it. But having the more time available allows you to…

    Ratchet prices up: establish a floor then raise the roof

    takeaway
    Keep a log of all the people that have made offers. A low offer in the beginning may seem like something to ignore but that offer becomes valuable if you haven’t sold the item in the final hours. Also once you have a buyer at a certain price, jack the price on the ads and see if you can do better.

    Competing bids and courtesy

    takeaway
    So I royally blew a deal where I had a couple firefighters looking at buying all the office furniture. Another guy I had spoken with earlier showed up while we were negotiating price, raced over plunked money in my hand and walked off with the filing cabinet. The firefighters looked at each other and left without saying a word. The lesson there is if you know you have multiple people that are after the same item, make them aware of the fact. Establish a protocol for “first come, first serve.” I should have stopped file cabinet guy and given the firefighters the opportunity to do the deal as they had come first.

    Keep power supplies plugged into their devices

    takeaway

    This was just pure idiocy on my part but I made a pile of cables and electronics and allowed stuff to get mixed up. In the end I had a massive snarl of cables and devices where it was impossible to find the corresponding power device. Leave things plugged in and tape stuff together so it stays consolidated lest you wind up with this:

    Oh and with computers either wipe the hard drive or smash it. The couple bucks you may get from selling it is trivial if it compromises passwords or important personal data.

    Anyways, those are my takeaways. Hopefully some of this is useful if you’re looking to do a yard sale. I gotta say there is something extremely satisfying about clearing out a bunch of old items and getting cash for it. And negotiating (when it’s not critical) is actually a lot of fun.

    Jul 27

    HNSort.com is an app I threw together this weekend that allows readers to sort the stories on Hacker News by various criteria (rank, points, comments, title, domain, submitter, and age).

    This mini project spawned from two frustrations: 1) my dissatisfaction with the interface for reading the site 2) a desire to have an atomic project that I could complete and be done with in a weekend.

    I check HN periodically throughout the day in between tasks. But rather than reading every headline I skim the site to find the posts that are most important (as indicated by a high number of comments and points). Unfortunately there’s no easy way to find those gem posts, you end up having to sift through each post. So in the spirit of the site itself (ie. hacking stuff to make it work they way you want) I wrote a different interface for it. For anyone interested in the details I’ll explain below how the app works and the backstory on how I made it.

    hnsort

    The backstory

    The main goal was to get a convenient way to quickly find the gems on Hacker News without having to manually skim through each story. Ideally I wanted something that would work both on my computer as well as my iPhone. And as a bonus I thought it would be neat to expose it so others could use it, and in so doing provide us some cheap, targeted advertising for JumpBox to an audience that would appreciate it. I knew given the nature of the app that it would probably do well on HN itself.

    I looked briefly into what it would take to write a Greasemonkey FF extension but my javascript skills are wretched and even if I were able to make that work, it wouldn’t help for reading on the iPhone nor would there be any promo benefit to JumpBox. So I concluded it would need to be a mashup that was accessible via the web.

    There is no public API to HN so the first step was to create one using Dapper. This was the easiest part of the whole project. Their wizard makes it ridiculously easy to turn any webpage into a feed of XML, JSON, RSS, whatever you need. It took all of five minutes to make this dapp to produce a real-time XML feed of stories off their homepage. So far so good.

    The next thing I tried was to head over to Mindtouch and fire up a free express account and use their Mindtouch Core product to render the results in a sortable table. Again this took all of five minutes to produce this result which was promising but lacked the sorting capability. Unfortunately adding the sorting feature would prove to be significantly more difficult. After a few hours of tinkering with Dekiscript (their proprietary scripting language) I eventually gave up – I’m sure there is a way to iterate over an XML result set using Dekiscript but I certainly couldn’t figure it out even with a ton of good documentation.

    At this point I tried one last gasp effort to solve this using a free pre-made tool: I knew Google Spreadsheets had the ability to import XML and JSON feeds. And a Google Spreadsheet can be sorted six ways from Sunday so all good there. Hopeful about this avenue, I went and tinkered for about an hour trying to get the import to work per the Google documentation but sadly had to give up. Apparently Google just didn’t like the XML feed. Sigh.

    Having run out of options I decided at this point to dust off the Coldfusion skills and try to code this thing from scratch. What would have been ideal at this point would have been a JumpBox for Railo or BlueDragon. Instead I futzed around trying to find an online sandbox where I could develop without having to install anything on my Mac. I opened an account here but sadly the CFHTTP tag I needed to use was malfunctioning on their system. I then opened up a $5/mo hosting account with Hostek only to learn that they disable the CFDUMP tag which is key when developing with nested structures and result sets. I ended up installing the standalone developer CF server from Adobe on my Mac and making the site there.

    After a few hours of tinkering I had it consuming and displaying the results in a table. There was another hour of scrubbing and transforming the data so all the numbers were sortable. The last step was to add in the Tablesorter jQuery plugin. And the final result was exactly what I wanted: a simple HTML spreadsheet of all the articles on the homepage of HN. For you coders here’s the single page of code that handles everything.

    Granted this ended up occupying most of my weekend but it was a great exercise in learning about a bunch of different technologies. I submitted the page to Hacker News and it rose to #3 on the homepage last night with significant momentum. Sadly when I woke up this morning my provider had experienced a DNS outage rendering the site unreachable since last night and therefore cutting it down while it was in its prime. You only get one shot at the homepage of HN so I have no idea how people will find it now :-(

    But all in all a good learning experience with an output that I can (and will) use from now on for reading that site. At $5/mo it’s worth it to me for my personal use alone. And the good news is that it even works on the iPhone. If you’re a fan of HN try it for reading that site and tell me what you think.

    Apr 22

    I like to support artists as much as the next guy but the fact is when you’re in a startup what little money you earn goes towards essentials, not luxuries. But having bare walls is uninspiring and a few small comforts go a long way. So I came up with a fairly inexpensive method for solving this problem and figured a I might as well document it. My goal was to get a giant 6′x4′ color print of a beach scene on my bedroom wall for as cheaply as possible.  This is my $35, two-hour solution that yields a satisfactory (albeit somewhat ghetto) alternative to buying an enormous single-piece print for hundreds of dollars.

    Find the art

    So first you’ll need to find a digital photo to use that’s hi-res enough where it won’t look completely pixelated once you blow it up to scale. I used the Flickr search and scanned through hundreds of beach scenes before I found a couple I really liked. Sorting by “Most interesting” made the search quicker (btw, you have to click the “all sizes” link on each photo to find one that has a resolution of 2000 pixels or more). Once you have a pool of candidates then you have the difficult task of boiling it down to the right one.  I decided if this is going to be a photo I’ll be living with every day, it was worth “living with it” as wallpaper on my laptop first to see how I would like it over time. So I installed an app on my Mac called “Desklickr.”  This is  a neat little donationware app that lets you automatically swap your wallpaper periodically and feed it with your Flickr photos that you’ve favored. 

    Prep the art

    Once you decide on the one you want the next step is to cut it up.  Photoshop is the ideal tool. You’ll probably be printing panels of the scene on 8.5 x 11″ paper so first thing is to size the image appropriately.  Use the Image > Image Size option to scale it, uncheck Resample Image and set the width to the target width of the desired final print (in my case 6″ or 72 in). It will tell you your resolution (your res will be pre-ordained as it’s not resampling the image):resizeNext you need to grid out the scene and slice it up.  Whatever your individual panel size is (again mine was 8.5″x11″) make a selection box that is exactly that size and put it in the upper-left corner.  Make sure that under the View menu both Rulers and Snap are checked. Now all you do is drag the guides from the rulers across to the boundary of your select box. This is a little tedious but as long as you have the snap settings enabled it’s not bad – drag a ruler, then drag the box, drag a new ruler, etc.  Do this until you’ve gridded out the entire scene like so: 

    griddedNow you’ll have some scrap on the right and lower edges. Crop the picture until it has only full panes (in my case a 6×6 grid). If you want to make any color adjustments to the image, now is the time.  You can get crafty and use the paint effects if you’re looking to simulate a watercolor or pastel piece of art.  Once you have it looking the way you like, it’s time to slice it up.  My antiquated version of Photoshop has a slicing tool that unfortunately assumes you only ever want to output .gif files for use on a web site.  Gif’s mean unacceptable compression for our situation though so we’ll need to bring the image into Imageready and use the slicing feature there. Once in Imageready simply do Slices > Create Slices from Guides to get this:

    slices

    Do File > Save Optimized As and choose “Images Only” (as HTML has no place in the real world). That will output a bunch of .jpg’s in a directory. That’s all we need now in order to print it up.

    Print it

    I printed mine at Kinko’s. If you have the patience you can use their online print tool to send the job but there’s no convenient way to add a bunch of images in one step. I found the bandwidth of burning a disc and delivering it via car to be faster than their online tool for this job. I printed on standard paper and instructed them to cut the white strips off the sides so that there was no bleed.  The entire order of 36 color prints cost under $30. 

    Hang it

    materials

    The last step is to hang this sucker. This is the most time-consuming part of the project and to do it right requires that you lay down a grid on the wall to get it spaced correctly.  If only it was as simple as dragging guides in Photoshop…

    For this step you’ll need thumbtacks (ideally 4 for each pane plus some extras for doing the grid) and thread.  Figure out exactly where you want the print to live and make sure it’s right because once it’s up, it ain’t movin’.

    The best thing at this point is to tack up one or two of the panes and figure out the spacing you want between them. I found about a 2″ gap between them was right. Stub out a few and then mark the upper-right corner of each with a tack. Snake the thread back and forth making the evenly-spaced horizontal and vertical rows flush with the upper-left edge of each pane. You should get something roughly like this: 

    halfwayNow it’s just an exercise in pain tolerance as you plug ‘n chug through tacking in the rest of the panes.  WARNING: now is no time for pride, get a thimble (or a bottle cap if that endangers your ego- some kind of thumb protection).  Tacking 150 pins into a wall I’m pretty sure is a twisted form of torture reserved for special criminals –  your thumbs will hate you for it (mine do days later).  After a solid hour of tacking you’ll wind up with an end result something like: 

    final

    The one thing I might recommend in retrospect is doing a proof with the entire image shrunk down to a single page in order to test how the colors will translate. This image turned out a bit warmer than it appeared onscreen. Fortunately it’s a sunset so that only enhanced the glow of it but the only true way to know how colors will print is to print out a small scale version first. 

    There it is though: a starving entrepreneur’s pre-IPO substitute to expensive wall art. I’ll update this post with the post-IPO version someday ;-) Hopefully this helps a few other startup ramen eaters to fix their empty wall problem and get a much-needed relaxing beach scene on their wall to enjoy.

    Tagged with:
    Feb 20

    I can’t tell you how many times I’ve had a “dude where’s my car?” moment. I chalk it up to a perfect storm of missing neurons – having zero sense of navigation coupled with a general absent mindedness for things my brain considers to be mundane details. Fortunately though technology is improving fast enough to cover for my mental deficiencies.

    The latest firmware upgrade to the iPhone brought some neat features, one in particular I’ve found to be extremely valuable: the GPS-like ability to locate your current position on a map via cell tower triangulation. This was the killer app in my opinion for jailbreaking an iPhone before this upgrade to get the old Navizon app. I’m happy that Apple chose to include this feature in the core functionality of the iPhone so now I don’t have to futz with the jailbreaking headaches in order to use it.

    The most obvious use of the new cell triangulation feature is to be able to pick a destination and say “get me there from here.” But there’s another less-obvious use case I’ve discovered that when coupled with a technique that my buddy Josh Knowles invented, becomes super useful when you’re on the road.

    The problem: when you’re doing back-to-back trips to big cities and driving cookie-cutter yugo rental cars, things start to blur together. In the rush between meetings, the parking garages start to look the same and you forget what your current rental car looks like (let alone where you parked it). *An aside- the psychological explanation for this phenomenon is interference theory which basically says when things are similar enough yet slightly different, it completely confounds your short-term memory.

    This very situation happened to me a month ago when I was at MacWorld. I was in SF driving from the hotel pursuing a navigationally-adept MacWorld attendee in my crappy rental car trying to keep up and entirely oblivious to where we were going. I ended up parking in a garage somewhere near the Moscone Center on an unknown floor and following this guy to the show. I never mentally snapshotted where I had parked though and all I remembered about the car I was driving was that it was blue and cramped with manual windows and a cheesy stereo.

    The outcome of this frenzied cannonball run to MacWorld was that after the event I realized I was 3 blks away in some direction from a non-descript parking garage that had about 6-7 floors and a tiny blue car parked somewhere inside abutting one of the pylons. I was able to track down the right garage and the right floor and ultimately the car but not after first going through that desperation “crap i’ve lost my wallet” period and being thoroughly frustrated hunting for 45min.

    The solution: When you park your P.O.S. car, you can hit the “current location” button on your iPhone and then the “more options” button to drop a pin to mark your position. Depending on how dense the cell coverage is, the location feature is very accurate (within 100 feet). Next snap a photo with the iPhone’s camera so you have a mug shot of your vehicle with some landmark or unique feature in the background. You now have all the key info necessary to find your car without using any of your short-term memory.

    Now I realize this will seem like major nerd overkill to the ordinary person – and I don’t disagree. But for those of us who are missing those key neurons that enable navigation and remembering a series of similar-but-different details, this is a quick lifehack that can save some frustration.

    But more importantly, I see this as part of that “mind like water” goal of freeing up mental RAM from storing trivial details and offloading them into trusted repositories so we’re able to do our thing and not sweat the small stuff.

    Jan 03

    F$%# you Real Netwojerks. You killed a gem of a company this week when you forced Yottamusic to close its doors. This was a company that offered a free service that stood only to help you guys sell more accounts by making up for the inadequacies of your crappy web-based player. They made your service tolerable for people on Macs and also accessible for anyone working on multiple computers. The only flaw in their player was that which was introduced from the buggy Real player engine component that would occasionally crash the browser- and they probably would have figured out how to fix that too if you had just acquired those guys. How about instead of killing off the companies that are solving the inadequacies of your products, you focus your shareholder’s money on making your own stuff work?

    I’ve taken the liberty of rewriting your mission statement to bring it a bit more in line with the behavior you actually exhibit. One can only guess how many scarcity-minded middle-managers, SCO-trained lawyers and committees were behind this mistake. The smart move here that would have added value to your service and gained favor with your Mac user base would have been to acquire Yotta, put Luke in charge of your product dev team and replace all the crappy aspects of your service with the good stuff they created. You offer an API so presumably you’re interested in encouraging developers to extend your service and make it more useful? Way to send the exact opposite message to any potential developers who were thinking about doing so… instead you killed the guys that were using an API (albeit private) to create value. Rockin’ start to ‘08…

    I will be canceling my Rhapsody service and shorting your stock first thing in the morning. I would do both now but the market is closed and apparently you offer no way to cancel service via your web site. Nice barrier to exit there – introduce enough friction to leaving by forcing your users to call your CSR’s and wade through an automated phone system to cancel (can’t wait to run that human hamster maze tomorrow – F$%# you again Real Networks). Apparently I’m not the only one who feels strongly about how poorly you guys handled this situation.

    I can’t in good conscience continue to give money to a company that behaves this stupidly. Actually stupididity isn’t the word to describe this because that implies benign uninformed-ness and this is just plain evil. I have been hoping that Real and Apple would work out a deal to extend Rhapsody integration to Apple TV and the iPod- now Rhapsody has instead taken a colossal step backwards making it almost entirely unusable on the Mac. Idiocy. For anyone who plans to remain a Rhapsody user, here’s an option to make their service usable again by averting the repeated disruption of applications crashes: place-shift your service so you can listen to your Rhapsody music on an iPod or your Apple TV or your iTunes. Here’s how:

    1. Buy something like the Replay Music client that allows you to record streaming music.
    2. Rip your Rhapsody songs to your hard drive (complete with ID3 tags).
    3. Bring them into iTunes and tag with a playlist called “Rhapsody.”
    4. Evaluate the music in your car, at the gym, on your Apple TV, wherever and then decide what’s worth buying. Delete it when your done evaluating and purchase using iTunes or Amazon (not Rhapsody).

    This tactic of course opens up the potential for abuse and requires that you do the right thing and purchase the music you plan to keep and delete the stuff you’re don’t when you’re through vetting it. I don’t advocate stealing music. If you want to steal music it’s probably easier through Bit Torrent and Pirate Bay if that’s really your thing.

    Your welcome, Real, for educating your subscribers on how to make your service truly usable again and compensating for your inability to deliver a technology that doesn’t crash every 5 min. Now resume your nastiness and put some of that over-zealous legal staff back to work doing something detrimental to your business so I can make some money off your stock. Yahoo music here I come… it’s half the monthly price of Rhapsody and they have a risk-free 14 day trial apparently. Some useful reviews from people that compared the two services here, here and here if you’re thinking of switching.

    Sep 02

    For a quick way to tell if there’s charge left in a 9 volt battery, briefly touch the contacts together with your tongue. If there’s juice in the battery you’ll get a tiny shock (and a nasty metallic taste). It’s not enough voltage to hurt you but it’s definitely not pleasant and you wouldn’t want to test a bunch of batteries this way.

    I can’t remember exactly who showed me this technique but I’ve used it for years in checking gadgets like smoke detectors and guitar tuners. Sometimes the battery truly is dead but other times it’s just a matter of it having been jarred out of place and needing to reposition it so the contacts line up properly.

    preload preload preload