tag:blogger.com,1999:blog-75313034713865032322024-03-19T06:38:33.701-04:00Are You There God, It's Me David Stacey JoergAnonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.comBlogger52125tag:blogger.com,1999:blog-7531303471386503232.post-67848757261588171042017-03-06T20:22:00.000-05:002017-03-06T20:37:10.648-05:00Calendar experimentation!<iframe src="https://calendar.google.com/calendar/embed?mode=AGENDA&height=600&wkst=1&bgcolor=%23FFFFFF&src=7r7036g0kkbm53dkjildv1eqjk%40group.calendar.google.com&color=%235F6B02&src=olcmsk85osomeq7f4omlgrpbmg%40group.calendar.google.com&color=%2329527A&ctz=America%2FNew_York" style="border:solid 1px #777" width="800" height="600" frameborder="0" scrolling="no"></iframe>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-12990062256540017922016-11-01T09:31:00.000-04:002016-11-01T09:34:42.774-04:00The Best Tool I Ever Wrote About, and Why<span style="font-family: "courier new" , "courier" , monospace;">"No man but a blockhead ever wrote, except for money" —Abraham Lincoln</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">As you may know, I run a few websites. The most-used one is GGTracker, a website for Starcraft players to get better faster. It analyzes their game replays and tells them some things about their games.<br />
<br />
Like many websites, it is powered by Amazon Web Services (AWS).<br />
<br />
AWS provides a suite of services that you need if you're making a website. One of the simplest and most powerful services offered by AWS is S3, which is like an infinite-sized hard drive. It's awesome and reliable.<br />
<br />
What's not awesome about it is that it's not terribly user-friendly. And it's kind of hard to get basic usage reports out of it.<br />
<br />
Enter S3Stat. S3Stat sends me a weekly email report showing that I'm currently spending about $0.34 per week on S3. It's important for me to keep an eye on that number, because it could jump without warning to $10 or $100 for a week if someone decides to abuse my website. I could program AWS S3 to have some limits, but AWS is so hard to use that I'd rather not spend the hour or two to learn how to do that, and even if I did it I wouldn't be sure I had done it correctly. Easier to just use S3Stat and get the weekly email telling me that everything is normal.<br />
<br />
The S3Stat email is enough, but if I want to see more detailed stats about usage it's all there.<br />
<br />
So, why am I writing about S3Stat? I use all kinds of awesome tools and usually can't be bothered to write about them.<br />
<br />
S3Stat are also marketing geniuses. They gave me a one month free trial of their service which was enough for me to see how it works. At the end of the month, they warned me in advance that they were going to start charging me (very nice and friendly, makes me like them) but that of course I could cancel if I wanted to. But that if I'm going to cancel, I should be sure to log in and delete my records from their system for my own security (fair and a good point, makes me like them).<br />
<br />
When I log in, I notice that they offer a "Cheap Bastard Plan" which I like, I'm a cheap bastard, what's that? Well, the Cheap Bastard plan is that you write a blog post about their service, and then you get their service FREE, forever!<br />
<br />
Not only am I writing a blog post, but then I'm gonna tweet and facebook about it, because it's interesting and these guys are geniuses and more people should do business like them.<br />
<br />
Have you seen other people run their business like this? Tell me about it in the Comments below.<br />
</span>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-90951755143767160372014-12-08T11:17:00.000-05:002014-12-08T11:17:33.062-05:00How to Get a Restaurant Reservation with only 57 lines of CodeThe restaurant I wanted takes reservations six weeks in advance, every Monday at 10:30am. So every Monday I would call a few times, and then give up. I don't have time for this nonsense!<br />
<br />
Then I got mad and realized I could use Twilio. Twilio is a neat system that provides programmatic access to the phone system — making calls, receiving calls, conference calls, recording calls and sending/receiving text messages.<br />
<br />
Twilio was fun to learn. Once you get it working, you can make phone calls from the command line! I wrote a little script that would call any number, and if it was busy, hang up and try again right away. Once it gets through, then it adds them to a conference call, which I'm already in.<br />
<br />
So this morning, the moment of truth came and we started dialing away. Six minutes and seventy call attempts later, I was in!<br />
<br />
Easy :)<br />
<br />
<br />
<script src="https://gist.github.com/dsjoerg/18628fcb5b93ead9d870.js"></script>
Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-36047384007242420492014-09-09T09:05:00.002-04:002014-09-09T09:05:36.289-04:00Using AppleScript to block access to distracting websites at nightThe goal: block access to timewaster websites at night so that they don't keep you up late. My <a href="http://aytgimdsj.blogspot.com/2014/05/superego.html">Superego</a> program can kill your whole browser at night, but sometimes that's too severe and you just want certain sites to be blocked.<br />
<br />
I chose AppleScript as the tool for the job. I hadn't written AppleScript before, it was almost fun.<br />
<br />
<div class="p1">
<br /></div>
<div class="p2" style="font-family: Verdana; font-size: 12px; margin-left: 39.2px; text-indent: -39.3px;">
<b>set</b> <span class="s1" style="color: #4f8f00;">t</span> <b>to</b> (<span class="s2" style="color: #812fdc;">time</span> <b>of</b> (<span class="s3" style="color: #012fbe;"><b>current date</b></span>)) </div>
<div class="p2" style="font-family: Verdana; font-size: 12px; margin-left: 39.2px; text-indent: -39.3px;">
<b>if</b> (<span class="s1" style="color: #4f8f00;">t</span> < (6 * 60 * 60)) <b>or</b> (<span class="s1" style="color: #4f8f00;">t</span> > (22.25 * 60 * 60)) <b>then -- when it's after 10:15pm or before 6am</b></div>
<div class="p3" style="font-family: Verdana; font-size: 12px; margin-left: 78.5px; text-indent: -78.6px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>tell</b> <span class="s4" style="color: #0433ff;"><i>application</i></span> "Google Chrome"</div>
<div class="p4" style="font-family: Verdana; font-size: 12px; margin-left: 117.8px; text-indent: -117.8px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>repeat</b> <b>with</b> <span class="s1" style="color: #4f8f00;">w</span> <b>in</b> <span class="s4" style="color: #0433ff;"><i>windows</i></span></div>
<div class="p5" style="font-family: Verdana; font-size: 12px; margin-left: 157.1px; text-indent: -157.2px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>repeat</b> <b>with</b> <span class="s1" style="color: #4f8f00;">t</span> <b>in</b> <span class="s4" style="color: #0433ff;"><i>tabs</i></span> <b>of</b> <span class="s1" style="color: #4f8f00;">w</span></div>
<div class="p6" style="font-family: Verdana; font-size: 12px; margin-left: 196.4px; text-indent: -196.4px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>repeat</b> <b>with</b> <span class="s1" style="color: #4f8f00;">badurl</span> <b>in</b> {"reddit", "ycombinator", "twitch"}</div>
<div class="p7" style="font-family: Verdana; font-size: 12px; margin-left: 235.7px; text-indent: -235.7px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>if</b> <span class="s2" style="color: #812fdc;">URL</span> <b>of</b> <span class="s1" style="color: #4f8f00;">t</span> <b>contains</b> <span class="s1" style="color: #4f8f00;">badurl</span> <b>then</b></div>
<div class="p8" style="font-family: Verdana; font-size: 12px; margin-left: 274.9px; text-indent: -275px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="s4" style="color: #0433ff;"><b>close</b></span> <span class="s1" style="color: #4f8f00;">t</span></div>
<div class="p8" style="font-family: Verdana; font-size: 12px; margin-left: 274.9px; text-indent: -275px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>exit</b> <b>repeat</b></div>
<div class="p7" style="font-family: Verdana; font-size: 12px; margin-left: 235.7px; text-indent: -235.7px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>if</b></div>
<div class="p6" style="font-family: Verdana; font-size: 12px; margin-left: 196.4px; text-indent: -196.4px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>repeat</b></div>
<div class="p5" style="font-family: Verdana; font-size: 12px; margin-left: 157.1px; text-indent: -157.2px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>repeat</b></div>
<div class="p4" style="font-family: Verdana; font-size: 12px; margin-left: 117.8px; text-indent: -117.8px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>repeat</b></div>
<div class="p3" style="font-family: Verdana; font-size: 12px; margin-left: 78.5px; text-indent: -78.6px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>tell</b></div>
<div class="p3" style="font-family: Verdana; font-size: 12px; margin-left: 78.5px; text-indent: -78.6px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>tell</b> <span class="s4" style="color: #0433ff;"><i>application</i></span> "Safari"</div>
<div class="p4" style="font-family: Verdana; font-size: 12px; margin-left: 117.8px; text-indent: -117.8px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>repeat</b> <b>with</b> <span class="s1" style="color: #4f8f00;">w</span> <b>in</b> <span class="s4" style="color: #0433ff;"><i>windows</i></span></div>
<div class="p5" style="font-family: Verdana; font-size: 12px; margin-left: 157.1px; text-indent: -157.2px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>repeat</b> <b>with</b> <span class="s1" style="color: #4f8f00;">t</span> <b>in</b> <span class="s4" style="color: #0433ff;"><i>tabs</i></span> <b>of</b> <span class="s1" style="color: #4f8f00;">w</span></div>
<div class="p6" style="font-family: Verdana; font-size: 12px; margin-left: 196.4px; text-indent: -196.4px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>repeat</b> <b>with</b> <span class="s1" style="color: #4f8f00;">badurl</span> <b>in</b> {"reddit", "ycombinator", "twitch"}</div>
<div class="p7" style="font-family: Verdana; font-size: 12px; margin-left: 235.7px; text-indent: -235.7px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>if</b> <span class="s2" style="color: #812fdc;">URL</span> <b>of</b> <span class="s1" style="color: #4f8f00;">t</span> <b>contains</b> <span class="s1" style="color: #4f8f00;">badurl</span> <b>then</b></div>
<div class="p8" style="font-family: Verdana; font-size: 12px; margin-left: 274.9px; text-indent: -275px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="s4" style="color: #0433ff;"><b>close</b></span> <span class="s1" style="color: #4f8f00;">t</span></div>
<div class="p8" style="font-family: Verdana; font-size: 12px; margin-left: 274.9px; text-indent: -275px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>exit</b> <b>repeat</b></div>
<div class="p7" style="font-family: Verdana; font-size: 12px; margin-left: 235.7px; text-indent: -235.7px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>if</b></div>
<div class="p6" style="font-family: Verdana; font-size: 12px; margin-left: 196.4px; text-indent: -196.4px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>repeat</b></div>
<div class="p5" style="font-family: Verdana; font-size: 12px; margin-left: 157.1px; text-indent: -157.2px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>repeat</b></div>
<div class="p4" style="font-family: Verdana; font-size: 12px; margin-left: 117.8px; text-indent: -117.8px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>repeat</b></div>
<div class="p3" style="font-family: Verdana; font-size: 12px; margin-left: 78.5px; text-indent: -78.6px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>tell</b></div>
<div class="p9" style="font-family: Verdana; font-size: 12px; margin-left: 78.5px; min-height: 15px; text-indent: -78.6px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div class="p3" style="font-family: Verdana; font-size: 12px; margin-left: 78.5px; text-indent: -78.6px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>tell</b> <span class="s4" style="color: #0433ff;"><i>application</i></span> "System Events"</div>
<div class="p4" style="font-family: Verdana; font-size: 12px; margin-left: 117.8px; text-indent: -117.8px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>set</b> <span class="s1" style="color: #4f8f00;">processList</span> <b>to</b> <b>get</b> <b>the</b> <span class="s2" style="color: #812fdc;">name</span> <b>of</b> <b>every</b> <span class="s4" style="color: #0433ff;"><i>process</i></span> <b>whose</b> <span class="s2" style="color: #812fdc;">background only</span> <b>is</b> <span class="s2" style="color: #812fdc;"><i>false</i></span></div>
<div class="p4" style="font-family: Verdana; font-size: 12px; margin-left: 117.8px; text-indent: -117.8px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>if</b> <span class="s1" style="color: #4f8f00;">processList</span> <b>contains</b> "Firefox" <b>then</b></div>
<div class="p10" style="color: #5e6161; font-family: Verdana; font-size: 12px; margin-left: 157.1px; text-indent: -157.2px;">
<span class="s5" style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span></span>--<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span>display dialog "Firefox is running"</div>
<div class="p5" style="font-family: Verdana; font-size: 12px; margin-left: 157.1px; text-indent: -157.2px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>tell</b> <span class="s4" style="color: #0433ff;"><i>application</i></span> "Firefox"</div>
<div class="p11" style="color: #0433ff; font-family: Verdana; font-size: 12px; margin-left: 196.4px; text-indent: -196.4px;">
<span class="s5" style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span></span><b>activate</b></div>
<div class="p6" style="font-family: Verdana; font-size: 12px; margin-left: 196.4px; text-indent: -196.4px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>tell</b> <span class="s4" style="color: #0433ff;"><i>application</i></span> "System Events"</div>
<div class="p12" style="color: #0433ff; font-family: Verdana; font-size: 12px; margin-left: 235.7px; text-indent: -235.7px;">
<span class="s5" style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span></span><b>keystroke</b><span class="s5" style="color: black;"> "l" </span>using<span class="s5" style="color: black;"> {</span><span class="s2" style="color: #812fdc;"><i>command down</i></span><span class="s5" style="color: black;">}</span></div>
<div class="p12" style="color: #0433ff; font-family: Verdana; font-size: 12px; margin-left: 235.7px; text-indent: -235.7px;">
<span class="s5" style="color: black;"><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span></span><b>keystroke</b><span class="s5" style="color: black;"> "c" </span>using<span class="s5" style="color: black;"> {</span><span class="s2" style="color: #812fdc;"><i>command down</i></span><span class="s5" style="color: black;">}</span></div>
<div class="p7" style="font-family: Verdana; font-size: 12px; margin-left: 235.7px; text-indent: -235.7px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>set</b> <span class="s1" style="color: #4f8f00;">currenturl</span> <b>to</b> <span class="s3" style="color: #012fbe;"><b>the clipboard</b></span></div>
<div class="p7" style="font-family: Verdana; font-size: 12px; margin-left: 235.7px; text-indent: -235.7px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>repeat</b> <b>with</b> <span class="s1" style="color: #4f8f00;">badurl</span> <b>in</b> {"reddit", "ycombinator", "twitch"}</div>
<div class="p8" style="font-family: Verdana; font-size: 12px; margin-left: 274.9px; text-indent: -275px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>if</b> <span class="s1" style="color: #4f8f00;">currenturl</span> <b>contains</b> <span class="s1" style="color: #4f8f00;">badurl</span> <b>then</b></div>
<div class="p13" style="font-family: Verdana; font-size: 12px; margin-left: 314.2px; text-indent: -314.2px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="s4" style="color: #0433ff;"><b>keystroke</b></span> "w" <span class="s4" style="color: #0433ff;">using</span> {<span class="s2" style="color: #812fdc;"><i>command down</i></span>}</div>
<div class="p8" style="font-family: Verdana; font-size: 12px; margin-left: 274.9px; text-indent: -275px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>if</b></div>
<div class="p7" style="font-family: Verdana; font-size: 12px; margin-left: 235.7px; text-indent: -235.7px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>repeat</b></div>
<div class="p6" style="font-family: Verdana; font-size: 12px; margin-left: 196.4px; text-indent: -196.4px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>tell</b></div>
<div class="p5" style="font-family: Verdana; font-size: 12px; margin-left: 157.1px; text-indent: -157.2px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>tell</b></div>
<div class="p4" style="font-family: Verdana; font-size: 12px; margin-left: 117.8px; text-indent: -117.8px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>if</b></div>
<div class="p3" style="font-family: Verdana; font-size: 12px; margin-left: 78.5px; text-indent: -78.6px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>end</b> <b>tell</b></div>
<div class="p14" style="font-family: Verdana; font-size: 12px; margin-left: 41.6px; text-indent: -41.6px;">
<b>end</b> <b>if</b></div>
<div class="p14" style="font-family: Verdana; font-size: 12px; margin-left: 41.6px; text-indent: -41.6px;">
<b><br /></b></div>
<br />
(The Firefox code is different from the Safari/Chrome code because Firefox <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=608049">doesn't support </a>the same AppleScript interaction.)<br />
<div>
<br /></div>
<div>
Then, I run this script by cron once per minute, using the <a href="https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/osascript.1.html"><span style="font-family: Courier New, Courier, monospace;">osascript</span></a> command.</div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-14536876087651631022014-05-23T18:22:00.001-04:002014-05-23T18:22:10.642-04:00Data-diving my way to a winning Gold-league PvZ buildPvZ has been my weak spot for a long time. Very frustrating, and I felt like I had no idea what I was doing.<br />
<br />
I finally buckled down and took a deep dive into the data, looking for a strat that would work for a Gold-league scrub like myself. In particular, I was looking for a strat that would work from silver/gold up to gold/plat and didn't require an APM over 80.<br />
<br />
My site <a href="http://ggtracker.com/">GGTracker</a> has millions of replays, and there are several thousands of PvZs in there played since the last patch (March 1st) and in my league range. Zergs win ZvP in Gold/Plat about 55% of the time, since March 1st.<br />
<br />
Then I split up the games by what time Protoss completes their natural expansion. The majority of Protoss complete their Nexus at 6:00 or later (meaning they start it at 4:20 or later), and those players lose 60% of the time.<br />
<br />
FlatlineSC2's <a href="http://flatlinesc2.com/2014/02/build/pvz-naniwasan-1g-fe-4-gate-pressure-immortalsentry-build/">1 GateFE into 4 Gate Pressure into Immortal/Sentry All-In</a> starts its Nexus at 3:50, finishing at 5:30. That seemed like fun to me, and the PvZ winrate associated with that timing wasn't as bad.<br />
<br />
In that build, the all-in immortal/sentry army moves out around 10:00, so I used that as a benchmark: 45+ workers, 6+ sentries, 2+ immortals. Of course the GGTracker replays might be a biased sample, but in those 92 games, the Protoss wins 80% of the time.<br />
<br />
I like those odds!<br />
<br />
After practicing twice against the AI, I played the strat on ladder and... <a href="http://ggtracker.com/matches/5065769">I won</a>!<br />
<br />
<br />
I realize that "Immortal/Sentry" is nothing new. What was new to me was:<br />
<br />
<ul>
<li>confirming from data that it actually works in the Gold-league range (after all, some strats are solid but require too much multi-tasking or micro to work in Gold)</li>
<li>confirming that the win rate is relatively APM-independent (at APMs of 60 or above, there is no clear relationship between APM and win rate for this strat)</li>
<li>being able to watch a bunch of gold-league level replays of people playing this strat, to see exactly how they scouted, protected their expansion, how many gateways, and all the other little details.</li>
</ul>
<br />
<br />
In my particular game, the immortal/sentry push at 10:00 did a lot of economic damage, but due to my crappy micro and army positioning I wasn't able to finish the game right then and there. After another so-so push at 21:00, some proxy zealots spied that he was going broods, so when his brood army showed up, I was ready with voids and stalkers and he had a bad time.<br />
<br />
What do you think, is this strat actually viable or am I being fooled by these 92 games?<br />
<br />Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-46927917483279922132014-05-07T16:59:00.001-04:002014-08-15T10:22:29.064-04:00Superego<div class="p2" style="text-align: center;">
<span style="font-family: Georgia, Times New Roman, serif;"><br class="Apple-interchange-newline" />"You really do need a system" —Leonard Shelby, <i>Memento</i></span></div>
<div class="p1" style="text-align: center;">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p1">
<span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;">Until a few months ago, a lot of my evenings went like this: </span></span><span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;">after everyone else went to sleep, </span></span><span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;">I'd fire up the computer, grab a sleeve of crackers and a fresh tub of Nutella, play video games, and read Facebook, Twitter and Hacker News</span><span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;">. I was rolling! I'd roll straight through to one-thirty, two and beyond.</span><br />
<span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg37_vb-DBGgWbrKvYuD6LnIXORl_Mq-a6ZoYSOWSdk9rXLt-X3wdWAMOVtsZe1K8MLU3R0RsHp3OaXYLykoGpH9A5S3tSi5lIbGEGw73x0Lw-3v-2MF-ubd2-Wp8gTgVx6pW1KksMMSmE5/s1600/Nutella.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg37_vb-DBGgWbrKvYuD6LnIXORl_Mq-a6ZoYSOWSdk9rXLt-X3wdWAMOVtsZe1K8MLU3R0RsHp3OaXYLykoGpH9A5S3tSi5lIbGEGw73x0Lw-3v-2MF-ubd2-Wp8gTgVx6pW1KksMMSmE5/s1600/Nutella.jpg" height="291" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">Basically this</td></tr>
</tbody></table>
<span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></span>
<span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></span><span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;">The next day, I'd wake up bleary-eyed with a nasty grumpy brain fog. Bad, bad, bad, I was mad at myself for being so stupid. I did the math and on average, I was getting s</span></span><span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;">ix hours' sleep, not really enough. </span><span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;">And in retrospect, the late nights weren't even that much</span><span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;"> fun. Like eating a whole bag of potato chips in one sitting, in recollection, they don't seem so delicious.</span><br />
<span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;"><br /></span><span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;">I tried to be more responsible, </span><a href="http://aytgimdsj.blogspot.com/2011/01/how-to-go-to-bed-on-time-part-28.html" style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;" target="_blank">many</a><span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;"> </span><a href="http://aytgimdsj.blogspot.com/2013/07/sleep-discipline.html" style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;" target="_blank">times</a><span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;">, but nothing worked for long. During the day I wanted to do better; but when night came, I wanted to stay up and play. I started tracking my sleep with the Jawbone UP; that helped for about two weeks.</span></div>
<div class="p1">
<span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0xofFt__4UWH0zKmadHc6Brv5SLDCRI83FqJJd1jc7kKoWE-IcrL2eRVKfy6BseCEFNg-m8yDvYFQHcSi_kbqSj58iq9XrwfFy0Q4BWwYm2QCuGRGvRFFbjmAds0iaHRIG2btrZdtlWz1/s1600/9mef-800.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0xofFt__4UWH0zKmadHc6Brv5SLDCRI83FqJJd1jc7kKoWE-IcrL2eRVKfy6BseCEFNg-m8yDvYFQHcSi_kbqSj58iq9XrwfFy0Q4BWwYm2QCuGRGvRFFbjmAds0iaHRIG2btrZdtlWz1/s1600/9mef-800.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">A device for measuring my failure</td></tr>
</tbody></table>
<span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></span>
<span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></span></div>
<div class="p1">
<span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;">Three months ago, after yet another morning waking up tired and angry, I realized that simply wishing and wanting to do better was not enough. I put on my thinking cap. What was actually going to fix the problem for real? </span></span><span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;">Well, I'm a software programmer; I program things. I can't program myself, but I can program my computer — to</span></span><span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;"> simply <b>kick me off</b> after a certain time of night.</span></span><br />
<span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></span><span style="background-color: white; line-height: 18px;"><span style="font-family: Georgia, Times New Roman, serif;">So I built a system, called <b>Superego</b>, which does just that. It works like this</span></span><span style="font-family: Georgia, 'Times New Roman', serif;">:</span></div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p2">
<div class="p2">
<span style="font-family: Georgia, 'Times New Roman', serif;">A) The </span><a href="https://jawbone.com/up" style="font-family: Georgia, 'Times New Roman', serif;" target="_blank">Jawbone UP</a><span style="font-family: Georgia, 'Times New Roman', serif;"> tracks my sleep.</span></div>
<div class="p2">
</div>
<span style="font-family: Georgia, Times New Roman, serif;">B) Superego sets the day's Computer Curfew time based on how much sleep I've been getting lately.</span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;">C) At Computer Curfew time, Superego shuts off all web browsing and games until 6am the next morning.</span></div>
<div class="p2">
<br /></div>
<div class="p2">
<span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;">Now I'm getting seven and a half hours of sleep a night.</span><br />
<span style="background-color: white; font-family: Georgia, 'Times New Roman', serif; line-height: 18px;"><br /></span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p1">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJnTEN3X7oqBAiw0p9D1ojorsd6Z6tO1IopC7zyZ8j6wW-cDjXHdDgbK3byd81f-GmW4LCXO8yDV_xGCbxG5JG_qvNvfRCAjWS5zJ5O3DP0et4nG6EZLPSXS6MJJ3izfzrubJP2xQWORQ1/s1600/sleep.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJnTEN3X7oqBAiw0p9D1ojorsd6Z6tO1IopC7zyZ8j6wW-cDjXHdDgbK3byd81f-GmW4LCXO8yDV_xGCbxG5JG_qvNvfRCAjWS5zJ5O3DP0et4nG6EZLPSXS6MJJ3izfzrubJP2xQWORQ1/s1600/sleep.png" height="346" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="p1">
<br />
Some common questions:<br />
<br />
<br /></div>
<div class="p2">
<b style="font-family: Georgia, 'Times New Roman', serif;">I need this! Let me have it!</b></div>
<div class="p2">
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span><span style="font-family: Georgia, Times New Roman, serif;">If you've got a Mac, <a href="https://superego.herokuapp.com/users/sign_up">sign up</a> and go for it!</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p1">
</div>
<b><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></b>
<br />
<div class="p2">
<b><span style="font-family: Georgia, Times New Roman, serif;">Can't you just work around Superego by using your computer's administrator password?</span></b></div>
</div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;">Yes, and that's why I <i>hid my administrator password</i>. I made a new password and printed out five copies. One is at work, one's in the cellar, another's in my wife's nightstand, and there's one in each of my kid's piggy banks. During the day, I can easily get the password if I need it. But at night, my wife is a light sleeper, so if I try to open her nightstand drawer, she'll catch me. If I make the long trip down to the cellar, I'll come to my senses, give up and just go to bed.</span></div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;">Most important, if I do somehow circumvent the system and stay up late, the next day I will do what it takes to prevent a recurrence — for example, hide the passwords in places even more remote.</span></div>
<div class="p1">
<br /></div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p2">
<div class="p2">
<b><span style="font-family: Georgia, Times New Roman, serif;">How is the Computer Curfew time set?</span></b></div>
</div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif;">The Computer Curfew time adjusts every day based on how much sleep I'm getting lately.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;">It's like how you hit a target with a bow and arrow on a windy day. You aim and shoot; if the arrow falls a little to the left, you aim your next shot a little further to the right. With the Computer Curfew, </span><span style="font-family: Georgia, 'Times New Roman', serif;">the target is seven and half hour sleep. When I get less sleep than the target, the next day's Curfew is earlier; if more, later.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif;">For example, last night was a good night — eight hours, sixteen minutes, more sleep than I need — so tonight's curfew is 10:25pm, fourteen minutes later than the previous night.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif;">The actual math is nothing too fancy; a weighted average to compute recent sleep, and another to compute the recent curfew. If recent average sleep is ten minutes more than the target, then tonight's curfew will be ten minutes later than the recent average curfew.</span></div>
<div class="p1">
<br /></div>
<div class="p1">
<br />
<div class="p2">
<div class="p2">
<div class="p2">
<b><span style="font-family: Georgia, Times New Roman, serif;">Can't you just stay up late watching TV or reading instead?</span></b></div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;">For whatever reason, late-night TV and reading are not a problem for me; I don't like TV, and when I read at night, I fall asleep pretty fast.</span></div>
<div>
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div>
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p2">
</div>
<b><span style="font-family: Georgia, Times New Roman, serif;">This would never work for me, my problems are different.</span></b></div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;">Indeed, people have all kinds of different sleep-related issues. If you think a modified version of this system could help you, let me know. </span><span style="font-family: Georgia, 'Times New Roman', serif;">I love doing this kind of self-improvement stuff.</span></div>
<div class="p2">
<b><span style="font-family: Georgia, Times New Roman, serif;"><br class="Apple-interchange-newline" /></span></b>
<br />
<div class="p1">
</div>
</div>
<b><span style="font-family: Georgia, Times New Roman, serif;"><br /></span></b>
<br />
<div class="p2">
</div>
<b><span style="font-family: Georgia, Times New Roman, serif;">Why so much effort and nonsense, why don't you just go to sleep at a reasonable time?</span></b></div>
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><b></b><br /></span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;">Ha! If you are one of those "willpower" people who can just <i>decide</i> to do something and then actually <i>do it</i>, good for you. The rest of us aren't so lucky.</span></div>
<div>
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<br />
<div class="p2">
</div>
<br />
<div class="p1">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
</div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;"><b>I have more questions!</b></span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;"><b><br /></b></span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;">Please ask away! I'll add the common ones to this article.</span></div>
<div class="p2">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<br />
<br />
<br />
<div style="margin: 0px;">
</div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<br /></div>
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
</div>
Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com13tag:blogger.com,1999:blog-7531303471386503232.post-6618842704102342872013-10-01T11:43:00.003-04:002013-10-01T11:43:39.186-04:00First Peek at My Sleep DataLast night I attended the <a href="http://www.meetup.com/NYQuantifiedSelf/" target="_blank">New York Quantified Self Meetup</a>. It was nice to finally meet a bunch of my kind of nerds.<br />
<br />
Inspired by the sleep talk, I downloaded my Jawbone Up data and tried to replicate the speaker's finding that deep sleep % is correlated to previous night's sleep duration. In my case there does not appear to be such a correlation:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/K1QFNzW.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="272" src="http://i.imgur.com/K1QFNzW.png" width="320" /></a></div>
<br />
<br />
Also interesting, the amount of deep sleep seems somewhat unrelated to the amount of total sleep — ~4 hours of deep sleep regardless of whether I'm sleeping 6, 7 or 8 hours:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/XocK1ab.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="264" src="http://i.imgur.com/XocK1ab.png" width="320" /></a></div>
<br />
<br />
To put it another way, % Deep Sleep declines somewhat as my # of hours of Total Sleep increases:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/yBoYfC1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="http://i.imgur.com/yBoYfC1.png" width="320" /></a></div>
<br />
<br />
Next step is to correlate my sleep to my performance in StarCraft and Chess. :)<br />
<div>
<br /></div>
<div>
Also, I'm now highly motivated to do a better job of recording my sleep data accurately. Some of the really short sleep durations are not accurate, and are due to me forgetting to hit the button on the Jawbone UP before going to sleep, or to me forgetting to keep it charged.</div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-13452888314773385162013-09-16T12:21:00.001-04:002013-09-16T12:21:54.339-04:00How AngularJS Saved StarCraft<br />
<div>
<div>
<br /></div>
</div>
<ol>
<li><a href="http://wcs.battle.net/sc2/en/matches/grubby-vs-starbuck" target="_blank">A Fun Game That's Hard to Watch</a></li>
<li><a href="http://ggtracker.com/matches/4046795" target="_blank">Charts and Stats</a></li>
<li><a href="http://wcs.battle.net/sc2/en/matches/targa-vs-tod" target="_blank">Together At Last</a></li>
<li><a href="https://gist.github.com/dsjoerg/36a059b214d546fee2c2" target="_blank">HTML</a></li>
<li><a href="https://gist.github.com/dsjoerg/564063cd8fcd96d1c6b3" target="_blank">Javascript</a></li>
<li><a href="http://wcs.battle.net/sc2/en/articles/wcs-now-supports-ggtracker-analytics-2" target="_blank">Happy Ending</a></li>
</ol>
<br />
<br />Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-62446231588148104042013-08-14T17:01:00.004-04:002013-08-14T17:05:12.814-04:00Thoughts on "The Riddle of the Gun"<span style="font-family: inherit;">My friend Matthew read about my <a href="http://aytgimdsj.blogspot.com/2013/07/a-fitness-regimen-that-works.html">exercise wager where the penalty is an NRA donation</a>.</span><br />
<span style="font-family: inherit;"><br />
</span><br />
<span style="font-family: inherit;">He wrote:</span><br />
<br />
<blockquote class="tr_bq">
<span style="font-family: inherit;">On the topic of firearms, however, I've become an unlikely late-in-life convert. Flies in the face of my positions on virtually everything else, on which I've become increasingly liberal with age.</span></blockquote>
<blockquote class="tr_bq">
<span style="font-family: inherit;">I think the best summation of my thoughts on the subject is this Sam Harris article. Sam Harris continues to annoy me by being able to describe my own thoughts more completely and eloquently than me in a number of realms: </span></blockquote>
<blockquote class="tr_bq">
<a href="http://www.samharris.org/blog/item/the-riddle-of-the-gun" style="color: #1155cc;" target="_blank"><span style="font-family: inherit;">http://www.samharris.org/blog/<wbr></wbr>item/the-riddle-of-the-gun</span></a></blockquote>
<div style="background-color: white; color: #222222;">
<span style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; color: #222222;">
<span style="font-family: inherit;">So go read the <a href="http://www.samharris.org/blog/item/the-riddle-of-the-gun">Sam Harris piece</a>! It is super interesting.</span></div>
<div style="background-color: white; color: #222222;">
<span style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; color: #222222;">
<span style="font-family: inherit;">Then come back and let me know what you think.</span></div>
<div style="background-color: white; color: #222222;">
<span style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; color: #222222;">
<span style="font-family: inherit;">Here's my take.</span></div>
<div style="background-color: white; color: #222222;">
<span style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; color: #222222;">
<span style="font-family: inherit;"><br /></span></div>
<div style="background-color: white; color: #222222;">
<div>
<span style="font-family: inherit;">First of all, it's very refreshing to engage with a rational mind on an issue that seems only to attract the crazies.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">I suppose the good news is that gun deaths are such a small part of preventable death in Amerika. I wish Sam had tried to grapple with the puzzle of why American gun deaths are so much higher than in other places.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">He's an excellent writer, so it was only on the second reading that I noticed him sneaking back and forth between the ideal and the practical as it suited his argument. It was most noticeable when he pointed out that it's impossible to prevent bad guys from doing bad things by taking their guns away, because there are just so many guns in America. On the other hand, the only thing keeping us from putting an armed guard in front of every school is "entirely a question of money".</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Is it not likewise a question of money (and political will, as with armed guards) to reduce the level of gun ownership among bad guys to whatever level we deem desirable?</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">However, my interest in achieving a satisfactory resolution to the gun debate pales in comparison to my interest in putting the gun debate in proper perspective among the other national debates. It ranks about #100 on the list, well below another strong libertarian concern that happens to enjoy strong agreement among anti-fascist citizens of both the red and blue variety: namely, the extent to which our government should be allowed to unaccountably spy on us.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<div>
<span style="font-family: inherit;">In other news, my buddy failed to exercise enough last week, so I've made my first-ever contribution to the NRA, in his honor, $25.</span></div>
</div>
<div>
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-20933355181674155652013-08-14T12:55:00.003-04:002013-08-14T12:55:31.207-04:00A Symbol of My Commitment to Personal Excellence<a href="http://data.typeracer.com/pit/profile?user=dsjoerg&ref=badge" target="_top"><img alt="TypeRacer.com scorecard for user dsjoerg" border="0" src="http://data.typeracer.com/misc/badge?user=dsjoerg" /></a>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-36337311360186906052013-08-11T16:06:00.000-04:002013-08-11T16:25:45.160-04:00Three Big Mistakes That Make Your Accounts Insecure, and one easy way to fix it<span style="font-family: inherit;">My childhood friend Betsy asked me about how to keep accounts secure on the Internet:</span><br />
<blockquote class="tr_bq">
<span style="font-family: inherit;"><span style="background-color: white; color: #222222;">I ask because I</span><span style="background-color: white; color: #222222;"> believe it's way too easy for anyone who has access to a few basic sites to crack passwords based on finding common password patterns for the user. If you've thought about this, I wonder if you'd share with me what you do to ensure your own password security... I'd like to learn to be a better fortress.</span></span></blockquote>
<span style="background-color: white; color: #222222; font-family: inherit;">She's right! Here are the mistakes I see friends making:</span><br />
<span style="background-color: white; color: #222222; font-family: inherit;"><br /></span>
<span style="background-color: white; color: #222222; font-family: inherit;">1. Using the same password for all their accounts, including important ones like banking and email.</span><br />
<span style="background-color: white; color: #222222; font-family: inherit;">2. Writing down their passwords in a place everyone can see, like on a post-it note stuck to their monitor</span><br />
<span style="color: #222222;">3. Choosing short passwords that are easily guessed by a bad guy with a computer. Most people's intuition about which passwords are good is <a href="http://xkcd.com/936/">exactly backwards</a>.</span><br />
<span style="color: #222222;"><br /></span>
<span style="color: #222222;"><br /></span>
<span style="color: #222222;">To fix all three problems at once, I use <a href="http://lastpass.com/">LastPass</a>. My hacker buddy Marian turned me on to it. LastPass makes it easy enough to have a different password for every account. It keeps track of all your passwords on all the different sites you use. So you only have to remember one master password - the password to your LastPass account. Their software can be installed on your computer, into your browser, and on your phone -- I do all three.</span><br />
<span style="color: #222222;"><br /></span>
<span style="color: #222222;">LastPass has a neat "generate password" feature that will generate a super-crazy strong password for you and keep a record of it. They also will keep track of your credit card details if you like, and fill in forms for you on the web. I use both of these a lot and it's a time saver.</span><br />
<br />
I was a little scared at first about the idea of entrusting all my passwords to LastPass. After researching them a bit and thinking about it, I realized that all the reasonable alternatives to LastPass are considerably less secure. What other ways are there?<br />
<br />
<ul>
<li>keep your own file with all your passwords - how are you securing that file?</li>
<li>use the same password on every site - hope none of those sites are run by crooks</li>
<li>remember all your different passwords - good luck!</li>
<li>keep your passwords on paper - what could possibly go wrong?</li>
</ul>
<br />
What do you think? Do you have a password system you like?<br />
<br />
<br />
ps. I should have mentioned one other thing you can do to lock down your important accounts. It's a simple neat trick with a stupid name -- "two factor authentication". What it means is that to get into your account, you need <b>two</b> things, for example both your password and your phone may be needed to log in to your email account. That way, if the bad guy gets your password but not your phone, he's out of luck! Gmail offers two-factor authentication, as do many banking sites. Do it!Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-29382781695776872522013-07-26T11:37:00.002-04:002013-07-26T13:10:29.905-04:00A Fitness Regimen That WorksI used to be fit enough that when I was applying for a new job with some old colleagues, one of them remarked "You look really fit!" Of course my first thought was "can you say something like that in a job interview?!" And then later I thought "wow I guess I'm really fit".<br />
<br />
Back then, my workout was simple. Every morning before my shower, I'd do a bunch of push-ups and sit-ups. That was it!<br />
<br />
Now that I'm 40 (argh) and now that one of our Fire Island neighbors is a ridiculously fit and good-looking man, and now that several of my friends of similar age have health problems related to their lack of exercise, it's time to GET FIT.<br />
<br />
But how? As with sleep discipline, the main thing is <strike>finding</strike> designing a routine that is especially chosen to be attractive to you, habit-forming, and easier to do than to avoid.<br />
<br />
That means:<br />
<ul>
<li>I do some form of exercise every day. This rule is important because then my day feels incomplete unless I've done some exercise. It is designed to trigger my mild OCD - a day without exercise ain't right!</li>
<li>The day's exercise always comes before the day's shower. Taking two showers a day is a waste of time that horrifies me to the point that I'd avoid exercise with the rationalization that the second shower consumes time I can't afford to lose. It's a stupid rationalization but I've done it plenty of times. So exercise must precede the day's shower.</li>
<li>To complement the previous rule, it's completely good and acceptable if that exercise is the <a href="https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC0QFjAA&url=http%3A%2F%2Fwell.blogs.nytimes.com%2F2013%2F05%2F09%2Fthe-scientific-7-minute-workout%2F&ei=xY_yUeyMAYyayQHFw4DgCg&usg=AFQjCNHRJUD34mh1erTMpTEycV5kBFkhRw&sig2=iKYSxd4PSuYFRw0b1A61yg&bvm=bv.49784469,d.aWc">7-minute workout</a>. Usually, anything I learn from the New York Times is considered false until proven otherwise by other sources. But in this case, the content of the workout closely resembles what my expensive NYSC trainer used to do with me for two years of workouts, so I consider it quite likely to be good.</li>
<li>There is a wonderful interactive guide/timer for the 7-minute workout: http://7-min.com. Check it out! With this guide, it's easier to do it right than to do it wrong. Just follow the damn instructions.</li>
<li>I must get at least 90 minutes of exercise per week. I log all my exercise using the <a href="http://runkeeper.com/">RunKeeper</a> app. I love to run, which is how I found the app in the first place. With two 30-minute runs and five 7-minute workouts, I get over the 90 minute mark. I can easily track how I'm doing towards my 90 minutes on my RunKeeper report page <a href="http://runkeeper.com/user/809416224/fitnessReports/cardio">here</a> (I had to upgrade to Elite to get this, $20/year).</li>
</ul>
<div>
The final component of the system involves a horrifying penalty that raises the specter of mass armed anarchy, an endless cycle of escalating gun violence, children running armed through the street. It's really quite neat.</div>
<div>
<br /></div>
<div>
My friend Todd and I have an ongoing bet. If either one of us gets less than 90 minutes of exercise in a given week, then a donation is made to the <b>National Rifle Association</b> in the name of the person who didn't get enough exercise. The first donation will be $25, and it will <b>double</b> each time. If sending $25 to Wayne isn't enough to make you exercise, how about $50? Or $100 or $200?</div>
<div>
<br /></div>
<div>
That's an <i>anti-charity</i>, a concept I first heard about from a wonderful site called <a href="http://stickk.com/">Stickk</a>, which was founded by the brilliant Prof Dean Karlan who does <a href="http://karlan.yale.edu/p/index.php?sort=topic&detail=Behavioral%20Economics&ap=academic">groundbreaking work in behavioral economics</a>.</div>
<br />
<br />
(For those of you who think the NRA does good work, please don't be offended but rather be pleased that your cause can only stand to gain from this setup.)<br />
<br />
So, do you think it will work? Care to take a bet? :) How do you enforce exercise discipline?<br />
<br />Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-20979398639603067652013-07-25T13:01:00.001-04:002013-07-25T13:01:08.175-04:00Sleep Discipline<a href="http://aytgimdsj.blogspot.com/2011/01/how-to-go-to-bed-on-time-part-28.html">As I noted two and a half years ago</a>, I often find myself awake at 1:00am for no good reason. I don't want to go to sleep, because <i>sleep is death</i> and I'd rather be reading reddit or playing chess online.<br />
<br />
My new plan for a better life goes like this. I will trick myself into heading towards bed!<br />
<br />
At 10pm, it's time to plan my next day. Preferably on paper, so that I'm <a href="http://well.blogs.nytimes.com/2012/09/10/really-using-a-computer-before-bed-can-disrupt-sleep/?_r=0">not looking at a screen</a>. The planning is done totally from memory. The point is to identify things I want to accomplish, which will be a useful reference for tomorrow. It will get any worries or concerns out of my head and onto the paper. It also will create an <b>awareness of things I would like to get done</b>, which of course I can't get done very well if I go without the sleep I need.<br />
<br />
Next step is to get into bed and read a book. <a href="https://twitter.com/arekdreyer">Arek</a> recommended <a href="http://www.amazon.com/Reamde-A-Novel-Neal-Stephenson/dp/0062191497">REAMDE</a> recently. It's huge and interesting but not so interesting that I won't set it aside and pass out once I'm warm, and in bed, and my sleepiness takes over.<br />
<br />
Objectively, I like this going-to-sleep plan way better than my previous one. My previous one was, in retrospect, a little naive. Every night at 11pm, my calendar is programmed to put a pop-up onto my screen that say "You MUST go to sleep now, or read this!" There was some attached hellfire-and-brimstone text I was supposed to read if I thought I should stay up later.<br />
<br />
In practice, I would just dismiss the warning and rumble on into stay-up-late disaster.<br />
<br />
I expect this plan has better chances because it is intrinsically interesting to me to plan my next day. There is great leverage in planning what someone else will do, even your future self. I get a dopamine shot from the power of planning.<br />
<br />
Enough theorizing. I'll let you know how it went.<br />
<br />Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-15889155850065667352013-07-24T16:05:00.001-04:002013-07-24T16:05:19.157-04:00No really, how am I going to learn to program?Here is one very good way: JFDI.<br />
<br />
http://blog.jenniferdewalt.com/post/56319597560/im-learning-to-code-by-building-180-websites-in-180<br />
<br />Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-53855758030495460632013-07-23T11:45:00.001-04:002013-07-23T11:45:35.299-04:00What (Programming) Language Should I Learn?People who want to learn programming often ask me what programming language they should learn.<br />
<br />
Great question! Check out this <a href="http://programmingisterrible.com/post/40453884799/what-language-should-i-learn-first">answer from the Programming Is Terrible blog</a>.<br />
<br />
The right answer is usually Javascript or Python.<br />
<br />
<b>Javascript</b> is great because you can make interactive web pages using Javascript. You can make really simple and even useful things and share them with your friends and family.<br />
<br />
Another good choice would be <b>Python</b>. Python has an attractive mix of qualities:<br />
<br />
<ul>
<li>it's easy to get started</li>
<li>it's easy to build big, powerful, well-structured pieces of software with it</li>
<li>there is a big, growing community around it with a positive attitude</li>
<li>it's well-documented</li>
<li>it's clear and consistent</li>
</ul>
<br />
<b>Ruby</b> is fine. The Ruby community is full of self-important weenies who think that making a video is a good form of documentation. But there's nothing wrong with Ruby itself.<br />
<br />
Definitely not <b>PHP</b>. Why not? It's not because PHP is an inherently bad language. PHP has a bad reputation that it no longer deserves. The reason not to learn PHP is the same reason that you shouldn't learn Russian. Don't get me wrong! Russian is a wonderful language; I studied it in high school. There is some fantastic literature written in Russian, and millions of people speak it.<br />
<br />
There's nothing <i>wrong</i> with learning Russian. But you would be <i>better off</i> learning English, Mandarin, or Spanish instead. Those languages are growing in terms of the number of people who speak them, and the places in the world they give you access to.<br />
<br />
PHP programmers are unfairly seen as second-class citizens in the programming world. Why mark yourself as a second-class citizen if you don't have to? There's no advantage in PHP that makes up for that disadvantage. So unless you have some other compelling reason to choose PHP, you shouldn't.<br />
<br />
Definitely not <b>C</b> or <b>Objective-C </b>or <b>Java</b>. They are fine languages, and are the right choice for certain projects, but it's harder to get started; learn them later.<br />
<br />
--<br />
<br />
Hey, I hope this is helpful. Let me know what you think! Questions are great too.Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-13369583733251452112013-07-18T00:56:00.001-04:002013-07-18T00:56:16.123-04:00I Read Some Books<span style="font-family: inherit;">I decided that in order to attain Thought Leadership, I must Read Books. So I read <a href="http://www.amazon.com/Moneyball-The-Winning-Unfair-Game/dp/0393324818">Moneyball</a> and <a href="http://www.amazon.com/The-Art-Learning-Journey-Performance/dp/0743277465">The Art of Learning</a>.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">I will summarize each of these books in 140 characters, in my own private shorthand.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Moneyball: <span style="background-color: white; color: #333333; line-height: 20px;">Ideas can take a long time to find an effective vessel. It took 10-15 years for Bill James' ideas to be picked up by a baseball GM.</span></span><br />
<span style="background-color: white; color: #333333; line-height: 20px;"><span style="font-family: inherit;"><br /></span></span>
<span style="font-family: inherit;"><span style="background-color: white; color: #333333; line-height: 20px;">The Art of Learning: </span><span style="background-color: white; color: #333333; line-height: 20px;">Mental <-> emotional health, discipline, insight and resilience are first-order determinants in chess, tai chi and probably everything else.</span></span><br />
<span style="font-family: inherit;"><span style="background-color: white; color: #333333; line-height: 20px;"><br /></span></span>
<span style="font-family: inherit;"><span style="background-color: white; color: #333333; line-height: 20px;">Of course there's so much more to these books, but the above lines summarize what I found most surprising and unique about them that can be concisely put. If I had another 140 for Moneyball I would try and express what a great writer Bill James was. Lewis is generous to quote James at all, because the bits of James he quotes are so much better than anything Lewis can string together.</span></span><br />
<span style="font-family: inherit;"><span style="background-color: white; color: #333333; line-height: 20px;"><br /></span></span>
<span style="font-family: inherit;"><span style="background-color: white; color: #333333; line-height: 20px;">James speaks of numbers "taking on the power of language" and I wish I had a better gut feeling for what he means by that. I understand the concept in some abstract way but I don't <i>grok</i> it.</span></span>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-5909261032635400302012-04-07T14:01:00.002-04:002012-04-07T14:01:54.145-04:00why was it not a gg?<br />
<span style="font-family: 'Courier New', Courier, monospace;">After playing <a href="http://ggtracker.com/matches/168127">this game</a>:</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;">Me: gg</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">WrathofKane: it was not you suck i just sent my stuff to attack you... or you lose</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">Me</span><span style="font-family: 'Courier New', Courier, monospace;">: thats odd</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">why was it not a gg?</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">WrathofKane: cause i dint win</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">Me</span><span style="font-family: 'Courier New', Courier, monospace;">: :)</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">WrathofKane: you can call gg if you lose but it is not unless i win</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">Me</span><span style="font-family: 'Courier New', Courier, monospace;">: sweet</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">WrathofKane: and you saying it after i left means you are a cunt</span><br />
<div>
<br /></div>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-54543671865075417082012-03-23T20:43:00.000-04:002012-03-24T22:20:17.438-04:00buying an apartment in nyc<br />
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<span style="color: #1f497d;">A friend asked me for advice about buying an apartment in NYC.</span></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<span style="color: #1f497d;"><br /></span></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<span style="color: #1f497d;">I wrote:</span></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<span style="color: #1f497d;"><br /></span></div>
<blockquote class="tr_bq">
<span style="color: #1f497d;">Buying a house means buying a job – as a property owner and manager.</span></blockquote>
<br />
<blockquote class="tr_bq">
<span style="color: #1f497d;">Transaction costs are about 9% round trip.</span></blockquote>
<br />
<blockquote class="tr_bq">
<span style="color: #1f497d;">Streeteasy, propertshark, ACRIS and Curbed are really important resources that you should be intimately familiar with pre-transaction. Think of them collectively as your Bloomberg terminal.</span> <span style="color: #1f497d;">Also interesting are the Case-Shiller city indexes. Millersamuel.com used to have great data available free – timeseries going back 15-20 years on co-op and condo sales -- and now it’s all behind a paywall.</span></blockquote>
<br />
<blockquote class="tr_bq">
<span style="color: #1f497d;">New York Times has the best buy vs rent calculator. <a href="http://www.nytimes.com/interactive/business/buy-rent-calculator.html" style="color: #1155cc;" target="_blank">http://www.nytimes.com/<wbr></wbr>interactive/business/buy-rent-<wbr></wbr>calculator.html</a></span></blockquote>
<br />
<blockquote class="tr_bq">
<span style="color: #1f497d;">Check out its ADVANCED SETTINGS. You’ll see that how long you own the place is really important to the buy-vs-rent calculus. </span><span style="color: #1f497d;">Also important is the rate of return you could be earning on the downpayment if you hadn’t bought a house. That’s also in the ADVANCED SETTINGS.</span></blockquote>
<br />
<blockquote class="tr_bq">
<span style="color: #1f497d;">Adverse selection is alive and well in the real estate market. Places will have problems that are not apparent at first look. Some of this can be mitigated, some of it can’t. For example, if you do plan to fix it up, you could pick the general contractor first, and then have them survey the place before you buy it, and even make a binding bid to fix it up before you buy it.</span></blockquote>
<br />
<blockquote class="tr_bq">
<span style="color: #1f497d;">It is entirely possible to construct a good estimate of construction costs in advance, but it will take some arm-twisting to get this to happen before you’ve bought the place. The seller and the contractor will both fight to prevent this from happening.</span></blockquote>
<br />
<blockquote class="tr_bq">
<span style="color: #1f497d;">Most of the fun things that you might want to do with a bought property could maybe also be done with a rented one? If you shop for a rental with that feature in mind.</span></blockquote>
<br />
<blockquote class="tr_bq">
<span style="color: #1f497d;">Since you brought up schools – the NYC school situation is changing rapidly. Currently in Manhattan, there is a severe supply/demand problem between parents and schools. I see the imbalance being resolved mostly by parents choosing to move out, as we did to Park Slope. Not sure how that affects the Manhattan real estate situation.</span></blockquote>
<br />
<blockquote class="tr_bq">
<span style="color: #1f497d;">Before buying any place, I recommend becoming intimately familiar with its local school dynamics, not because you personally will care, but because the next buyer might.</span><span style="color: #1f497d;"> </span><span style="color: #1f497d;">For example, PS 3 and PS 41 have been threatening to change their service boundaries for a few years, which is driving people nuts in the affected areas. Something similar is happening in Park Slope around 5<sup>th</sup> Avenue.</span></blockquote>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-74254946140524843232012-03-09T11:49:00.001-05:002012-03-09T11:49:35.112-05:00Rails is driving me mad, part 2In django/python, in development, whenever I change any source file it's automagically reloaded.<br />
<br />
In RoR, this is true for some source files, but notably not the source files in my lib directory.<br />
<br />
There's a way to fix that:<br />
http://stackoverflow.com/questions/2129458/automatically-reload-rails-module/2138935#2138935<br />
<br />
But why is this in an obscure SO question/answer, and why doesnt Rails automagically do the right thing? And why does Rails permit you to do it wrong, for example by using require instead of require_dependency?<br />
<br />Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-90293788775954647472012-03-06T12:13:00.001-05:002012-03-06T12:13:57.276-05:00Rails is driving me mad, part 1In django, if a robot is spidering through your site and hitting non-existent links, you can suppress the email warnings about 404s with a simple configuration change, as explained <a href="https://docs.djangoproject.com/en/dev/howto/error-reporting/#errors">here</a>.<br />
<br />
So how does one do this in Rails?<br />
<br />
After a half-hour of fruitless searching I stumbled across <a href="http://madkingsmusings.blogspot.com/2011/08/emailing-server-errors.html">this blog post</a> and <a href="https://github.com/smartinez87/exception_notification">this piece of software</a>. The software does a lot more than I want, in particular it takes over the exception notification mechanism. So I followed the instructions in the blog post, copy-pasting the code into my app, and so far it seems to be working OK.<br />
<br />
This is not the magical experience I was promised!Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-90181149045177539802012-02-06T15:18:00.002-05:002012-02-06T15:18:39.091-05:00Data Mining Degree?The Data Collective blog just received the following solicitation:<div>
<br /></div>
<div>
<span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">Hello,</span><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">I am Matt with WebSponsors.org. My company represents a leading provider of online education. They would like to purchase ad space on your site's page - </span><a href="http://blog.datacollective.org/hacking-education-data-analysis-submission-tips-for-success-by-the-numbers" style="background-color: rgba(255, 255, 255, 0.917969); color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank">blog.datacollective.org/<wbr></wbr>hacking-education-data-<wbr></wbr>analysis-submission-tips-for-<wbr></wbr>success-by-the-numbers</a><span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">.</span><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">It would look like...</span><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">"data mining degree"</span><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">with a link to our client's site. We can pay you $65.00 via PayPal as soon as an agreement is made for this ad space.</span><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">Please let me know if you are interested. Thanks for your time & consideration.</span><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">Matt</span><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><a href="mailto:matt@websponsors.org" style="background-color: rgba(255, 255, 255, 0.917969); color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank">matt@websponsors.org</a><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><a href="tel:1-888-853-3601" style="background-color: rgba(255, 255, 255, 0.917969); color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank" value="+18888533601">1-888-853-3601</a><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<i><span style="color: #666666;"><b>Disclaimer:</b> You have been selected to participate due to the high-quality of your website. If you accept to place this advertisement on your website, you are accepting the Advertiser Program Policy which can be found at <a href="http://x.jtrk68.net/y.z?l=http%3a%2f%2fwww.websponsors.org%2fadvertiser-program-policy.php&r=769277058&d=352108&p=1&t=h" style="color: #1155cc;" target="_blank">http://www.websponsors.org/<wbr></wbr>advertiser-program-policy.php</a>. WebSponsors.org reserves the right to accept or reject this offer for an advertising placement on your website.</span></i></div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Reference Code: 782034#</div>
<div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
</div>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-47329788029912339162012-02-04T21:50:00.000-05:002012-02-04T22:01:21.937-05:00MIT Battlecode!<p>
<a href="www.twosigma.com">Two Sigma</a> has been a sponsor of <a href="http://www.battlecode.org/">MIT Battlecode</a> for six years now. It's a programming tournament where teams of kids spend a month coding a virtual robot army to battle against other students' virtual robot armies.
</p>
<p>
Here's what a match looks like:
</p>
<iframe src="http://www.screenr.com/embed/8iws" width="650" height="396" frameborder="0"></iframe>
<p>
There's a lot going on in a battle, and it can be confusing. So today my colleague Lee Lin and I coded up some analysis to help us understand what's going on during a match. The x-axis is location on the battlefield -- the left side is one team's home base and the right side is the other team's. The y-axis is the amount of fighting force each team has at that location. We've taken the 2-D battlefield and projected it onto the axis running between the two bases.
</p>
<iframe src="http://davidjoerg.com/battlegram/008-r05-008-team007-team030-star-quadroped-jungle.rms.twosigma.3.html" width="680" height="800" frameborder="0"></iframe>
<p>The Battlecode code is all java so we started the analysis there. The AffineTransform class came in handy for the projection math. The java code dumped its frame-by-frame data in as valid JavaScript code. The visualization is a <a href="highcharts.com">Highcharts</a> chart being manipulated by JavaScript code on a simple timer.
</p>
<p>The core of the updating code is offensively simple:</p>
<pre>
function updateData() {
for (i=0; i<2; i++) {
chart.series[i == 0 ? 1 : 0].setData(thedata[roundNum][i]);
}
if (roundNum < thedata.length-1) {
roundNum++;
}
setTimeout(updateData, 15);
}
</pre>
<p>The chart is in an object called "chart". The data for the entire match is in a two-dimensional array called "thedata". The function "updateData()" gets called every 15 milliseconds -- we'd like a framerate of 60fps if possible. At the end of updateData() we call setTimeout() which asks JavaScript to call updateData() again in 15 millis.
</p>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-72012933270122184962012-01-30T22:41:00.002-05:002012-01-30T22:41:27.865-05:00Best HTML / CSS intro ever?Beautiful and informative.<br />
<br />Check it out: <a href="http://learn.shayhowe.com/html-css/terminology-syntax-intro">http://learn.shayhowe.com/html-css/terminology-syntax-intro</a>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0tag:blogger.com,1999:blog-7531303471386503232.post-38315673262679488592012-01-27T10:25:00.001-05:002012-01-27T10:25:38.526-05:00Ruby/Rails is confusing for noobsHere are my questions about Ruby/Rails:<br />
<br />
<ul>
<li>After automagically generating the model/view/controller code for a given object, I then want to customize the HTML/CSS/JS for some of its views. What's the right way to do this? Do I directly edit the files like "show.html.erb"? If I do, then don't I lose the ability to automagically update them when I add fields to that object?</li>
<li>ERB vs HAML appears to be a religious war... has anyone cleanly summarized the pros and cons? I would rather not choose randomly, nor spend two hours reading articles about this just so I can decide.</li>
<li>Rails 3.2 came out on Jan 20. Should I use it? Are Rails releases typically well-tested upon release, or do they typically have bugs that I should hang back and let other people find?</li>
<li>Speaking of Rails 3.2, the wonderful site http://api.rubyonrails.org/ seems to have already switched to showing the 3.2 API. But I'm using 3.1... how can I see the 3.1 API documentation? Shit, just noticed that http://guides.rubyonrails.org/ switched over to 3.2 as well. Must I therefore switch?</li>
<li>To generate the 3.1 documentation on my own machine, are these the steps I must follow? http://www.nullislove.com/2007/05/29/rails-documentation/ This post is from 2007, I expect things have changed since then! Here's more confusing garbage from 2007: http://www.ruby-forum.com/topic/113997 Sadly all the top hits appear to be from 2007.</li>
<li>Where do I put the static images that my site is serving? /public/images or /app/assets/images? I would like to use image_tag to generate my image tags. http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html claims that "<span style="background-color: white; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 13px; line-height: 16px;">By default, </span><a href="http://api.rubyonrails.org/classes/Rails.html" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #980905; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 13px; line-height: 16px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;">Rails</a><span style="background-color: white; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 13px; line-height: 16px;"> links to these assets on the current host in the public folder" , </span>but in my own system the generated image_tag has a src of "/assets/img.png" which ends up being served from the directory /app/assets/images. So, the docs are lying, they are not linked to the public folder. Or is my setup misconfigured somehow? Which files in my setup control this behavior?</li>
</ul>
<div>
<br /></div>
<div>
Here are the meta-questions:</div>
<div>
<ul>
<li>Where can I find best-practice source code for non-trivial sites built in Ruby/Rails? I could then mine that code as a source of examples.</li>
<li>Where are the best up-to-date tutorials and references for Ruby/Rails? Videos don't count because they're not searchable and their effective bit-rate is excruciatingly low, compared to well-written text. http://guides.rubyonrails.org/ is nice but appears to leave many important questions and issues unanswered</li>
<li>Where can I best find out how to do X with Ruby/Rails? For example I want to use jquerymobile for my UI. What's the best way to integrate jquerymobile into Ruby/Rails? Should I use a Gem? There appear to be three competing gems for this. And on further inspection they each seem to be pretty trivial, and potentially out of date.</li>
</ul>
</div>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com3tag:blogger.com,1999:blog-7531303471386503232.post-44895046994046640622011-12-08T16:41:00.001-05:002012-01-15T14:31:30.639-05:00Drink for America<br />
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
I have a four-year-old daughter who asks about everything. Here’s what she knows about America: The King of England used to be in charge. Then, we told him No! and we fought with his soldiers, and it was a hard fight. It was an incredible fight. We hid in the forest, it was cold and it was terrible, but in the end, we fought, and we won. We sent his soldiers back to England.</div>
<img style="float:right" src="http://www.enchantedlearning.com/tgifs/Trexskelanim.gif">
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
And then we, the people, were in charge. As a result, we get to vote on who’s the President, and on who makes the laws. A lot of young men died to get it done. The brightest lights of a generation spent their lives to get it done.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
An incredible dream, brought to life on our soil. Let's fast-forward two hundred years. If you believe what you <a href="http://www.nationofchange.org/occupiers-occupied-hijacking-first-amendment-1321456672">read</a> in today's <a href="http://savageminds.org/2011/11/23/american-democracy/">opinion</a> <a href="http://www.phillyburbs.com/news/local/courier_times_news/opinion/oped/this-time-everybody-wins----except-wall-street/article_e4c77821-83ec-5e1d-888e-ad58c9010ce2.html">pieces</a> <a href="http://www.globalresearch.ca/index.php?context=va&aid=15038">and</a> <a href="http://www.opednews.com/articles/Corporations-Rule-America-by-willy-scanlon-100918-823.html">blogs</a>, you'd think that American democracy is <a href="http://muscatinejournal.com/news/opinion/columns/article_f618297e-e3c4-11e0-b17c-001cc4c03286.html">dead</a>. What do I tell my daughter? That corporations, lobbyists, and the <a href="http://www.americanselect.org/">two-party system</a> really run the country? And that there's nothing we can do about it?</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
I don't believe it. There are a lot of things we can do to make the dream of American democracy not just a beautiful ideal but a <i>fact on the ground</i>.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br />
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Here’s one: <b>Drink for America</b>.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Let me put it this way: Who do you talk to about America, politics, the country?</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Where I’m from, it ain’t polite to talk about religion, sex, or politics. For me, it never seems to be the right time to bring it up. Whatever you think of Occupy Wall Street, I do love how they got people together to provoke discussion, debate, and reflection about what’s wrong with America, and how to fix it.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
However, due to its image, OWS is primarily gathering people of a leftward political persuasion, which is too bad. There are plenty of rightists and libertarians and others who would like to see American democracy restored, both in perception and in reality. Only when we engage across traditionally dividing lines do we have a chance of forming a more perfect Union.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
When will we ever find time to talk about America?</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
You do go out for a drink with friends from time to time, don't you? So how about coming out for a drink to talk about America? Bring your friends if they’re interested. And if they’re not, ditch ‘em for a night. Or maybe, you need better friends.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
It can be simple. Meetup is good for organizing this sort of thing. It could be every Monday night at a quiet neighborhood bar. Maybe everyone wears a nametag with their name and a proposal. Mine would say “David / No More Ag Subsidies”. You may think that's a crap idea; I’d like to hear why. And I’d love to hear your ideas.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
OK, you say, so we’ll have a drink and discuss our ideas. How does that change anything?</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
It changes <b><i>you</i></b>.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
You walk in with one set of ideas and walk out with some different ones. You might change your mind about something you think is important. You might find out that some of your favorite ideas actually suck. Or that everyone agrees with you and your idea is awesome. You might discover a candidate that really deserves your support.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Remember, it <a href="http://wattsupwiththat.com/2011/07/27/tipping-points-and-beliefs/">doesn’t actually</a> take that many <a href="http://en.wikiquote.org/wiki/Margaret_Mead#Disputed">thoughtful, committed</a> citizens to make a difference. Test your ideas in the crucible of discussion with friends, associates, enemies and people you just met! Get some conviction. You'll find it doesn't take long to write an email or two, make a phone call, or get <a href="http://opencongress.org/">busy</a> <a href="http://popvox.com/">online</a>. Multiply your activity by tens of thousands of us who feel the same way, and you've become part of a powerful force. Think about how the American revolution got started in the first place...</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br />
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
So, is Drink for America already happening somewhere? Taking a look at my local politically-oriented <a href="http://meetup.com/">Meetups</a>, every single one is in support of a particular candidate or party. There's nothing wrong with that, but I'm proposing a different kind of meet-up, a gathering for people to <b>exchange views</b> rather than to strategize about how to advance the views they already share.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
It might be fairly described as taking a page from the Occupy Wall Street playbook; that is, we ought to be talking <b><i>before</i></b> we’ve decided which candidate, party or proposal to support.</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br />
<br />
<br /></div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Would you like to help organize this? I think it'd take two or three co-organizers to make this happen in NYC. <a href="mailto:dsjoerg@gmail.com">Drop me a line!</a> <a href="http://www.meetup.com/Drink-for-America/">Join the group!</a> How are we going to find the people who are interested in this? Do they make a bat-signal in the shape of the American flag?</div>
<div class="MsoNormal" style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br />
<br />
ps. interestingly, <a href="http://bit.ly/sgFJVU">not everyone</a> shares my perspective on the American revolution.<br />
pps. thanks to Dave, Peter, Thom and Michele for feedback on drafts of this post!</div>Anonymoushttp://www.blogger.com/profile/17286870671432994638noreply@blogger.com0