<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-4804358099675558422</id><updated>2009-12-05T20:03:39.335-08:00</updated><title type='text'>Welcome to Obscurity</title><subtitle type='html'>The personal blog of Evan Kroske, 
&lt;br&gt;novice software developer.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default?orderby=updated'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default?start-index=26&amp;max-results=25&amp;orderby=updated'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-430029751187420026</id><published>2009-12-05T19:45:00.000-08:00</published><updated>2009-12-05T20:03:39.349-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='obscurity'/><title type='text'>Playing with SVG and Javascript</title><content type='html'>&lt;p&gt;
As a fan of ActionScript 3, Flash's vector-drawing scripting language, I've always been interested in the SVG standard. However, now that it's actually available to most of the web-browsing population, I have an excuse to learn more about it. I had stopped programming in AS3 because of the closed nature of the platform, its instability on Linux, and my inability to develop AS3 on Linux. However, I can now play with vector-drawing once again, thanks to the widespread adoption of SVG.
&lt;/p&gt;

&lt;p&gt;
Anyway, this post is just a heads-up: I'm fiddling with SVG-scripting with Javascript, and I plan to write a tutorial about it soon. Thus far, I haven't found a basic tutorial on integrating HTML, SVG, and Javasript, and I hope my tutorial will remedy this perceived shortage. Of course, the tutorial is really just an excuse to play with Javascript and SVG, but I will continue to delude myself with words of altruism and selflessness. Helping people, &lt;em&gt;that's&lt;/em&gt; what I'm doing...
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-430029751187420026?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/430029751187420026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/12/playing-with-svg-and-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/430029751187420026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/430029751187420026'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/12/playing-with-svg-and-javascript.html' title='Playing with SVG and Javascript'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-422517220347623334</id><published>2009-11-15T16:30:00.000-08:00</published><updated>2009-11-27T16:28:13.154-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='origami'/><title type='text'>Origami accordion toys</title><content type='html'>&lt;p&gt;
One of my favorite ways to burn time is folding complex origami accordion patterns. I just uploaded an &lt;a href="http://picasaweb.google.com/E.Kroske/Origami?feat=directlink"&gt;album of these paper accordions&lt;/a&gt;, and I've listed the different types of patterns below. I might make a tutorial on how to fold one if somebody asks nicely.
&lt;/p&gt;

&lt;h4&gt;Expanded diagonal compound v-shaped&lt;/h4&gt;

&lt;p&gt;
&lt;a href="http://lh3.ggpht.com/_846kZMt0ZKY/Sv-EbnKtBeI/AAAAAAAAAE0/VwuNzzvXXmE/s800/DSCN2268.JPG"&gt;&lt;img alt="Expanded diagonal v-shaped origami accordion top" src="http://lh3.ggpht.com/_846kZMt0ZKY/Sv-EbnKtBeI/AAAAAAAAAE0/VwuNzzvXXmE/s400/DSCN2268.JPG" /&gt;&lt;/a&gt;
&lt;br /&gt;
Top view
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://lh3.ggpht.com/_846kZMt0ZKY/Sv-EbSfuyeI/AAAAAAAAAEw/zNA0-tWBJRU/s800/DSCN2267.JPG"&gt;&lt;img alt="Expanded diagonal v-shaped origami accordion bottom" src="http://lh3.ggpht.com/_846kZMt0ZKY/Sv-EbSfuyeI/AAAAAAAAAEw/zNA0-tWBJRU/s400/DSCN2267.JPG" /&gt;&lt;/a&gt;
&lt;br /&gt;
Bottom view
&lt;/p&gt;

&lt;p&gt;
This pattern is a more complex version of the classic v-shaped accordion pattern.
&lt;/p&gt;

&lt;h4&gt;Deep accordion&lt;/h4&gt;

&lt;p&gt;
&lt;a href="http://lh3.ggpht.com/_846kZMt0ZKY/Sv-Eb2ckU7I/AAAAAAAAAFA/nPYBw7lijic/s800/DSCN2279.JPG"&gt;&lt;img alt="Deep origami accordion top" src="http://lh3.ggpht.com/_846kZMt0ZKY/Sv-Eb2ckU7I/AAAAAAAAAFA/nPYBw7lijic/s400/DSCN2279.JPG" /&gt;&lt;/a&gt;
&lt;br /&gt;
Top view
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://lh5.ggpht.com/_846kZMt0ZKY/Sv-EdFqVzaI/AAAAAAAAAFo/bWKrL3DaTQg/s800/DSCN2296.JPG"&gt;&lt;img alt="Deep origami accordion bottom" src="http://lh5.ggpht.com/_846kZMt0ZKY/Sv-EdFqVzaI/AAAAAAAAAFo/bWKrL3DaTQg/s400/DSCN2296.JPG" /&gt;&lt;/a&gt;
&lt;br /&gt;
Bottom view
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://lh6.ggpht.com/_846kZMt0ZKY/Sv-EddjdJCI/AAAAAAAAAFs/Ygs8pUfsD7k/s800/DSCN2299.JPG"&gt;&lt;img alt="Deep origami accordion curled" src="http://lh6.ggpht.com/_846kZMt0ZKY/Sv-EddjdJCI/AAAAAAAAAFs/Ygs8pUfsD7k/s400/DSCN2299.JPG" /&gt;&lt;/a&gt;
&lt;br /&gt;
Curled
&lt;/p&gt;

&lt;p&gt;
This is probably my favorite pattern of all time; it's an incredibly time-consuming way to turn a piece of paper into a mesmerizing paper toy. It requires folding and pleating in three dimensions simultaneously.
&lt;/p&gt;

&lt;h4&gt;Collapsed triangle base&lt;/h4&gt;

&lt;p&gt;
&lt;a href="http://lh5.ggpht.com/_846kZMt0ZKY/Sv-EcQDgG1I/AAAAAAAAAFQ/XL7YJxvi_b0/s800/DSCN2286.JPG"&gt;&lt;img alt="Collapsed triangle base origami accordion top view" src="http://lh5.ggpht.com/_846kZMt0ZKY/Sv-EcQDgG1I/AAAAAAAAAFQ/XL7YJxvi_b0/s400/DSCN2286.JPG" /&gt;&lt;/a&gt;
&lt;br /&gt;
Top view
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://lh4.ggpht.com/_846kZMt0ZKY/Sv-EcgN6W7I/AAAAAAAAAFY/_twP_cVTD20/s800/DSCN2288.JPG"&gt;&lt;img alt="Collapsed triangle base origami accordion bottom view" src="http://lh4.ggpht.com/_846kZMt0ZKY/Sv-EcgN6W7I/AAAAAAAAAFY/_twP_cVTD20/s400/DSCN2288.JPG" /&gt;&lt;/a&gt;
&lt;br /&gt;
Bottom view
&lt;/p&gt;

&lt;p&gt;
This is just a weird test pattern I folded with some spare time and a magazine renewal card. It's unique because it doesn't like to flex.
&lt;/p&gt;

&lt;h4&gt;Collapsed diagonal compound v-shaped&lt;/h4&gt;

&lt;p&gt;
&lt;a href="http://lh3.ggpht.com/_846kZMt0ZKY/Sv-EcXiqe7I/AAAAAAAAAFM/y2aAab1c6gE/s800/DSCN2283.JPG"&gt;&lt;img alt="Collapsed diagonal v-shaped origami accordion top view" src="http://lh3.ggpht.com/_846kZMt0ZKY/Sv-EcXiqe7I/AAAAAAAAAFM/y2aAab1c6gE/s400/DSCN2283.JPG" /&gt;&lt;/a&gt;
&lt;br /&gt;
Top view
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://lh4.ggpht.com/_846kZMt0ZKY/Sv-EdFJ4IcI/AAAAAAAAAFk/pz6Uv31v3ok/s800/DSCN2295.JPG"&gt;&lt;img alt="Collapsed diagonal v-shaped origami accordion bottom view" src="http://lh4.ggpht.com/_846kZMt0ZKY/Sv-EdFJ4IcI/AAAAAAAAAFk/pz6Uv31v3ok/s400/DSCN2295.JPG" /&gt;&lt;/a&gt;
&lt;br /&gt;
Bottom view
&lt;/p&gt;

&lt;p&gt;
This one is more complex than the collapsed diagonal compound v-shaped pattern, because it requires an extra pleat for each row.
&lt;/p&gt;

&lt;h4&gt;Collapsed compound v-shaped&lt;/h4&gt;

&lt;p&gt;
&lt;a href="http://lh5.ggpht.com/_846kZMt0ZKY/Sv-Ec6bCf0I/AAAAAAAAAFg/bVpHwD-Cr2Q/s800/DSCN2293.JPG"&gt;&lt;img alt="Collapsed compound v-shaped origami accordion" src="http://lh5.ggpht.com/_846kZMt0ZKY/Sv-Ec6bCf0I/AAAAAAAAAFg/bVpHwD-Cr2Q/s400/DSCN2293.JPG" /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
This one is the same pattern as the collapsed diagonal compound v-shaped accordion, but it originates from the middle of a side of the paper, instead of the corner. It looks like a snow monster.
&lt;/p&gt;

&lt;p&gt;
That's all the accordion patterns I have folded recently. I know this has nothing to do with technology, but I still don't have the time to work on any serious development projects. With luck, I'll be rejoining the coding community soon.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; I just opened an Etsy shop to sell some of the textures you see above. If you want one, visit &lt;a href="http://www.etsy.com/shop/evankroske"&gt;my shop&lt;/a&gt; and buy one before they sell out! &lt;small&gt;Yeah, &lt;em&gt;right&lt;/em&gt;...&lt;/small&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-422517220347623334?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/422517220347623334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/11/origami-accordion-toys.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/422517220347623334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/422517220347623334'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/11/origami-accordion-toys.html' title='Origami accordion toys'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_846kZMt0ZKY/Sv-EbnKtBeI/AAAAAAAAAE0/VwuNzzvXXmE/s72-c/DSCN2268.JPG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-757941841551629312</id><published>2009-11-07T16:39:00.000-08:00</published><updated>2009-11-26T10:38:27.515-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='industry'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>A laughable argument against net neutrality</title><content type='html'>&lt;p&gt;
I don't generally stray into political topics, but some issues are too important and relevant to my future and the future of the internet. For example, I believe net neutrality is critical to protecting creative uses of the internet from the internet service providers' meddling. That's why I wrote a &lt;a href="http://welcome2obscurity.blogspot.com/2009/10/net-neutrality-innovation-protection-or.html"&gt;general summary of the net neutrality issue&lt;/a&gt; a couple weeks ago, and that's why I'm addressing some of net neutrality's critics today.
&lt;/p&gt;

&lt;p&gt;
In the October 30 opinions section of the Wall Street Journal, I read an &lt;a href="http://online.wsj.com/article/SB10001424052748703363704574503331828238574.html"&gt;opinion against net neutrality&lt;/a&gt; that is too misguided for me to ignore. Republican senators Orrin Hatch and Jim DeMint wrote the piece, arguing that net neutrality policy will obstruct broadband investment and innovation by letting the government meddle in the affairs of the ISPs. That's simply not true. 
&lt;/p&gt;

&lt;p&gt;
I agree with the senators that over-regulation will prevent companies from innovating. The logic is obvious; if a company can't increase its profit by improving its services, it won't improve. However, the current regulation doesn't prevent ISPs from profiting from broadband investment. They are free to changes prices, set usage caps, and even offer higher internet speeds for higher prices. The &lt;em&gt;only&lt;/em&gt; way in which the regulations limits ISPs network management options is by preventing them from discriminating against certain types of traffic.
&lt;/p&gt;

&lt;p&gt;
I'm afraid that alarmist arguments like this one about net neutrality are obstructing important discussions on the effects of the regulations and the FCC's proper role in net neutrality enforcement.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-757941841551629312?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/757941841551629312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/11/laughable-arguments-against-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/757941841551629312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/757941841551629312'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/11/laughable-arguments-against-net.html' title='A laughable argument against net neutrality'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-6764154535653465052</id><published>2009-10-30T20:00:00.000-07:00</published><updated>2009-10-30T20:15:24.575-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='education'/><category scheme='http://www.blogger.com/atom/ns#' term='industry'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='obscurity'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>Programming is more than pointers and recursion</title><content type='html'>&lt;p&gt;
I apologize for last week's dry and boring post. This isn't a news blog, and it won't become one. I chose that topic because I was desperate to write about something relevant to programmers and the tech community, not because I wanted to write about it. Now I will only write about topics that interest me, topics that I can offer a unique perspective on. I won't become a me-too blogger.
&lt;/p&gt;

&lt;p&gt;
...and now, for the reason you're reading this.
&lt;/p&gt;

&lt;p&gt;
Today, I read a 2005 post from the venerable software-development blog Joel on Software about the problems with colleges teaching Computer Science through Java. I recommend you read &lt;a href="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html"&gt;the article&lt;/a&gt; before this post, but, to summarize, Spolsky says that because Java doesn't emphasize pointers and recursion, it isn't a suitable language through which to teach Computer Science. Here's why he's wrong.
&lt;/p&gt;

&lt;h4&gt;Programming is more than just solving puzzles&lt;/h4&gt;

&lt;p&gt;
First and foremost, I disagree with his view on the purpose of a CS program. He thinks that the goal of a college's CS program should be to weed out the students who aren't smart enough to succeed as programmers. Furthermore, he recommends that pointers and recursion should be taught as soon as possible to scare off the posers. That's poppycock.
&lt;/p&gt;

&lt;p&gt;
The goal of a CS program should be to teach students how to develop high-quality software. Far too many programmers have no idea how to write readable code, much less create a large, functional system with lots of moving parts. Programming is intrinsically difficult, but teaching students only the most arcane and complex parts of the programming discipline scares away many potentially great programmers. 
&lt;/p&gt;

&lt;p&gt;
According to Steve McConnell, author of Code Complete, the best programmers are not necessarily the most intelligent, but the most humble. Someone who understands his mental limitations will use every technique available to simplify his code, reducing its complexity and thereby increasing its quality. Complexity is probably the number-one enemy of software quality.
&lt;/p&gt;

&lt;h4&gt;Pointers and recursion aren't intrinsic to programming&lt;/h4&gt;

&lt;p&gt;
All the CS theory and most of the content on pointers and recursion will never be used by the average CS graduate. Spolsky even says so:
&lt;/p&gt;

&lt;blockquote cite="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html"&gt;
&lt;p&gt;
Now, I freely admit that programming with pointers is not needed in 90% of the code written today, and in fact, it's downright dangerous in production code. OK. That's fine. And functional programming is just not used much in practice. Agreed.
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
He then says that these concepts teach students the &lt;q cite="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html"&gt;mental flexibility&lt;/q&gt; to &lt;q cite="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html"&gt;view a problem at several levels of abstraction simultaneously.&lt;/q&gt; I think this type of "mental flexibility" might account for some of the bad code recent CS graduates write. A graduate's "mental flexibility" could tempt him to demonstrate his new CS skills by writing overly complex code that functions on multiple levels of abstraction. As I said above, intelligence doesn't correlate strongly with a programming success, but ego certainly correlates with failure.
&lt;/p&gt;

&lt;p&gt;
Please don't misunderstand my point. I believe that some of the most difficult areas of programming are the most important (and interesting.) I look forward to learning about recursion and its power. I plan on taking plenty of CS theory classes, learning about even the most esoteric aspects of computer programming. However, I don't think every student would benefit from this type of information. Because these topics aren't necessary to write great applications, I don't think they should be necessary to graduate from a CS program.
&lt;/p&gt;

&lt;p&gt;
This post may, in fact, be completely off-base and unsupported by the facts. However, I've decided to make this blog more personal by sharing more of my opinions and writing about things I care about. I have been worried about writing content that's relevant to my intended audience, but right now, I simply don't spend enough time writing code and playing with my computer to generate a suitable flow of relevant posts. I'm reclaiming this blog as a tool against my personal battle with obscurity. 
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-6764154535653465052?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/6764154535653465052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/10/programming-is-more-than-pointers-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/6764154535653465052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/6764154535653465052'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/10/programming-is-more-than-pointers-and.html' title='Programming is more than pointers and recursion'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-6300981448290056478</id><published>2009-10-18T14:40:00.000-07:00</published><updated>2009-10-18T14:43:35.852-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='industry'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>Net neutrality: Innovation protection or unnecessary regulation</title><content type='html'>&lt;p&gt;
I consider myself a &lt;a href="http://wikipedia.org/Libertarian"&gt;Libertarian&lt;/a&gt; on most issues. I'm generally in favor of the government getting out of the way of private innovation. For that reason, I became opposed to net neutrality as soon as I learned that it involved government intervention into the affairs of (arguably) private businesses: the internet service providers.
&lt;/p&gt;

&lt;p&gt;
However, after learning more about the net neutrality issue and reading about the FCC's new net neutrality rules, I have decided to write a brief summary of the issue in favor of net neutrality.
&lt;p&gt;

&lt;h4&gt;What is net neutrality?&lt;/h4&gt;

&lt;p&gt;
The issue of net neutrality is about the internet service providers' handling of information flowing through the internet. Information is transmitted over the internet in packets of information. ISPs can examine these packets to determine what type of information they are carrying. For example, an ISP can tell whether a user is watching a YouTube video, downloading email, or browsing Amazon.
&lt;/p&gt;

&lt;p&gt;
For the most part, ISPs don't care about what type of information is being transmitted, but that is beginning to change. ISPs have realized that they can reduce the load on their networks by slowing down certain types of packets. This practice makes sense as a way to combat piracy by slowing down illegal traffic, but several ISPs have begun to use it to arbitrarily discriminate against certain types of traffic.
&lt;/p&gt;

&lt;p&gt;
For example, Cox recently decided to make all FTP and P2P traffic slower, ostensibly to increase the speed of its other services. Although this may improve the service to most of its customers, it could be used for more nefarious purposes. For example, data being delivered from its partner's websites could be prioritized, slowing down all other traffic. Cox could even slow down a particular type of data in order to offer the full speed for a higher price.
&lt;/p&gt;

&lt;p&gt;
Net neutrality legislation and policy attempts to stop this practice by forbidding ISPs from discriminating for or against any type of traffic.
&lt;/p&gt;

&lt;h4&gt;Why should the government get involved?&lt;/h4&gt;

&lt;p&gt;
Until recently, I didn't have an adequate answer to this question, so I couldn't justify the expense to the government and ISPs that net neutrality policy would create. I thought that competition between ISPs would prevent any overbearing packet filtering. However, according to &lt;a href="http://www.opencongress.org/bill/111-h3458/show"&gt;Congress' most recent net neutrality bill&lt;/a&gt;, "the overwhelming majority of residential consumers subscribe to Internet access service from 1 of only 2 wireline providers: the cable operator or the telephone company." If both of these all-important ISPs decide to moderate your traffic, you won't have any other options.
&lt;/p&gt;

&lt;h4&gt;Who opposes net neutrality?&lt;/h4&gt;

&lt;p&gt;
Two major groups of companies oppose net neutrality for two separate but similar reasons. Most major ISPs providing high-speed internet are opposed to net neutrality because it limits their ability to profit from their high-speed internet services. Not only would net neutrality prevent them from reducing network load by slowing down some types of traffic, but also it would keep them from differentiating themselves from other ISPs by offering extra speed on certain applications. For example, net neutrality would prevent an ISP from making videos stream faster by prioritizing them over other traffic.
&lt;/p&gt;

&lt;p&gt;
In addition, the high-speed wireless ISPs Verizon and AT&amp;T have &lt;a href="http://www.engadget.com/2009/09/22/atandt-verizon-poised-to-fight-fccs-net-neutrality-stance-on-the/"&gt;teamed up to oppose net neutrality&lt;/a&gt; on different grounds. Because both operate massive wireless data networks, they want to reserve the right to manage their traffic. They argue that because there is a fundamental limit to how much data can be transmitted through the wireless spectrum, they should be able to reduce the strain on their networks by slowing down high-volume traffic.
&lt;/p&gt;

&lt;p&gt;
The problem with their argument is that packet filtering isn't the only way to limit network traffic. Net neutrality would allow them to limit data usage by setting customer data limits or reducing the speed of all traffic. The only thing the plan prevents is slowing down packets based on the information they contain.
&lt;/p&gt;

&lt;h4&gt;What can I do?&lt;/h4&gt;

&lt;p&gt;
Contact your congressman in support of &lt;a href="http://www.opencongress.org/bill/111-h3458/show"&gt;H.R.3458, the Internet Freedom Preservation Act of 2009&lt;/a&gt; and the &lt;a href="http://www.engadget.com/2009/09/21/fcc-chairman-formally-proposes-net-neutrality-rules/"&gt;FCC's recent action on net neutrality&lt;/a&gt;. The second point is important because some congressmen believe the FCC has overstepped its boundaries by declaring net neutrality rules while the House of Representatives was debating the issue. The FCC's rules will accelerate the enforcement of net neutrality, and that can't happen soon enough.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-6300981448290056478?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/6300981448290056478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/10/net-neutrality-innovation-protection-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/6300981448290056478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/6300981448290056478'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/10/net-neutrality-innovation-protection-or.html' title='Net neutrality: Innovation protection or unnecessary regulation'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-3397345633765110669</id><published>2009-09-28T14:21:00.000-07:00</published><updated>2009-09-30T06:56:52.513-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='website creation'/><category scheme='http://www.blogger.com/atom/ns#' term='idea library'/><title type='text'>Harnessing spam bots for cyber warfare</title><content type='html'>&lt;h4&gt;Disclaimer&lt;/h4&gt;
&lt;p&gt;
I have not researched internet criminal law and I won't speculate on the legality of this idea. I'm not advocating any type of internet warfare or vandalism. &lt;strong&gt;Don't implement this idea&lt;/strong&gt; unless you determine that it is completely legal.
&lt;p&gt;

&lt;h4&gt;Summary&lt;/h4&gt;

&lt;p&gt;
With that disclaimer out of the way, I'd like to explain one of my most ambitious and long-planned idea: redirect spam bots to launch a DDoS attack on a website. Even small websites have to guard their forms against bot spam. Why shouldn't this enormous source of resource-wasting power be put to good use?
&lt;/p&gt;

&lt;h4&gt;Background&lt;/h4&gt;

&lt;p&gt;
Spam bots work on the economics of scale. Unscrupulous companies and criminal organizations pay spammers to use their servers to crawl the internet, looking for comment forms and public email addresses. When a spam server (or bot) finds a web form, it fills it out with a mix of garbage and spam links and moves on. If the data is posted on the website in some way (blog comment, forum posting, wiki entry), the bot has succeeded in exposing the link to more people. If even a minute percentage of the people who see the link click on it, the hiring organization can make money by infecting the unwary user's computer with malware and selling his personal information.
&lt;/p&gt;

&lt;p&gt;
However, if the spam is detected by any part of the system, it is blocked and the bot has failed. Unfortunately, it has still consumed the bandwidth and computing power of the victim web server. In addition, the victim server's organization has to use its resources to harden its website against spam bots. On a low-traffic website, the spam bot traffic is negligible, but on larger sites, the cost of spam bots is significant. One only needs to examine the measures taken against bot spam to realize its power: &lt;a href="http://recaptcha.net/"&gt;reCaptcha&lt;/a&gt;, &lt;a href="http://googleresearch.blogspot.com/2009/04/socially-adjusted-captchas.html"&gt;image rotation tests&lt;/a&gt;, and a few &lt;a href="http://www.certpal.com/blogs/2009/09/flavours-of-captcha/"&gt;more esoteric schemes&lt;/a&gt;. Despite all these barriers, spammers can make money with spam bots.
&lt;/p&gt;

&lt;h4&gt;Plan of action&lt;/h4&gt;

&lt;p&gt;
Why should all those spam bot processing cycles be used for nefarious purposes? Right now, when a website detects a spam bot, it has several options: it can block the IP address of the bot, preventing the bot from coming back; it can simply reroute the bot to a dead-end page; or it can attempt to waste the spam bot's processing cycles by rerouting the bot to a bot trap. Typically, bot traps work by enticing the bot to fill out a never-ending line of forms or follow a web of garbage links.
&lt;/p&gt;

&lt;p&gt;
What if this stream of spam bots was instead pointed at &lt;a href="http://en.wikipedia.org/wiki/Link_farm"&gt;link farms&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Phishing"&gt;phishing sites&lt;/a&gt;? Web forms could reroute the spam bots they detect to a spam bot portal site that would reroute the spam bots to known nefarious sites. If a significant number of websites used the portal as a bot trap, the effect on the nefarious sites could be devastating. The spurious sites would be crushed by the traffic from their own advertising bots.
&lt;/p&gt;

&lt;p&gt;
Eventually, the portal site could be automated to find and destroy targets on its own. It could pick its targets from the list of sites ejected from Google's index for phishing or link farming. Once it had chosen a site, it would redirect its traffic to that site, checking each minute to see if the site was still functioning. Perhaps it could crush multiple sites simultaneously by evaluating their stability and pointing just enough traffic at each to overwhelm it.
&lt;/p&gt;

&lt;p&gt;
Obviously, this idea would be far more difficult to implement than to describe. How would the portal handle the massive amounts of traffic? Who would want to shoulder the cost of this plan? How would the predator portal get the list of sites rejected from Google's index?
&lt;/p&gt;

&lt;p&gt;
Do you think this plan is viable?
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-3397345633765110669?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/3397345633765110669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/09/harnessing-spam-bots-for-cyber-warfare.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/3397345633765110669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/3397345633765110669'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/09/harnessing-spam-bots-for-cyber-warfare.html' title='Harnessing spam bots for cyber warfare'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-7833265582434643063</id><published>2009-09-20T11:30:00.000-07:00</published><updated>2009-09-20T11:42:19.032-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idea library'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='gaming'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>Scribblenauts: Accomplishment and potential</title><content type='html'>&lt;p&gt;
Although Scribblenauts is a terrifically fun and shockingly innovative game, its concept is even more compelling than its gameplay. Scribblenauts is a new game for the Nintendo DS in which you solve puzzles by summoning and using items. If your goal is encased in a block of ice, you could break the ice with a hammer, melt it with a flamethrower, or detonate it with a grenade. The game's hook is that you can summon almost &lt;em&gt;any item imaginable&lt;/em&gt;.
&lt;/p&gt;

&lt;h4&gt;Hidden machinery&lt;/h4&gt;

&lt;p&gt;
Of course, the game is phenomenal, but the technology behind it is even more impressive. 5th Cell, the developers of Scribblenauts, managed to cram tens of thousands of interactive, animated characters and items on a tiny DS cartridge. On top of the actual pictures, they programmed in complex interactions between the items. For example, a toaster will turn bread into toast; monsters scare and attack people; cops shoot criminals and chase donuts; and beavers gnaw down trees. This game's backend is completely unprecedented.
&lt;/p&gt;

&lt;h4&gt;Unlimited Possibilities&lt;/h4&gt;

&lt;p&gt;
Imagine if the contents of the Scribblenauts asset database were accessible to all game developers. Designing a traditional game would be a breeze: lay out a level, populate it with items and characters, and show the player an objective. However, giving developers (and players) instantaneous access to a massive library of items would create entirely new gaming possibilities. An RPG could allow players to equip their teams with typical household items with different strengths and weaknesses. A point-and-click adventure could use the sprites and interactions to let the player pick up literally any item in a room and use it in the game. A platformer could use the vast selection of items and characters to make each level a unique experience. A universal resource database could fundamentally change process of creating and playing games.
&lt;/p&gt;

&lt;h4&gt;Making the concept a reality&lt;/h4&gt;

&lt;p&gt;
Thinking about the possibilities &lt;em&gt;if&lt;/em&gt; the Scribblenauts database was open is entertaining but unproductive. In order to give developers and users the power of instant item creation, steps must be taken.
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A lightweight format for interactively animated sprites must be established. Whether it's a particular arrangement of sprites on a sheet or an XML dialect for defining how a character's parts fit together and interact, there must be a standard for people to follow.&lt;/li&gt;
&lt;li&gt;A central database must be created to systematically store and retrieve the standardized sprites. It must be easy for people to contribute, but impossible for someone to damage or corrupt. The sprites and their interactions must be version-controlled.&lt;/li&gt;
&lt;li&gt;Developers must have access to the database from their games. Web-based technologies could access the database directly, but pc-based games should be able to use a copy of the database. It could be optimized and compressed, or developers could simply "check out" the portion of the database they intend to use. Perhaps, when a game using the entire database is started, it could check to see if any new items have been added to the database.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;
The game Scribblenauts is an enormous accomplishment, but it could be so much more. The technology behind Scribblenauts could revolutionize the resource management of game development, tearing down barriers for both designers and developers to create experiences. Nevertheless, in order for that to happen, 5th Cell must release the Scribblenauts' resource database for non-commercial use, or the independent developer community must unite to create their own asset database.
&lt;/p&gt;

&lt;p&gt;
If you'd like to support the developers of Scribblenauts (and me), you can &lt;a href="http://www.amazon.com/gp/product/B002B1TDV8?ie=UTF8&amp;tag=welcotoobscu-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B002B1TDV8"&gt;buy Scribblenauts&lt;/a&gt; for yourself.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-7833265582434643063?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/7833265582434643063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/09/scribblenauts-accomplishment-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/7833265582434643063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/7833265582434643063'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/09/scribblenauts-accomplishment-and.html' title='Scribblenauts: Accomplishment and potential'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-2094176616786611635</id><published>2009-08-27T06:55:00.000-07:00</published><updated>2009-08-27T06:55:58.555-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='industry'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>Adobe, Flash is unsustainable</title><content type='html'>&lt;p&gt;
Flash doesn't work well on Linux. It's a well-known fact in both the Flash-development and Linux communities. When I try to load a Flash-based video in Firefox 3.1 on Ubuntu, the video has about a fifty-percent chance of working and a twenty-five-percent chance of freezing my browser. Any games I attempt to play are likely to never load, and the ones that load are likely to run slowly, look ugly, or freeze.
&lt;/p&gt;

&lt;p&gt;
Not just Linux users are experiencing these problems. As Flash increases its compatibility and pervasiveness, backlash against its instability and slowness grows. Here's an excerpt from Engadget's review of HTC's new Flash-compatible smartphone:
&lt;/p&gt;

&lt;blockquote&gt;
Unfortunately, in our testing, we found the inclusion actually hurts operation of the phone more than it helps. When browsing to a site heavy on Flash (there are many), the browser loading times were abysmal. Furthermore, trying to view videos in-window produced choppy, nearly unwatchable results. You may have a better experience with lighter kinds of content, but in our opinion the main reason to introduce Flash into a mobile environment is to allow for broader media viewing options, and in the current state of this Flash player, you're not really going to get much mileage out of it.
&lt;/blockquote&gt;

&lt;p&gt;
The push against Flash can also be seen in PC market. Savvy users, tired of Flash slowing their browser and displaying obnoxious ads, are saying no to the Flash plug-in. Cutting-edge web developers, taking advantage of the major advancements in browser technology, are abandoning Flash in favor of embedded fonts and slick Javascript animations that are now compatible with modern browsers. 
&lt;/p&gt;

&lt;p&gt;
Adobe could repair these problems with more time or more money, but it has neither. If Adobe slows development on new Flash versions to focus on increasing its compatibility and stability, Microsoft's Silverlight will gain ground with new features. Adobe simply doesn't have enough money and resources to ensure good performance across the numerous platforms to which Flash is spreading.
&lt;/p&gt;

&lt;p&gt;
I only see one way for Adobe to ensure acceptable performance on all platforms while expanding Flash's reach: release the Flash Player and compiler source code under an open-source license. Open-sourcing Flash would benefit Adobe in three ways:
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The cost to maintain Flash would go down. The developer community would help to identify and patch bugs, freeing up Adobe's Flash developers to work on the next version.&lt;/li&gt;
&lt;li&gt;Flash's performance and stability would improve. Many people would report bugs and contribute patches, and a few developers would spend hundreds of hours fixing Flash problems and making improvements. Additionally, users on non-major platforms such as Linux distros and smartphone OSs would help to test Flash more thoroughly.&lt;/li&gt;
&lt;li&gt;More people would use Flash and more people would develop Flash apps. Developers know that open-source projects are more long-lasting than proprietary platforms. Even if Adobe goes away, Flash will remain a viable platforms for interactive web apps. More users would trust the stability and security of Flash if they knew that thousands of people were working to make Flash stable and secure.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Adobe, Flash is too expensive to be maintained and developed by a single company. If you truly want Flash to be the universal platforms for highly-interactive web apps, you'll give it to its rightful owners: the users.
&lt;/p&gt;

&lt;p&gt;
I'm not the first one to suggest that Adobe should release the Flash source code. See this &lt;a href="http://www.humans-enabled.com/2009/05/open-letter-to-adobe-make-flash-player.html"&gt;open letter&lt;/a&gt; to Adobe for another take on the matter.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-2094176616786611635?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/2094176616786611635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/adobe-flash-is-unsustainable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/2094176616786611635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/2094176616786611635'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/adobe-flash-is-unsustainable.html' title='Adobe, Flash is unsustainable'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-346469197141404131</id><published>2009-08-21T14:09:00.000-07:00</published><updated>2009-08-21T15:07:35.507-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='speaking app'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Help people regain speech</title><content type='html'>&lt;p&gt;
Every year, thousands of people around the world lose their ability to speak. Some are struck dumb by strokes, while others' voices are stolen by degenerative diseases such as ALS or muscular dystrophy. These people can regain their ability to communicate by using speech augmentation software or devices to speak for them. Unfortunately, the &lt;a href="http://www.words-plus.com/website/products/soft/sayitsam.htm"&gt;obscene prices&lt;/a&gt; of both the software and hardware prevent many people from communicating.
&lt;/p&gt;

&lt;p&gt;
I want to solve this problem by developing an open-source speech-augmentation program. My goal is to create a cross-platform speaking program with both a symbol-based and text-based interface. I plan to write the program in Python with an emphasis on flexibility and extensibility. I plan to abstract both the input and output interfaces, allowing the program to be independent of both its text-to-speech engine and its GUI framework.
&lt;/p&gt;

&lt;p&gt;
Consider this post a project announcement and a call to action. If you'd like to help people regain the ability to speak and you have experience with Python, interface design, text-to-speech, or accessibility, send me an email. I need all the help I can get.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-346469197141404131?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/346469197141404131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/help-people-regain-speech.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/346469197141404131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/346469197141404131'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/help-people-regain-speech.html' title='Help people regain speech'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-8337662871418548825</id><published>2009-08-20T13:08:00.000-07:00</published><updated>2009-08-20T14:46:55.583-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pygame2'/><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Pygame2 example game finished</title><content type='html'>&lt;p&gt;
Early this summer, when my Google Summer of Code proposal to the Pygame project was rejected, I told the coordinator that I would nonetheless contribute to the project over the summer. I planned on writing examples and tutorials for the Pygame2 multimedia library. Unfortunately, events conspired to prevent me from writing the examples. I had tremendous difficulty installing Pygame2 properly and no time to find the problems: I finally overcame my installation problems only two weeks ago.
&lt;/p&gt;

&lt;p&gt;
&lt;img src="http://lh6.ggpht.com/_846kZMt0ZKY/So3DBYhDJHI/AAAAAAAAADc/YC79-UtggEA/s800/modaliencompositescreenshot.png" alt="Composite screenshot of all four skins" /&gt;
&lt;small&gt;Four graphical skins for your gaming pleasure!&lt;/small&gt;
&lt;/p&gt;

&lt;p&gt;
However, I spent a great deal of time over the last week writing my first example for Pygame2. It's based on the &lt;var&gt;oldalien.py&lt;/var&gt; demo distributed with the original Pygame, but I greatly expanded its scope. I tried to demonstrate as much of the library as I could, but I ended up using only a sliver of the library's functionality. The finished example demonstrates Surface handling, vector drawing with &lt;var&gt;pygame2.sdlext.draw&lt;/var&gt;, text rendering with &lt;var&gt;pygame2.sdlttf&lt;/var&gt;, image loading with &lt;var&gt;pygame2.sdlimage&lt;/var&gt;, and sound effects with &lt;var&gt;pygame2.sdlmixer&lt;/var&gt;. It's not an exhaustive demonstration of those concepts, but I think it's a good starting point for exploration of the library.
&lt;/p&gt;

&lt;p&gt;
In addition to showing off the Pygame2 library, I tried to demonstrate best practices. I encapsulated the object instantiation and sprite drawing in external factories, allowing users with incomplete installations of Pygame2 to still see parts of the example. I only have to switch factories to drastically change the look of the game. Most importantly, I expunged the global variables from all the classes. The game still uses a couple long-life variables, but I eliminated the unnecessary ones.
&lt;/p&gt;

&lt;p&gt;
If you'd like to see my uber-example in action, you can get it from its &lt;a href="http://code.google.com/p/pygame2examples/"&gt;SVN repository&lt;/a&gt; or download it as a &lt;a href="http://evankroske.com/downloads/modalien.zip"&gt;.zip archive&lt;/a&gt;. If you have any trouble with the game, let me know.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-8337662871418548825?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/8337662871418548825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/pygame2-example-game-finished.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/8337662871418548825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/8337662871418548825'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/pygame2-example-game-finished.html' title='Pygame2 example game finished'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_846kZMt0ZKY/So3DBYhDJHI/AAAAAAAAADc/YC79-UtggEA/s72-c/modaliencompositescreenshot.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-1512194397273821896</id><published>2009-08-14T11:57:00.000-07:00</published><updated>2009-08-14T14:00:15.391-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>Need app developers? Give them respect.</title><content type='html'>&lt;p&gt;
According to Engadget, both &lt;a href="http://www.engadget.com/2009/08/14/iphone-devs-offered-cash-to-code-for-the-zune-hd/"&gt;Microsoft&lt;/a&gt; and &lt;a href="http://www.engadget.com/2009/08/14/sony-to-court-iphone-devs-match-app-store-pricing/"&gt;Sony&lt;/a&gt; are attempting to lure iPhone developers away from the platform to develop apps for the Zune HD and the PSPgo, respectively. Allegedly, Sony is just asking developers to convert, but Microsoft is offering cash to defecting developers.
&lt;/p&gt;

&lt;p&gt;
However, I don't anticipate that either of these strategies will attract many high-quality developers. Switching platforms is a major change that requires a great deal of time and effort. More importantly, the developer has to believe that there's a future for the platform.
&lt;/p&gt;

&lt;p&gt;
Nonetheless, I believe that both companies could foster development environments as fertile as the Apple's by dropping development barriers and treating developers with respect.
&lt;/p&gt;

&lt;h3&gt;Break down development barriers&lt;/h3&gt;

&lt;p&gt;
Many great app developers have never written an app. Some don't have the cash to buy Macs and pay $99 to get their developer certificates from Apple. Some don't consider the investment worth the money. Some don't know how to develop an app. Whatever the reason, there is a large pool of potential developers who have never made it over Apple's speed bumps.
&lt;/p&gt;

&lt;p&gt;
Sony and Microsoft need to make it free and easy to develop an app for their platforms. The SDK should be free, open-source, and cross-platform. It should be completely self-contained, but it should also be compatible with a major IDE. It should contain a thorough tutorial that takes the new developer from project creation to final compilation.
&lt;/p&gt;

&lt;p&gt;
When it comes time to publish an app, the developer should pay less than fifty dollars to make the app available for purchase and absolutely nothing from that point on. Developers should be able to set their own prices and the platform should charge &lt; 30%. If an app is free, the developer should not be charged when it is downloaded.
&lt;/p&gt;

&lt;h3&gt;Respect developers&lt;/h3&gt;

&lt;p&gt;
Both Sony and Microsoft should capitalize on the current uproar about Apple's &lt;a href="http://appreview.tumblr.com/"&gt;opaque and draconian app screening process&lt;/a&gt; by making their app screening as transparent and inclusive as possible. The application rules should be straightforward, comprehensive, and accessible to developers. Before the developer even downloads the SDK, he should be shown a summary of the rules.
&lt;/p&gt;

&lt;p&gt;
Every developer whose app is rejected should receive a thorough and specific explanation. The app reviewer should say which rule the app broke, which part of the app broke the rule, and what can be done to fix the app. If the app store doesn't have the time to write these explanations, it's obviously rejecting too many apps.
&lt;/p&gt;

&lt;p&gt;
Apple's iPhone development environment has its weaknesses, but to focus on luring away its developers with cash would be short-sighted. Sony and Microsoft must build their developer base with App Store cast-offs and new developers before they can offer the massive install base of the App Store. They need more than a just few money-motivated iPhone developers to launch their platforms.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-1512194397273821896?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/1512194397273821896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/need-app-developers-give-them-respect.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/1512194397273821896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/1512194397273821896'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/need-app-developers-give-them-respect.html' title='Need app developers? Give them respect.'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-2701025339065150789</id><published>2009-08-11T11:31:00.000-07:00</published><updated>2009-08-11T12:24:05.287-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idea library'/><title type='text'>Suggested reading for elected officials</title><content type='html'>&lt;p&gt;
Despite the politically charged name of this post, Welcome to Obscurity will remain a non-partisan blog. It just happens that my most recent idea relates to my elected officials.
&lt;/p&gt;

&lt;p&gt;
How many times have you shared an article with your friends or followers? If you're like me, you've probably forwarded plenty of interesting stuff to your social network. On the other hand, how many times have you contacted one of your congressman? I've sent less than ten messages to my elected officials, and I consider myself relatively politically active.
&lt;/p&gt;

&lt;p&gt;
Despite the massive improvement in communications technology, few people bother to communicate with their elected officials. And why should they? One person's suggestion is unlikely even to be considered. It takes a coordinated effort to make an impact on a powerful politician, and few people have the time or resources to gather support.
&lt;/p&gt;

&lt;p&gt;
To solve this problem, I propose a website for people to suggest articles for their elected officials to read. A worried elector could use a website, bookmarklet, or browser extension to mark articles they believe should be read by their elected officials. He could send the article to a specific politician or to every politician responsible to the elector.
&lt;/p&gt;

&lt;p&gt;
The first time an article is suggested to a politician, a page is created for him that contains a link to the article. As more and more articles are suggested, the system sorts the articles by their popularity and specificity. An article's popularity will be based on the number of people who have suggested it. An article's specificity, on the other hand, will be determined by the number of other people to whom the article has been suggested. If a voter suggests an article to every one of his politicians, that article will have a lower specificity than one that he forwarded to a specific politician.
&lt;/p&gt;

&lt;p&gt;
A politician will be able to confirm his identity with the service and respond directly to the suggested articles or subscribe anonymously to the RSS feed of his reading material. The politician could set his suggestions to expire quickly if he has a large volume of them or stay on his page until he responds. Normal people could also subscribe to the RSS feeds of politicians to learn which political articles are popular.
&lt;/p&gt;

&lt;p&gt;
What do you think? Is this idea a potential world-changer or an insignificant pebble thrown against a Mack truck?
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-2701025339065150789?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/2701025339065150789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/suggested-reading-for-elected-officials.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/2701025339065150789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/2701025339065150789'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/suggested-reading-for-elected-officials.html' title='Suggested reading for elected officials'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-4357353231788240379</id><published>2009-08-06T11:58:00.000-07:00</published><updated>2009-08-06T14:23:22.282-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idea library'/><title type='text'>Universal scholarship application</title><content type='html'>&lt;p&gt;
It's hard to get money for college. I thought I had avoided the grab for cash by qualifying for Florida's comprehensive Bright Futures scholarship, but I recently discovered that my scholarship's funding was cut and I'm now liable for more than just the cost of my books. Now I have to devote some of my scarce and precious time to finding and applying to scholarships.
&lt;/p&gt;

&lt;p&gt;
First, I have to find scholarships, sifting through pages of Google results to look for scholarships for which I'm eligible and capable of winning. Once I find some promising scholarships, I have to jump through their hoops, either filling out online forms or printing them out and faxing them in. Each essay prompt is slightly different, so each application requires a few modifications to my standard essay. When I'm done, I've lost several hours of my day to a few scholarships I'm not even sure I'll receive!
&lt;/p&gt;

&lt;p&gt;
I've registered on &lt;a href="http://fastweb.com"&gt;FastWeb.com&lt;/a&gt;, but half of the scholarships are restricted to high school students. The rest are large, national scholarships with big prizes and even bigger requirements. Whether the scholarship requires me to write a detailed essay on a long book or create a high-quality Youtube video, I'll be competing against thousands of students across the country. Unless I'm a genius writer or videographer, I would only be wasting my time and effort on a 1-in-100 shot.
&lt;/p&gt;

&lt;p&gt;
To ease the scholarship application process for students, I propose a government-funded academic-achievement matching system. The network would be a universal platform for all students to get scholarships. The network would be linked to each state's educational database, and each student would claim his information when he became interested in applying for scholarships. Most vital info would be visible from the start, but the student would be able to block certain pieces of information. However, the network would emphasize the positive aspects of students' records over the negative.
&lt;/p&gt;

&lt;p&gt;
If I was a student in this system, all my major info would appear automatically: homeschooled from fourth grade, standardized testing every year, 4.0 college GPA, etc. In addition, I could list my community service hours by simply sending my service acknowledgement letter to the scholarship network office for confirmation. Of course, the office would also confirm things like my family history and SAT and ACT scores.
&lt;/p&gt;

&lt;p&gt;
When an organization wished to offer a scholarship, it would simply set the eligibility requirements and offer the scholarship to whichever students met the requirements best. If a scholarship required a specialized essay or test, the organizations could wait for interested students to apply (each student could see the scholarships available to him) or ask specific groups of students to apply. For example, a company asking for an artsy Youtube drama could invite students who listed "videography" as one of their interests. Any student could apply to any scholarship he was eligible for, but he would have to take the initiative.
&lt;/p&gt;

&lt;p&gt;
Of course, there are a number of pitfalls a project would need to avoid: government bureaucracy, spamming, application padding, and privacy issues. The network would have to be private to protect the students, but it would also need to be accessible to interested organizations without too much red tape. It would be a difficult project, but it could actually save government money. Students who would be eligible for government aid would instead finance their education with private money.
&lt;/p&gt;

&lt;p&gt;
I know there are a hundred problems with this plan, so please point them out in the comments section. Anybody want to check this one out?
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-4357353231788240379?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/4357353231788240379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/universal-scholarship-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/4357353231788240379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/4357353231788240379'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/universal-scholarship-application.html' title='Universal scholarship application'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-8788035669365032048</id><published>2008-07-29T08:19:00.000-07:00</published><updated>2009-08-06T11:58:27.819-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='idea library'/><category scheme='http://www.blogger.com/atom/ns#' term='MMO'/><category scheme='http://www.blogger.com/atom/ns#' term='gaming'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>Cockroaches and WoW</title><content type='html'>&lt;p&gt;
I have many ideas, most of which aren't to interesting to the average person.  Every once in a while, I come up with something so fascinating (in my opinion), I wish I could share it with the world.  Well, now I can!
&lt;/p&gt;

&lt;p&gt;
As I was taking an evening walk a couple months back, I had an unusual thought: "Why doesn't a scientist hook up a roach's brain to a virtual avatar?  He could wire the bug's mobility processors to the motion of its avatar and its senses directly into the game.  That would be an interesting enough experiment, but what if he hooked up the bug to a massively multiplayer online game such as World of Warcraft?  In theory, he wire the bug's brain to give it pleasure if it did something good for its player, like damaging another player, and pain if it did something bad, like taking damage. 
&lt;/p&gt;

&lt;p&gt;
This bug could become the best WoW player in the world, because it would play non-stop, with an insatiable urge to succeed.  Its sole purpose in life would be to win the game, and it would keep trying and learning until it did.  Of course, I don't have the means or the experience to accomplish something like this, but it is a very interest hypothetical, in my opinion.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-8788035669365032048?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/8788035669365032048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2008/07/cockroaches-and-wow.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/8788035669365032048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/8788035669365032048'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2008/07/cockroaches-and-wow.html' title='Cockroaches and WoW'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-814358394242078403</id><published>2009-08-03T10:47:00.000-07:00</published><updated>2009-08-03T12:07:07.182-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idea library'/><category scheme='http://www.blogger.com/atom/ns#' term='obscurity'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Idea Library: Spread Linux by revitalizing slow computers</title><content type='html'>&lt;p&gt;
I create lots of ideas. I'll think up a plan to accomplish a goal or start a business, ponder it for a couple of days, think of a problem with the idea, and move on to the next idea. However, I occasionally develop an idea that stands up to my scrutiny.
&lt;/p&gt;

&lt;p&gt;
Until now, I've summarized these ideas in a Remember the Milk to-do list, planning to implement them myself "after this assignment" or "once I finish this project". However, I've now realized I simply don't have time to work on all of them, so I'm sharing them with you.
&lt;/p&gt;

&lt;p&gt;
I'll publish the ideas here with the tag "idea library" so that you can easily find  them. My idea posts won't have the same quality as the rest of my posts, and it's possible that my ideas will be full of glaring oversights or obvious flaws. Nonetheless, I think that some of my ideas have real potential, even if I don't have the time or resources to implement them.
&lt;/p&gt;

&lt;p&gt;
That's why I chose the tag "idea library": I wanted to give other people the chance to use my ideas. If you'd like to implement one, please contact me at &lt;a href="mailto:e.kroske@gmail.com"&gt;E.Kroske@Gmail.com&lt;/a&gt; so that we can discuss terms. Because I won't publish ideas I can execute myself, I will probably give you any published idea you ask for. I'm publishing these ideas not to entertain you but to give you a chance to use them.
&lt;/p&gt;

&lt;p&gt;
My first idea addresses a problem for the open source community: Windows has a stranglehold on the OS market. Far too many people have no idea that they can leave Windows without buying a new computer, and most of the people who are aware of Linux don't have the skill or incentive to install it.
&lt;/p&gt;

&lt;p&gt;
I propose that the Linux community should offer to speed up people's slow, obsolete, or damaged Windows computers by installing Ubuntu (or another desktop-focused Linux distro). People will agree to risk their computers if the computers aren't usable.
&lt;/p&gt;

&lt;p&gt;
A flyer on a bulletin board could promise to redeem old computers by dramatically reducing start-up and loading times, allowing quick web browsing and email access, and eliminating malware of all types. The customer could pay $20 for installation plus $10 for the recovery CD and $40 for data preservation (through dual-booting). Many people would gladly pay $20 to give their old computer another chance at usefulness.

&lt;p&gt;
I would charge that little because I need the Linux experience and I'd like to encourage the adoption of Linux.I would also write a quick tutorial to show the new users how to use the essential functions. Ideally, I would convince a computer repair shop to refer customers with hopelessly obsolete computers to me. I don't think this could be a money-making project, but I would enjoy the experience.
&lt;/p&gt;

&lt;p&gt;
Obviously, you don't have to contact me to use this idea, but I would still appreciate a comment if you decide to try it.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-814358394242078403?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/814358394242078403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/idea-library-spread-linux-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/814358394242078403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/814358394242078403'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/08/idea-library-spread-linux-by.html' title='Idea Library: Spread Linux by revitalizing slow computers'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-3683785352727981472</id><published>2009-07-23T20:20:00.000-07:00</published><updated>2009-07-23T17:26:18.737-07:00</updated><title type='text'>Announcing Project 10^100 Now</title><content type='html'>&lt;p&gt;
Project 10&lt;sup&gt;100&lt;/sup&gt; Now is an organization I co-founded to bring attention to Google's ridiculous delay of Project 10&lt;sup&gt;100&lt;/sup&gt;. This is the story of how it was started.
&lt;/p&gt;

&lt;p&gt;
It all started with my post about Google's delay of Project 10&lt;sup&gt;100&lt;/sup&gt;. After several days of silence, someone emailed me to ask if I'd like to collaborate on a project to make Google accelerate Project 10&lt;sup&gt;100&lt;/sup&gt;. I liked the idea of calling out Project 10&lt;sup&gt;100&lt;/sup&gt;'s delay, but I didn't have the time or the skills to help with his plan. I told him that I wasn't up for such an arduous project, but I'd be glad to write an open letter to Google if he'd publish it.
&lt;/p&gt;

&lt;p&gt;
He agreed to the arrangement, and I got to work. Over the next two weeks, I drafted two open letters, created our &lt;a href="http://project10tothe100now.org/"&gt;website&lt;/a&gt;, and started our &lt;a href="http://project10tothe100now.blogspot.com/"&gt;blog&lt;/a&gt; and &lt;a href="http://www.facebook.com/home.php#/group.php?gid=128434250662"&gt;Facebook group&lt;/a&gt;. My collaborator set up the hosting account with his own money, gathered the email addresses and content forms of the major tech blogs, and set up our &lt;a href="http://twitter.com/Project10100Now"&gt;Twitter feed&lt;/a&gt;. In only two weeks, we had prepared to launch a full-scale social media advocacy campaign.
&lt;/p&gt;

&lt;p&gt;
We decided to launch the project on Tuesday the twenty-first, so that the press would have plenty of time to pick up the story before the weekend. We sent out emails to tech blogs, filled out online forms, and followed notable tech commentators on Twitter. So far, we've received only three blog mentions, but I have great expectations.
&lt;/p&gt;

&lt;p&gt;
If you'd like to help, visit &lt;a href="http://project10tothe100now.org/"&gt;Project10tothe100Now.org&lt;/a&gt;. We need all the help we can get.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-3683785352727981472?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/3683785352727981472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/07/announcing-project-10100-now.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/3683785352727981472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/3683785352727981472'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/07/announcing-project-10100-now.html' title='Announcing Project 10^100 Now'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-4177968947483975572</id><published>2009-06-30T05:20:00.000-07:00</published><updated>2009-07-14T13:24:27.179-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='website creation'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>New Blogger template released</title><content type='html'>&lt;p&gt;
I'm finally satisfied with the quality of my blog's new style, so I'm releasing it as a Blogger template under the &lt;a href="http://www.apache.org/licenses/LICENSE-2.0.html"&gt;Apache 2.0 license&lt;/a&gt;. You can use it on your blog, modify it, or even sell it as long as I get credit. 
&lt;/p&gt;

&lt;h3&gt;Features&lt;/h3&gt;
&lt;p&gt;Here are some of the features of the new Blogger template "Whitespace is good":
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Two sidebars&lt;/b&gt; This fantastic template comes with not one, but &lt;em&gt;two&lt;/em&gt; versatile sidebars. You can fill them with as many widgets as you'd like!&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Blog color manager&lt;/b&gt; I've plugged Blogger's color management code into the template, allowing you to modify the colors without changing the underlying CSS. If you want your headings to be purple, you can change them yourself!&lt;/li&gt;
&lt;li&gt;&lt;b&gt;High readability&lt;/b&gt; This template was designed to give your blog a clean, content-focused style. That's why I made the body text a colossal 16 pixels Arial and gave it a generous 30 pixel line height. Even an 80-year-old man looking using an old Eee PC could read from this Blogger template!&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Easy accessibility&lt;/b&gt; What if the 80-year-old is reading from a PDA, you ask? He can scale up the text and the whole page will scale with it! I used all relative measurements in my site's &lt;a href="http://www.alistapart.com/articles/fluidgrids"&gt;fluid grid&lt;/a&gt;, permitting even IE6 users to enlarge the text. I've also added some hidden links at the top to let visitors with screen readers skip to the real content. This template's prepared for any eventuality!&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

&lt;h3&gt;Advanced Features&lt;/h3&gt;

&lt;p&gt;
In addition to enabling the GUI-addicted users to remain in blissful ignorance, I'm giving enlightened users lots of control and convenience when modifying the template.
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Scripts section&lt;/b&gt; For your coding convenience, I've created a special hidden div at the top of the page for you to easily add and remove scripts through the Blogger visual widget manager. I'm using it to hold my Google Analytics tracking code.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Strict baseline grid&lt;/b&gt; I tried to lay this website out right by following every classical design concept I could. This style tries to stick to a strict 30 pixel grid in its vertical and horizontal positioning. The baseline grid only fails when pictures' heights aren't multiples of 30 pixels and when two different sizes or types of text share a line (eg. monospaced font + standard font).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CSS variables&lt;/b&gt; I use two Blogger CSS variables that aren't accessible to standard users to give developers the option to change all the heading fonts and all the text fonts together. You can substitute your fonts for the defaults by modifying only two lines.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;a href="http://www.apache.org/licenses/LICENSE-2.0.html"&gt;Apache 2.0 license&lt;/a&gt;&lt;/b&gt; I'm giving you full rights to modify and redistribute this template. You can port it to Wordpress, reuse parts for your personal website, or even sell a website template based off it. I'm not going to stop you.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

&lt;h3&gt;Download and installation&lt;/h3&gt;

&lt;p&gt;
You can download the "Whitespace is good" Blogger template as a compressed .zip file &lt;a href="http://evankroske.com/downloads/wsigbloggertemplate.zip"&gt;here&lt;/a&gt;. To use it, just copy the contents of the file template.xml into the "Edit HTML" box under "Layout" on the Blogger menu. If you don't have the "Layout" tab, click on the "Template" tab, then click "Customize Design" and pick a new template at random. Now you should be able to follow the instructions above. &lt;b&gt;Note:&lt;/b&gt; If you paste the new template into the "Edit HTML" box under the "Template" tab, you won't be able to add widgets and change your the colors of your blog.
&lt;/p&gt;

&lt;p&gt;
If you have any opinion on the new Blogger template or you have any problems with it, simply post a comment below. I'll try to fix any problems that don't have to do with Internet Explorer.
&lt;/p&gt;

&lt;p&gt;
&lt;b&gt;Update:&lt;/b&gt; I just fixed a bug in the template. All zero of you to download the template already should upgrade to the new version.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; I've added a massive two-column-spanning sidebar above the other two. The template looks just the same as it used to, unless you place a widget in the new section. Notify me of any problems.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-4177968947483975572?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/4177968947483975572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/06/new-blogger-template-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/4177968947483975572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/4177968947483975572'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/06/new-blogger-template-released.html' title='New Blogger template released'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-2816327751034219899</id><published>2009-05-31T15:59:00.000-07:00</published><updated>2009-07-02T08:35:39.641-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='website creation'/><category scheme='http://www.blogger.com/atom/ns#' term='contest'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Support Google's plan to save the earth</title><content type='html'>&lt;p&gt;In case you haven't noticed, I just put a new widget in my blog's sidebar. I call it the Google Day Counter, and I created it to try to motivate Google to proceed with its charitable contest, &lt;a href="http://www.project10tothe100.com/"&gt;Project 10 to the 100&lt;/a&gt;. For those who don't want to follow the link, Project 10 to the 100 is a contest Google launched to spend ten million dollars toward ideas that are beneficial to the whole human race. Here was Google's plan: solicit big, earth-saving ideas from normal people, pick the best 100 of those ideas, let normal people vote for the best twenty of those ideas, and spend ten million dollars to launch best few of those twenty ideas. It was a good plan, if a bit un-democratic, but the execution has been problematic.
&lt;/p&gt;

&lt;p&gt;
Google's initial goal was to collect entries until October 20 and announce the 100 finalists on January 27. However, due to the incredibly large number of proposals they received (over 150,000), they had to delay the announcement until March 17. Unfortunately, they had miscalculated again, and the announcement was delayed indefinitely.
&lt;/p&gt;

&lt;p&gt;
The delays mattered to me because I submitted an idea to the contest. My idea was simple: design and develop an open source speech augmentation application for people who can't speak. The application would allow mute people to communicate by clicking on icons or typing in a box on the screen. This software is necessary because the de facto speech augmentation software, &lt;a href="http://www.words-plus.com/website/products/soft/sayitsam.htm"&gt;Say-it! SAM PC&lt;/a&gt;, is far too expensive for many mutes. My plan would ensure that nobody is too poor to communicate with their friends and family.
&lt;/p&gt;

&lt;p&gt;
Because of my submitted proposal, I waited in eager anticipation for March 17, Google Day. When the day finally arrived and the final announcement was delayed indefinitely, I started jokingly measuring the date in relation to Google Day. If I was asked for the date on April 18, I would have responded "April 18, Google Day plus 32." Now that the date has passed Google Day +70, I'm worried that Google has placed Project 10 to the 100 on the back burner and that the project selection could take another six months.
&lt;/p&gt;

&lt;p&gt;
Personally, I believe that that ten million dollars toward big-idea innovation would be most beneficial right now, in the middle of the economic crisis. Thanks to recent deflation, ten million dollars would probably accomplish far more now than six months from now. That's why I've decided to create the Google Day Counter widget and release it to the blogosphere. If you use Blogger to display your opinions to the world, you can add one of the widgets below to show your support.
&lt;/p&gt;

&lt;form method="post" action="http://www.blogger.com/add-widget"&gt;&lt;input type="hidden" name="infoUrl" value="http://welcome2obscurity.blogspot.com/2009/05/support-googles-plan-to-save-earth.html"/&gt;&lt;input type="hidden" name="widget.title" value="Google Day Counter"/&gt;&lt;textarea name="widget.content" style="display:none;"&gt;&amp;lt;style type="text/css"&amp;gt;
#googledaycounterdiv a {
font-size: 2em;
font-family: Arial, sans;
letter-spacing: -1px;
font-weight: bold;
color: rgb(0, 153, 0) !important;
}
&amp;lt;/style&amp;gt;
&amp;lt;script type="text/javascript" language="Javascript"&amp;gt;
// addEvent by Scott Andrew LePera 
// http://www.scottandrew.com/weblog/articles/cbs-events 
function addEvent(elm,evType,fn,useCapture){
  if(elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent) {
    var r = elm.attachEvent('on' + evType, fn);
    return r;
  } else {
    elm['on' + evType] = fn;
  }
}
function googleDayCounterInit() {
  var googleDay = new Date('March 17, 2009');
  var today = new Date();
  var elapsed = Math.floor((today.getTime() - googleDay.getTime()) / 86400000);
  var elapsedDiv = document.getElementById('elapsed');
  elapsedDiv.removeChild(elapsedDiv.firstChild);
  elapsedDiv.appendChild(document.createTextNode(elapsed.toString()));
}
addEvent(window, 'load', googleDayCounterInit, false);
&amp;lt;/script&amp;gt;
&amp;lt;div id="googledaycounterdiv"&amp;gt;&amp;lt;a href="http://welcome2obscurity.blogspot.com/2009/05/support-googles-plan-to-save-earth.html"&amp;gt;Google Day +&amp;lt;span id='elapsed'&amp;gt;?&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;/textarea&gt;&lt;input type="hidden" name="widget.template" value="&amp;lt;data:content/&amp;gt;" /&gt;&lt;input type="submit" name="go" value="Add big Google Day counter"/&gt;&lt;/form&gt;

&lt;form method="post" action="http://www.blogger.com/add-widget"&gt;&lt;input type="hidden" name="infoUrl" value="http://welcome2obscurity.blogspot.com/2009/05/support-googles-plan-to-save-earth.html"/&gt;&lt;textarea name="widget.content" style="display:none;"&gt;&amp;lt;style type="text/css"&amp;gt;
#googledaycounterdiv a {
font-family: Arial, sans;
font-weight: bold;
color: rgb(0, 153, 0) !important;
}
&amp;lt;/style&amp;gt;
&amp;lt;script type="text/javascript" language="Javascript"&amp;gt;
// addEvent by Scott Andrew LePera 
// http://www.scottandrew.com/weblog/articles/cbs-events 
function addEvent(elm,evType,fn,useCapture){
  if(elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent) {
    var r = elm.attachEvent('on' + evType, fn);
    return r;
  } else {
    elm['on' + evType] = fn;
  }
}
function googleDayCounterInit() {
  var googleDay = new Date('March 17, 2009');
  var today = new Date();
  var elapsed = Math.floor((today.getTime() - googleDay.getTime()) / 86400000);
  var elapsedDiv = document.getElementById('elapsed');
  elapsedDiv.removeChild(elapsedDiv.firstChild);
  elapsedDiv.appendChild(document.createTextNode(elapsed.toString()));
}
addEvent(window, 'load', googleDayCounterInit, false);
&amp;lt;/script&amp;gt;
&amp;lt;div id="googledaycounterdiv"&amp;gt;&amp;lt;a href="http://welcome2obscurity.blogspot.com/2009/05/support-googles-plan-to-save-earth.html"&amp;gt;Google Day +&amp;lt;span id='elapsed'&amp;gt;?&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;/textarea&gt;&lt;input type="hidden" name="widget.template" value="&amp;lt;data:content/&amp;gt;" /&gt;&lt;input type="submit" name="go" value="Add small Google Day counter"/&gt;&lt;/form&gt;

&lt;p&gt;
...but if you use any other blogging system, you can simply cut-and-paste the code below into your sidebar div or *shudder* table cell.
&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;style type="text/css"&amp;gt;
#googledaycounterdiv a {
font-size: 2em;
font-family: Arial, sans;
letter-spacing: -1px;
font-weight: bold;
color: rgb(0, 153, 0) !important;
}
&amp;lt;/style&amp;gt;
&amp;lt;script type="text/javascript" language="Javascript"&amp;gt;
// addEvent by Scott Andrew LePera
// http://www.scottandrew.com/weblog/articles/cbs-events
function addEvent(elm,evType,fn,useCapture){
 if(elm.addEventListener){
   elm.addEventListener(evType, fn, useCapture);
   return true;
 } else if (elm.attachEvent) {
   var r = elm.attachEvent('on' + evType, fn);
   return r;
 } else {
   elm['on' + evType] = fn;
 }
}
function googleDayCounterInit() {
 var googleDay = new Date('March 17, 2009');
 var today = new Date();
 var elapsed = Math.floor((today.getTime() - googleDay.getTime()) / 86400000);
 var elapsedDiv = document.getElementById('elapsed');
 elapsedDiv.removeChild(elapsedDiv.firstChild);
 elapsedDiv.appendChild(document.createTextNode(elapsed.toString()));
}
addEvent(window, 'load', googleDayCounterInit, false);
&amp;lt;/script&amp;gt;
&amp;lt;div id="googledaycounterdiv"&amp;gt;&amp;lt;a href="http://project10tothe100.com/"&amp;gt;Google Day +&amp;lt;span id='elapsed'&amp;gt;?&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;
I hope you'll join me in prodding Google to devote its time and money to finally launching Project 10 to the 100.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-2816327751034219899?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/2816327751034219899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/05/support-googles-plan-to-save-earth.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/2816327751034219899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/2816327751034219899'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/05/support-googles-plan-to-save-earth.html' title='Support Google&apos;s plan to save the earth'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-8643822316752023197</id><published>2009-05-28T12:00:00.000-07:00</published><updated>2009-06-30T05:20:21.896-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='list'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google Summer of Code application tips</title><content type='html'>&lt;p&gt;
I have been meaning to write about my Google Summer of Code experience since I learned of my rejection, but I've only now found the free time to finally do it. For those who haven't heard about it, the Google Summer of Code is a program in which Google pays students $4500 to work on open source projects over the summer. (&lt;a href="http://en.wikipedia.org/wiki/Google_summer_of_code"&gt;More info.&lt;/a&gt;) I learned about the Google Summer of Code on March 23, the first day that applications were being accepted. For the 28 days until the winners were announced, I devoted my life to perfecting my proposals, socializing with the mentoring organizations, and fantasizing about the immense heft that "GSoC student" would carry on my application to MIT.
&lt;/p&gt;
&lt;p&gt;
Unfortunately, I simply wasn't good enough. I had only about 1.5 years of programming experience (none with open source projects), I was a freshman at Broward College, and I made several mistakes on my applications.
&lt;/p&gt;
&lt;p&gt;
However, although I couldn't affect my programming experience or my enrolled college, I certainly could've improved my applications. Below, I've compiled a list of tips that I picked up from numerous IRC conversations, mailing list posts, and direct emails to mentoring organizations. Learn from my mistakes and net yourself that $4500 next summer!
&lt;/p&gt;

&lt;h2&gt;Think inside the box&lt;/h2&gt;

&lt;p&gt;
Although most of the Google documentation on the Summer of Code implies that each organization's ideas list is simply a loose guideline, you should write your proposal on a project explicitly listed on your target organization's ideas list. Resist the urge to set yourself apart from the crowd by proposing something new and revolutionary. Mentoring organizations carefully choose only the most useful projects to be listed on their ideas lists; you are unlikely to think up a project more important than the ones they chose.
&lt;/p&gt;

&lt;h2&gt;Use all available tools&lt;/h2&gt;

&lt;p&gt;
On the same day that I learned of my rejection, I stumbled across &lt;a href="http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents"&gt;this invaluable resource page for GSoC applicants&lt;/a&gt;. It has a &lt;a href="http://delicious.com/gsoc2009"&gt;categorized list of mentoring organizations&lt;/a&gt;, a &lt;a href="http://www.google.com/coop/cse?cx=002330094519499254065:mfvq3-xqkou"&gt;search engine for mentoring organizations&lt;/a&gt;, and tons more useful info. Even if the information isn't updated for GSoC 2010, it should still give you a good starting point in your search for a mentoring organization.
&lt;/p&gt;

&lt;h2&gt;There's no safety in numbers&lt;/h2&gt;

&lt;p&gt;
No canned applications! Sending out several generalized proposals will only waste the time you could be spending on your serious applications. You should use all your available time writing targeted, high-quality applications to specific organizations; spamming twenty organizations with your resume is simply a waste of your time and theirs.
&lt;/p&gt;

&lt;h2&gt;Be professional&lt;/h2&gt;

&lt;p&gt;
Don't crack any jokes unless you personally know the proposal reviewer at your target organization. When I wrote an application to Sunlight Labs in which I included one irrelevant but humorous fact and several corny lines, the proposal reviewer thought that the entire application was a joke. I promptly assured him that my proposal was in fact serious, but the damage was done.
&lt;/p&gt;

&lt;h2&gt;Do the work&lt;/h2&gt;

&lt;p&gt;
Unless you want a quick rejection, you should comply with all of your target organization's application requirements. If they ask you to fix a bug, you should actually fix one of their bugs, not just make a patch that somebody else suggested. If you can't dive headfirst into the development of your organization's project, you should probably find another organization. Nothing will get you rejected faster than an hole in your proposal.
&lt;/p&gt;

&lt;h2&gt;Choose wisely&lt;/h2&gt;

&lt;p&gt;
Only apply to organizations you know something about. Although the temptation is strong to apply to some of the obscure supercomputing or AI organizations, you can be sure that there's a bored Computer Science grad student ready to put your proposal to shame. If an organization doesn't get enough skilled students for their projects, they will return their slots to Google. However, if you apply to work on a small project you think you can handle, but the organization doesn't have enough slots for you, they might get one of the surplus slots from another organization. You have a much greater chance of success when you shoot for a project at your level.
&lt;/p&gt;

&lt;h2&gt;Start now&lt;/h2&gt;

&lt;p&gt;
From what I've seen, the majority of accepted Google Summer of Code students had participated in their organization before they even knew about the GSoC. The best way to increase the probability of your acceptance is to be involved in the organization before you apply to work with them. Organizations want to give their slots to students who will complete their projects over the summer and stick with them after the money stops. There's no better way to prove your commitment than to be committed, so &lt;a href="http://socghop.appspot.com/program/accepted_orgs/google/gsoc2009"&gt;find a project that interests you&lt;/a&gt; and jump in.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-8643822316752023197?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/8643822316752023197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/05/google-summer-of-code-application-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/8643822316752023197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/8643822316752023197'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/05/google-summer-of-code-application-tips.html' title='Google Summer of Code application tips'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-1860783137667896297</id><published>2009-06-25T15:22:00.000-07:00</published><updated>2009-06-28T11:23:12.126-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='website creation'/><category scheme='http://www.blogger.com/atom/ns#' term='obscurity'/><title type='text'>Under construction. Watch for falling debris.</title><content type='html'>&lt;p&gt;
I have been dissatisfied with my blog's layout for a long time, but I've never taken the time to work on it, until now. I present the new grid-based three-column blogger layout "Whitespace is good"! This is an alpha version, so there are plenty of problems to be solved and features to be implemented. I intend on allowing people to modify the text color and formatting through Blogger's layout feature, but I'm not quite there yet. 
&lt;/p&gt;

&lt;p&gt;
I'm going to release this template under the Apache 2.0 open source license, but I'm not satisfied with it yet. I still have to test all the major widgets on it, fix a couple of minor layout glitches, and actually allow users to modify the colors and font formatting. 
&lt;/p&gt;

&lt;p&gt;
If you don't use IE and you find layout problems with this style, tell me and I might be able to fix them. If you do use IE, this isn't the blog for you.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-1860783137667896297?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/1860783137667896297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/06/under-construction-watch-for-falling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/1860783137667896297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/1860783137667896297'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/06/under-construction-watch-for-falling.html' title='Under construction. Watch for falling debris.'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-4145390677697057420</id><published>2009-06-22T14:02:00.000-07:00</published><updated>2009-06-22T14:40:32.560-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><title type='text'>Wanna feel smart?</title><content type='html'>&lt;p&gt;
Few things give me the boost of solving a difficult puzzle. Whether I've rooted out a logical flaw in one of my scripts or finally grasped an unintuitive programming concept, I always feel best when I've conquered a challenging problem. From now on, anytime I figure out satisfying puzzle, I'll pass it along to you along with my rationale for solving it. If you have a better way, feel free to tell me.
&lt;/p&gt;

&lt;p&gt;
Today, I found a real stumper on my favorite blog, &lt;a href="http://codinghorror.com/"&gt;Coding Horror&lt;/a&gt;. Jeff Atwood examined a probability conundrum related to the game show "Let's Make a Deal". Here's the setup, according to &lt;a href="http://www.codinghorror.com/blog/archives/001278.html"&gt;Jeff's post&lt;/a&gt;:
&lt;blockquote&gt;
&lt;p&gt;
Suppose the contestants on a game show are given the choice of three doors: behind one door is a car; behind the others, goats. After a contestant picks a door, the host, who knows what's behind all the doors, opens one of the unchosen doors, which reveals a goat. He then asks the contestant, "Do you want to switch doors?"
&lt;/p&gt;

&lt;p&gt;
Should the contestant switch doors?
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/p&gt;

&lt;p&gt;
Even though you know that the answer can't be the obvious "It doesn't matter", you probably can't think of any reason that it's not. One of Jeff's links supplied this totally unsatisfying explanation:
&lt;blockquote&gt;
When you first selected a door, you had a 1/3 chance of being correct. You knew the host was going to open some other door which did not contain the car, so that doesn't change this probability. Hence, when all is said and done, there is a 1/3 chance that your original selection was correct, and hence a 1/3 chance that you will win by sticking. The remaining probability, 2/3, is the chance you will win by switching.
&lt;/blockquote&gt;
&lt;/p&gt;

&lt;p&gt;
That explanation didn't assuage my doubts, so I started thinking of the problem in different terms. I finally convinced myself that 2/3 was the right answer by breaking the problem into cases.
&lt;/p&gt;

&lt;p&gt;
In the first case, the car is behind door number one and you decided not to switch. If you chose door number one, you would win, but if you chose door number two or three, you would walk away with a goat.
&lt;/p&gt;

&lt;p&gt;
In the second case, the car is still behind door number one, but you decided to switch no matter what. If you pick door number one and switch, you lose the game. However, if you pick door number two or door number three, you get to drive off in a brand new car.
&lt;/p&gt;

&lt;p&gt;
I don't have the expertise or patience to posit why people tend to make the wrong decision, but I'm satisfied to have figured it out for myself. If I find any more head-scratching logic puzzles, I'll make sure to pass them on. I want you to feel smart, too!
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-4145390677697057420?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/4145390677697057420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/06/wanna-feel-smart.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/4145390677697057420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/4145390677697057420'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2009/06/wanna-feel-smart.html' title='Wanna feel smart?'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-5639346098252374868</id><published>2008-07-29T08:15:00.000-07:00</published><updated>2009-06-13T06:26:24.132-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='obscurity'/><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>Welcome to Obscurity!</title><content type='html'>&lt;p&gt;
Hello, and welcome to my blog.  This blog will have no discernable theme, other than things that interest me.  It will delve into my opinions and ideas about science, technology, programming, web design, and the internet as a whole.  I do not expect success, so if you actually enjoy this blog and wish it to continue, you'll have to post something, or I'll probably give up eventually.  Welcome to obscurity!
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-5639346098252374868?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/5639346098252374868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2008/07/welcome-to-obscurity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/5639346098252374868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/5639346098252374868'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2008/07/welcome-to-obscurity.html' title='Welcome to Obscurity!'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-6635542892998636150</id><published>2008-07-29T08:41:00.000-07:00</published><updated>2009-06-13T06:25:18.380-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><title type='text'>Random Horror Short Film</title><content type='html'>&lt;p&gt;And so, the randomness continues.  From an odd thought, to a fully-realized odd project, this blog has been nothing if not unpredictable. This short film was scripted, directed, filmed, and edited by me over the summer. I decided to push the limits of the B-horror genre by upping the bar on cheesy dialogue, bad acting, and cheap camera tricks. The result is positively terrifying, just not for the standard reasons.  Watch it below:&lt;/p&gt;

&lt;script src="http://flash.revver.com/player/1.0/player.js?mediaId:1069679;affiliateId:236557;backColor:#000000;frontColor:#ffffff;gradColor:#000000;width:480;height:392;shareUrl:revver;" type="text/javascript"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-6635542892998636150?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/6635542892998636150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2008/07/random-horror-short-film.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/6635542892998636150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/6635542892998636150'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2008/07/random-horror-short-film.html' title='Random Horror Short Film'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-2913489861042192321</id><published>2008-08-29T18:43:00.000-07:00</published><updated>2009-06-13T06:24:52.888-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ActionScript 3'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>ActionScript 3 packages done right</title><content type='html'>&lt;p&gt;
As a somewhat semi-experienced XHTML/CSS programmer, I made several large mistakes when I started object-oriented programming in AS3. There just isn't much documentation on the basics of AS3 packages and package structure, even in instructional books. So here's my take on it, based on hard experience.
&lt;/p&gt;

&lt;p&gt;
You should start your AS3 programming adventure by creating a high-level directory for all your your classes. I called mine 'Classes'. Now, open up Flash and register this directory so that Flash can find it and use the classes in it. In windows, you can do this by going to Edit&gt;Preferences, clicking on ActionScript in the tab on the side, clicking the button that says 'ActionScript 3 Settings...', and clicking the button with the crosshairs on it. In the dialog box that pops up, find your 'Classes' directory and click 'Ok'. Now, Flash can find your classes!
&lt;/p&gt;

&lt;p&gt;
Say that you're creating an AS3 application for somesite.com called Flashy Flash App. The tradition would be to create this file structure in your class directory: com&gt;somesite&gt;flashyflashapp. This way, all the classes for that site will be in one central place, separate from all your other sites' classes. In this file, you would create a document class called FlashyFlashApp.as. Here's how you would start the class:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre&gt;&lt;code&gt;
package com.somesite.flashyflashapp {
 public class FlashyFlashApp {
   /* Lots of code goes here */
 }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;
You should note several key details. First, the file path between package and first bracket is relative to the main class directory. That means, the location of your .fla, flashyflashapp.fla, is completely irrelevant to the package info. Second, note that the class' name exactly matches its filename, including capitalization. If you don't do this, you'll encounter all sorts of nasty errors.
&lt;/p&gt;

&lt;p&gt;
To link the .fla to the document class (the code that starts up the program), type its location into the text box that says 'Document Class' beside it like so:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;code&gt;
com.somesite.flashyflashapp.FlashyFlashApp
&lt;/code&gt;
&lt;/blockquote&gt;

&lt;p&gt;
This, too, is case sensitive, so be very careful with your caps. Now, any code inside the document class, FlashyFlashApp.as, will execute as soon as the program runs.
&lt;/p&gt;

&lt;p&gt;
If you're like me, you've got a big question right now: "What about once I try to put the finished swf on my site? Won't I have to move all those classes and update all those package definitions?" Luckily for you, the answer is no. Unlike CSS, Javascript, or any of the other web technologies I was comfortable using, all of the required code for a Flash swf to run is in the one central swf. The only part of all this work that you will put on your actual web server is the final swf. Unless your script uses one of AS3's loading classes, like Loader or URLRequest (or whatever), you won't have any problems using just that one small swf.
&lt;/p&gt;

&lt;p&gt;
If you've managed to stay interested this long, I commend you. I hope this post will help at least one person avoid some of the mistakes I made. Thanks for reading!
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-2913489861042192321?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/2913489861042192321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2008/08/actionscript-3-packages-done-right.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/2913489861042192321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/2913489861042192321'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2008/08/actionscript-3-packages-done-right.html' title='ActionScript 3 packages done right'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4804358099675558422.post-6928075071613664598</id><published>2008-09-01T06:12:00.000-07:00</published><updated>2009-06-13T06:22:50.113-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='commentary'/><title type='text'>&lt;pretentious&gt;How to fix Windows&lt;/pretentious&gt;</title><content type='html'>&lt;p&gt;
I know many people have suggested ways to fix windows before, but I have a viewpoint most don't: I'm a programmer. And as a programmer, I'm acutely aware of all the concepts behind windows that I can't begin to grasp. However, I do have one vague idea on how windows could achieve the reliability and speed of a Mac without losing its focus on customization.
&lt;/p&gt;

&lt;p&gt;
Security levels.
&lt;/p&gt;

&lt;p&gt;
That's right, one of the most boring subjects ever to reach computer science, and I think it can solve one of the biggest problems in computer science. Here's why.
&lt;/p&gt;

&lt;p&gt;
There are really two big hurdles to windows performance, programs that run in the background and programs that handle the windows registry improperly. That's why the most common first tips to speed up a windows computer are "Take out the programs running in the background" and "Clean out your registry". In order to address these two major bottlenecks, I think you , the windows user, should be able to restrict your installed software's access to them.
&lt;/p&gt;

&lt;p&gt;
Some programs have a right to always be active, like antivirus software, and some large programs must load parts of themselves when the system starts to allow you quick access to them. Both of these strategies make sense for reputable, well-coded programs, but not for programs packaged with device drivers or random freeware.
&lt;/p&gt;

&lt;p&gt;
Essentially, any program you choose to run can slow down your system by always running in the background, loading itself into your ram, starting up along with your operating system, and filling your system's registry with useless information. Every program you have installed has the same rights to your system's resources. If that makes sense to you, you must be from Redmond.
&lt;/p&gt;

&lt;p&gt;
I think you should be able to assign every program you install one of three security ratings.
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The program can access your registry, load on startup, and access the internet.&lt;/li&gt;
&lt;li&gt;The program can load on startup and access the internet, but not access your registry.&lt;/li&gt;
&lt;li&gt;The program can only access the internet.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Now, developers like me would have to balance the worth of our programs with the ratings people were likely to assign them. Instead of using all the resources I could possibly need, I'll have to design for the security rating I'm likely to receive.
&lt;/p&gt;

&lt;p&gt;
I'm not saying that one silver bullet feature will be able to make windows the absolute best operating system, but I think a radical improvement like this might put windows back on the right track.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4804358099675558422-6928075071613664598?l=welcome2obscurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://welcome2obscurity.blogspot.com/feeds/6928075071613664598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://welcome2obscurity.blogspot.com/2008/09/how-to-fix-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/6928075071613664598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4804358099675558422/posts/default/6928075071613664598'/><link rel='alternate' type='text/html' href='http://welcome2obscurity.blogspot.com/2008/09/how-to-fix-windows.html' title='&amp;lt;pretentious&amp;gt;How to fix Windows&amp;lt;/pretentious&amp;gt;'/><author><name>Evan Kroske</name><uri>http://www.blogger.com/profile/08996350355032069067</uri><email>E.Kroske@gmail.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='16996956710516489594'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>