Still alive
Posted by Jeff in Uncategorized on July 9th, 2011
Despite the lack of posts on this blog, Nesota LLC is still alive and well. All of our attention has been focused on Blurity rather than on blogging here.
Since the last post here on the corporate blog, Blurity has undergone a complete UI design change and has received a totally new deblurring algorithm. The result is a deblurring tool that works a lot better, is much faster, and looks nicer.
At a higher level, Blurity is in the midst of a pivot, as the initial hypothesis about the market turned out to be incorrect. No shame in that; the distinction between a startup and a non-startup is that the former has yet to lock down the business model.
Got a trademark? Go phish.
It turns out that overseas scammers target more than just naive pensioners. They try to hit up businesses, too.
Last November, my friend Lyle suggested that I trademark the name of Nesota LLC’s main product, Blurity. If nothing else, a registered trademark would be a piece of property that could be useful in the event of a sale of the company. I thought it sounded like a good idea, or at least one that wouldn’t hurt, so I put the process in motion. Eight months later, the registration certificate arrived:
It didn’t take long for the sharks to smell blood.
In the span of a few weeks, I received several letters from various European locales, each of which made every attempt to look like official trademark registration forms.
They used mixtures of French and English. They had official-sounding names. They made vague promises of IP protection. And oh yes, they asked for money.
It seems that a bit less than US$3000 was the typical going rate. It was only in the smallest of the small type that the letters fessed up about not being official government agencies. In a strict sense, they were not phishing, since they did not impersonate a legitimate agency. However, in a practical sense, given the unfamiliarity of most Americans with European trademarks, the letters were effectively pretending to be the actual registrar, OHIM.
Nesota LLC is small enough that the thought of dropping a couple grand on a European trademark is a complete non-starter, but I have to imagine that slightly larger companies could be duped. Maybe an innocent admin would see the official-looking bill and think that she’s just doing her job by paying it. Empirically, there must be some suckers out there, because there are several groups sending out these Who’s-Who-type propositions.
If you’re in the position of acquiring trademarks, be vigilant. Cutting checks based on uncertainty is a quick way to financial ruin.
The thrill of the sale
Posted by Jeff in Uncategorized on March 13th, 2010
The first time my company sold something, it was a joyous occasion. Yes, the product (Blurity) was ugly, slow, and only barely useful. Yes, the customer was a personal friend (thanks Jim!), and I have to suspect that his motivation was more from good will than necessity. Still, it set me on my way, and my excitement was high.
Objects in motion tend to stay in motion, but something needs to start them on their way.
—
The first time my company sold something to somebody I did not know, I was so excited I could hardly sit still.
My phone buzzed, indicating a new email. I pulled it out of my pocket, popped open the email client, and found this message waiting for me:
Hi there,
Somebody made a purchase![]()
-The Blurity server
Hooray! I had programmed the application to email me when a purchase was made, so the format of the message was not surprising, but to see those code paths exercised in real life was a thrill.
I quickly checked the purchase data. Was it somebody I knew? No! A stranger!
A person found my product and found it useful enough to justify parting with their hard-earned money. Amazing! Incredible!
And a bit guilt-inducing, too.
Blurity was a bit less ugly by that point, a bit faster, and a bit higher quality, but it was still pretty awful. To say I was embarassed by the state of the product would be an understatement. At the same time, I was having a lot of fun doing the development. It all seemed wrong in a way, but I reminded myself that the customer made the purchase voluntarily. Besides, I’d give him a refund if he asked for one.
I honestly expected to get an email from the guy saying that he was expecting something different after the purchase, or that he made a mistake, or that I should feel guilty for getting paid to do something I enjoyed. But that message never came, and there never was a chargeback.
No product is perfect in its early days. An engineer has truly made the transition to businessman when he can accept that perfection in early releases is both unnecessary and unrealistic.
Ship or die. If you have to ask yourself if it’s good enough, it’s good enough.
—
The first time that a customer made a “legitimate” purchase, I was elated. By “legitimate” I mean, the customer was a stranger to me AND the processed image represented a significant improvement over the blurry original. (I monitor the uploaded photos in order to better understand what types of blur people want to remove.) Not only was the algorithm capable of making improvements to real-world photos, but others had implicitly agreed.
My analysis of the photos of other potential customers had led me to tweak Blurity to better handle those blurs. My analysis of their behaviors led to UI changes that simplified interaction and improved conversion rates.
If your expectations and the customers’ actions differ, change things until there is alignment.
—
The first time that customers made “legitimate” purchases on consecutive days, I felt like I was seeing the light at the end of the tunnel. What a thrill!
I think that all entrepreneurs are optimists, but there’s always a bit of self-doubt. Am I smart enough to do what I’m trying to do? Will it work even though I’m going against conventional wisdom? Will the market, the customers, notice and care? Can I pull it off before my capital runs out? A pattern of sales serves as terrific validation.
Once is happenstance. Twice is coincidence. Three times is a pattern.
—
Now, to look forward to the day of profitability…
Blurity, take two!
Posted by Jeff in Uncategorized on January 12th, 2010
After a few more months of hard work, most of it outside of the public eye, I am happy to announce Blurity 0.2. No, that’s not 2.0 — it’s 0.2, indicating that this is the much-improved second beta release.
Blurry photos, be gone!
Blurity has a new look, faster interaction, and — most importantly — a much-improved deblurring engine.
Is it perfect? No. Not by a long shot. But I do believe that Blurity now meets the inclusion criteria for the category of “somewhat useful.”
That said, there are some caveats. A few ways to be disappointed:
- Submitting a huge image and expecting processing to be done nearly instantly. It takes a while, as in five or more minutes, to process most images.
- Trying to use it from a non-Webkit smartphone. If your phone runs Android, iPhone OS 3.0+, or WebOS (e.g., the Palm Pre), your experience should be quite decent.
- Expecting miracles. If the blur in the image is extreme, if the noise in the image is crazy, if the image compression is incredibly aggressive, if the image is really small, if the photo is horribly overexposed… well, then, Blurity probably won’t work too well. It works best on moderately blurry, not-too-noisy, not-too-compressed, reasonably large, reasonably well-exposed photographs.
- Selecting a bad focus point. The focus point should be the part of the image that you most wish would have been sharp. The deblurring is applied to the entire image, but the focus point is used to model the blur, so it’s important that you choose something reasonable.
I sincerely appreciate the feedback that you all sent my way after the initial release. Many of the changes in the new version were driven by those comments, and many of the future changes will be linked to comments that I have yet to act upon. Comments on this newer version are appreciated and needed.
With the site now at a point where it isn’t a complete embarrassment, I’m going to begin a marketing push that extends beyond my blogs. Expect to see and hear more in the coming days as I actively promote it for the first time.
Give Blurity a try. Make your blurry photos sharp. Let me know what you think.
(Cross-posted on Keacher.com)
Progress
Posted by Jeff in Uncategorized on January 6th, 2010
It’s 2010, and the big news is… the dream is not dead! Delayed a bit, yes, but not dead.
Work on my startup’s photo-deblurring product, Blurity, continues. After a soft-launch at the end of October, I decided to “unlaunch” at the end of November to improve the product and incorporate the large amounts of helpful feedback that I received. Thus, the current state is “not launched.”
Like many software projects, particularly those involving complicated technology on limited budgets, the schedule has slipped a bit. I’m making progress, but things have been taking a bit longer than I would have liked. C’est la vie. Look for a second go in a few weeks, when my inner businessperson rips Blurity out of the hands of my inner engineer. At some point, you’ve got to ship.
Announcing: Blurity! (version, err… what letter comes before “alpha”?)
Posted by Jeff in Uncategorized on October 30th, 2009
Today marks a step forward for consumer photography. Precious memories will no longer be forever corrupted by unsightly blurs. Camera focus will no longer be critical. Camera movement? Had been detrimental — not anymore. The game has changed.
Blurity! is here. Image processing technology once limited to academics and scientists has been brought to the masses.
Have a blurry photo? Upload it, select the spot that should have been clear, and let the service do the rest.
Ok, enough of the marketing talk.
Here’s the deal: I’m launching Blurity! today, very quietly. The site is super-ugly, the image processing is slow, and the underlying processing algorithms could use a serious boost in quality. Lots of bugs too, I’m sure. In short, it’s a very early prototype.

Why release now instead of holding out for a more refined product? Simple: release early, release often. I’m pretty sure that most of what I have in place will end up changing, so it doesn’t make a lot of sense putting the polish on something that is in such severe flux. In addition, people seem more amenable to providing useful feedback on something that doesn’t appear to be finished.
So there it is. Give it a try. I’d love to hear what’s good and what’s bad, what you like and what you don’t like, what’s clear and what’s ambiguous. If you find it useful, so much the better! If not, give it a few releases and watch the quality improve.
Tell me what you think, either in the comments or by email (jeff.keacher(at)nesota(dot)com), and leave a way to get in contact with you, and I’ll send you a coupon code for a free image processing credit.
Blur is dead!
Startups from the Goalie’s Perspective
Posted by Jeff in entrepreneurship, minnesota on October 8th, 2009
I was standing in the net, and it suddenly occurred to me: my team was much better than I thought they were. That was a complete change in conclusion from just a few minutes prior. I couldn’t help but notice the similarities to a startup. How good is your startup’s team, really? How good is the competition’s team?
It was just over halfway through a game of pick-up hockey at the Breck Ice Arena in suburban Golden Valley, Minnesota. Since I was playing goalie, I had just swapped nets with the other goaltender. In pick-up hockey the teams are assigned randomly by splitting a jumbled mess of sticks prior to the game. The goalies switch sides halfway through the game to lessen the goaltending bias.
As the goalie, I got to see both teams play, and I was able to count each group as my teammates. At the beginning of the game, I thought that my first team (”lights”) was dominating the other team (”darks”). The puck was on the other end of the ice for what seemed like most of the time, and the shots I did face were easily manageable. The only goal I allowed in the first 45 minutes was on a rebound after I made a save on a breakaway. In contrast, the other goalie was being lit up with shots and goals. With the time to switch sides drawing near, I was a little disappointed by the prospect of leaving the dominating team and joining the dominated group.
I was wrong. Oh, how I was wrong.
I switched sides and… nothing. I just stood there. Even fewer shots came my way, and when the puck did manage to make it into my defensive zone, it was gone again within seconds. The makeup of the teams, other than the goalies, had not changed, but my perception had. I realized that those I had believed to be the dominated were in fact the dominators.
How could that have happened? For one thing, during the second half, I had an accurate external reference (a clock) to inform my perception of the game. As a goalie, I tend not to notice the passage of time while the puck is in my zone, but when it’s on the other end of the ice, time slows to a crawl. For another, I had misjudged the talent of the individual players. I had believed that the players on my first team were better than they really were simply because they were on my team; ipso facto, they had to be the best players on the ice.
So it goes with startups.
A startup is like a sports team. You’re playing against other startups. Even though all of the players might be acquaintances, some are known better than others, and some have reputations that have become larger than life. The upshot is that it can be difficult to judge the skill possessed by the other company without experiencing it firsthand from the inside. Are the engineers superstars or mere mortals? Does management have it together? How good is their plan? Was their highly publicized misstep actually inconsequential? Likewise, it can be nearly impossible to accurately assess the states of the competition’s products. Are they launching tomorrow? Are they having trouble gettng started? Have they run into major problems? Are they pimping vapor? You just don’t know.
Competitive intelligence can be useful, such as that obtained by interviewing mutual industry contacts (this is done in the medical device field quite often). Investors, too, are well connected. Job postings can tell you a lot. Social encounters might also be informative. So can the lack of them — are all of the competitor’s employees working late instead of partying?
Ultimately, the best you can manage is a guess. But when you guess, don’t underestimate the other team or overestimate your own.
The Geek Squad: Brilliant Marketing
Posted by Jeff in entrepreneurship on September 24th, 2009
Robert Stephens was brilliant at marketing, and that made him an incredibly successful entrepreneur.
In the autumn of 1998, Stephens came to my high school to speak to my entrepreneurship class (a course which I forgot to mention in my previous post). He came in uniform: black slacks, white short-sleeve dress shirt, black tie, and cast-metal badge. He looked every part the geek, which was appropriate, since he was the founder and owner of the Geek Squad.
Prior to the sale of the company to Best Buy in 2002, the Geek Squad was an independent IT consulting and on-site repair service operating in the Minneapolis area. The Geek Squad agents — the computer techs — were known for technical prowess, attention to detail, and customer service. Of course, there were but a few dozen agents in the company, and the Geek Squad was but one of many firms in the area providing computer services, so skills alone might not have been enough.
What set the Geek Squad apart? Competence and marketing.
Competence #1: Hiring — Stephens hired only people without certifications (e.g., MCSE or A+) to be techs. His logic was along the lines that the most competent people would be passionate enough to be self-taught, and those people wouldn’t bother with certifications. They got the job done quickly and correctly.
Competence #2: Reputation — Robert was a frequent guest on local TV news shows, where he discussed technical issues making headlines around the country, such as the latest computer virus or web breakthrough. And the caption below his face? Always mentioned his company. Off camera, the Geek Squad was known as the go-to group for emergency computer service. When national music acts were in town and were having trouble with their computers, the promoters referred them to the Geek Squad.
Promotion #1: The Cars — The old Geek Squad used restored cars from the 1940s and 1950s, painted black and white to resemble the police cars of the era. The old squad cars were quite a sight, but to make sure people were actually looking at the cars, Stephens had the tire pressures set artificially low and told his agents to take corners extra fast, thus ensuring large amounts of attention-getting tire squealing.
Of course, 50-year-old cars with squealing tires don’t scale well, but Robert wanted the replacement cars to continue to have some cachet. The solution? Black-and-white VW “new” Beatles. Also, modern cars (and particularly electronic fuel injection) are much more user-friendly in the harsh Minnesota winter.
Promotion #2: The Business Cards — Most business cards receive a quick glance before being tossed or forgotten. To ensure a longer life for the Geek Squad cards, Robert had them die-cut into ovals, making the card look like a perfect physical copy of the logo. On the reverse side, he included a number of helpful computer-use tips of the type that would encourage people to keep the cards near their computers. Then, when trouble would strike, the tip-laden card — and the company’s phone number — would be close at hand.
Promotion #3: The Name — Let’s face it, “Geek Squad” is both catchy and descriptive. Who knows computers? Geeks. What group do you call when there’s a problem? A squad. Brilliant. An added bonus of being memorable and descriptive is that it was often easier to remember the Geek Squad’s name than that of competitors. Apparently, on more than one occasion, a person called 411 looking for computer help with only a vague sense of the name of a competitor — say, the Repair Nerds. “Geek Squad” was such a powerful brand that the caller latched onto it instead of the original target company.
Promotion #4: The Uniform — Stereotypes can be used to one’s advantage, as shown by the Geek Squad uniform. I don’t recall Robert wearing taped black plastic glasses, but everything else was there, straight out of the 1950s: black slacks, white short-sleeve dress shirt, and narrow black tie. On top of that, since they were agents in a squad, they carried genuine-looking cast-metal badges. Stephens even went through the trouble of getting the badges made by a company that makes real law-enforcement badges. Details matter.
Was the service offered by the Geek Squad vastly superior to that of competitors? Probably not. It was very good, but equal service was available elsewhere. What set the Geek Squad apart from its competition was its brand: catchy, consistent, fun, and extremely well-executed.
In fact, one might argue that the service in the current Best Buy-operated incarnation is downright mediocre, but the brand is so strong that it has survived even a massive setback in quality. Impressive.
Going for it
About six and a half years ago, a man named David Roux came to speak at Rose-Hulman. I was an undergrad at the time, in my junior year, and I was probably more concerned with an upcoming snowboarding trip to Steamboat Springs than a lecture from some unfamiliar old guy. However, his main point sunk in: Don’t be a worker bee. Start. Lead. Explore. Create. Be an entrepreneur.
As of today, I am officially abandoning my job hunt. I have found what I was looking for; I had it all along. The problem was a lack of complete commitment.
I have been doing entrepreneurial things since I was a child. Mowing lawns at first, later doing IT consulting and computer repair. While in undergrad, I dabbled in the world of web development by building Bonneville Club, which served as an invaluable lab for me to learn about server administration, community building, people management, and revenue generation. Later, I experienced the thrill of being web-famous with a couple of popular blog posts and millions of visitors to my webcomic.

The business card from my IT consulting "company" during high school, a decade ago.
I valued my time at Medtronic after undergrad. I had wonderful co-workers, a company that treated its employees very well, and a salary higher than many see in their lifetimes. But I wasn’t satisfied.
“I realize this seems odd advice. If they make your life so good that you don’t want to leave, why not work there? Because, in effect, you’re probably getting a local maximum. You need a certain activation energy to start a startup. So an employer who’s fairly pleasant to work for can lull you into staying indefinitely, even if it would be a net win for you to leave.”
When I went to grad school, I chose to study entrepreneurship in the Management Science and Engineering program. I took courses on starting companies. I attended lectures by famous entrepreneurs. I talked with Silicon Valley venture capitalists and CEOs. I idolized my successful-entrepreneur professors. I watched my friends start and build businesses.
There was, I believe, a bit of jealousy. If my friends could do it, why not me? I mean, I was smart, too. Why couldn’t I experience the dizzying highs and crushing lows? Why couldn’t I build amazing products? Why couldn’t I achieve financial freedom? Why not?
I have come to realize that there were two things holding me back: fear and social expectations. For a time I used money or a lack of ideas as excuses, but a detailed examination of business case studies shows that deficiencies in those areas rarely represented insurmountable obstacles. No, the fear of the unknown kept me locked in place, and that kept me in line with society. Why give up a good job at a solid company in the pursuit of a crazy dream? What’s more, society tends to fear change and uncertainty and ostracize those who dare challenge the status quo. To many, the thought of venturing off on one’s own is pure madness.
But without change there cannot be progress. Who will move the world if not me?
“If you want to do it, do it. Starting a startup is not the great mystery it seems from outside. It’s not something you have to know about ‘business’ to do. Build something users love, and spend less than you make. How hard is that?”
– Paul Graham
In some ways, the economic collapse was the best thing that could have happened for me. It made my job search difficult to the point of impossibility. In hindsight, I don’t know why I was looking for a job at an established company instead of heading out on my own. Clearly, my heart wasn’t in the hunt. The challenge was worsened by my desire to switch into a more business-oriented role and away from my technical roots. I had good discussions with a few companies, and interviews with some others, but they seemed loath to help me make that transition. Some went as far as to offer me technical roles developing software, but such capitulation would be, in my mind, career suicide. Another job as a software engineer for somebody else would nullify my entire graduate education and permanently cement me in my pigeonhole. I would rather abandon high-tech entirely than write software in a cube for somebody else. Oh, and I don’t think I’m a very good programmer.
“You‘ve got all these cops thinking you‘re a lawyer. And you got all these lawyers thinking you‘re some kind of cop. You‘ve got everybody fooled, don’t you?“
— from the film “Michael Clayton”
On the other hand, writing software for myself is entirely different. Despite my not being particularly good at it, writing software for my own ends is deeply satisfying. I love the act of creation. I love the instant gratification. I love the communion between me and my machine.
Thus, my startup is a software startup. Of my many interests — hockey, photography, baking, etc. — software is the one most amenable to company-building. Who cares if the prototype code is crap? If it works well enough to get me to the next stage, where I might be able to hire a competent coder to replace my hacker self, then the mission has been accomplished.

Nesota LLC world headquarters
My intent is to give this my all. When I turn 30 in three years, I want to be either rich or penniless. The outcome doesn’t matter so much to me as long as it’s not the mushy middle; that would be indicative of a failure. I want to know that I gave it my full effort. I don’t want to half-ass it and spend the next decade wondering what could have been.

Hopes and dreams
I’m not rich. I’m not famous. I have limited capital, a car with 204k miles on it, and a two-year-old computer.
But I have ambition. I’m going for it.
(cross-posted at Keacher.com)
Challenges
Posted by Jeff in photography, programming on September 12th, 2009
The deblurring of images, subject of Nesota’s upcoming product, is an extremely difficult problem. How difficult? Let’s give it a look.
Conceptually, it isn’t too bad: given an observed blurry image y, find the corresponding unobserved (latent) sharp image x. The complexity stems from the noise in the problem (and there’s always noise), the challenge in deciding when an image is “sharp,” and the overall vagueness of the problem.
The problem is usually modeled using an equation like
y = x ⊗ h + n
where y is the observed blurry image, x is the unobserved sharp image (the recovery of which is our goal), n is noise, ⊗ is the convolution operator, and h describes the blur (commonly known as the Point Spread Function, or PSF). Since we’re solving for x, and we know only y, the problem is clearly ill-posed: we have three unknowns and only one equation. What to do?
The problem can be helped somewhat by imposing constraints on the variables. Here’s an example. For simplicity, assume that all of the variables are scalars and * is the multiplication operator. If we are told that
41 = x * h + n
and nothing more, then there are many valid solutions. For example, a valid solution is x=7, h=3, and n=20. Another equally valid solution could be x=41, h=1, and n=0. However, if we are told instead that
41 = x * h + n
s.t. x is even, 2 < h < 5, and n ∈ {0,1}
then we can clearly see that the only valid solution satisfying the constraints is x=10, h=4, and n=1.
Similarly, the challenge in solving the deblurring problem is imposing the proper constraints on the variables. In the image deblurring problem, the variables are typically represented as matrices, which may each have millions of elements, which means that there are, essentially, millions of unknowns. A brute-force, exhaustive search of the solution space — trying every possible combination of values — is completely infeasible. We need some constraints.
Fortunately, we do know a few things about the sharp image, PSF, and noise that can get us pointed in the right direction. First, the image values are bounded. On computers, in files like JPEGs and PNGs, every pixel, for every channel (red, green, and blue), has an integer value between 0 and 255, inclusive; that is, there are 8 bits per pixel (2^8 = 256), and 3 channels, leading to 24 bits of data per pixel, or 24-bit color. That’s one constraint: all of the pixels in our blurry and sharp images need to have values between 0 and 255, inclusive.
A second constraint, this time on the PSF, is that the PSF is energy-conserving. In other words, when the PSF blurs the image, it doesn’t add or remove any energy to the pixel, so instead of a single bright pixel, you might instead get several dim pixels that sum to the same value as the bright pixel. This tells us two things: first, the range of element values in the PSF is between 0 and 1, inclusive; and second, the sum of all of the elements in the PSF must equal exactly 1.
Constraints on the noise term can be a bit tricky, and tend to be chosen for simplicity. Fortunately, the model tends not to be overly sensitive to the accuracy of the noise (noisy noise!), so a Gaussian or Poisson distribution is often chosen, with 0 mean and a standard deviation chosen based on empirical observation of known images. The noise term has a lot to absorb: optical imperfections, inconsistencies across the frame, sensor noise, quantization noise, compression noise, and more.
From there, however, the problem gets really tricky. How do we know when we’ve found the sharp image? How do we solve a system with so many variables? The plot thickens…


