Saturday, June 14, 2008

Toadies

unit of h: make up your miiind
unit of h: decide to walk with me
unit of h: around the lake tonight
unit of h: aaaround the lake tonight
unit of h: bah mah side
unit of h: bah my side
unit of h: I'm not gonna liee
unit of h: I'll not be a gentleman
unit of h: behind teh boat house
unit of h: ah'll show you mah dark secret
unit of h: bundundununudnudndu udnu nud nudn (wananwananwannwa) waaaaaa
unit of h: I'm not gonnaaa liee!
unit of h: I want yooou for mine
unit of h: my blushing bride!
unit of h: my lover, BEE my lover
unit of h: yeaha!
unit of h: don't be afraid!
unit of h: I didn't mean to scare you
unit of h: so help me jeebus
unit of h: I can promise yoou
unit of h: you will stay as bootyful
unit of h: with dark haairrr
unit of h: and soft skiiinnnn
unit of h: fo-ev-errrr
unit of h: foo-ev-errrr
unit of h: make up yer mind
unit of h: make up yeeer mind!
unit of h: well I promise you
unit of h: ah will treat you well!
unit of h: mah sweet angel!
unit of h: so help me jeeeeebus
unit of h: aeaehayya
unit of h: give it up to me
unit of h: gibs it up too mee
unit of h: do yoo wanna be
unit of h: MAH ANGEL?
unit of h: gibs it up to me
unit of h: gibs it upp to meeeee
unit of h: do you wannna be?
unit of h: MAH ANGEL?
unit of h: GIVE IT UP TO ME!
unit of h: GIVE IT UPP TO MEE!
unit of h: DOOO YOO WANNA BE
unit of h: MAH ANGEL!?
unit of h: sooo help meeeeeeeeeeeeeeeeeeEEEEEEEE
unit of h: dun dun bam dun dun bam dun dun bamambamba dun dundund (wananana nan an aNAN NA NA NA)
unit of h: Beee mah angel
unit of h: beee mah angel
unit of h: be mah angel
unit of h: do you wanna die?
unit of h: do yoo wanna dieee?
unit of h: do you wanna DIE?
unit of h: do yoo wanna DIE?!
unit of h: DO YOO WANNA DIEEEE?!
unit of h: DO YOU WANNA DIIIEEEE?!
unit of h: DOOO YOU WANNA DIE?!
unit of h: DOOOOO YOO WANNA DIE?!
unit of h: well I promise YOU
unit of h: I will treat you well!
unit of h: mah sweet angel
unit of h: so help me jeeebuss
unit of h: jeeeeeeeebus
unit of h: jeeeeeebus
unit of h: jeeebussssSssSssss

Sorry harry, I'm taken.

Friday, June 13, 2008

HN Blacklist -> HN Toolkit

So thanks to nirmal's brilliant idea of browsing Hacker News in split view, I got the bug last night to add that functionality to the HN Blacklist. What I had originally thought would take about two hours ended up being about an eight hour ordeal, but it was worth it. I learned lots of neat things about the browser security model and GM evaluation, all because I couldn't get some event listeners to work.

The problem is now solved, and seeing as how my little blacklist does more than just that now, I went ahead and renamed it to HN Toolkit.

Obviously nirmal's bookmarklet works for a wider variety of browsers than my GM script, but my way means you don't have to hit his server to do it, which I figure is a good thing.

Sunday, June 08, 2008

Harvard Commencement Speech

So JK Rowling did Harvard's 2008 Commencement Speech. All I can say is... wow. If you want something to bump your optimism needle, this is it, and I'm not even really a fan of Rowling herself, although I do plan on eventually reading those things. This speech, however, was quite excellent.

Part 1:


Part 2:

Saturday, June 07, 2008

So, uh, Texas

I think I have completed major moving activities, so it's about time for an update to the old blog.

The move itself was rather more epic than I had planned. Due to the never-ending stormy weather we are getting this year, and the fact that I was planning on moving water sensitive things in the uncovered bed of a truck, the loading process took about five hours longer than the planned one hour. This was because we ended up gift-wrapping all our furniture in 3.5 mil plastic (the kind you put in flower beds). Several rolls of plastic and several rolls of duct tape later, we had everything ready, but seeing as it was about midnight, and our original plan was to leave at 2am, we ended up leaving later and breaking the drive into two days. With a stopover at my cousin Hillary's house for the night, it didn't end up costing us much.


Beaumont is amusing.

My only major accomplishments so far have been unpacking my stuff and reading a 700 page book by the pool. The pool here is quite excellent, and it's hot enough I don't even miss having a hot tub around.

Tonight I decided to get Firefox 3 RC2 up and running, just to try it out. It took quite a while to make portage happy. The initial emerge only took about 12 minutes, but some of the packages were requesting revdep-rebuilds that were curiously downgrading Firefox back to 2.0.0.14. After about an hour of investigating, I tracked it all down, and feel like documenting all my fixes here for fun.

Added the following to package.keywords:
=www-client/mozilla-firefox-3.0_rc2 ~amd64
>=dev-libs/nss-3.12_rc4 ~amd64
>=dev-libs/nspr-4.7.1 ~amd64
>=x11-libs/cairo-1.6.0 ~amd64
>=x11-libs/pixman-0.10.0 ~amd64
>=net-libs/xulrunner-1.9_rc2 ~amd64

Added this to package.unmask:
=www-client/mozilla-firefox-3.0_rc2
>=dev-libs/nss-3.12_rc4
>=dev-libs/nspr-4.7.1
>=net-libs/xulrunner-1.9_rc2

And to fix that reversion issue... added to package.use:
app-office/openoffice -firefox
dev-java/swt -firefox

Also changed my xorg.conf ButtonMapping Option to use buttons 8 and 9 instead of 6 and 7.

The first two sets of changes were needed to unmask everything Firefox 3 needed to compile. The changes to package.use were needed to fix the reversion issue. Apparently both these packages depend on Firefox 2 when that use flag is enabled, and aren't smart enough to use Firefox 3. I'm pretty sure I can live without whatever integration that use flag offers, at least until they are updated to use FF3.

As for the mouse button mapping, I guess older versions of Firefox incorrectly used buttons 6 and 7 as forward and back buttons, even though they are supposed to be the horizontal scroll buttons. Many laptop touchpads and fancy new mice have horizontal scroll spots/wheels, and firefox was executing back/forward operations whenever those users accidently bumped them. The side buttons on a mouse are apparently really supposed to be buttons 8 and 9, and substituting those for where I had 6 and 7 before did the trick nicely.

FF3 itself is great so far. The new Firebug has lots of nifty things, and since you can disable the performance sucking parts, it doesn't seem to bite page loads as hard. The zoom functionality is much better than before. (I use this a lot so I can read long articles while reclining several feet away from my monitor.) It actually zooms the entire page, images and all, much like the iPhone browser does. The old Firefox just made the text larger, which could lead to weird layout issues. The alt text on images actually shows in it's entirety when hovering, which makes xkcd comics much more fun. Browsing is moderately snappier, and the new javascript engine shines. Gmail loads up about twice as fast as before, and heavy javascript pages don't seem to clunk and stutter like before.

On that note, the new jQuery release apparently improved mouse handling and events a ton. Using the demos on the documentation site, I can definitely vouch that dragging and dropping seems much much faster/smoother, so definitely worth updating. I love jQuery.

I have a whole book in this excellent trilogy left to read, so probably nothing too exciting until I'm done with that. I'll be sure to rant about these books later. Kathy seems to be digging the new job duties, and it's kind of weird staying home all day, but it still feels like vacation, so I can't complain.


Plus I have this to play with all day!

Wednesday, May 21, 2008

Motivation

"Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way useful first, and then others will say "hey, that almost works for me", and they'll get involved in the project."

- Linus Torvalds
Really well said. I definitely suffer from over-planning-and-under-doing things. Once you build all these castles in the air regarding what it is you are going to do, it all starts to seem overwhelming and hard to achieve. If, instead, you just start doing something, then iterate, you end up achieving a lot without even noticing, and suddenly you have this big thing to show off.

Maybe I should just focus on something I can solve in a day, and then go from there.

Tuesday, May 20, 2008

Improvements

UPDATE (06/13/2008): Even more improvements here.

There were a couple links on Hacker News today that were to pdfs, and someone pointed out that the automatic scribd vacuuming of said links is kind of annoying. I agree, so I thought I'd add the option to my blacklist to disable that functionality. While I was at it, I added a search box for Search YC as well.

Oh and the UI got a facelift.



You can check it out and install from here.

Monday, May 19, 2008

Twinview

So after I got my monitor last week, I spent about four days fighting to get dual monitors to work correctly. I tried a litany of things before I solved it. Want to know how? Probably not, but going to tell you anyway. Get this: I unplugged the DVI cables and plugged them back in.

Crazy I tell you.

So after the creepiness of that voodoo wore off, I spent a few days just enjoying the warm glow of four feet of LCD screen. Watching movies on one screen while chatting on another is fun, and the brief bit I spent coding was great. I could have my code, the console, firefox and pidgin all visible at once... each of them big enough to be considered full screen on a lesser monitor.

Spent most of the weekend sleeping, cleaning, and reading. Got this awesome book called Revelation Space (by Alastair Reynolds). So far it's probably some of the best Sci-Fi I have ever read.

Before acquiring the book, move-related cleaning was in full swing. I've managed to organize and pack most of the office, with about two boxes to go. Most of the time was consumed by going through all my collected documents and piles of things and throwing away everything I could. Also finally rid myself of the magazines and extra clothes, which was liberating to say the least. It'd really be nice to get my personal possessions down to books, computer, and clothes. It's amusing how much more crap I have than Kathy. I think tonight I'm finally going to take an axe to the box full of papers from college.

For some reason, at the time, I thought keeping all my homeworks/notes/tests from all my classes would someday be useful for refreshing myself. Thing is, with the internet and wikipedia at my fingertips, there is probably zero chance I'll ever look at them again. I think I'll keep some stuff related to Spain and just recycle the rest.

Still coughing up a storm, but most of the sickness has passed. Hopefully that'll eventually go away too. I'd hate to end up with bronchitis.

Tuesday, May 13, 2008

Purge

Been sick since Saturday. It's pretty much no fun.

Due to the excessive sleeping involved in being ill, I am behind on just about everything. I did manage to go through my clothes before I got sick and pick out about two trashbags worth to give away. Upcoming move to Texas gives me an excuse to downsize my stuff a bit. I also have a stack of magazines about six feet tall ready for the recycling bin.

Usually when I go through my clothes, I end up keeping t-shirts with memories attached. I still have my shirt from Nerd Camp in 1999, as well as several high school related ones. I haven't actually worn them in years, so this time they got pitched. Something clicked and it just seemed silly to keep things I had no practical use for, even if they had memories attached. My next debate is whether to treat some of my other childhood knick-knacks the same way.

As for the magazines, I had been holding on to them because I had a complete series from 1995 to 2001. But honestly, nobody really wants to collect magazines. It's an interesting mental effect... having a 'complete set' of something makes it seem more valuable. Oh well, recycle bin here I come.

All the stuff going out is being replaced by more useful things. Got the new 8800GT last night, and it's working like a charm. Tonight I will hopefully come home to a new monitor and lots of new magic cards. Oh well, I already have a place for those things in the moving process.

Thursday, May 08, 2008

Bring Forth the Pixels

So my stimulus money came yesterday. I celebrated by buying another 24 inch monitor and a video card. Got the monitor on ebay (unopened box, three year warranty) for about $125 cheaper than normal price on Dell.com (although Dell had it on sale too, so only saved about $50 over that price). The video card also felt like a steal. Got an 8800GT which, despite all common sense logic, is both faster and cheaper than the 9600GT I had wanted. All told, the damage came to $778.99... but $600 of that is Uncle Sam's money, and the rest was Grandpa's (I haven't spent what he gives me for Christmas in several years now).

Added bonus is that I don't even have to actually pay for it until March of 2009. Yay 0% credit card offers!

I look forward to the doubling of screen real estate I am about to experience. I have dual (19") monitors at work, and my single 24" at home actually feels small in comparison. I have become much more adept at taking advantage of the multiple workspace feature in X, but it's just nice to have lots of stuff visible at once. Video card will mean I can finally compiz at home too.

Looking forward to pulling an all-nighter tonight. Want to get a lot done before Tyler comes out on Saturday, and don't have a lot of faith in being productive on a Friday night. Besides, all-nighters are fun.

Tuesday, May 06, 2008

Disqus and Friendfeed

So the steady march towards Web 2.0 in my life continues. Yep, I signed up for Disqus and Friendfeed today.

Frankly I dislike the comment system here on blogger. For one, it's not threaded. Also, Disqus throws in a lot of extra niceties, like the fact that your profile works any other site that uses Disqus. They even made it really easy to switch over to the new system on new posts and leave the old system on older posts.

Friendfeed seems like a really cool system that could basically replace Facebook for me. You create an account and then link it to all your various accounts elsewhere (Flickr, Twitter, Your Blog, Amazon, even Facebook itself). It just aggregates all your activity on those sites into a nice convenient feed. It also does this for all your friends, and then you can comment on each other's feeds. The whole philosophy is to follow what your real friends are doing and share stuff. So instead of pasting some funny video around on AIM, just put it in your friendfeed. All your friends will see it and can watch and comment.

You can see my feed here. Feel free to comment on what I'm doing. It sounds like it could be cool if I had a few friends on it to follow. Also let me know if you like the Disqus comment system here.

Monday, May 05, 2008

The Slip

So several really neat things happened today.

First I woke up to an email from nin.com about a ticket pre-sale for the fall tour. They must have kept my email address from when I bought Ghosts. It was just really nice to be informed about a pre-sale by the band itself, instead of having to depend on other outlets. The pre-sale itself is also sweet, because every ticket requires a real name (which will be printed on it) to match an ID the night of the show. This means no scalpers (and no Ticketmaster)!

When I went to register for the pre-sale, I was also pleasantly surprised that a new album was released this morning. It's a free full-length album, offered in mp3/aac/flac/wav, and for once the high quality downloads are torrent files. Finally, someone gets it! When he released Ghosts he partnered with Amazon because of load concerns, and even then he had scaling problems. Either the mass public hasn't caught on yet, or (more likely) the torrents mean no scaling issues, because my experience was flawless. I had the music downloaded and was listening to it in less than a minute.

It would be nice if other artists embraced this model. Music is such a pleasant experience when it is offered DRM-free in multiple formats, easy to get, at a modest price. Today's release happened to be free, but I have gladly paid $5 for both Ghosts and Niggy Tardust, and I'll probably continue to do so. Paying $15 in a store for an outdated format that wastes valuable physical space (a CD) just doesn't compare. Today's release doesn't have the same tiered model that Ghosts did, but I hope in the future they all do, because I think that was brilliant too. I mean, he made like a million dollars in one week on that... you can't tell me the labels pay that well.

Anyway, go check out The Slip.

Friday, May 02, 2008

Brain Hurts

So uh, what have I been up to lately?

I finally broke down and got a Twitter account. At first I thought I would never touch the thing, but then realize I could update via jabber, which means I'll probably just talk to Twitter all day. My name is xich if any of you want to follow me. I'm a total twitter nub, so don't expect greatness.

Also been working on a sweet bookmarklet idea. It's coming along quite nicely. Found an interesting way around the XSS security in browsers for certain AJAX requests. If you want your bookmarklet to send data back to your server while on another site, normally you'd have to do a real GET/POST (which takes the user away from the site they are on), because XSS security doesn't allow you to make XHR requests across domains. However, if what you want to send to your server is short enough (fits in query string of a GET request), you can simply create a new image and set the source to that querystring. This will make the browser fetch the image (which does a GET request to your server), even across domains. I suppose if you wanted data back you could encode it in the image response and then binary decode it in the client. I haven't tried that, but sounds like it could work, provided javascript has some binary capabilities.

I think I might work on a jQuery plugin to implement this type of request, and if I do, I'll try to describe it better then. I wish I could claim credit for the idea, but I totally stole it from Paul Buchheit's implementation of voting on Hacker News.

Storm last night involved loss of power for a couple hours and water to come through our closed windows. As a result I didn't get a ton of sleep, and complete lack of anything for breakfast means my head is hurting. Thankfully only like six more hours until I can go home and nap.

Friday, April 25, 2008

HN Blacklist Now With UI

05/20/2008 UPDATE: Check out the new version of this which is bigger, faster, stronger, and easier to configure.

So someone said something about having a user interface for my little Greasemonkey script that acts as a blacklist on Hacker News.

Done. With it installed, a 'blacklist' link will appear in the top bar next to the 'submit' link, which will allow you to edit the list of blocked domains.

// ==UserScript==
// @name HN Blacklist
// @namespace http://news.ycombinator.com
// @description Removes blacklisted links from Hacker News
// @include http://news.ycombinator.com/*
// ==/UserScript==

// Written by Xichekolas ... do whatever you want with it.
// http://news.ycombinator.com/user?id=Xichekolas

// Just assume the stuff below will work.
var blacklist = GM_getValue('hnblacklist', '')
if (blacklist.length > 0) {
blacklist = blacklist.split(' ');
var xpathnodes = document.evaluate("//a", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

for (var n = 0; n < xpathnodes.snapshotLength; n++) {
var thisnode = xpathnodes.snapshotItem(n);
for (var i = 0; i < blacklist.length; i++) {
if ((blacklist[i].length > 0) && (thisnode.href.toLowerCase().indexOf(blacklist[i].toLowerCase()) > -1)) {
var grandpa = thisnode.parentNode.parentNode;
grandpa.style['display'] = 'none';
grandpa.nextSibling.style['display'] = 'none';
grandpa.nextSibling.nextSibling.style['display'] = 'none';
break;
}
}
}
}

// Add link to edit the blacklist.
var submitlink = document.evaluate("//a[@href='submit']", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
if (submitlink.snapshotLength > 0) {
var slparent = submitlink.snapshotItem(0).parentNode; // We only care about the first one.
var editlink = " | <a id=\"blacklist\" href=\"#\">blacklist</a>";
slparent.innerHTML = slparent.innerHTML + editlink;

var link = document.getElementById('blacklist');
link.addEventListener('click', function(ev) {
var newlist = prompt('Enter a space-delimited list of domains:', GM_getValue('hnblacklist', ''));
if (newlist != null) { GM_setValue('hnblacklist', newlist); window.location.reload(); }
}, true);
}

You can install it from here.

Thursday, April 24, 2008

SICP

My junior year at KU, I happened to take a little course called "Programming Language Paradigms" (EECS 662). Professor Brown has taught this course pretty much forever, and I think it's the only thing he teaches to undergrads (although he might pitch in on EECS 368, since that seems to round robin pretty quickly). Dr. Brown is an interesting character (very much the absent-minded professor), but the course was very eye-opening for me. I didn't realize it right away, but this was exactly what I had pictured my Computer Science education being. This specific class was it.

Later I found out why. The book on which Dr. Brown based the course is called Structure and Interpretation of Computer Programs, which happens to be the introductory programming text written and used by professors at MIT. You know, that school that invented Lisp, arguably the most powerful language in use to date.

I still have this book, and have seriously been considering giving it a run through for a couple of hours each morning this summer. Today I found out that there are video lectures available to go along with each chapter in the book. You can download them (torrents even) here: SICP Lectures.

If any of you feel like becoming a thoroughly adept programmer, this is the book that will do it. The book itself is quite entertaining (filled with jokes and written in a very conversational style), but now with video lectures, it is basically an entire class. (The online version of the book is free, and available at the same link as the video.) Save yourself $25k on a B.S. in Computer Science and just spend time on this instead. It's worth it.

Sunday, April 20, 2008

Startup School (from Kansas)

So I had the fortune to be invited to Startup School this year, and since I'm currently planning to quit my job and take advantage of a summer vacation, the timing couldn't have been better.

Kathy and I flew into San Jose on Friday morning and caught the Caltrain up to Palo Alto. After living in Europe, the Bay Area's public transit seems a bit disjointed, but it really was refreshing to at least have the option. It gets the job done for our three-day visit.

Walking from the train station to our hotel, we passed the Facebook headquarters. There were a bunch of people in suits in the lobby with cameras flashing, but I'm sure that happens every time Mark Zuckerberg enters and leaves the building. That was kind of the odd moment when I realized that this was Silicon Valley for real.

After a few hours and an excellent $9 turkey sandwich, I headed down to Mountain View for the YC pre-startup-school dinner/party. The invite said something to the effect of "investors, press, and some attendees" so I was kind of expecting some kind of sit-down dinner full of business card passing and glad-handing. I mean I know startup culture is supposed to be hip and cool, but he said 'investors' and 'press' ... how cool could it be?

The reality was a nice surprise. If any investors (besides YC) and press were there, they looked delightfully like normal people, and the rest of the crowd seemed to be founders or proto-founders. Free beer was there by the bucketful and tasty things appeared on big trays, so the food obligation was fulfilled without actually disrupting the social aspect.

There was, of course, lots of networking and pitching going on, but it didn't have that creepy used-car-salesman-turned-web-2.0-marketing-guy feeling that I feared. It was just a lot of people genuinely excited about what they were doing and excited to hear about what others were doing.

Of course, people asked what I was doing so I took the easy way out and just claimed Kansas, which usually got me two things: a welcome, and 'when are you moving here?'

I didn't totally cop out though, and gave as succinct a summary of our idea as it exists so far. Comments were both positive and less so, but I figure since we are targeting a niche, it's not going to seem as exciting to people outside the niche. I think what helps us is that we aren't targeting the same niche (namely: other people in the Valley) like a lot of web-2.0ish startups are doing.

It was kind of fun (for a kid from Kansas) to actually meet and talk to all these people I know only as online personas. I got to stand and chat in person with people like edw519, iamelgringo, kirubakaran, alaskamiller, cstejerean, and dcurtis from Hacker News, which was interesting, because I can now put faces with the words.

I even met and shook hands with PG, which for someone in my position is kind of like bumping into the Pope. (Not because he is in any way holy or superior, but just because you don't often meet one of your movement's lead evangelists in the flesh.) He seemed like a genuinely nice guy, and I'm pretty sure he ran a mile a minute the entire night ... the guy definitely has energy.

Part of my personal goals coming to this event was to see how 'startup people' really acted, and if Trevor Blackwell is any indication, the only way to describe it is 'Happy.' His two robots, Monty and Dexter, provided a nice distraction from all the meeting and greeting, and I'm pretty sure no one smiles as much as Trevor does. I can only hope to be that happy someday. Ask most people what they 'do' and you get the name of a position and the name of a company. Ask startup people what they do and they will more than likely try to show you, and failing the ability to do that they will rave for 10 minutes about how cool the product is. Notice the difference: product focus instead of position focus.

Other people I talked to included two guys doing sweet graduate research at MIT, Erik of fluther.com, a Canadian pitching his whydowork.com, two guys that apparently have a really awesome highlighter, and the guys behind Stream Focus. Sadly that wasn't even a tenth of the crowd.

I hit the sack early so I could actually be awake for Startup School itself. The auditorium was about a thirty-minute walk from my hotel room, which was improved by Ghosts and the Stanford campus itself. One thing that no one tells you is that Stanford is huge. It seriously takes over 45 minutes to walk from one side to the other, so everyone bikes accordingly. Not only does it cover a lot of ground, but the buildings themselves are monolithic. I think all the floors are intentionally 50% oversized, just to make the place seem more impressive. It works though, and I came away thinking that, sadly, KU's campus has nothing on Stanford.



The first speaker was David Lawee, who is in charge of acquisitions at Google. He gave an interesting talk about his startup Xfire, which basically boiled down to 'optimize for speed.' I think he was especially targeting the flipping crowd, but was pretty insightful about funding and how it affects your outcome. Big funding means you have to want to grow big, whereas if you just want to flip, smaller funding leaves you more nimble and able to liquidate.



Next up was Sam Altman, of Loopt fame. Sam mostly talked about details regarding getting VC and getting it on good terms. While the details were interesting, I won't regurgitate them here. The two things that really stood out were the following: "don't raise money if you can avoid it, or at least wait as long as possible" and "raise in parallel." He said he couldn't stress the latter enough. Like anything, the more competition there is (between VCs), the more likely you are to get funding fast (so you can get back to work), and the more likely it is to be on good terms.



After Sam came Jack Sheridan, Partner at Wilson Sonsini. While he was a good speaker and raised some valid points, it is hard to make law seem exciting at 10am on a Saturday. His basic aim was to list ways to shoot yourself in the foot legally, so that maybe less of us would do so.



Now Paul Graham takes the stage and asks us to stop using the Internet (for a few minutes anyway, so his slides could download). His talk centered on his theory that doing good things naturally increases your chances of being successful. It sounded like an essay prototype, so I imagine you will see it in full detail at a later date (edit: read it here). One slide that stood out (and garnered a mention in my notes) was that of a cockroach. A good motto for a startup right there.



After a short break, Greg McAdoo (Partner at Sequoia) came up and gave a really great presentation about what VCs were looking for in a startup. If nothing else, the whole talk was made by one slide that listed characteristics of failed investments, which included the phrase "Drunken Parade Leaders" ... which as far as I'm concerned has to be the funniest thing ever hidden on a PowerPoint given by someone in control of hundreds of millions of dollars. More seriously, he made the point that a good one line description of what you do is important, and that as a startup, you can't create a market, but you have to be able to capitalize on an upcoming one.



Right on the heels of Greg was David Heinemeier Hansson. To be honest, I had no idea what to expect from him beforehand, because he seems to be about as polarizing as Zed Shaw.

It turned out to be the best presentation of the day, if for no other reason than the timing. DHH, sticking to his principles, gave an excellent guide to making money online. The secret seems to be charging people money. Whodathunkit? Explaining the whole presentation in words would be difficult, so just watch the video. It was just a refreshing contrast to all the heady talk about VC and liquidity events up to that point, and the delivery was spectacular. It was like he grabbed our collective ankles and yanked us back down to earth.



Paul Buchheit rounded out the list before lunch. While at first he seemed kind of unprepared, I soon realized it was just that this guy has a really dry sense of humor. He is almost sly about his deadpans, and you get the idea he is just waiting for you to get it. His overarching advice (ironically) was to listen to what people really need, rather than what they think they want. Treat requests and advice as an encoded, often distracting, way to communicate an underlying need, and then fulfill that need. An enlightening anecdote was of Gmail, when people were requesting all these quick/batch reply features, which he finally realized were coming in because the site was just slow. He fixed the performance issue, and the feature requests evaporated. If anything, his presentation was a huge success because I made a note to both try out Friendfeed (his current product) and apply there if I like it as a customer.



Next up was probably the richest guy (briefly) in the room, Jeff Bezos, founder and CEO of Amazon. He mostly pitched AWS, which was probably redundant for anyone that has already drunken from the AWS Kool-Aid, but as a sipper myself, I still found a few enlightening things. One blockbuster graph he used showed how a small company doing online video editing was able to scale from 50 servers to 5000 in just four days using EC2. You simply can't fill out purchase orders that fast if you actually had to buy the hardware. A couple choice quotes included "that is way above my pay grade" (referring to US Immigration Policy) and "we try to be customer focused rather than competitor focused" which just seems like it belongs on everyone's wall in 192pt font.



After Bezos came Mike Arrington, of TechCrunch. He talked about getting press and the direction in which TechCrunch is moving. He also spent a few minutes talking about trolls, which was ironic because there was definitely a mic troll there all day. You know the kind of person I am talking about ... the guy who gets up to 'ask a question' and really just wastes a minute of everyone's time trying to show how smart he is. This same guy got up over and over, and by the end of the day it was obvious everyone was sick of him.



Speaking of the mic troll, next up was Marc Andreessen. This guy was the original startup guy, and keeps having success. On Friday he announced a huge funding deal for his new startup, Ning, so he was fresh off success. He talked about quite a few interesting things regarding the economy, but the highlight seemed to come when the mic troll tried to strike again. This time Jessica Livingston (who I swear has an elementary school teacher alter ego, she is that nice) was mic'd up herself, and politely but firmly crushed the troll's dreams in front of the whole crowd (to much applause). Thankfully that was the end of him.


See, that nice.




The last speaker of the day was Peter Norvig, head of Google research. His talk was slightly more technical than most, and really proved quite interesting. The overall idea was that more data was always better than better algorithms, and he illustrated that quite nicely talking about Google image search and tokenizing East Asian languages (which have no spaces between words). I wonder if this guy does video lectures, because if so, I need to watch some of them. I'll at least have to check out his books.

And that was the day. All of the speakers were quite entertaining, often surprisingly so. DHH was definitely the highlight for me, just because he tacked in a different direction and kind of grounded us a bit. The overall theme for the day, mentioned by almost all the speakers, including Bezos and McAdoo, was to look for a problem that bothers you, and build a product to fix it. All this other stuff is ancillary to having a great product you are passionate about.

Now it's time to go catch the plane back to Lawrence. I've got a fresh Economist in hand and some fun things to think about. Overall it was an excellent weekend, well worth the trip, and I look forward to next year.

(edit: Watch all the presentations, and added speaker photos, because Gary Tan took such good ones.)

Monday, April 14, 2008

Teacher

So I found A Mathematician's Lament today. For anyone that really hated math classes, or even mildly disliked them, I very much recommend reading it. His description of math education is uncannily accurate, and disturbing to boot. It actually kind of inspires me to be a math teacher. If you don't want to sit through the whole thing (it's 25 pages), I highly recommend the first couple pages, the section starting at page 14, and pages 21-25.

I put in my six weeks notice today. Summer is finally coming.

Have a firm timeline for the project with Tyler and Scott. Lots will be happening with that in the next couple weeks. Hopefully things will go well.

I'm uber-tired right now, so that is all you get. Go read that link!

Friday, April 11, 2008

Greasemonkey

05/20/2008 UPDATE: Check out the new version of this which is bigger, faster, stronger, and easier to configure.

So I know Greasemonkey is like a billion years old, but I finally found a use for it today and wrote my first GM script.

There was a vote today on Hacker News to ban submissions from Valleywag, mainly because they are all linkbait. For some time I have been avoiding links on HN to certain sites because my experience with them in the past has been less than great. So why not save myself the time of actually avoiding those sites and just hide them to begin with?

I put the script up on userscripts.org as HN Blacklist. Here is the source:

// ==UserScript==
// @name HN Blacklist
// @namespace http://news.ycombinator.com
// @description Removes blacklisted links from Hacker News
// @include http://news.ycombinator.com/*
// ==/UserScript==

// Written by Xichekolas ... do whatever you want with it.
// http://news.ycombinator.com/user?id=Xichekolas

// Edit this list of blacklist terms.
var blacklist = new Array('valleywag.com', 'nytimes.com');

// Just assume the stuff below will work.
var xpathnodes = document.evaluate("//a", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

for(var n = 0; n < xpathnodes.snapshotLength; n++) {
var thisnode = xpathnodes.snapshotItem(n);
for (var i = 0; i < blacklist.length; i++) {
if (thisnode.href.toLowerCase().indexOf(blacklist[i].toLowerCase()) > -1) {
var grandpa = thisnode.parentNode.parentNode;
grandpa.style['display'] = 'none';
grandpa.nextSibling.style['display'] = 'none';
grandpa.nextSibling.nextSibling.style['display'] = 'none';
}
}
}

I started out using jQuery to do this, but converting it to pure javascript was a fun experience and a worthwhile effort in itself, even if nobody actually uses this thing but me.

Tuesday, April 08, 2008

Victory!

This is how happy we were last night...


That is really all that can be said. Rock Chalk!

Thursday, April 03, 2008

Tonganoxie

So last night several of us went with Bob and Jessie to Tonganoxie to pick up their sweet new hot tub. Overall the trip was a success, as they have a hot tub sitting on their patio now. But I feel I must detail the hilarious beginning of the evening.

You see, this is the route we were meant to take:


Desired Route
24.9 miles - about 41 mins

But this is the route we tried to take:

What we tried...
27.4 miles - about 49 mins

Unfortunately the bridge over I-70 was out. So this is the route we did take:

What we ended up doing...
34.3 miles - about 1 hour 7 mins

Notice the nice spiral shape. I'm sure that is mathematically significant somehow.

The ride home was nice and relaxing, and the tacos were excellent, so all and all a good evening. Poor Schwumps on the other hand...

Wednesday, April 02, 2008

Euler

Allan pointed me to a kickass website the other day. Project Euler is an interesting confluence of number theory, geometry, and programming problems. I have done about half a dozen of them so far. I think what I like best about them is that they serve as good warm-up problems. Often it's hard for me to start on something because I'm not entirely sure what to do first. Doing a euler problem puts me into programming mode. Of course, I'll eventually run out of them, but I do have all my computer science textbooks laying around. Maybe I'll finally have a use for those.

In the interest of having something to attach myself to for Startup School, Tyler and I have been working on getting some basic functionality together. I've spent a lot of time the last couple days working with the new merb and jQuery. My javascript skills are coming along, but I'm currently fighting with creating a custom rich text editor. I have somewhat of a reference implementation in jWYSIWYG, but the editing feels buggy at best. There seem to be lots of focus issues and general UI quirks that don't make it feel quite natural yet.

My initial implementation with textareas was quite normal feeling, but that would require users to learn some form of markup, which just isn't acceptable in the age of Word and OpenOffice. On the other hand, do I really want to be reinventing word processing software in the browser?

*couple hours pass*

Op, better finish this post. Just had minor success in getting my own iframe-based editor to work. That will give me a good starting point this evening to make it do useful things.

Currently Listening: Piggy (Bassland Club Mix)