Heart Rate
July 24th, 2008In PE in middle and high school, I always remember taking my pulse and having a very high resting heart rate relative to others. I forget the exact number, but it might have reached 80 beats per minute or higher. I always thought I counted incorrectly or double-counted.
I’ve started running and walking almost daily recently. I feel better and more energized, especially after a run. I would like to know if my overall health improved since I started about 4-6 weeks ago. The first days, I could barely go around the block. I would come back into the house and gulp down a gallon of water in between deep panting heaves. After a couple of weeks I could run/walk a mile or two without gasping for breath by the end. Yesterday, I estimate I ran/walked 5 miles (I know that I walk 4 miles an hour) without a problems.
So, in terms of endurance, my fitness improved. But what about my heart rate? I check yesterday and today. It’s down to about 63 beats per minute. I made a graph using a short Python script, pygooglechart, and the Google Chart API. I will be plotting more data points every day:
Lance Armstrong has a resting heart rate of 32 beats per minute! On the other hand, some quick research online tells me that resting heart rate poorly correlates to fitness, although recovery rate would be a better measure. I’ll start charting my recovery rate once I figure out how to measure it easily.
[?]YCombinator Application Guide
July 20th, 2008YCombinator, a kind of mini- venture capital firm, invests tens of thousands of dollars ($$$) into very early seed stage start-up companies run by smart technology hackers.
I applied to YCombinator two times. The first time, when I applied with my friend Mason for the Summer 2007 round, I arrogantly presumed that Paul would lavish on us praise and beg us to fly to California to work with him. I spent no more than an hour on the application. We had no passion in the idea we presented. Our projects list hinted at nothing particularly remarkable or unique. Our analysis of the idea and our competitors delved only into the shallowest parts of a deep lagoon.
The second time, when I applied alone in Summer 2008, in an inspired moment I sat down in Starbucks for a solid few hours to work on the application. I strived for excellence, not perfection. A few months prior, I had briefly glimpsed the semi-successful application of Liz Jobson and Danielle Fong. I recalled their deep detail and thoughtful writing, so I imitated that kind of deep analysis which shows off one’s mastery of logic and breadth of experience.
I wish I had known how to write a good application the first time. So, taking my cue from Brian Lash’s recent question on Hacker News, I helped him out. I write here a slightly expanded version to help out anybody else who wants Paul Graham & co. to fund his or her startup.
If I were to advise myself in 2007, I would recommend that I write briefly but write a lot. This advice seems contradictory, but I mean it in a very specific way. My first application, I kept brief. I did not want to swamp YC with a tome of text. I saved many of my accomplishments for the interview. Do not do this. Write, write, and write some more. Write everything interesting and unique about yourself. If you have doubts about a statement you made about a competitor, qualify it. Don’t vacillate, but at the same time don’t seem shallow, ignorant, and inexperienced.
Of course, once you’ve written all that, you have a very long application. Now, take out filler words. Compress ideas that take up two sentences when you can use just one. If you waste two words in a sentence, delete the whole sentence and write it again from scratch. If you see a phrase that you think an investment banker might use on his resume, nuke it. Achieve a high density. In my experience, the YC crew truly pores over these applications to understand all of the meat of it. They do not skim your application when it has rich content. Cut, cut, and cut some more.
Now, step back and look at your application. If you have very little writing left, real content, then you may not be the best fit for YCombinator this year. That’s okay. It’s good you know now. Take this year off and work on some interesting, hard projects that nobody has done before. Bounce your idea off of the smartest person you know. Hell, micro-test the idea. Then, repeat this process.
Step back, look at your tight list of accomplishments. If it’s long, that’s great, since reading something long but rich in content everyone loves to do. The length indicates strength. In my limited experience, I think this is how I made my application successful.
Here’s some of my application below (I elided some less relevant parts). I was accepted for Summer ‘08 2008 but decided to pass this time for a variety of reasons.
—————————————-
What is your company going to make?
I’m open to anything. Here’s one idea:
————–
Have you ever scanned a document before? How was that experience?
It was terrible for me, too. Everyone I have ever asked has agreed that it is physically painful. But, there is a solution, one based on understanding actual human needs. What is wrong with the scanners of today?:
* slow (takes time to heat up)
* slow (scanning at a high dpi takes a long time)
* complicated (please select the dpi, now select bla, now bal[sic]…)
* cumbersome (files generated at high dpi are huge, slow down system)
* cumbersome (OCR’ing a document is a whole other rigamarole)
What do people really need? Simply a decent, readable scan of the document. This should be as easy as holding the paper up to face the monitor.
Imagine that.
I propose that I sell a device which is basically just a decent-resolution CCD chip with a special lens which connects to a computer (wired at first, but v2 wireless). Scanning a document is as simple as holding the camera up to a document and clicking. In my tests, scanning a whole text books takes 5-10 minutes. This is a game-changer. I’ve worked with an ip lawyer to file the provisional patent on this and a few other aspects of the designs.
[BY THE WAY, IF ONE OF YOU WANTS TO HELP ME BUILD THIS, I'M ALL EARS. I'M AN AI HACKER NOT A HARDWARE HACKER. OH, BY THE WAY, I USED A DIFFERENT IDEA IN THE INTERVIEW ROUND, NOT THIS ONE SINCE I'M SKEPTICAL OF THE MARKET FOR THIS PRODUCT AT THIS POINT. NEVERTHELESS, IT'S VERY COOL. I WANT TO BUILD THIS FOR MYSELF!]
For each founder, please list: name, age, YC username, email address, personal url (if any), and current employer and title or school and major. List the main contact first. Separate founders with blank lines. Put an asterisk before the name of anyone not able to move to Boston June through August.
….. [Be sure to put your blog here. Don't have a blog? Make one. Blog about whatever is on your mind. Blog about your hacking.
To be honest, an Ivy League pedigree probably helped. Also, my computer science degree (as opposed to Economics or Business one) probably encouraged YC's faith in me.]
Please tell us in one or two sentences about something impressive that each founder has built or achieved.
Looking at some things in ~/projects folder: ……..
[Here I mention a few of my projects, with links to open source code, web pages, anything I can publicly show. I didn't spend more than one or two sentences describing any one project, but I listed many of my most interesting projects and why I worked on them. YC likes to see you working on real problems, so I talked about problems I solved for myself and for others directly
They want to see that you think creatively and that you actually finish things.
It goes without saying that you should list projects which uniquely describe you. Building a toy language in Programming Languages class many people probably do. Yes, it may have taken you a long time, and you may have learned a lot, but you do not necessarily stand out. Writing a CAPTCHA solver to hack Digg few people do or can do.]
Please tell us about the time you, ljlolel, most successfully hacked some (non-computer) system to your advantage.
…… [I talked about my shotgun email to dozens of startups here in Silicon Valley which gave me the opportunity to meet a lot of cool entrepreneurs. I'll probably blog about this at some point in the future.]
Please tell us about an interesting project, preferably outside of class or work, that two or more of you created together. Include urls if possible.
(see above) [I applied alone, so group projects inapplicable.]
How long have the founders known one another and how did you meet? Have any of the founders not met in person?
n/a [Again, I was a sole founder.]
What’s new about what you’re doing? What are people forced to do now because what you plan to make doesn’t exist yet?
(see above) Basically, nobody ever scans anything because it takes forever, doesn’t really do what you want (you just want a readable, small image and for the document to be searchable),
What do you understand about your business that other companies in it just don’t get?
Scanner manufacturers try to pack in the highest dpi they possibly can. They focus on resolution, when they should be focusing on the user experience. Speed is what they should optimize, but I see no scanner manufacturer doing that.
Who are your competitors, and who might become competitors? Who do you fear most?
HP, Xerox, etc, also ScanR, Qipit, Evernote …… [I go on to be brutally honest about the difficulty and vulnerability of my position as a hardware startup in a crowded field. Remember, you are writing for some very, very smart people. They want to see your analytical thinking skills here. They want to see you be realistic, not delusional.]
……. more questions, answer analytically deeply, answer honestly to the best of your ability ……
If you had any other ideas you considered applying with, feel free to list them. One may be something we’ve been waiting for.
…….. [I always think of new ideas and discuss them with friends. I chose 4 and listed them here. I crisply described each in no more than 2 brief sentences.]
[?]Steve Yegge Rules
July 19th, 2008I stopped writing in this blog once I realized that people actually read it. I received a few comments in one technical blog post. They pushed me over a cliff. Instead of publishing whatever popped into my mind regardless of the quality of the idea or writing, I hesitated over every agonizing sentence. Every word strangled me. I began to engineer my very thoughts to match that post’s style and topic, but I often failed and quit. I have 28 abortive drafts in WordPress.
I truly enjoyed clarifying my thinking through writing. So, I will write more. Perhaps I will write something tautologically wrong or use dirty slang. Irrespective of the quality, I will write.
Incidentally, Steve Yegge inspired me to start writing again. If you program computers, you will love Steve’s Drunken Rants. With his 20 years of programming experience, he cuts down to the bone of programming problems and programming triumphs. He writes thoughtfully and completely; the rants often span several thousand words. He wrote them, he claims, while drinking wine during the time when he worked at Amazon.
Now, he works at Google and has a more current blog: http://steve-yegge.blogspot.com/ . The newer rants also require serious time commitments to read, but each one imparts to me incredible insights. For example, I now love JIT’s.
[?]Games to play with just voice and memory
May 12th, 2008XKCD solves Ghost
The XKCD guy not long ago wrote about the game Ghost. You start the two-player game Ghost by saying one letter. Then, your opponent says another letter. Concatenate the letters together, they should not form a word. Continue adding letters to the concatenation of letters one by one until somebody forms a word and thus loses.
The XKCD guy uses the Ubuntu dictionary in /usr/bin/words and creates a short program to calculate the optimal strategy to play the game. He solves Ghost and publishes the solution. Since that game no longer yields interesting results, he asks at the end of his post for users to recommend new games that he can play just using voice and memory. None of the offered games seemed very interesting or innovative, so I will offer my own:
My brother Mark and I have spent many hours in cars together through our lives. To fight boredom, we have invented some open-ended games. I will mention only the most unique one: the Doubling Game. How about the Perla Doubling Game, yes.
Doubling Game Rules
Nobody can be confused by the simplicity of the Perla Doubling Game. Two players play, although I can easily see any number of people playing. One begins by saying, “2 + 2 = 4.” The second player takes the summand and adds it to itself, thus speaking “4 + 4 = 8.” The first player continues with “8+ 8 = 16,” and so on until a player asserts an incorrect sum and thus loses.
Importantly, the game does not encourage adversarial deceit. Once the game reaches the hundreds of millions, the digits become more difficult to store in short-term memory. I can ask my brother what he last said as a summand. We double-check the sums with each other cooperatively. Minor slip-ups slide, since continuing with ever-larger numbers exercises the brain much more than starting over at “2 + 2.”
We enforce no time penalties. When the two players match up in skill-level, they both spend all of their energy and about the same amount of time performing all of the sums. One player sums because it’s her turn, the other sums to check the other’s answer. And, cooperatively, you remember many digits together.
Variants
Yes, you can begin with other primes, such as “7 + 7″ or “53 + 53″ (exercise for the reader: why start with primes?). But, once you reach a very high level, the summands become as simple (and as difficult) as the “2 + 2″ path. Moreover, these numbers tend to repeat the same chunks of numbers no matter where you start.
Fun
The Perla Doubling Game taxes you mentally, passes the time, and inspires both a competitive and cooperative spirit (how high can you go?). I highly recommend the game to any two smart, bored car passengers.
[?]TipJoy ingeniously simplifies and enables micro-payments
April 20th, 2008I have already written about my distaste for advertising.
Sometimes, however, these newspapers and blogs manage to make something of value. A particularly hard-hitting expose in a newspaper, or a particularly helpful guide in a blog, offers to people real value. Nobody can create this kind of content every day, or probably even every week or month. A subscription subsidizing the page-filling fodder misallocates wealth. I want to pay for the value more directly, not indirectly through ads.
Or, more commonly, a blog post provides for me a little bit of value. Not $50/month in value, but perhaps 50 cents/month. No payment system can pass around payments like that easily for the user, especially without ridiculously large credit card fees. How can I tell Michael Arrington of TechCrunch that his site I find useful sometimes? Combined with the millions of others who find his site just a little bit useful, he can make some money directly from us.
Fortunately, I think TipJoy solves many of these problems. The site only launched a few months ago, so it has to grow quite a bit before it reaches a tipping point. Nevertheless, TipJoy designed their product beautifully.
Registration
First, for new users, creating an account takes a few seconds. Just click on the TipJoy button, write in your email, quickly create a password, and finish up. No credit cards required. A new user signs up by tipping, integrating the first-use with registration. Ingenious.
They follow a model that bar’s use where you can set up a tab and pay later. Readers get drunk tipping blogs here and there all around, running up a huge tab. Users only pay once the tab gets large enough to justify the credit card fees. Their model differs from the bar, of course: just like the tips themselves, paying the tab is optional. Nevertheless, through this system, TipJoy encourages people to sign up easily, and only over time pay off their tabs.
Tipping
Second, once signed in, tipping takes just one click. No annoying confirmation steps required. No complicated questions about how much you tip. You get one choice: 10 cents. Of course, you can tip more if you want. This encourages readers to tip generously around many sites across the web. The tab builds up invisibly behind the scenes.
When I first read about TipJoy, I knew that it, or a model very similar to it, would take over the web. I think it will take time. However, I will support this service by putting it up on my blog. Maybe, one day, I will write a post that many people find just a little bit useful, and I can finally monetize this blog :).
[?]Make your own chimes
April 17th, 2008I just bought a Mac Mini. I love it. Apple spent a lot of time polishing OS X.
I configured OS X to create a chime, a 21-st century chime. In the Date & Time settings, I selected it to tell me the time every hour. At 6pm, a voice from the computer says, “It’s 6 o’clock.” At 10pm when South Park comes on, it reminds me by saying “It’s 10 o’clock.” The chime keeps me conscious of the time passing when I’m online.
I dual-boot Ubuntu on this Mac Mini. Ubuntu, unfortunately, does not have this chiming feature. However, I set it up in minutes. I installed festival, the free open-source text-to-speech synthesizer, as well as an American voice (I struggled to understand the British voice).
sudo apt-get install festival festvox-kallpc16k
Then, in crontab, I added one line:
0 * * * * echo "(SayText \\"Its`date +\%l` oclock\\")" | festival
Now I easily keep track of the time.
[?]How to check email two times a day
April 15th, 2008Tim Ferriss popularized the idea that you should limit the amount of time you spend checking email every day. He espouses a philosophy of life called the low-information diet. By following these guidelines, you get more done and, more importantly, feel less stressed.
One of his suggestions about email spread across the blogosphere very quickly because of its simplicity and practicality. He recommends that you check email only twice a day (or preferably less often) and strictly adhere to that rule. I started following these guidelines a few days ago, but I easily relapse. Nevertheless, I do a few things to try to stay on the wagon:
- Add a message to all outgoing emails:
EXPERIMENT: I will be checking email 2 times a day at 1pm and 6pm pacific time.
If you need me earlier, then please contact me below.
And of course I put my contact information below. With this signature, I do not worry about missing out on important and urgent information or replies.
- Delete all links, shortcuts, and bookmarks to GMail
- Set up a script to automatically open up GMail at 1pm and 6pm every day. In Ubuntu, I write just one line in crontab:
0 13,18 * * * export DISPLAY=:0 && firefox https://mail.google.com/
Linux makes hard things easy.
[?]Untenable advertising
April 8th, 2008Ads annoy me. Ads annoy everyone.
More importantly, I cannot envision building a serious business which depends on these kinds of banner ads, or even text-link ads. But many websites do: TechCrunch, Project Wedding, Reddit, MightyQuiz, Justin.TV, Scribd, Loopt, and so on.
I use many websites online every week. Many provide a lot of value to me, they help me do my job more quickly or help me live my life more easily. They offer me so much value, I would even pay to use them. Some of these services include Google, Amazon, GitHub, Bank of America, Kayak, Craigslist, and a number of blogs like Slashdot, XKCD, and so on.
Except for Google services and the content creators (the blogs), I pay directly for the value these websites give me, given how little the services cost. The smartest ones all do. Kayak, for example, makes money off of the airline and hotel referral fees, not ads.
Unfortunately, many startups think that Google’s AdWords will be their sole source of revenue for their website.
Weakness
But, advertisements as a business model suffer from a fundamental weakness: advertisements indirectly monetize a website. Sometimes, the indirect monetization means that you make more money. Often, it means you make less.
Imagine you make a technically amazing product on your site. Nothing else exists like it. I sign up, and I notice that you provide an incredible amount of value to me. I would be willing to pay a large monthly fee for that. Instead, though, you monetize the website through advertisements. I never click on the ads. I visit to your site to use your product, not to buy chainsaws. You make no money off of my use. Even if I clicked on a few ads, you still make less money than if I paid a monthly fee.
That doesn’t work. You get none of the pay off from the value you provide me, while simultaneously actively annoying me. Project Wedding offers a good example. I would use Project Wedding to review, for example, photographers and find the perfect photographer for my wedding. The Google Ads at the top for random photographers who happen to pay for the ads do not help me; they only confuse me. A referral fee model makes more sense, or preferably an even more creative never-before-seen model.
The Quintessential Advertising model
Now, for a few kinds of websites, advertising makes sense. When I’m looking for a chainsaw to buy, I google “chainsaw” to find results, but I also see “chainsaw” sponsored ads on the right. That makes perfect sense; it directly provides me value. Google search exemplifies a great use of advertising. As Google’s customer, you watch Google continually provide us a better, more targeted service. It is the Yellow Pages model.
The Common Advertising Model
Advertising does not make sense in most other models. It does not provide value any other way, but it does annoy me. Nevertheless, I would use advertising if I started a company that built one class of product: products that provide little to no value. Examples include most television programs (think “reality” TV) and online games. People spend time watching random television shows to waste time and not think. These provide little (negative?) value. You have absolutely no opportunity to get people to spend money on your silly time-wasting flash game. You can, however, put ads along the side. With this kind of advertising, you transform your customers from the people playing the games into the advertisers. The advertisers pay you to reach out to these game-players, at the expense of the already-void user experience. Advertisers pay more.
Most magazines, newspapers, and blogs also fall into this category. Reddit and Digg as well. Little to no (to negative) real value offered. Newspapers and magazines offer nominal subscription fees, not because they cover the cost of the reporting–it probably does not even cover the cost of the ink– but because advertisers demand that they know real circulation numbers. Advertisers assume that if you pay at least a little, you probably read it and look at the ads. Because content creators cannot extract enough money from you directly into paying for all of the reporting and server overhead, they resort to becoming the servants of advertisers. Digg now displays (or at least recently used to) very annoying flashing ads.
Make something useful
But if I want to create something that depends on this kind of advertising, why do I want to create it in the first place? Why do I want to make something that nobody values, that nobody finds useful? For me, I cannot do that. I want to make something great, not a time-waster.
[?]Stanford’s Entrepreneurial Thought Leaders Series (now on your iPhone!)
April 5th, 2008The Stanford Technology Ventures Program runs a well-developed incubator for tech businesses at Stanford University.
STVP offers some very cool resources free to the world. For example, I have been listening to their Entrepreneurial Thought Leaders audio podcast. The program brings in some of the greatest entrepreneurial forces in Silicon Valley today. Some of the speakers include
- Ron Conway (angel investor extraordinaire: Google, Facebook, etc)
- Mike Maples (angel: Digg, etc)
- Carly Fiorina (ceo: HP)
- Larry Page and Eric Schmidt (founders: Google)
- John Doerr (venture capitalist: Kleiner Perkins)
and so on.
While I was listening to Mike Maples and Ron Conway give their talks about angel investing, I had trouble following along and knowing who was saying what. I had subscribed to the talks through iTunes. When I visited the site, I noticed that they published videos as well, but in a Flash format, and not available as a podcast. I followed the videos much more easily.
So, in accordance with their fair use license, I decided to scrape the video metadata, download the video files, transcode them into an iPod-acceptable format, and republish them in a simple video podcast format. I now have scores of these talks in my iPhone and on my Mac Mini to view at my leisure.
Now, you can download them to your iPod, too. Just subscribe through iTunes or any other podcatcher.
P.S. I’ve open-sourced the code (AGPLv3), in case you ever want to make a podcast yourself.
[?]Learn 100 digits of pi at lightning speed
March 14th, 2008Learn 100 digits of pi at lightning speed.
In a previous post, I wrote about the Secret to Pi. I wrote about the method I used to learn 100 digits of pi in under an hour and remember them days later without extra practice.
While memorizing the digits of pi using this method, I realized that I was spending most of my time trying to think up words that would translate to the digits. I tried to think of the longest word I could. Sometimes I would screw up and use a word that did not translate to the correct digits. I spent 2/3rds of my time just thinking of good words, images, vivid pictures. It was hard and slow.
So, I decided to make a computer program to find the words and optimize everything for me. I did, and I’m releasing the code under GPLv3. Of course, all the code is PYthon2.5. Please allow me describe it to you. With the words precomputed, I can learn pi as quickly as I can tell a story!
At the top above, I linked to a page which I generated automatically using these libraries I’m releasing.
There are a few libraries. They all require NLTK. NLTK is an excellently-designed, well-developed, actively-maintained open-source natural language parsing library. It has many (nearly 1GB of) corpora.
First, generate_nouns.py is a script. We need to automatically generate a good, long list of concrete nouns for you to have strong images and remember the story of pi visually. It uses the CMUDict Pronunciation Corpus which is in nltk.corpus.cmudict. It also uses the wordnet corpus in nltk.wordnet. The script does some intelligent processing to filter out archaic words, curse words, and abstract nouns. Run generate_nouns.py at the command line to create a nouns.csv file, or just download my copy. 50-75% are very good, concrete, vivid nouns for this purpose. If you can help me get a higher percentage/more good nouns, please tell me.
Second, there is soundmap.py. Soundmap.py is a library (import soundmap) that you can use to convert a word or phrase into the corresponding digits. To be perfectly flexible, it loads a file which describes how to match which sounds to which digits. I provided the sounds.csv file which is the one I use. I haven’t tried to figure out what would be the optimal configuration yet, but maybe you can :). This also uses the CMUDict Pronunciation corpus (of course). Call soundmap.convert_to_digits(phrase) to have it return a string of digits.
Finally, there is mapwords.py. Mapwords.py is a library that takes in a string of digits (such as the digits in pi) and uses the nouns.csv list of nouns and soundmap.py to figure out the optimal sequence of words for people to remember that sequence of digits. It also has a couple hundred digits of the famed constant inside the library: mapwords.pi. Simply call mapwords.get_best_mapping(mapwords.pi) for it to return a list of words.
You can put all these together and quickly learn thousands of digits of pi. Here’s a great page with many digits to throw into the program.
[?]
