Cult of Done
Dear Members of the Cult of Done,
I present to you a manifesto of done. This was written in collaboration with Kio Stark in 20 minutes because we only had 20 minutes to get it done.
The Cult of Done Manifesto
- There are three states of being. Not knowing, action and completion.
- Accept that everything is a draft. It helps to get it done.
- There is no editing stage.
- Pretending you know what you’re doing is almost the same as knowing what you are doing, so just accept that you know what you’re doing even if you don’t and do it.
- Banish procrastination. If you wait more than a week to get an idea done, abandon it.
- The point of being done is not to finish but to get other things done.
- Once you’re done you can throw it away.
- Laugh at perfection. It’s boring and keeps you from being done.
- People without dirty hands are wrong. Doing something makes you right.
- Failure counts as done. So do mistakes.
- Destruction is a variant of done.
- If you have an idea and publish it on the internet, that counts as a ghost of done.
- Done is the engine of more.
from Bre Pettis – The Cult of Done. Via Soleio.
Related Posts
Posted under Stanford Life on Aug 30, 2010.
Leave a Comment 3 views :done, Facebook, GTD, hackingUsing CSS3 to add reflection to an iframe
Mozilla just landed a really cool new extension to the CSS background-image property in the Firefox 4 nightlies. The new extension allows you to use arbitrary DOM elements as background images. The syntax looks like this:
#iWantBackground {
background: -moz-element(#sourceElementID);
}
-moz-element lets you use virtually any element as a background, including iframes and canvas elements. I wanted to play around with it a bit, so I hacked a quick demo of an iframe with a live-updating reflection. It borrows heavily from the code in this excellent article.
Demo
(Works in Firefox 4)
I know that lots of my readers aren’t running the latest Firefox nightly, so here’s a screenshot of what the reflection effect looks like:
Here’s the code I wrote:
<style type="text/css" media="screen">
body {
background: #000;
}
#main {
margin: 30px auto 0 auto;
width: 800px;
}
#source {
display: block;
width: 800px;
height: 480px;
border: 0;
}
#reflection {
margin-top: 5px;
background: -moz-element(#source) bottom left no-repeat;
-moz-transform: scaleY(-1);
height: 200px;
border: 0;
mask: url(#reflection-mask);
}
</style>
<div id="main">
<iframe id="source" src="http://en.wikipedia.org/wiki/Color"></iframe>
<div id="reflection"></div>
</div>
<!-- SVG from http://hacks.mozilla.org/2010/08/mozelement/ -->
<svg>
<mask id="reflection-mask" maskContentUnits="objectBoundingBox">
<rect x="-0.1" width="1.2" height="1" fill="url(#reflection-gradient)"/>
</mask>
<linearGradient id="reflection-gradient" gradientUnits="objectBoundingBox" x1="0" y1="1" x2="0" y2="0">
<stop stop-color="white" stop-opacity="0.6" offset="0"/>
<stop stop-color="white" stop-opacity="0" offset="100%"/>
</linearGradient>
</svg>
Also, I decided to add a new hacks section to my blog to keep track of all the random code I write.
Related Posts
Posted under Hacks on Aug 28, 2010.
3 Comments 48 views :CSS3, Firefox, hacking, iframeDetect Proxy Usage in Firefox
I recently read about an interesting browser information leak on ha.ckers.org and decided to code up a proof-of-concept.
It allows a malicious website to detect whether the user is browsing through a proxy or not by using image tags. Proxies are often used by corporations, political dissidents, and privacy conscience Internet users because they can provide additional security or anonymous Internet browsing.
Here’s how the exploit works:
Firefox uses square brackets [ ] to denote IPv6 addresses, but this notation also works to describe IPv4 addresses (I’m not sure exactly why).
So, if we embed an image with src=”http://[74.207.246.197]/pic.jpg” into a page, Firefox automatically resolves [74.207.246.197] into the IP address 74.207.246.197.
However, if the user is browsing through a proxy, this automatic resolution doesn’t happen. Instead, Firefox asks the proxy to do a DNS lookup for the “domain” [74.207.246.197], which obviously fails since it’s not a valid domain name.
Most proxies don’t know how to handle the bracketed domain, so the DNS lookup fails. I’ve tested this on Tor (popular proxy for anonymous Internet browsing), PHP Proxy and CGI Proxy (the top two web-based proxies), and Proxify (popular commercial web proxy).
So, if the image fails to load, we know that the user is browsing through a proxy. Add some Javascript to detect when the image fails to load and you’ve got a working proxy detector.
Demo
(Works in: Firefox 3+. Update: Looks like it works in Safari 5, too.)
This, of course, assumes that the user is not blocking cross-domain requests. Also, my implementation requires Javascript to be enabled, but that’s not a necessity.
Here’s the code I wrote:
<script type="text/javascript" charset="utf-8">
function setUsingProxy() {
proxy = document.getElementById('proxy');
proxy.style.display = 'block';
no_proxy = document.getElementById('no_proxy');
no_proxy.style.display = 'none';
}
</script>
<div id="proxy" style="display:none;">
You are accessing the Internet through a proxy (corporate proxy, VPN, or <a href="http://www.torproject.org/">Tor</a>).
</div>
<div id="no_proxy">
You are accessing the Internet directly. No proxy.
</div>
<img src="http://[74.207.246.197]/organize.jpg" style="height:0;width:0;display:none;" onerror="setUsingProxy()">
This attack only affects Firefox, as far as I can tell.
Credit for the idea: Ha.ckers – Quick Proxy Detection
Related Posts
Posted under Hacks on Aug 22, 2010.
3 Comments 202 views :Firefox, hacking, information leak, proxy, security4 minutes and 22 seconds
Two years ago, I ran the fastest mile race of my life. 4 minutes and 22 seconds.
At the beginning of my senior-year high school Track season, I set my sights on a 4:22 mile. My best time from the previous season was 4:30. I never took my eyes of the prize – I aimed for that 4:22 all season long, slowly improving my best time every few weeks.
- Mar 8, 2008 — 4 minutes and 31 seconds
- Mar 29, 2008 — 4 minutes and 26 seconds
- Apr 18, 2008 — 4 minutes and 24 seconds
- May 16, 2008 — 4 minutes and 22 seconds
I finally ran a 4:22 mile at the Sac-Joaquin Section Meet. It was the perfect way to finish up my high school running career, and I was quite pleased with myself.
A few days later, I gave a speech at the end-of-year Track banquet where I reflected on the last 3 years of my life as a runner. There, in front of my coaches, all my teammates and their parents, I proudly proclaimed that I was a lifelong runner.
It made me happy to know that I would be a runner for the rest of my life. What a great life! I gave all the credit to my excellent coaches (Rob Fairley and John Mansoor) who showed me how much fun running could be.

Fast forward to today.
I haven’t run consistently for pretty much the past two years (since the first quarter of Stanford). College makes running difficult: No consistent Track or Cross Country practice to attend, no teammates to encourage you to run, and no real consequences for not running. Plus, there are so many other interesting things to do. Time flies.
But, something snapped in me today. I’m determined to start running again — and to keep running. Forever.
Goal: Run daily
So, that’s the point of this blog post. I’m publicly declaring my intent to run daily. It doesn’t matter how many miles I run each day. What’s important is that I run daily. I will share my progress (or lack thereof) publicly. This should raise the stakes. If I fail, everyone will see it.
Now the pressure is on — I have to give this my best effort.
So, take a look at my public running log.
If you like what you see, share your encouragement in the comments. If you’re disappointed, share that too. Everything helps.
I’m determined to reach this goal.
Posted under Stanford Life on Jul 17, 2010.
3 Comments 740 views :goals, high school, life, mile, runningBig Bang Big Boom
This blows my mind.
BIG BANG BIG BOOM – the new wall-painted animation by BLU from blu on Vimeo.
Related Posts
Posted under Science, The Internets, This is AWESOME! on Jul 17, 2010.
Leave a Comment 582 views :art, big bang, life, war






