three simple rules for geeks
OK... I've been around for a while and coding for a long time. Here are my top 3 rules which I repeat over and over and over:
What problem are you solving?
Not rocket science. But surprising if you ask that question how often people don't have an answer. If I don't know what problem I'm solving, I'm basically screwed. (Note: this can, and does often happen at the corporate level).
Make it Work, Make it Right, Make it Fast
I don't know who came up with that (Rob or me), but that's been my coding mantra for the last 20 or so years. There's no other sentence that I can repeat to myself that has the impact that has. Because I'm A-D-D, and human, I can spend days doing what Sid-the-sailor called "painting the windowsills" - I may have an entire house in dire need of attention, but I can, and do, become obsessively focused on stupid things.
Make it Work. Tim Gunn stole that part, but no matter what I'm doing, if it doesn't work, Nothing Else Matters. Until it works, don't do anything else.
Make it Right. Debug it. Fix whatever.
Make it Fast/Pretty. In the old days, 'fast' was important. These days, I suppose 'pretty' takes its place. And a lot of the time, this is the fun part.
If you create a Giant Pile of Shit, put a flag in it and claim it as yours.
Guy Martin, my boss, circa 1987. I was working with very expensive SCSI disks, making 4 disks look like one big disk. These disks were expensive; like $7500 a pop expensive. I plugged the power supply in backwards. I saw a small puff of smoke. I brought it into Guy and said 'defecive disk'. He wasn't buying it (probably because of either the smell, or the look on my face).
Sean, "When you create a giant pile of shit, put a flag in that pile of shit, be proud of it, and claim it as yours!" This technique taught me to admit that I make mistakes (and be proud!)... which is always better than trying to hide it.
fear, loathing and coding
Coding under the influence is fun. Until it's not.
Fear, Loathing and coding
Fear and Loathing in Las Vegas was great. But Hunter S. Thompson never coded. There were times in the early 80's when I'd summon the junior and say Go out and get me Vodka! and I would code into the night, and perhaps into the following day (or 2).
The real problem with this was when programming in an altered state, I might not be able to understand why I'd written something the way I had (certain combinations were notorious for amazing, beautiful, incomprehensible code).
I solved the problem by writing the comments before writing the code, like a little story, about what I was going to try to do next...WRITE ALL COMMENTS ALWAYS IN CAPITAL LETTERS AND TELL THE STORY OF MY LITTLE FUNCTION.
More than once other programmers have commented on the beauty of these comments and how easy it made the code to understand. They didn't realize that I did it so I'd understand my own code the next day.
You might be sicker than you think.
One of the problems with excessive use of mind-altering chemicals is that perception gets a little warped.... that's a feature which becomes a bug. Oddly enough, the perception rarely is that this is a bad thing, and is causing real problems. It's everything and everyone else.
It's virtually impossible to self-debug your own mental problems. If the computer is broken, it's going to be putting out crap results, no matter how good and sensible the input is. So that phrase "you might be sicker than you think" is just there to keep the door ajar - that maybe your perceptions of your conditions are just plain wrong, and sometimes you need to let someone else do your thinking for you, for a while. Then you look back and say holy shit, was I ever sick!
You're where you want to be.
There was a point in my life where things really and truly sucked. (See above) I was drinking a lot, blaming a lot, and generally depressed and miserable. Then the small light went on... From the age of about 18, nobody was responsible for my actions, decisions, and all that crap but me. If I'm here in the dumps, I've chosen this path; it's nobody's fault but mine, and nobody owes me shit. You can choose to change your path anytime. Accept help.
The truth is simple, lies are complicated.
I'm not going to go into the etymology of this one, except to say that in my family, honesty is a commoidity. If something sounds unduly complicated, there's probably a lie in there somewhere. Act accordingly.
If you think you have a problem, you probably do.
And if you don't know what to do about it, or who to talk to, drop me a line at sean@maclawran.ca. You don't know me from a hole in the wall... so it may actually be easier to mention what's up.
And as my old friend Jean B used to say, "Good luck to you".
We sold out...
I got a surprise a few weeks ago... my manager at Quest called and just said "Hey Sean, your last day is next Friday... (blah blah blah)... do you have any questions?". I said "no" and hung up.
I wrote Big Brother - the first web-based Systems and Network monitoring program back in 1996. I wrote it to make my life as a Sys Admin easier... actually I wrote it because a salesman pissed me off and wanted to charge the company I was consulting for $250K but demanded I spec the entire system out. And he was mean to his technical guy. That was it. I wrote the bones of BB in a weekend. And I put my face on it... "Big Brother is Watching".
I also wrote it because I got tired or watching things manually. Netscape had just opened up the NSAPI, literally that month, and BB was one of the first programs to dynamically generate web pages. The idea was I could install it, leave it onscreen and tell from across the room whether things were OK (green), or there was a problem (red).
The problem with being a Systems Administrator is visiblilty. If you're visible, it's generally because there's a problem (which is of course, your fault), and needs to be fixed. If you're not visible, it's "why are we paying this guy so much?". Big Brother was helpful here in a bunch of ways - first it published system and network information in a "red is bad / green is good" format easily understood by PHB's. This kept them busy. If there was a problem, they could just hit "refresh" instead of "redial". Good for me, because the last thing i want to do when I'm putting out a fire is discuss putting out the fire..."
And Big Brother became popular. Used everywhere. Like Nagios is today.
I didn't realize it at the time, but we were causing some companies real pain. Quest was one of those companies. They were selling their Foglight software at about $50K a pop. BB covered a lot of the same ground for free. Quest salesmen would hit a place and see Big Brother already there. They called us 'the virus'. So they did the smart thing - offered us a pile of money and bought BB. We sold out.
I didn't expect the downside. Quest is a sales company. They could be selling Ginsu knives - they're a sales machine, it's what they do, and they do it well. BB was a 99.5% free product and the sales guys saw a big mailing list.
For 4 years I tried to hold the community together. I couldn't mention how Quest had forbidden us to upgrade the free product, or cease providing support on the mailing list. Sales guys wanted to spam the list of people who downloaded the free version - I told them they couldn't - that it was against the privacy agreement we had - even went to the company lawyers to make sure we wouldn't violate our own Privacy Agreement.
So the privacy agreement got changed... then there was the "upgrade or die" message that went out - that killed the community. Thank goodness Henrik created Xymon, a Big Brother clone ("can't we sue them for copying... no you don't want to do that"), and salvaged what was left of the brotherhood.
I've spent the last 10 years there taking care of BB. Spent the last year architecting a cloud version (that I really like). It's not like there are a lot of dev resources... there was me, Rob and Jun. I was responsible for 'the vision thing', new features, and the User Interface.
My departure effectively puts BB in maintenance mode. And it's really strange to not be associated with this thing I created.
And I need to look for work. And because I had no idea this was coming, I was really blindsided. Couldn't find a copy of my resume anywhere (I finally found a copy on The Wayback Machine - the archive of old web pages maintained by the Internet Archive).
And it's scary. I'm about to turn 50. 50? And I suspect I'm about to deal with Ageism for the first time. This is going to be interesting. It certainly focused my attention. And living in Key West? Not a huge demand for senior Unix guys down here (except at the Navy base).
I'm lucky because Quest has a sensible policy regarding Inventions - you can invent something and it's yours provided it's done with all your own resources and on your own time. I also always have a side-project going - generally to do with new stuff I want to learn about - so it's not like the skills aren't current (video, cloud, jquery, big storage).
So what's next?
I'd like to go back to doing SysAdmin work. Taking care of machines and networks... there's never been a period where I haven't taken care of machines and a network, so that's pretty comfortable. I suspect I may run into "But you haven't used Version 7.1 of blah blah" (look in the resume I probably wrote something similar to blah blah at some point).
I like being a Sys Admin.... I used to describe my work as a combination of Clint Eastwood and Mr Spock - rarely have I run into problems that required a committee to solve them; that's what I do, it's what Iike to do. Even dealing with users. I've mellowed - I'm no longer the BOFH (Bastard Operator From Hell)... then again put me in a room with enough stupid users for long enough and that may change.
And there are the patents. 2 of them, with more being filed. My favorite is the "Consumer Self-Activated Financial Card"... you get the card first, then activate it yourself. Maybe Paypal, Google, Facebook or some bank might be interested. Activation patents are cool because if you can't activate, you can't do anything else.
See it here: http://telicash.com and click on any of the pictures.
No matter what I'm sure this is going to be a trip.
And, by request, a link to my resume: http://root.sh
Virtual Private Servers - the Wild West of Hosting
What a great few years this has been. I've always had a machine or 10 online. Initially, we had to go out and find someone willing to allow us to put one of our machines in their facility, so we could have it online. It was Co-location. It was expensive. But it was good.
Now, I'm spoiled. I can get monster sized machines from Amazon with infinite disk. But Amazon is expensive, and I don't expect a billion-user spike any time soon (although, who knows). The next great achievement has been virtualization - the ability to 'chop up' a bigger machine into a pile of smaller, virtual machines.
These virtual machines, called Virtual Private Servers (or VPS's), are cheap. You can get your own instance of linux (I prefer Ubuntu 10.10/11.04 at the moment), for very very little money. Like $10 a month, sometimes less.
You can learn about this wild west of cheap boxes here: http://lowendbox.com and here http://www.webhostingtalk.com/
I use these for lots of things, IPV6 testing, mail servers, web servers, blogs, development, distributed monitoring since I can locate each VPS in a different area (or country for that matter). One of my favorite things to do is use these for scaling, since you can make each VPS bigger, or just buy more of them.
Combine them with Connectria for S3 storage as a linux filesystem - see my post here http://blog.maclawran.ca/s3-compatible-storage-as-a-linux-filesystem, and you too can play 'whack a mole' - someone takes one of your machines offline, if you set it up correctly, you could have it back online at another provider in minutes. Poor mans elevated availability :)
Of course such incredibly cheap access to hardware means all sorts of somewhat nefarious things can happen. On the provider side, they can oversell (so, you've bought a brick), have lousy network speed, or be a haven for bad guys (skiddies, spammers), or just have lousy or non-existent support.
Did I mention "avoid NordicVPS like the plague"? Sure looks like they're circling the bowl: https://twitter.com/nordicvps
So with so many providers, how can you tell which ones are good? Here's my list (remember I've been doing this since 1983... every level of support and administration concievable, including being a BOFH for a while - see http://www.theregister.co.uk/odds/bofh/)
First - the basics. Providers will try to oversell if they can. Virtualization comes in a few flavors, most often seen are OpenVZ, Xen, and KVM. OpenVZ can be insanely oversold. In reality it also means that if you your processes use too much memory, you'll crash hard. Not nice.
I haven't played with KVM, so I'll pass on that. I've standardized on Xen. Under Xen virtualization you're guaranteed a certain amount of memory, so even if you eat up all you've got, your machine will degrade in a predictible manner, swapping, thrashing, then stopping. But, it can't be oversold, which is good.
For management interfaces I like SolusVM, which most providers use. I've also standardized on Ubuntu 11.04, but anything over 10.04 is actually OK, plus for me they have to support IPV6.
So you find someone. How do you know if they're any good? Guess what. You don't. Bwahahahahaha! But if they support IPV6 today plus Xen, their inherent cluefullness is higher from the outset.
But that's what this post is about. I've tested a bunch of them, having accounts on them, asking questions, using their networks, etc. It's also interesting to see how they handle their own outages and issues, and how well they keep their clients informed when things are going weird.
For network speed, here's a command to test with the full discussion here: http://www.lowendtalk.com/discussion/112/test-your-vps-network-connection
wget -O /dev/null http://cachefly.cachefly.net/100mb.test
I've tested their support. Really tested them, because I'm hacking late into the night pretty well every night. And by late, I mean bedtime is after 5 am. And since I've been doing this for such a long time, if I ask support something, it's Level 3 support asking for support, so it's going to be interesting.
So I ask hard stuff in the middle of the night/Early in the morning. On Christmas Eve, Christmas Day... and I know instantly how good these guys are by two metrics; first the response time, second the quality of the response.
What's interesting, is that in some of these cases, these are small hosting companies. It means they haven't become large enough to become cheap and incompetent, maybe you're dealing with one of the owners. It's happened. it's generally a good thing.
And once I've established a link with support (and they figure out the clue-level on the other side), then they're happy and I'm happy. And support has been great.
I'm not going to list everyone. Suffice it to say that about half fail within 2 months.. I'm currently using:
- Empire Hosting http://empire-hosting.net - cheap - great support - blazingly fast @ 10Mbps
- YardVPS http://yardvps.com - really cheap for disk - support OK - network @ 2.7 Mbps
Honorable mention to:
- Host Virtual http://vr.org - I like these guys. They have an excellent worldwide network, support is great. and network speed was 2.46 Mbps. Not too cheap.
- GoVPSGohttp://govpsgo.com - relatively expensive, very good support, fast network @ 4.77 Mbps
- Linode http://linode.com - expensive, no IPV6, really fast network @ 11.9 Mbps (correction - IPV6 in 5/6 locations)
So if I need Worldwide VPS's - http://vr.org wins hands down, with great support and nice guys. If I want blazing speed, value, and great support it's Empire Hosting http://empire-hosting.net. Finally if I want the best bang for the buck and can live with a slower network it's http://yardvps.net.
Any questions?
Depression, SAD, and Zhineng Qigong
I had SAD (Seasonal Affective Disorder), and brutal Montreal winters guaranteed that by February, I'd be in a black pit. I really really didn't want to take anti-depressants, and looked for another solution.
I learned that the Inuit got SAD when they changed from their traditional diet high in fish oil to a Western diet, which was the first explanation that made sense. So I added Omega-3 to my diet. I helped. Also added a whack of Vitamin D, because it made sense too - we get that from exposure to the sun - that would be about 3 months a year in Montreal.
More here for those who are interested... http://www.moneycrashers.com/frugal-ways-to-treat-seasonal-affective-disorder/
6 years ago I was in Las Vegas with my wife and her mother, Betty. Staying at the Wynn, which was packed and desperate for another room, which they couldn't help with that night. So at about 3 am that night I found myself looking for a room elsewhere, feeling like crap and really mad because I'd lost money. Got a comped room at Harrah's, and upset I turned on the TV... landed on PBS... and saw this:
I was sufficiently upset and miserable that I was willing to try anything. I spent the next 90 minutes following along. After that, I felt good. I noted that - this stuff works, then promptly forgot about it.
5 years ago, in the winter, the black depression, on schedule, returned. In a desperate state, I looked up Qigong in Montreal and had the incredible good fortune to meet Master Yang. Master Yang came from China where he had studied TCM, Traditional Chinese Medicine, Accupuncture, and a variety of Martial Arts.
I began to learn about Qigong at his studio in Montreal: http://internalstyle.com/
Qigong (pronounced Che Gung) is an internal martial art as opposed to something like Kung Fu, which is an external martial art. Qi (sometimes written chi) means Energy. Gung (sometimes written Kung), means Work. So Qigong literally means "Energy Work". It's a form of moving meditation, very slow motion, slower than Tai Chi.
There are hundreds of kinds of Qigong, if not thousands. This style is Zhineng Qigong, created by Grandmaster Dr Pang Ming in China in 1979. However, finding a good teacher is hard. All I can suggest there is that a good teacher will not just be teaching Qigong, but is likely to be schooled in TCM, accupuncture, and martial arts like Ba Gua.
I'd tried meditation in the past but having ADD and having spent a lifetime fidgeting made sitting still for any length of time virtually impossible.
The Chinese system is different than the American system for teaching. It's almost like in the Chinese system you're told to do stuff and when the teacher thinks you're ready, you're told why you've been doing this stuff. So initially I took a lot on faith; that they'd been doing this stuff for a long time - since maybe 200 BC, and millions of Chinese do this daily, so there must be something to it. Besides I was suffering and willing to learn.
It was strange, right away. After a short warm up and doing some very slow motions, we sat down cross-legged and I began to sweat profusely - not from exertion, which is why it was so confusing. Evidently, stuff was getting 'unblocked'. You'll hear a lot about things being 'blocked' in the Chinese system. Get rid of the blocks, restore balance, everything is OK.
I soon began to be able to feel 'chi' - energy. It's strange, sort of like the feeling when you hold two magnets together - the attraction or repulsion... sort of like that. The depression lifted and hasn't returned. And my health improved. The year I began I was constantly sick; my wife was worried about my health. Since practising I've been sick for about 8 hours in the last 5 years, and not at all in about the last 3 1/2 years. It's not that I don't get sick, it's almost like I get sick, get a super-mild version of whatever it is, and it exits. Very very strange.
And there are huge and well-documented benefits to meditation; given that I think for a living, this exercise at the end of the day gives me 30 minutes to myself, to quiet down, and empty my mind for a while. I don't understand how it works, all I know is that I keep doing it because of the benefits. And I haven't missed a day in over 5 1/2 years.
Here is rare footage of Master Yang, showing the warmup and the first routine.
This is the perfect exercise and discipline for sedentary geeks like myself. I continue to be grateful to Master Yang for showing me.
And the SAD? Gone. Moving to Key West cured it for good - now if we could only get Master Yang down here to teach!
In the meantime, an excellent book: http://lifeqicenter.com/CD,_Books_%26_Links.html
Software patents and pony dung...
If I read one more "kill software patents" article, I'm going to puke.
Joel's is the latest: https://plus.google.com/u/0/117114202722218150209/posts/4GgaRiSyaTf
Here are his 5 points:
- Elimination of software patents
- Legal fees paid by the loser in patent cases; non-practicing entities must post bond before they can file fishing expedition lawsuits
- Roll back length of copyright protection to the minimum necessary "to promote the useful arts." Maybe 10 years?
- Create a legal doctrine that merely linking is protected free speech
- And ponies. We want ponies. We don't have to get all this stuff. We merely have to tie them up fighting it, and re-center the "compromise" position.
Maybe we'll look at these backwards, because there's so much crap here there has to be a pony in here somewhere. (That takes care of #5).
Merely linking is free speech, no. Free speech is free speech. Knowingly linking to things that are dangerous, illegal or whatever should be discourgaged. Child porn and hate speech come immediately to mind, followed by stuff like "how to weaponize the H1N1 virus". (That was just to make sure the NSA reads this post).
Copyright protection 10 years? Why the minimum necessary? For this, whatever a majority of countries can agree on.
Now it gets interesting... Patents. I do have an opinion on this.
Elimination of Software Patents.... My great, great grandfather was Thomas E Murray, an inventor with (at least) 462 patents to his name who lived at the time of Edison. He has patents on everything from the powerplant to the light socket (and piles of other stuff too). He was inducted into the National Inventors Hall of Fame last year... here's his site: http://temurray.com
One of the things he invented was the little valve below. And a pile of other things like it; what he really did was to invent a new method of welding that let him stamp 2 molded steel halves and weld them together. That's a pretty basic thing. But new technology allowed it to happen.
Fast forward a hundred years. Same thing with computers and software; that's where we're building things today. And we're building massive and valuable things. The railroads of the past are the networks of today. No difference. And inventors are inventors.I mentioned in an earlier post how tough it is to be an inventor. I recently did an inventory - of 11 provisional and actual patents filed, I now have 2 granted, and one pending. The patent system is tough. Before being critical of it, maybe learn about it and try it sometime.
For a patent to be granted it has to satisfy 3 conditions:
- Novel (something really new)
- Useful (no perpetual motion machines)
- Non-obvious (this is the tricky one)
Assuming you can come up with something novel and useful (search google and the USPTO at http://uspto.gov), the real challenge is coming up with something non-obvious. It's almost guaranteed that when you file a patent, the examiner will shoot back a reply (a couple of years later), saying "go away - obvious" or "anticpated by so-and-so in this patent here". So the process of argument starts. Back and forth, back and forth. If you can convince the examiner that you're novel and non-obvious - you get a patent. Remember they do this all day; they're really good at saying no.
Now, what appear today to be bad patents may well have been granted, especially a decade or so ago when this was a mystery to the examiners - (see that valve, it's good to be first). But good inventions often inspire the reaction "wow - I thought that already existed", or "I wish I'd thought of that"... that stuff appears obvious when disclosed. And that only gets worse over time. Amazon's one-click *really* looks obvious now, doesn't it? Remeber we're standing on the shoulders of giants.
The problem isn't software patents, it's programmers ignorant of software patents. You think what you're doing is unique? Ha. Prove it. Go check the patent office. Do a search. Search google. And if it is unique? You can file a patent. Or throw it into the public domain to prevent others from patenting your stuff.
Almost all the patents I've filed have been defensive - it tells VCs, me, and the world, that I've done the homework, that this is new, novel, non-obvious, and reduces the risk of us getting sued down the road. And a bit of obviousness? You only get sued if you're successful. Congratulations.
I'm best known for a bit of software called Big Brother - the first web-based systems and network monitor - still available at http://bb4.org even though I'm no longer associated with the product (thanks Quest). Lots of new stuff there at the time. What did I do? I threw the initial version of the product into the public domain - published in an article for Sys Admin magazine. I got a call from an examiner at the USPTO - asking about monitoring software - and I referred him to the article. That's prior art. The guy trying to patent my stuff didn't get his patent...
So finding prior art is pretty well the definitive solution to bad patents. Article One makes money by crowdsourcing this stuff - http://www.articleonepartners.com/ - no reason we couldn't do this in an open-source manner either (and it does look like they've found prior art on the Lodsys patents).
The good news is that with all the open-source source code out there (easily searchable by google), this prior art searching is getting much much easier (no more going to paper journals for example)... so expect the quality of patents to improve just because of that.
I also suspect that there's no reason not to crowdsource a patent-defense system - where each of the Lodsys victims contribute $100 towards a shared defense and the crowdsourcing the prior-art search to invalidate the patent... this would be an effective defense against the next Lodsys. (Anyone interested in this? Y-Comb?)
Now, the issue of "Non-practicing entities", aka Trolls. Joel says: "Legal fees paid by the loser in patent cases; non-practicing entities must post bond before they can file fishing expedition lawsuits".
I think the pony lives in there.
I moved from Canada to the US 3 years ago. The Canadian system, a pretty socialist system, has some interesting points, amongst them:
- Lawyers aren't available on contingency
- Lawyers can't advertize (but their firms can now)
- Loser pays
On the plus side - there's no "After 911 Call 411 - 1-800-411-PAIN" in Canada.
Downside is that the little guy is guaranteed to get fucked by the big Corporation. Unless you are incredibly wealthy you don't sue, you just eat it. (At least with Socialized Medicine you're not stuck with a million dollars in medical bills).
As I mentioned in my eariler post, there are a couple of salient points:
- Inventing is a dismal business with a 90%+ loss rate (my guess would be 99%)
- Even if you get a patent, you have to defend it somehow.
- Patent infringement suits can cost $5MM
- Even with lawyers on contingency, you can still spend hundreds of thousands of dollars
Trolls give the little guy a chance. And they're not stupid, they're not going to take on a case that they don't think they can win, because that would just be stupid, and courts don't take kindly to people wasting their time.
And they exist because they have to. The world has changed. The US is incredibly litigious. Judy Judy is #1 (and look at what she has to put up with).
In the old days (I've been told), large companies used to send their IP guys out to chat with each other. After a nice expensive dinner, one would say to the other "I need to bring something back to our CEO", and they'd do a licensing deal. Nice and simple.
Those days are over. We're in the time of "Go ahead and sue me". Or maybe buy insurance against being sued. Or join a cartel of patent holders where you can play "Patent Cold War".
Stop whining about Software Patents. Learn about the system. Let's see if we can hack it.
hacking, inventing, and standup comedy
I do Standup Comedy. I don't know how many patent-holding, unix-guru comedians there are out there, but I suspect I may be in a very small minority.
I've made millions of dollars. I've sent millions of dollars to money heaven, with the help of the crash in 2008. That crash was also a wake up call which resulted in "Let's move to Key West!"... Key West is the bastion of the overqualified - a place where a Supreme Court Judge just might be driving a Pedicab, a place where some of the homeless guys have PhD's, a place where you really don't want to judge a book by it's cover.
It's also the kindest place I've ever been... much kinder than Canada - but it makes sense in a messed up way - the need is so much greater here - "The difference between Canadians and Americans is that Canadians expect tthe government to do everything for them, and Americans expect the government to do everything to them". No free healthcare means benefits for someone with cancer who can't pay the bills. And when there's no safety net provided by the government, guess what? People step up. People donate. People help each other. People are aware of each other's suffering, in real time. People are more human.
I didn't expect that part - I expected funky people and warmth. Key West has the only Carribean climate in the United States, different than Miami; different than Marathon, even.
I rent a small office here. A couple of years ago, there was a little note on the bulletin board about a Standup Comedy Workshop. I went. Met Tom Snyders - the Bicycling Comedian... 150,000 miles touring on a bike between gigs - ("I know what you're thinking - they're highway miles")... and possibly the worst self promoter on the planet (on a per mile basis). Only some crazy German has more miles...
I like standup. I've often watched it and thought "hey - I could do that", and here was a chance. There were other considerations though. The work I do, hacking, patents, and the like, I do in relative isolation... although I write a fair amount, I don't talk alot... and the real problem with patents and startups is that they almost always need outside investment.
Gotta pitch those VC's.
The only thing harder than asking people for money is making them laugh. I'll bet I could kill two birds with one stone.... so I took the course. At the end of it was "the showcase"... a terror filled event. Filled the house with friends. Everyone had a great time. I was relieved it was over.
Turns out Standup is not so different than all the rest of the stuff I do, except it happens faster. Patents take years to find out if you have a winner or not. Performing is closer to compiling code than anything else... good code, they laugh. Syntax errors get you silence. And you're up in front of people alone, performing your funny code...
But it's the variables that are so cool. Presentaion can be the difference between a laugh and nothing. The audience, the demographics, the amount of booze they've drunk... the comedians on before you, the rhythm of the show, your physical state, your material, and how many times you've been on stage.
Standup comedy is people-hacking. Find out how they work and make 'em laugh.
It's also interesting to do something I'm not good at and improve over time. I've bombed. And once you've bombed, and survived, pitching a VC about your great startup is likely to be pretty easy. It's Toastmasters on Crack... you improve or you die.
I'm also pretty ignorant, really. I was surprised in what low esteem most comedians are held. Sort of makes sense when you think that a working comedian is doing well making $30K a year. It's a tough slog. But there's some awesome talent out there... if they can hang in there, and it's a subculture, not unlike hackers really. And like the hacking community, you're measured by how well you do you're thing, and you learn from your peers... in real time.
The only other time I'd experienced this sort of expertise-meets-contempt was with the Drag Queens here in Key West. One of my side projects is Starshout (http://starshout.tv) - we do celebrity video messaging... Mad at someone - get a drag queen to insult them! (Pick Desiray for that gig!). They're so talented I didn't understand the contempt. Still don't. And talk about knowing how to be on stage.
But there are incredible benefits. Every stupid, frustrating, ignorant thing I experience becomes material. I now laugh at least ten times more than I used to. I find dealing with people less painful, and dealing with painful situations easier. And people are universally impressed with the courage it takes to stand up in front of a room full of strangers
If you're in town this week - come see the show - it's the Third Annual Comedy Showcase, upstairs at the Hog's Breath Saloon at 8 pm. It'll cost you $5. And if you can't make that show, I can be seen at our monthly gigs for charity along with Wendy Carlisle and Tom Snyders as part of Standup4KeyWest...
thank heaven for little trolls... cause little trolls get bigger every day...
You don't want to be an inventor. Really, you don't. It's sort of like being a crack addict with ideas, but it's way more expensive. I've got 2 patents granted (see linkedin: http://www.linkedin.com/in/bbunix ), and 7 more pending...
These days a patent can cost between $10-$20K depending on who's taking care of you.
Right now, a patent takes about 36 months to work it's way through the system, (http://www.uspto.gov/about/stratplan/ar/2010/USPTOFY2010PAR.pdf . ) add a year if you file a provisional patent first... and you won't hear anything for about 2 years. Once you hear something from them (usually "no"), you begin the argument process with the examiner. You win, you get a patent. You lose you get nothing.
Overall maybe half of all applications result in a patent (http://www.patentlyo.com/patent/patent-applications/index.html) - and you'll usually not get everything you've asked for... you might only end up with a tiny sliver.
The result is a horrifying number of patents never make a penny for their inventors... upwards of 90%, maybe as high as 99%...
So... a little math. The cost is $20K... and only 1 in 200 inventors will get their money back... remember we lost 1/2 who just don't get a patent at all.. so our patent lottery collects $4 million dollars and awards a grand prize of at least $20K... and it only takes (at least) 4 years....
That's dismal. But wait! It gets worse.
So you get your patent. Fabulous. All that means is that you now have the right, but not the obligation to enforce your government-granted monopoly on your invention for the period of your patent.
Now, if there's a company using your technology, you can ask them to purchase a license. Send a letter to the President and Head of the Board of Directors. Chances are they'll ignore it. So licensing is useless without the ability to enforce it.
However, Infringement suits can cost upwards of $5 million dollars a pop... so your patent had better be making a lot of money for the infringer to make a suit worthwhile.
And if you don't have 5 million dollars handy?
Contingency. Find a lawyer to take on your case. They'll generally take a cut, like 30%, but charge you expenses - a couple of hundred thousand perhaps... or worse, they'll ask for $10K to "investigate", and if they like what they see, they'll take more money in expenses... and then their 30% at the end. And at the end of the day, it has to be worth their while (think that $5 million number) - so a winning suit has to worth at least $17 million for the lawyers to break even.
But they don't win all their cases. So they're going to want a return - maybe like a VC's - a 5 to 10x return... that means your suit needs to be worth $85-$170 million. And that's the award... which is essentially the licensing fee you'd get.
So how much is a license worth? Depends how much of their product depends on your patent. And what percent is a reasonable license fee? Anywhere from 1-25% depending... so their sales need to be 4-100x that $85 million dollar number, so like $340 million...
Or you could do what Lodsys tried to do, sue 34,000 people for $10K each. Fortunately there are companies out there like Article One partners - http://www.articleonepartners.com/ - who are crowdsourcing prior art searching. This is a great counterbalance to nuisance suits.
If you're beginning to sense that the only people making money here are the lawyers, that's pretty close to the truth. And if the infringement isn't significant, it's not worth enforcing, and you're out of luck.
If you've made it this far, and I have, you might consider taking up standup comedy (which I've done)... because it's just too miserable...
There are now only 3 alternatives:
1. Go into business for yourself and do the thing you've patented. If you're lucky you may be able to get investors in the business. Good thing about this, is you can still sue and you get triple damages because you're business is being harmed.
2. Sell the patent. Lots of companies will buy 'em cheap. Intellectual Ventures http://www.intellectualventures.com/Home.aspx collects them. Maybe you get your $20K back. Maybe.
3. Talk to a troll. They take more than the contingency lawyers, but cost nothing upfront. Acacia (http://acaciaresearch.com) are the mother of all trolls...
The great irony here is that these so-called evil trolls are the only entities whose interests are in precise alignment with an inventor wanting to monetize their IP. Everyone else is doing billable hours and maybes... if they agree to work with you, and it's by no means guaranteed, they'll go to bat for you at a level you could never afford, with a skill that comes from doing one thing very, very well.
And if an infringing company gets a letter from a troll, they listen. Unlike just about any other infringment letter they get.
And after a couple of years, maybe you get paid.
Maybe.
cloud storage as a linux filesystem
[Updated 22 feb 2012 - updated and clarified process]
I need space. Lots of space. Like an amazon S3 amount of space, spread out over a pile of little linux machines running Ubuntu.
My cloud is made up of many cheap VPS providers, some costing as little as $7 a month; for that you get some CPU, a little disk and some bandwidth... the idea being to allow for total node failures and be able to move machines quickly and pretty painlessly.
Persistent disk would allow me to drop and replace nodes really quickly, essentially I'd only be using CPU.
Amazon is expensive for disk. So expensive I can't stand it. Amazon will charge me $150 a month to store 1 TB, or $1800 a year. I can buy a 1 TB disk for $99... for life. Then I get to pay for bandwidth, something like $0.15 per gb again. Then to add insult to injury they charge me for almost every transaction (GET/PUT/etc)... only DELETE's are free. It adds up fast.
Along comes Connectria... $15 a month gets me 100gb https://www.mh.connectria.com/rp/order/cloud_storage_index of S3 compatible storage, which includes the first 100gb of transfer. Good news is it's cheaper than Amazon, transfer is after the first 100gb$0.09/gb and transactions are free. You can set up unlimited users, and each user can have up to 100 buckets, and no speed limits. In my testing they were much, much faster than Amazon, so much so that the speed itself caused it's own set of strange problems.
If you're going to mount a disk like this, there may or may not be a lot of disk usage, but you are likely to have a lot of transactions! Using Amazon would be death here.
So now I want to use this S3 storage on my linux box.
1. Sign up for Connectria - https://www.mh.connectria.com/rp/order/cloud_storage_customer
2. Get s3cmd: http://s3tools.org/s3cmd
3. s3cmd --configure put the keys from Connectria in there.
Edit ~/.s3cfg - change the following 2 lines from referencing amazon to connectria:
host_base = rs2.connectria.com
host_bucket = %(bucket)s.rs2.connectria.com
4. Make a bucket: s3cmd mb s3://testbucket
5. s3cmd ls - you should see testbucket
Cool. You're in. Now we get funky. You want to mount this bucket as a filesystem under linux.
For this we're going to need a really nice bit of software called s3backer: http://code.google.com/p/s3backer/ which creates a FUSE-based filesystem. There are other programs that do this, including s3ql, but in live testing they created a horrible load on the system. In addition during my "hammer the disk and reboot the system" tests the results were ugly, ugly, ugly.
Archie, the author, does a nice job of explaining how to install and test here: http://code.google.com/p/s3backer/wiki/RunningTheDemo
I'm going to assume you've gotten it running from that.
Next step is actually choosing a filesystem type to create. Again, in this case, the newest isn't necessarily the best. I tested a number of filesystems, ext2, ext3, ext4, XFS, and ReiserFS. Because we were going to have a large number of small files (like 1K), ReiserFS worked best architecturally and passed all my tests as well.
Note: ReiserFS is technically great, it's author is in jail for killing his wife which kinda put a kink in the development efforts: http://en.wikipedia.org/wiki/ReiserFS
Make the directories we're going to need, somewhere to mount it, a cache directory and the loop directory for the FUSE filesystem.
mkdir /mnt/s3
mkdir /bbs3
mkdir /bbs3/cache
mkdir /bbs3/testbucket
Run s3backer.... assuming the password for Connectria lives in /root/.s3backer_passwd
s3backer --accessFile=/root/.s3backer_passwd --filename=testbucket --minWriteDelay=1800--blockCacheFile=/bbs3/cache/testbucket --blockCacheThreads=8 --baseURL=https://rs2.connectria.com/ --blockSize=4k --size=1g --listBlocks testbucket/bbs3 /testbucket
There are a couple of funky parameters here, size=1g makes a 1 gb filesystem which you can extend later, minWriteDelay=1800 makes s3backer wait 1.8 seconds before re-writing a block that it just wrote - this gives Connectria a bit of time to get the block actually written and was the only wierdness I encountered. Using a blocksize of 4k is natural since the filesystem's blocksize is 4k and those are the blocks we'll be writing.
Next we make our reiserFS and mount it. Only wierdness here is the 'noatime' flag that helps reduce the number of blocks written to the filesystem.
If you're on Ubuntu - the programs needed to use reiserfs can be installed with:
apt-get install reiserfsprogs
mkreiserfs -ff -b 4096 -s 513 /bbs3/testbucket/testbucket
mount -o loop,noatime /bbs3/testbucket/testbucket /mnt/s3
If all goes well, you now have a 1 gb filesystem sitting out there in the cloud... At this point there are about 30 filesystems running simultaneously on 8 different machines, and they're working great.




