<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEYFQHYzeCp7ImA9WhBVE0s.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577</id><updated>2013-04-19T20:08:31.880+10:00</updated><title>Never Read Passively</title><subtitle type="html">&lt;small&gt;Synthesize new ideas constantly. Document everything obsessively. Write up best-practices protocols.&lt;/small&gt;</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.neverreadpassively.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>169</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/NeverReadPassively" /><feedburner:info uri="neverreadpassively" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUAERHo8eyp7ImA9WhJQFUk.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-1058946782873576275</id><published>2012-07-29T16:34:00.004+10:00</published><updated>2012-07-29T16:35:05.473+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-29T16:35:05.473+10:00</app:edited><title>What does it take to create for the creative?</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-FtSG9NP64M4/UBTVSR_Z5ZI/AAAAAAAAARQ/nOHFwlTLXhc/s1600/mobile_game_engines_interviews_with_mobile_game_engine_developers_300-7efcf873e8f0fa6363350ccc24a07e09.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-FtSG9NP64M4/UBTVSR_Z5ZI/AAAAAAAAARQ/nOHFwlTLXhc/s320/mobile_game_engines_interviews_with_mobile_game_engine_developers_300-7efcf873e8f0fa6363350ccc24a07e09.png" width="225" /&gt;&lt;/a&gt;&lt;/div&gt;
With my work on &lt;a href="http://mobilegameengines.com/"&gt;Mobile Game Engines&lt;/a&gt;, I'm in awe of what mobile game engine developers are able to achieve. And by how many developers or projects are able to achieve it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How do engine developers maintain a high-level of software quality while keeping abreast of the continuous changes to the devices and their capabilities?&lt;br /&gt;
&lt;br /&gt;
Building high-quality software is hard enough without building upon technologies like mobile that are moving so quickly.&lt;br /&gt;
&lt;br /&gt;
In attempting to build a mobile game engine, I suspect that I would spend all my time reading the device APIs and other peoples code to see how to handle all the odd edge cases cases. This approach would be at the&amp;nbsp;determent&amp;nbsp;of the&amp;nbsp;quality&amp;nbsp;of the code in the game I was trying to build because it would become a&amp;nbsp;hodgepodge&amp;nbsp;of code snippets and device API wrappers. Mobile game engine developers need a vision that ties the project together.&lt;br /&gt;
&lt;br /&gt;
How do engine developers design their APIs for use by a large and diverse base of developers?&lt;br /&gt;
&lt;br /&gt;
This is a great question, because APIs are hard, fully stop. I am forever refactoring APIs I write for myself, let alone APIs I write for other developers. I can imagine huge resistance if a game API changed frequently and dramatically. How do developers manage consistency of interface with innovation. How does a consistent engine API emerge from the contributions of multiple different developers?&lt;br /&gt;
&lt;br /&gt;
How do engine developers structure their projects and manage their teams of developers and contributors?&lt;br /&gt;
&lt;br /&gt;
What is like to have hundreds, thousands or tens of thousands of deployed games built on technology that they envisioned and put into the world?&lt;br /&gt;
&lt;br /&gt;
These questions and more like them motivated me to write my next book: &lt;a href="http://mobilegameengines.com/interviews_with_mobile_game_engine_developers"&gt;Interviews with Mobile Game Engine Developers&lt;/a&gt;. The book will feature interviews with the developers behind the popular and modern game engines for iOS, Android and HTML5. Each developer is probed with a barrage of questions to get to the heart of just how they are able to do what they do - how they are able to create platforms that allow so many tens or hundreds of thousands of developers be creative making mobile games.&lt;br /&gt;
&lt;br /&gt;
If this sounds like the type of book you'd like to read, leave your email address and I'll ping you when the book is finished. Like &lt;a href="http://mobilegameengines.com/interviews_with_mobile_game_developers"&gt;my last book&lt;/a&gt;, it will be released as a paperback and eBook in all the standard formats.&lt;br /&gt;
&lt;br /&gt;
If you are a mobile game engine developer (or you know one), reach out, I'd love to talk about interviewing you for the book.&lt;br /&gt;
&lt;br /&gt;
Some sample questions I will be asking game engine developers include:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Why did you start working on this game engine?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;What are some challenges in supporting multiple mobile platforms?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;What is your approach for staying abreast of changes to the underlying technology and device APIs?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;What are some game ideas you have had but do not have the time to work on?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;How much revenue have you generated from your game engine?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;What are some trends you are seeing in mobile gaming?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="background-color: white;"&gt;Got a good idea for a question I should ask game engine developers? &lt;/span&gt;&lt;a href="https://twitter.com/jbrownlee" style="background-color: white;"&gt;Reach out&lt;/a&gt;&lt;span style="background-color: white;"&gt; and let me know.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/DWI438n0KUE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/1058946782873576275/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=1058946782873576275" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/1058946782873576275?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/1058946782873576275?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/DWI438n0KUE/what-does-it-take-to-create-for-creative.html" title="What does it take to create for the creative?" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-FtSG9NP64M4/UBTVSR_Z5ZI/AAAAAAAAARQ/nOHFwlTLXhc/s72-c/mobile_game_engines_interviews_with_mobile_game_engine_developers_300-7efcf873e8f0fa6363350ccc24a07e09.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/07/what-does-it-take-to-create-for-creative.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8GRXw_fSp7ImA9WhJQE0k.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-7811662910024130190</id><published>2012-07-27T09:20:00.002+10:00</published><updated>2012-07-27T09:20:24.245+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-27T09:20:24.245+10:00</app:edited><title>Family Histories: Interview relatives and preserve their memories in a family book</title><content type="html">&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-bw5pjkoGoV8/UBHOWypl1vI/AAAAAAAAARE/nY2VaBO3UjE/s1600/family.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-bw5pjkoGoV8/UBHOWypl1vI/AAAAAAAAARE/nY2VaBO3UjE/s320/family.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Photo by&amp;nbsp;&lt;a href="http://www.flickr.com/photos/lintbrush/3882874961/"&gt;robotpolisher&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;I've been chewing on a idea for a few weeks. It's an idea to put together a collection of personal interviews with all the people in my extended family.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;Obviously the target audience are the people being interviewed, this is a non-profit venture.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;The motivation for this is that although I "know" my family, each relationship is specific and limited. I have a lot of mundane questions for my relatives that I would like to know the answer to to have more complete picture of them as whole people. I figure others in my extended family may have the same desire or may be convinced that that such an enlightened perspective would be interesting and valuable.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;I also figure different generations have altered perspectives. They know that nephew Jonny plays with computers, but they have no idea what he does, what his dreams are and how he met his wife. I may know that a particular grandfather was a fitter and turner, but I have no idea whether he liked the job or which companies he worked for.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;I think it's an easy sell for participation and a feasible value proposition for the end product.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;I've floated the idea with a few family members and their has been some genuine interest with suggested questions to ask. Specifically in the phrasing of questions for family members that have two or three families through remarriages. I've been told that this is a normal reaction to having a child, that others have expressed interest in interviewing older family members with a tape recorder, or have explored more formal genealogy.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;This last point got me. It's the rationale for the blog post, because if their is a trend here, I'd really like to know. This might be a broader opportunity.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;Going forward, I'm going to build up the question set and have it reviewed by a few of the matriarchs in the family. From there, I will set up a google form for those that are tech-savvy and send out a printed set with a return self addressed envelope and cover letter for those that are not.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;span style="font-family: inherit;"&gt;This should be an interesting experiment.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/MwESCQNx7Bw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/7811662910024130190/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=7811662910024130190" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/7811662910024130190?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/7811662910024130190?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/MwESCQNx7Bw/family-histories-interview-relatives.html" title="Family Histories: Interview relatives and preserve their memories in a family book" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-bw5pjkoGoV8/UBHOWypl1vI/AAAAAAAAARE/nY2VaBO3UjE/s72-c/family.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/07/family-histories-interview-relatives.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcBQHg7fCp7ImA9WhJQEE0.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-1826821956508486609</id><published>2012-07-23T06:00:00.000+10:00</published><updated>2012-07-23T10:07:31.604+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-23T10:07:31.604+10:00</app:edited><title>From Developer to Entrepreneur: Must Read Books</title><content type="html">&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-nlL05AFPMmo/UAieib1s_vI/AAAAAAAAAQ0/aTRg9u5MZhE/s1600/programmer.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-nlL05AFPMmo/UAieib1s_vI/AAAAAAAAAQ0/aTRg9u5MZhE/s320/programmer.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Photo by&amp;nbsp;&lt;a href="http://www.flickr.com/photos/keithius/7006713941/"&gt;Keithius&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
I'm not an entrepreneur (yet). Other people have to name you such.&lt;br /&gt;
&lt;br /&gt;
Anyway, I've been reading a lot and I've read a number of books on and around&amp;nbsp;&lt;span style="background-color: white;"&gt;entrepreneurship that I think are must read.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;I suspect there's nothing new in this list, I read them because other people recommended them, but I want to pay that forward.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;This list is for the upstart programmer who is thinking of&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white;"&gt;entrepreneurship and is looking for the kick to get started and the tools (processes) to actually put some ideas into the world and measure the effects.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;I'm assuming your a developer, a programmer and that you want to make software-based services or products. There's no books in here about learning to program.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;You may also want to brainwash yourself with some podcasts. I use &lt;a href="http://mixergy.com/"&gt;Mixergy&lt;/a&gt;, &lt;a href="http://www.startupsfortherestofus.com/"&gt;Startups for the Rest of us&lt;/a&gt;, &lt;a href="http://itunes.apple.com/us/podcast/the-lifestyle-business-podcast/id325757845"&gt;Lifestyle Business Podcast&lt;/a&gt;, and the Stanford&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white;"&gt;&lt;a href="http://ecorner.stanford.edu/podcasts.html"&gt;Entrepreneurial Thought Leaders&lt;/a&gt; series.&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;


&lt;span style="background-color: white; font-size: large;"&gt;Where to start?&lt;/span&gt;&lt;/h2&gt;
&lt;span style="background-color: white;"&gt;You start with&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white;"&gt;&lt;a href="http://www.amazon.com/gp/product/0615373968/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0615373968&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Start Small, Stay Small: A Developer's Guide to Launching a Startup&lt;/a&gt; by Rob Walling. It's robs no nonsense process for market first web-based software&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white;"&gt;entrepreneurship. It will either kick you into immediate action or you're realise the game is not for you.&lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;


&lt;span style="font-size: large;"&gt;



What's Next?&lt;/span&gt;&lt;/h2&gt;
Theory. I like process and theory and understanding some &lt;i&gt;whys&lt;/i&gt; after some initial &lt;i&gt;hows&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
Geoffrey A. Moore's&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0060517123/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0060517123&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Crossing the Chasm: Marketing and Selling Disruptive Products to Mainstream Customers&lt;/a&gt; will turn on the marketing light. You'll get some notions on how to think about the the&amp;nbsp;interplay&amp;nbsp;of technology products and markets. Much of the book is at the wrong level for being an upstart, but it's an important foundation and I'm big on primary sources.&lt;br /&gt;
&lt;br /&gt;
Steven Blank's&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0976470705/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0976470705&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;The Four Steps to the Epiphany: Successful Strategies for Products that Win&lt;/a&gt;. Just read it. Become one with it. All the process questions I had while reading Start Small, Stay Small and Crossing the Chasm were addressed in this book. This is the the play book and I know everyone says to read it, how many actually do? Buy it now and read it cover-to-cover. Then reread it every few months. Seriously.&lt;br /&gt;
&lt;h2&gt;


&lt;span style="font-size: large;"&gt;



More Actionable Process&lt;/span&gt;&lt;/h2&gt;
I love listening to talks by Eric Ries, he so honed to&amp;nbsp;inflame&amp;nbsp;action in me. His book&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0307887898/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0307887898&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses&lt;/a&gt; is good and you should read it. But I say so less strongly than I do with the two books above. Frankly if you become one with The Four Steps to the Epiphany and have read some agile software development books by Kent Beck then I think The Lean Startup is the cliff notes and the natural merging of the ideas. Nevertheless, it's a solid reinforcing read.&lt;br /&gt;
&lt;br /&gt;
I think Ash Maurya's &lt;a href="http://www.amazon.com/gp/product/1449305172/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1449305172&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Running Lean: Iterate from Plan A to a Plan That Works&lt;/a&gt; and&amp;nbsp;Chris Guillebeau's&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0307951529/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0307951529&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;The $100 Startup: Reinvent the Way You Make a Living, Do What You Love, and Create a New Future&lt;/a&gt; are also great books to read at this point. But could be skipped if you feel like you have enough process and rah rah in your head.&lt;br /&gt;
&lt;h2&gt;


&lt;span style="font-size: large;"&gt;



Down to Grunt Work&lt;/span&gt;&lt;/h2&gt;
After I filled my head with high-level processes, I felt I needed more grounding in the grunt work of throwing together reasonable webpages and writing lots and lots of sales copy. This phase of my reading was strongly influenced by Walling's post&amp;nbsp;&lt;a href="http://www.softwarebyrob.com/2010/08/05/why-startup-founders-should-stop-reading-business-books/"&gt;Why Startup Founders Should Stop Reading Business Books&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Maria Veloso's&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0814413048/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0814413048&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Web Copy That Sells: The Revolutionary Formula for Creating Killer Copy That Grabs Their Attention and Compels Them to Buy&lt;/a&gt; is a must read. Read it twice. After programming, the one thing I want to be killer at is writing solid web copy and this book lit that fire in me. It has check lists to analyse your own sales copy! I wish more books promoted how-to's for analysing your own work.&lt;br /&gt;
&lt;br /&gt;
Steve Krug's &lt;a href="http://www.amazon.com/gp/product/0321344758/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0321344758&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Don't Make Me Think: A Common Sense Approach to Web Usability&lt;/a&gt; is the go-to volume for web design best practices. Pair with with Web Copy that Sells above and you can get a long wait to throwing together very&amp;nbsp;meaningful&amp;nbsp;minimum viable product's for your ideas. I also read&amp;nbsp;Lance Loveday's&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0321489829/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0321489829&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Web Design for ROI: Turning Browsers into Buyers &amp;amp; Prospects into Leads&lt;/a&gt; which I also think is a good complement, it covers a lot of the same ground but also&amp;nbsp;critiques&amp;nbsp;websites to help with that whole "how evaluate your own work" problem.&lt;br /&gt;
&lt;br /&gt;
Bryan Eisenberg's&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0470290633/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0470290633&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Always Be Testing: The Complete Guide to Google Website Optimizer&lt;/a&gt; gives a lot of great actionable ideas of things to test for different page types and&amp;nbsp;Avinash Kaushik's&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0470130652/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0470130652&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Web Analytics: An Hour a Day&lt;/a&gt; has more information on web&amp;nbsp;analytics&amp;nbsp;than I ever want to know (actually, the book is a real slog to get through).&lt;br /&gt;
&lt;h2&gt;


&lt;span style="font-size: large;"&gt;



From here...&lt;/span&gt;&lt;/h2&gt;
Books are great, but you have to play the home game. You must be building and launching things while reading a long. Your project will frame the advice you'll be reading and you will not forget it.&lt;br /&gt;
&lt;br /&gt;
Any must read books for the developer to&amp;nbsp;&lt;span style="background-color: white;"&gt;entrepreneur transition that I have missed? Hit the comments.&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/vM6OCzL56c4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/1826821956508486609/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=1826821956508486609" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/1826821956508486609?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/1826821956508486609?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/vM6OCzL56c4/from-developer-to-entrepreneur-must.html" title="From Developer to Entrepreneur: Must Read Books" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-nlL05AFPMmo/UAieib1s_vI/AAAAAAAAAQ0/aTRg9u5MZhE/s72-c/programmer.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/07/from-developer-to-entrepreneur-must.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMEQ3ozeyp7ImA9WhJRGEw.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-4036079967901515321</id><published>2012-07-21T06:00:00.000+10:00</published><updated>2012-07-21T06:00:02.483+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-21T06:00:02.483+10:00</app:edited><title>Teardown of 4 Technical eBook Websites</title><content type="html">&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;span style="background-color: white;"&gt;I listen to the "&lt;/span&gt;&lt;a href="http://www.startupsfortherestofus.com/" style="background-color: white;"&gt;startups for the rest of us podcast&lt;/a&gt;&lt;span style="background-color: white;"&gt;" and the on the episodes summarising this and least years MicroConf the hosts Rob and Mike described doing public website teardowns at the conference. It's an awesome opportunity for learning, and maybe a great idea for a lightweight consulting business.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;Anyway, I'm enamoured with the idea and thought I would apply it to learn how I might improve my ebook product landing pages.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;After reading a number of books on&amp;nbsp;copy writing&amp;nbsp;I've drilled a few golden rules into my head that I try to follow or think about. They may or may not be best practices (I think they are) and I may or may not follow them for a given landing page I build (I usually start with them). As follows:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Use a sales page structure like AIDA or the problem methodology.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Have your call to action after you have spent some building interest in the product in the reader.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Describe the product a few different ways appealing to different ways people consume information: emotionally, visually, analytically, etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Use phrases like "you find out" rather than "you will learn".&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Describe in terms of benefits rather than features.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Focus on the reader and what they want or get rather than on yourself and what you have done.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Do not provide distractions (links) on the path to your call to action. The site should guide the reader to clicking the one thing you want them to click.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Try to read the webpage from the other side of the room, the heading and call to action should be obvious.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="background-color: white;"&gt;I decided to pick a few modestly popular ebooks. I have no idea that that popular, modest or otherwise other than I have seen them pop-up a few times on social news websites.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
I processed each site for about 5 minutes listing observations of things I saw and didn't see. It's an analytical exercise, nothing personal to these great authors. I'm not a UI/UX guy, so you may have to bear with me.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-vlUnagolxG8/UAeDfbr0m2I/AAAAAAAAAQE/peM13fRKHqg/s1600/WorkingWithUnixProcesses.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-vlUnagolxG8/UAeDfbr0m2I/AAAAAAAAAQE/peM13fRKHqg/s400/WorkingWithUnixProcesses.png" width="150" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;




&lt;b&gt;&lt;span style="font-size: large;"&gt;#1 Working with Unix Processes&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
Price: $27 USD&lt;br /&gt;
URL: &lt;a href="http://workingwithunixprocesses.com/"&gt;http://workingwithunixprocesses.com&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The book is sold directly on the site using a Shopify store (the author works for&amp;nbsp;Shopify).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The domain name is the book title.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The page heading is not the book title, but is instead a summary of the value proposition and audience.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The first content after the heading is a testimonial.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There are three links on the page before the call to action, and specifically a tweet widget right before the call to action.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There is a list of technical features (rather than benefits) next to a 3D version of the book.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There are many testimonials on the site.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The call to action appears twice on the page and really stands out as a bold orange button on a pale background. Both have the text "Buy It now!&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The details of the product (formats and no PayPal login required) are duplicated at each call to action.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There are a single copy and team license options.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There is a link to the kindle store and pragmatic bookshelf versions after the second call to action.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There are small links to sample chapters (blog posts) after the second call to action.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Author information at the bottom with a contact email address.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Money back guarantee at the bottom of the page.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The page is long&lt;/span&gt;&lt;span style="background-color: white;"&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-TcxvFWTn0qI/UAeDo782xeI/AAAAAAAAAQM/LwM2bLLpGWE/s1600/RiakHandbook.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/-TcxvFWTn0qI/UAeDo782xeI/AAAAAAAAAQM/LwM2bLLpGWE/s400/RiakHandbook.png" width="130" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;




&lt;b&gt;&lt;span style="font-size: large;"&gt;#2 Riak Handbook&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
Price: $29&lt;br /&gt;
URL: &lt;a href="http://riakhandbook.com/"&gt;http://riakhandbook.com&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The domain name is the book title.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The book is sold on the site using a paypal button (FastSpring form).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The heading is not the book title, it is a value proposition for the book and the technology the book is about.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;A cover image is provided directly after the heading and shown in an ipad, suggesting ebook format.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The call to action is next to image and less bold than the cover.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;A link to a free sample PDF is provided directly after the main call to action.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The call to action appears twice more on the page between sections on the page, and a third time as a group license option.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The page is quite long.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;A screenshot of the free sample is provided with a link in between a number of testimonials. The screenshot of the page&amp;nbsp;encourages&amp;nbsp;you to click.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Testimonials are provided along side the details about the book.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The summary is in terms of features rather than benefits. Uses "you will learn" rather than "you will find out".&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Promotes the technology using two paragraphs, appealing to the audience interested in that technology.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Provides a bullet list of features mixed with benefits "you will learn", the list is further down the page.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Heavy use of highlighting of phrases to draw attention.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Provides a PDF of the table of contents.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Provides the hard sell paragraph towards the bottom of the page right after a ebook call to action and before a group license call to action.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;About the author details provided at the bottom of the page with contact information. No author photograph.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-co9YRNpd_Oo/UAeD3LqgEPI/AAAAAAAAAQU/Fh2Ml3A3RI8/s1600/ExceptionalRuby.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-co9YRNpd_Oo/UAeD3LqgEPI/AAAAAAAAAQU/Fh2Ml3A3RI8/s320/ExceptionalRuby.png" width="216" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;




&lt;b&gt;&lt;span style="font-size: large;"&gt;#3 Exception Ruby&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
Price: $15 USD&lt;br /&gt;
URL: &lt;a href="http://exceptionalruby.com/"&gt;http://exceptionalruby.com&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The book title is the domain name and the page title.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The tag line is a second header. It's a great tag line that reads well and highlights the value proposition.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There is a 3D book image for eBook.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The book is sold directly on the site using getdpd&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The call to action at the top under book image and really stands out.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There is list of features (rather than benefits) with highlighting very prominent on the page (main body)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There is a 50 second video from a talk that inspired the creation of the book (I am not normally a video consumer online).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There is a small tweet button below the list of features.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Author information at the bottom of the page with large photograph of the author. The photos is a little cheesy.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There are three short testimonials at the bottom of the page.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The page is short and to the point, not much scrolling.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;I like the clean design, site works on a few levels (design, copy, value proposition), it makes me want to buy right now. Nice work.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-34-74BatB-w/UAeD9zATOzI/AAAAAAAAAQc/n8EFu1Jhn9E/s1600/StartupBook.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-34-74BatB-w/UAeD9zATOzI/AAAAAAAAAQc/n8EFu1Jhn9E/s320/StartupBook.png" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;




&lt;b style="background-color: white;"&gt;&lt;span style="font-size: large;"&gt;#4 Start Small, Stay Small&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
Price: $19 for ebook, $25 for paperback&lt;br /&gt;
URL: &lt;a href="http://www.startupbook.net/"&gt;http://www.startupbook.net&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The book name not in the domain name.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;You can purchase the ebook and paperback directly from the site using a PayPal button.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Title is an image including the title of the book, value proposition and 3D book image.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There are testimonials at the top of the page directly under the heading. There are more testimonials below the calls to action and at the bottom of the page. It is hard to notice the second and third blocks as they look like normal text.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The page is simple page, short with not much scrolling (which I like).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There is a block of calls to action for the three different versions: ebook, audiobook and paperback. It's overwhelming.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;The "Free Sample" link is a button and is just as large as the other calls to action. It looks like a product.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Three paragraphs: audience, value proposition, about the author. Good content, but hard to differentiate the&amp;nbsp;paragraphs. I don't know which one to read, so I read none.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;There are subtle links in the about the author paragraph.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;No social networking buttons, but some kind of spread the word link at the bottom of the page - very hard to notice. Email the author link also at the bottom of the page.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;This is the only book of the three that I have actually read and&lt;b&gt; I strongly recommend reading it &lt;/b&gt;to any software developers interesting in taking the next step.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;




&lt;b&gt;&lt;span style="font-size: large;"&gt;Actionable Outcomes&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Having a domain name (URL structure?) that matches the title of the book might be a good idea (I suspect for wining the SEO for the book title).&lt;/li&gt;
&lt;li&gt;Use a page title the communicates the value proposition rather than the book title.&lt;/li&gt;
&lt;li&gt;Technical ebooks can have a high list price. The four examples I covered were all $15 or above, with two that were close to $30 USD.&lt;/li&gt;
&lt;li&gt;Sell the book on the site directly and let other markets (Amazon, Smashwords, etc.) worry about getting traffic to their landing pages.&lt;/li&gt;
&lt;li&gt;Have a 3D version of the book cover, even if it is just an ebook. Use a dead-tree book metaphor or an eReader metaphor (cover on an iPad, etc.).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Sell both single license and team/group licenses for the ebook.&lt;/li&gt;
&lt;li&gt;Take a screenshot of the first page and use that as the download link for a free sample.&lt;/li&gt;
&lt;li&gt;Keep the page short ant to the point. (long form sales copy can work too, test)&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="background-color: white;"&gt;Imagine being able to pay a reasonable sum to have proven experienced sales or marketing people do this to your sites. I wonder if a "I'll tear your site down if you tear mine down"&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white;"&gt;reciprocal&lt;/span&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;thing could be set-up? &lt;a href="http://mobilegameengines.com/interviews_with_mobile_game_engine_developers"&gt;Any takers&lt;/a&gt;?&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;Of course, all of this post goes against the modern "&lt;i&gt;test&lt;/i&gt;" mantra. One should be A/B testing (multivariate testing) changes to a page to see which converts the best. I agree in principle, but I also believe it pays to do your homework and have a good base to work from. To build some sales and design&amp;nbsp;intuition.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;Depending on how I feel (and the backlash), I may apply this process again to books with some commercial&amp;nbsp;success. Looking a few quickly (the lean startup, rework, etc) I note they make quite different design decisions.&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/WCDKITAZ-OA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/4036079967901515321/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=4036079967901515321" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/4036079967901515321?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/4036079967901515321?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/WCDKITAZ-OA/teardown-of-4-technical-ebook-websites.html" title="Teardown of 4 Technical eBook Websites" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-vlUnagolxG8/UAeDfbr0m2I/AAAAAAAAAQE/peM13fRKHqg/s72-c/WorkingWithUnixProcesses.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/07/teardown-of-4-technical-ebook-websites.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQNRXY7eyp7ImA9WhJRF0s.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-6980460978655006126</id><published>2012-07-20T06:00:00.000+10:00</published><updated>2012-07-20T15:33:14.803+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-20T15:33:14.803+10:00</app:edited><title>How to create a product description for a landing page</title><content type="html">&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-gVf2diA14WU/UASb8IrQxSI/AAAAAAAAAP4/HGyenIjR0Zk/s1600/byandsell.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-gVf2diA14WU/UASb8IrQxSI/AAAAAAAAAP4/HGyenIjR0Zk/s320/byandsell.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Photo by&amp;nbsp;&lt;a href="http://www.flickr.com/photos/mattjiggins/3018279954/"&gt;Matt Jiggins&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
As a programmer, I struggle putting together a product description. Marketing is an area I'm&amp;nbsp;desperately&amp;nbsp;learning about, but I have a long way to go yet (know any must-read books?).&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;For each new product page I put together, I re-imagine my process with an eye for improving.&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white;"&gt;The proof is always in the pudding: the conversion rate. You can iterate towards a better&amp;nbsp;conversion&amp;nbsp;rate but this product description process is about better understanding a new product and being able to communicate what it is all about.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;See my&amp;nbsp;&lt;/span&gt;&lt;a href="http://mobilegameengines.com/interviews_with_mobile_game_engine_developers" style="background-color: white;"&gt;Interviews with Mobile Game Engine Developers&lt;/a&gt;&lt;span style="background-color: white;"&gt;&amp;nbsp;homepage for my most recent effort.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;My method is about generating the content that provides the basis for a landing page, for blurbs and product descriptions around the web.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;I thought I would summarise my current method and try to flush out some new ideas.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;I start with a google doc and work through a series of product description methods to try and explore all the different ways of thinking about my new product. It is an ongoing iterative process that never ends. I block out the document at the start of the project and update it all the way up to and beyond the product launch.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;The following is a list of headings in the google doc that I fill out and keep updated for a given product:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Product Name&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;I start with the name of the product. If it is a book, I generate a list of 10 or 20 titles and keep adding to it as my understanding of the product improves.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;&lt;b&gt;Rationale&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;A bullet point summary of the honest personal reasons reasons I want the product to exist in the world. Typically the reasons float around cash flow, ego, and self-education.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;&lt;b&gt;Technical Details&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;I capture technical details about the product in bullet point form. Again, if it is a book, I'll list facts like the number of pages, the ISBN, the number of words. I will invent numbers as targets or use numbers available from the work.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;&lt;b&gt;Tag Lines&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;Tag lines are critical. For me they become the titles of blog posts, the titles of landing pages, one line descriptions I throw around in tweets and forums, and even sub-titles of books. When I get in the mood I will generate tag lines in massive batches. I like to fill a page or two with them. They are critical because they provide a one line pitch for the product, so they have to be descriptive and punchy.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Audience&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;I &amp;nbsp;think really hard about who might be interested in the product and for who the product is a must-have item. Again, I list each group or type of person on each line and under it I try to brainstorm the reasons why, starting each line with a "because". Really, each audience is a market or market segment and will tie into the benefits later and into the keyword research I typically do before deciding to take on a new project.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Features and Benefits&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;I think in terms of features. It's easier because they are the things I'm building or writing or making sure exist in my product. I make a bullet point list of all the features I can think up in the product. Then, for each feature, I list all of the benefits that the feature provides. This is hard, but I find it very useful (you can see that I currently put the resulting list directly on the landing page). If I find that I start repeating myself, I consolidate features. If I find I'm listing too many benefits (more than 3-5) I split the feature into two. Benefits sell. Benefits also tie right into items in the list of possible audiences. The big interesting benefits become titles or tag lines.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Human Description / Blurb&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;At this point I typically feel confident&amp;nbsp;enough&amp;nbsp;to bash out a few human readable paragraphs describing the product. For me this is typically the book blurb or project vision and may open with a tag line, list key audiences, and highlight key benefits. I have tried to structure this, but the structure never holds as I always iterate towards readability.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Geoffrey Moore Product Template&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;In&amp;nbsp;Geoffrey Moore's book &lt;a href="http://www.amazon.com/gp/product/0060517123/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0060517123&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Crossing the Chasm&lt;/a&gt; he lists a simple fill-in-the-blanks elevator pitch value proposition template for describing a software product or service. I have used this for years to help understand my small open source projects. I find it is less useful for my book and website projects, but I still like it as it provokes thoughts of&amp;nbsp;competitors. The template&amp;nbsp;verbatim&amp;nbsp;is:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;For (target customers)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Who are dissatisfied with (the current market alternative)&lt;/li&gt;
&lt;li&gt;Our product is a (new product category)&lt;/li&gt;
&lt;li&gt;That provides (key problem-solving capability).&lt;/li&gt;
&lt;li&gt;Unlike (the product alternative),&lt;/li&gt;
&lt;li&gt;Our product (describe the key product features).&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;There is an elaborated version with examples &lt;a href="http://www.aux-training.com/ValueProposition2.htm"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Problem Methodology&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;I recently read&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/0814413048/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0814413048&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Web Copy That Sells&lt;/a&gt; to improve my copy writing. It is full of great advice, but most importantly had large actionable check lists of things to do and think about. One of these check lists had to do with the problem that product solves. To paraphrase the method, it asks 5 questions that are to be answered from the perspective of the prospect, your product, and the problem it solves, summarised as follows:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="background-color: white;"&gt;What's the problem?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Why hasn't the problem been solved?&lt;/li&gt;
&lt;li&gt;What's possible now?&lt;/li&gt;
&lt;li&gt;What's different now?&lt;/li&gt;
&lt;li&gt;What should you do now?&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;AIDA&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;This is the classic &lt;a href="http://en.wikipedia.org/wiki/AIDA_(marketing)"&gt;AIDA&lt;/a&gt; method for copy writing. It has always felt abstract to me and as such I don't really like it very much and typically omit filling it out for a product. It is more a template for a sales page or sales letter than a product description, but it can help in framing the product for the prospect.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Attention&lt;/li&gt;
&lt;li&gt;Interest&lt;/li&gt;
&lt;li&gt;Desire&lt;/li&gt;
&lt;li&gt;Action&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Feedback&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;I capture all feedback I read. I capture them mainly from emails, blog posts and forum posts. I list them verbatim with the authors name, details, and source information (link if available). In addition to boosting my ego when I feel low, these provide the basis of testimonials. I also have this fear that someone will call BS on one of my&amp;nbsp;testimonials, so having the raw feedback available (and source info)&amp;nbsp;mitigates&amp;nbsp;this fear.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Testimonials&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Testimonials are great for landing pages and product description pages. I even put them on about pages for webpages. I take them from feedback I have received (asking for permission where needed). I'm careful to include the salient product affirmation, excluding unnecessary elements and fixing typos.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Solicited Benefits&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Early in a project I will&amp;nbsp;solicit&amp;nbsp;a lot of feedback on the product. I will email and post on forums providing a description and link to the current landing page asking for "what interests you in the product" and "what problem would it solve for you". This works great, but you have to choose the market carefully. For example, with "Interviews with Mobile Game Developers" I&amp;nbsp;pinged&amp;nbsp;others developers using game engines features in the book, who were very responsive.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;I use all of this information to craft a first cut product landing page. I typically put the landing page up early and iterate like crazy. I collect email addresses and use some A/B testing, using the email collection as the call to action and the thank-you page as the goal.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I'll print the landing page out and then and read through it looking for typos and inconsistencies. I don't do this enough and feel&amp;nbsp;embarrassed&amp;nbsp;when someone points out bad copy.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;I think I am improving and I am forever guilty for not going back and&amp;nbsp;applying&amp;nbsp;my improved methodology to past products (I will get around to it).&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Got any suggestions to improve this process? What process do you follow?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/B181qtD5vdU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/6980460978655006126/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=6980460978655006126" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/6980460978655006126?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/6980460978655006126?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/B181qtD5vdU/how-to-create-product-description-for.html" title="How to create a product description for a landing page" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-gVf2diA14WU/UASb8IrQxSI/AAAAAAAAAP4/HGyenIjR0Zk/s72-c/byandsell.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/07/how-to-create-product-description-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYEQXgzfip7ImA9WhJRFUg.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-3193216606789232345</id><published>2012-07-18T06:15:00.000+10:00</published><updated>2012-07-18T06:15:00.686+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-18T06:15:00.686+10:00</app:edited><title>A programmers approach to self-publishing a book</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ezDtfHx-UDc/UAKbp3-okBI/AAAAAAAAAPk/fm5zN8viW8w/s1600/mobile_game_engines_interviews_with_mobile_game_developers_120.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-ezDtfHx-UDc/UAKbp3-okBI/AAAAAAAAAPk/fm5zN8viW8w/s1600/mobile_game_engines_interviews_with_mobile_game_developers_120.png" /&gt;&lt;/a&gt;&lt;/div&gt;
I launched my latest book last week after&amp;nbsp;approximately&amp;nbsp;3 months in development. It's great to complete another project and put something physical in the world (as opposed to just software).&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;The book is called "&lt;/span&gt;&lt;i style="background-color: white;"&gt;&lt;b&gt;&lt;span style="background-color: white;"&gt;Mobile Game Engines:&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white;"&gt;Interviews with Mobile Game Developers&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;span style="background-color: white;"&gt;" and features 38 interviews with developers of mobile games about how the choose and work with modern mobile game engines. See the &lt;a href="http://mobilegameengines.com/interviews_with_mobile_game_developers"&gt;home page&lt;/a&gt; for more information.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;I prepared the book in LaTeX. I didn't think too hard about this decision, and in retrospect, I may as well have prepared it all in plain text. I used LaTeX for my previous book and I knew that the resulting PDF provided a high-quality basis for a paperback book. I maintained the source for the project in revision control. This included the LaTeX files, Makefile, as well as assets like the book cover and screenshots from the games.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;I asked a designer friend to create the cover for me. He did a great job, and created a suite of covers that I can use for the series of books I plan to complete on Mobile Game Engines. Each has the same design, although the main color varies, allowing me to refer to each project based on the colour (this project was the Green Book, the next will be the Red Book of interviews with engine developers themselves).&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-_KeR-y893II/UAKa5yvU8nI/AAAAAAAAAPM/r9umo8Ox0NE/s1600/LuluLogo.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="125" src="http://3.bp.blogspot.com/-_KeR-y893II/UAKa5yvU8nI/AAAAAAAAAPM/r9umo8Ox0NE/s200/LuluLogo.jpeg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
I wanted a paperback edition of the book. It's not rational given the huge uptake of eBooks. I wanted it for myself. I wanted to be able to slide book into my bookcase and feel that sense of satisfaction (totally worth it). I used Lulu for the paperback, the same as my previous book. There was no cost. They allocated an ISBN for my book, and I provided the PDF and the book cover. Unlike last time I used their cover designer and placed the A4 Version of my book cover on the front, and added the blurb to the back and title to the spine. The result came out just fine.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Lulu offer 30% of the list price on their site. They also coordinate the distribution through&amp;nbsp;partners&amp;nbsp;like Amazon and Barnes and Nobel where they take a larger percentage. At the time of writing I priced the paperback at $17.50 USD. I&amp;nbsp;theoretically&amp;nbsp; get $5.31 USD per book when sold on Lulu and $0.71 USD from other retailers. This is reduced by a further 30% because I do not have the required US tax documentation.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
See &lt;a href="http://www.lulu.com/shop/jason-brownlee/mobile-game-engines-interviews-with-mobile-game-developers/paperback/product-20226444.html"&gt;Interviews with Mobile Game Developers paperback&lt;/a&gt; on Lulu&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-HzITg4NLcJI/UAKbAsWfQ_I/AAAAAAAAAPU/jItRb3MeMtY/s1600/smashwords.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://2.bp.blogspot.com/-HzITg4NLcJI/UAKbAsWfQ_I/AAAAAAAAAPU/jItRb3MeMtY/s200/smashwords.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
I used Smashwords for the eBook edition and it was my first time using the service. I am very happy thus far. At the time of writing Smashwords only accept MS Word .doc files and rigorous documentation on how to format your book document ready for processing. Their system creates many ebook formats (epub, sony reader LRF, Kindle mobi, Pall PDB, PDF, RTF and plain text) and distribute to many stores (Apple in 32 countries, Barnes &amp;amp; Noble, Sony, Kobo, Baker &amp;amp; Taylor, Diesel, and more to come). I was allocated a free ISBN, submitted my file and it was&amp;nbsp;immediately&amp;nbsp;available&amp;nbsp;on their store. I had to wait a few weeks to be&amp;nbsp;accepted&amp;nbsp;for distribution - the formatting rules are very strict and minor infractions block the winder distribution of your book. The modify-resubmit process is very straightforward.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I priced my book at $2.99 USD which leaves me with $2.21 USD (74%) per book purchased from Smashwords. Most stores offer 70%&amp;nbsp;royalties, and smashwords take another 10% from that.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The conversion of my book content from LaTeX to MS Word .doc took some work. I already had some Ruby scripts to generate HTML from LaTeX for my last book. I used those as a base and generated a single HTML file for the book. I did not want to deal with images, so I excluded them from the eBook version. I then opened the file with my version of MS Word on my Mac&amp;nbsp;&lt;span style="background-color: white;"&gt;(2008) and saved it as a .doc file. I followed the &lt;a href="http://www.smashwords.com/books/view/52"&gt;Smashwords Style Guide&lt;/a&gt; to the letter. I read it a few times, printed it and highlighted all of the rules that I had to worry about. I then wrote a repeatable procedure in a .txt file for each sequence of commands I needed to perform in Word to get the file ready for submission to Smashwords. This last step was critical because I had to create the doc file more than 10 times before I had it right.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
Two things that got me were bullets and first line indent both in the mobi format. Mobi was nothing but pain, but totally worth it. Bullets rendered on a friends kindle on a new line, this was a problem as it was a roadblock from my book having wider distribution. I ended up removing all numbering and bullets and using "*" at the start of the line for a simulated bullet or list.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The book is a collection of interviews with a question/answer format (block paragraph). The mobi format kept performing a first line indent which really messed up the Q/A format. The solution was in the style gude, but some how I glossed over it. It required a first line indent set to 0.01cm which is basically&amp;nbsp;imperceptible&amp;nbsp;to the eye and looks just like a block paragraph format.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
See &lt;a href="https://www.smashwords.com/books/view/177903"&gt;Interviews with Mobile Game Developers eBook&lt;/a&gt; on Smashwords&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-abjTQvb0640/UAKbTwAxfBI/AAAAAAAAAPc/zrHgTF_b7Q4/s1600/kindle.jpeg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-abjTQvb0640/UAKbTwAxfBI/AAAAAAAAAPc/zrHgTF_b7Q4/s200/kindle.jpeg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Smashwords does not support the Amazon Kindle Store (KDP) at the time of writing. As such I had to sign up to&amp;nbsp;&lt;span style="background-color: white;"&gt;Kindle Direct Publishing to get distribution on Amazon for the Kindle version. I used the doc file I prepared for smashwords and uploaded it to KDP and it worked first time, perfectly.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;The Kindle store was really easy to use and my book was online in about 24 hours. I priced it the same as on Smashwords and KDP offers a 70% USD royalty. I did not get an ISBN for the Kindle version. All credit to the Smashwords Style Guide, I am quite sore it was the reason that the KDP process was so smooth.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
See &lt;a href="http://www.amazon.com/gp/product/B008KIS2FY/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B008KIS2FY&amp;amp;linkCode=as2&amp;amp;tag=mobil016-20"&gt;Interviews with Mobile Game Developers for Kindle&lt;/a&gt; on Amazon&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I got there in the end and I am generally happy with the result. The book reads fine on my iPhone, on my friends Kindle and the paperback has a suitable heft and looks slick. I will use this same process for the next book, allowing me to focus more on the content and marketing.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Collecting and editing the interviews for the book was an interesting process and I learned a lot. I expect to post something about this in the future.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you have any questions about the process, please reach out, I'm more than happy to provide further details on what I did.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/1GSZbRtUpWI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/3193216606789232345/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=3193216606789232345" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/3193216606789232345?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/3193216606789232345?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/1GSZbRtUpWI/programmers-approach-to-self-publishing.html" title="A programmers approach to self-publishing a book" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-ezDtfHx-UDc/UAKbp3-okBI/AAAAAAAAAPk/fm5zN8viW8w/s72-c/mobile_game_engines_interviews_with_mobile_game_developers_120.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/07/programmers-approach-to-self-publishing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YDRXs6fCp7ImA9WhJRE04.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-3626240377607842980</id><published>2012-07-15T15:46:00.000+10:00</published><updated>2012-07-15T15:46:14.514+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-15T15:46:14.514+10:00</app:edited><title>Tapping my network for the Must-Read books on Developing Software</title><content type="html">&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-MroliVKVv54/UAJQVFVzT1I/AAAAAAAAAPA/YO8brIhKaQA/s1600/books.jpeg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-MroliVKVv54/UAJQVFVzT1I/AAAAAAAAAPA/YO8brIhKaQA/s320/books.jpeg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="font-size: xx-small; text-align: -webkit-auto;"&gt;Image by&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.flickr.com/photos/chillihead/1778980935/sizes/m/in/photostream/" style="font-size: x-small; text-align: -webkit-auto;"&gt;chillihead&lt;/a&gt;&lt;span style="font-size: xx-small; text-align: -webkit-auto;"&gt;.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
I've been reading a lot of books recently, 1-3 a week for about 6 months, mostly&amp;nbsp;&lt;span style="background-color: white;"&gt;entrepreneurial&amp;nbsp;and&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white;"&gt;business books.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: white;"&gt;I started having hard questions around user experience, web page design, online marketing strategy, etc. so I pinged a few friends and asked them for book recommendations.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The results were mixed (the basis of a future rant), but it gave me an important new perspective: The people I am connected to know many things and I have much to learn from them, the difficulty is thinking up creative ways to mine that knowledge.&lt;br /&gt;
&lt;br /&gt;
Anyway, I generally earn my living designing and building software systems, and I'm always interested in improving my craft. I decided to ping many of the engineers in my network to find out the must read books for software engineers. &amp;nbsp;Note, there are lots of links to books in this post, all of them to Amazon with my&amp;nbsp;referrer&amp;nbsp;code.&lt;br /&gt;
&lt;br /&gt;
I am at that stage in my career where I'm learning toward project theory, management theory, etc. and less interested in hard core technical subjects. I still enjoy learning new programming languages, but I prefer to read books on how to manage time and resources.&lt;br /&gt;
&lt;br /&gt;
Before I sent my email out, &amp;nbsp;I made my own list of must read books, books that I had read and that had influenced the way I&amp;nbsp;approach&amp;nbsp;my work. They included:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0735619670/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0735619670&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Code Complete: A Practical Handbook of Software Construction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0201835959/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0201835959&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;The Mythical Man-Month: Essays on Software Engineering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/020161622X/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=020161622X&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;The Pragmatic Programmer: From Journeyman to Master&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0321278658/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0321278658&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Extreme Programming Explained: Embrace Change&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0321146530/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0321146530&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Test Driven Development: By Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596809484/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0596809484&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;97 Things Every Programmer Should Know: Collective Wisdom from the Experts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1430219483/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1430219483&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Coders at Work: Reflections on the Craft of Programming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0131103628/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0131103628&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;C Programming Language&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0201310090/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0201310090&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Concurrent Programming in Java: Design Principles and Pattern&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
I then googled around for similar lists - I know this question has come up many times on reddit and hacker news. There were a lot of lists and many books (I got bored quickly - how could I trust these links?), but the few I added to my to-read list based on their synopsis and reviews were:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0321117425/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0321117425&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Facts and Fallacies of Software Engineering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0735611319/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0735611319&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Code: The Hidden Language of Computer Hardware and Software&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1590592395/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1590592395&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Practical Common Lisp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Finally, I collated the list sent through from friends and&amp;nbsp;colleagues&amp;nbsp;of yesteryear. I excluded those I had already listed (above). I also excluded books that were too technical that I didn't want to read (MySQL&amp;nbsp;performance&amp;nbsp;tuning, etc) and those recommended by people that clearly&amp;nbsp;hadn't&amp;nbsp;read them (like "just read Knuth").&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0130676349/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0130676349&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Agile Software Development with Scrum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0201485672/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0201485672&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Refactoring: Improving the Design of Existing Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0932633056/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0932633056&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Peopleware: Productive Projects and Teams&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0978739213/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0978739213&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Release It!: Design and Deploy Production-Ready Software&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1934356344/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1934356344&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;The Passionate Programmer: Creating a Remarkable Career in Software Development&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1934356050/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1934356050&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Pragmatic Thinking and Learning: Refactor Your Wetware&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1590598385/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1590598385&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Smart and Gets Things Done: Joel Spolsky's Concise Guide to Finding the Best Technical Talent&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0932633420/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0932633420&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;The Psychology of Computer Programming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0316491977/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0316491977&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;The Soul of a New Machine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1934356549/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1934356549&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Agile Web Development with Rails&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1441418687/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1441418687&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;The Little Book of SEMAPHORES&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596517742/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0596517742&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Javascript the Good Parts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596510047/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0596510047&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Beautiful Code: Leading Programmers Explain How They Think&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://algorithms%20+%20data%20structures%20%3D%20programs%20%28prentice-hall%20series%20in%20automatic%20computation%29/"&gt;Data Structures + Algorithms = Programs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0465026567/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0465026567&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Gödel, Escher, Bach: An Eternal Golden Braid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1556152116/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1556152116&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Programmers at Work: Interviews With 19 Programmers Who Shaped the Computer Industry&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
It was a very interesting exercise that really helped my update and&amp;nbsp;re-prioritize&amp;nbsp;my software book to-read list (I have a massive google doc with lists-of-lists of books to read).&lt;br /&gt;
&lt;br /&gt;
As a bonus round, I pinged other friends of specific topics close to their&amp;nbsp;specialty, the results are below:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Software Testing (consolidated, I received a list of many 10's of books)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0471081124/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0471081124&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Lessons Learned in Software Testing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0932633692/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0932633692&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Perfect Software: And Other Illusions about Testing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Web Design / Design&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/156205810X/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=156205810X&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Designing Web Usability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0321344758/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0321344758&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Don't Make Me Think: A Common Sense Approach to Web Usability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0465067107/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0465067107&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;The Design of Everyday Things&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0672329786/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0672329786&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Python Essential Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1441413022/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1441413022&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Dive Into Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Functional Programming (in order they were suggested to be read)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0262692201/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0262692201&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Structure and Interpretation of Computer Programs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0262162091/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0262162091&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Types and Programming Languages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0521663504/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0521663504&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Purely Functional Data Structures&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596514980/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=0596514980&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Real World Haskell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1593272839/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=1593272839&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Learn You a Haskell for Great Good!: A Beginner's Guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Erlang&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/193435600X/ref=as_li_tf_tl?ie=UTF8&amp;amp;camp=211189&amp;amp;creative=373489&amp;amp;creativeASIN=193435600X&amp;amp;link_code=as3&amp;amp;tag=pensiveponder-20"&gt;Programming Erlang: Software for a Concurrent World&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
I have done this for other fields, such as investing and entrepreneurship and I may post my results for those too if there is interest.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Thanks again for everyone who contributed and put up with my harassing questioning emails.&lt;/div&gt;
&lt;div&gt;
&lt;span style="background-color: white;"&gt;Have I missed an important book? Reach out and let me know.&lt;/span&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/dYNR5rTOklk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/3626240377607842980/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=3626240377607842980" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/3626240377607842980?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/3626240377607842980?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/dYNR5rTOklk/tapping-my-network-for-must-read-books.html" title="Tapping my network for the Must-Read books on Developing Software" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-MroliVKVv54/UAJQVFVzT1I/AAAAAAAAAPA/YO8brIhKaQA/s72-c/books.jpeg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/07/tapping-my-network-for-must-read-books.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8GQXo5fSp7ImA9WhVaE00.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-3890544172157755513</id><published>2012-06-10T14:33:00.000+10:00</published><updated>2012-06-10T14:33:40.425+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-06-10T14:33:40.425+10:00</app:edited><title>Interviews with Mobile Game Developers</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-lnydIVAMKnU/T9QiHJpNNuI/AAAAAAAAAO0/7SupVRkI8Yk/s1600/mobile_game_engines_interviews_with_mobile_game_developers.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-lnydIVAMKnU/T9QiHJpNNuI/AAAAAAAAAO0/7SupVRkI8Yk/s1600/mobile_game_engines_interviews_with_mobile_game_developers.png" width="225" /&gt;&lt;/a&gt;&lt;/div&gt;
I am proud to announce my upcoming book: "&lt;b&gt;&lt;i&gt;Mobile Game Engines: Interviews with Mobile Game Developers&lt;/i&gt;&lt;/b&gt;", Jason Brownlee, 2012.&amp;nbsp;It is a book of 38 interviews developers, each tracing the history of a mobile game from the selection of an off-the-shelf game engine to getting the game in the app store.&lt;br /&gt;
&lt;br /&gt;
I'm going through final copy editing at the moment, but you can read more about the book and its contents on the home page:&lt;br /&gt;
&lt;a href="http://mobilegameengines.com/interviews_with_mobile_game_developers"&gt;Mobile Game Engines: Interviews with Mobile Game&amp;nbsp;Developers&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/58KQS3pyuUA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/3890544172157755513/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=3890544172157755513" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/3890544172157755513?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/3890544172157755513?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/58KQS3pyuUA/interviews-with-mobile-game-developers.html" title="Interviews with Mobile Game Developers" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-lnydIVAMKnU/T9QiHJpNNuI/AAAAAAAAAO0/7SupVRkI8Yk/s72-c/mobile_game_engines_interviews_with_mobile_game_developers.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/06/interviews-with-mobile-game-developers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQCSXY_eCp7ImA9WhVQEEg.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-8034700340579022882</id><published>2012-03-30T08:59:00.001+11:00</published><updated>2012-03-30T08:59:28.840+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-30T08:59:28.840+11:00</app:edited><title>Mobile Game Engines</title><content type="html">&lt;div style="background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;I'm launching&amp;nbsp;&lt;a href="http://mobilegameengines.com/" style="color: #1155cc;" target="_blank"&gt;http://MobileGameEngines.com&lt;/a&gt;&amp;nbsp;today.&amp;nbsp;It's a simple site that lets anyone compare between all known iPhone, Android and HTML5 game engines.&lt;br /&gt;
&lt;br /&gt;
I had the problem of trying to decide which game engine to choose for an iPhone game project and wrote about my efforts in a blog post in 2009: &lt;a href="http://www.neverreadpassively.com/2009/03/review-of-iphone-3d-engines.html"&gt;Review of 3D Engines for the iPhone&lt;/a&gt;&amp;nbsp;I noted that many others had been through the same pain and had written a similar blog post and figured someone would come along and address this problem.&lt;br /&gt;
&lt;br /&gt;
It has been a few years and the number of posts on quora and stackoverflow asking "&lt;b&gt;what is the best iphone game engine&lt;/b&gt;" and "&lt;b&gt;what is the best android game engine&lt;/b&gt;" continue to be posted. I decided to make a site to really nail the answer to this question, the result was &lt;a href="http://mobilegameengines.com/"&gt;MobileGameEngines.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I've been in contact with the majority of the game engine developers listed on the site to ensure all the information is correct and useful. We are sitting on 65 game engines listed and still growing as more are uncovered.&lt;br /&gt;
&lt;br /&gt;
Take a look and let me know what you think.&lt;br /&gt;
Pass the link on to anyone you think might be experiencing this pain.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/dyi9V6toWDk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/8034700340579022882/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=8034700340579022882" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8034700340579022882?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8034700340579022882?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/dyi9V6toWDk/mobile-game-engines.html" title="Mobile Game Engines" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/03/mobile-game-engines.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEBR385fSp7ImA9WhVSEEw.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-2528997300790843563</id><published>2012-03-06T17:50:00.000+11:00</published><updated>2012-03-06T17:50:56.125+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-06T17:50:56.125+11:00</app:edited><title>DailyAIFeed: Your daily dose of Artificial Intelligence news</title><content type="html">I've been running a little email list for about a year called DailyAIFeed. I started it because I got sick of checking my RSS and email each morning, preferring to just check email.&lt;br /&gt;
&lt;br /&gt;
I've recently cleaned it up a little and opened it up to general consumption at &lt;a href="http://www.dailyaifeed.com/"&gt;www.DailyAIFeed.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The list provides a daily email of the top interesting news in the fields of Artificial Intelligence, Machine Learning, Natural Language Processing, Computational Intelligence, Infographics and Data Science.&lt;br /&gt;
&lt;br /&gt;
You can see examples of the types of messages on the blog at &lt;a href="http://blog.dailyaifeed.com/"&gt;blog.DailyAIFeed.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Go and check it out, and if you have any suggestions on how to further improve it, please get in touch.&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/xMXxtmFSjCc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/2528997300790843563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=2528997300790843563" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/2528997300790843563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/2528997300790843563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/xMXxtmFSjCc/dailyaifeed-your-daily-dose-of.html" title="DailyAIFeed: Your daily dose of Artificial Intelligence news" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/03/dailyaifeed-your-daily-dose-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEHR3s-fip7ImA9WhRaE0k.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-6795724066566645068</id><published>2012-02-16T09:02:00.001+11:00</published><updated>2012-02-16T09:07:16.556+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-16T09:07:16.556+11:00</app:edited><title>Hosted Data Analysis Project Workflow</title><content type="html">I have been thinking a lot about the&amp;nbsp;previously&amp;nbsp;mentioned "&lt;a href="http://www.neverreadpassively.com/2012/02/data-analysis-project-management-saas.html"&gt;Data Analysis Project Management: SaaS&lt;/a&gt;".&lt;br /&gt;
&lt;br /&gt;
Such a system could be focused on the project management side, say a &lt;a href="http://basecamphq.com/"&gt;Basecamp&lt;/a&gt; for Data Analysis projects. But I think it could something different, something more. I think there are pain points in the data analysis workflow that could be 1) systematized and 2) automated. I also suspect that large data platforms from IBM and Oracle may offer solutions, but I question whether the any such solutions exist for smaller scale/cost projects. I think there is an opportunity for a&amp;nbsp;&lt;b&gt;Hosted Data Analysis Project Workflow&lt;/b&gt; system.&lt;br /&gt;
&lt;br /&gt;
I've been trying to think hard about possible pain points, and here's what I got:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Revision control - keeping track of changes to project files.&lt;/li&gt;
&lt;li&gt;Research Journal - keeping track of what questions have been asked and what findings have been made.&lt;/li&gt;
&lt;li&gt;Reproducibility - ensuring there is a&amp;nbsp;recipe&amp;nbsp;to recreate a past result.&lt;/li&gt;
&lt;li&gt;Collaboration - working with others on a&amp;nbsp;particular&amp;nbsp;on all aspects of the analysis workflow.&lt;/li&gt;
&lt;li&gt;Interpreting&amp;nbsp;Data - Looking at tables and graphs and&amp;nbsp;generating&amp;nbsp;hypotheses&amp;nbsp;to go and test.&lt;/li&gt;
&lt;li&gt;Executing Models - configuring, running, tuning models.&lt;/li&gt;
&lt;li&gt;Verifying Models - assessing models on test and verification datasets.&lt;/li&gt;
&lt;li&gt;Blending Models - comparing and combining model outputs.&lt;/li&gt;
&lt;/ul&gt;I have also been thinking about solutions in the market that address specific pain points. This is much harder - the Internet is a big place. Here is what I could put together quickly:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www-958.ibm.com/software/data/cognos/manyeyes/"&gt;Many Eyes&lt;/a&gt; -&amp;nbsp;Collaborate on interpretation from visualization.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developers.google.com/prediction/"&gt;Google Predict&lt;/a&gt; -&amp;nbsp;Hosted models and data&lt;/li&gt;
&lt;li&gt;&lt;a href="http://github.com/"&gt;Github&lt;/a&gt; (and similar) - Hosted project files, forking, collaboration&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.kaggle.com/"&gt;Kaggle&lt;/a&gt;, &lt;a href="http://tunedit.org/"&gt;TunedIT&lt;/a&gt; -&amp;nbsp;Data competitions, competitive community around problems,&amp;nbsp;Data Spec Work / R&amp;amp;D Outsourcing.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://stats.stackexchange.com/"&gt;Cross Validated&lt;/a&gt; -&amp;nbsp;Q/A community around statistics and machine learning&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.google.com/publicdata/directory"&gt;Google data explorer&lt;/a&gt; -&amp;nbsp;Visualization and interpretation public datasets&lt;/li&gt;
&lt;/ul&gt;Do we need a system that combines all or some of these together? Why can't this problem be solved with existing systems, why isn't it such?&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/vNskrIL6948" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/6795724066566645068/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=6795724066566645068" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/6795724066566645068?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/6795724066566645068?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/vNskrIL6948/hosted-data-analysis-project-workflow.html" title="Hosted Data Analysis Project Workflow" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><thr:total>4</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/02/hosted-data-analysis-project-workflow.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IAQX89eSp7ImA9WhRaEkg.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-7826265134450139063</id><published>2012-02-15T07:00:00.053+11:00</published><updated>2012-02-15T08:39:00.161+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T08:39:00.161+11:00</app:edited><title>Data Analysis Project Management: SaaS</title><content type="html">The idea for developing a&amp;nbsp;Data Analysis Workflow SaaS as been percolating in my brain for a few days.&lt;br /&gt;
&lt;br /&gt;
I read a post on the Kaggle HHP forum entitled "&lt;a href="http://www.heritagehealthprize.com/c/hhp/forums/t/805/project-management-software-for-data-analysis"&gt;Project Management software for Data Analysis&lt;/a&gt;" by&amp;nbsp;&lt;a href="http://www.linkedin.com/pub/dan-becker/34/9a8/945"&gt;Dan Becker&lt;/a&gt; and it got me thinking. With almost every data or machine learning competition I enter, I end up solving the wrong problem. Rather than solving the problem presented by the competition, I solve the problem of automating and optimizing my work flow by writing scripts and software.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
It makes sense, it's what I do for a living. I write and maintain software. Why not expose the problem for what it is and solve it. The real question: &lt;b&gt;Is there a market for such a solution?&lt;/b&gt; and secondarily, &lt;b&gt;What features would the software have?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;My ad hoc competition-wise solutions focus on result&amp;nbsp;reproducibility&amp;nbsp;(good science), summary statistics,&amp;nbsp;visualization, research journal, generating webpages of experiments performed and above all, automation. I figure that the more I can&amp;nbsp;automate, the faster I can test ideas and the higher my velocity will be on the problem of the competition. Except, most of my effort goes into the automation rather than ideas for the subject data.&lt;br /&gt;
&lt;br /&gt;
Whether I build the software or not, it is a good research topic to consider.&lt;br /&gt;
&lt;br /&gt;
The aforementioned forum post lists some interesting resources, specifically:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://dryworkflow.r-forge.r-project.org/"&gt;dryWorkflow project&lt;/a&gt;&amp;nbsp;Don't Repeat Yourself Workflow for efficient data analysis. Focused on R.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.johnmyleswhite.com/notebook/2010/08/26/projecttemplate/"&gt;ProjectTemplate&lt;/a&gt;: Automates the creation of new statistical analysis projects. &lt;a href="http://projecttemplate.net/"&gt;Project Webpage&lt;/a&gt;, &lt;a href="https://github.com/johnmyleswhite/ProjectTemplate"&gt;Github project&lt;/a&gt;, &lt;a href="http://cran.r-project.org/web/packages/ProjectTemplate/index.html"&gt;CRAN project&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cran.r-project.org/web/views/ReproducibleResearch.html"&gt;CRAN Task View: Reproducible Research&lt;/a&gt; with some interesting ideas.&lt;/li&gt;
&lt;li&gt;Book: &lt;a href="http://www.stata.com/bookstore/wdaus.html"&gt;The Workflow of Data Analysis Using Stata&lt;/a&gt;,&amp;nbsp;J. Scott Long, 2009&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Some google'ing resulted in some additional useful links:&amp;nbsp;&lt;a href="http://stats.stackexchange.com/questions/2910/how-to-efficiently-manage-a-statistical-analysis-project"&gt;How to efficiently manage a statistical analysis project?&lt;/a&gt; on &lt;a href="http://stats.stackexchange.com/"&gt;CrossValidated&lt;/a&gt; which provides some excellent answers and great links to go off and read. Other CV links that were pretty useful included &lt;a href="http://stats.stackexchange.com/questions/645/best-way-to-aggregate-and-analyze-data"&gt;Best Way to Aggregate and Analyze Data&lt;/a&gt; and &lt;a href="http://stats.stackexchange.com/questions/22697/what-is-a-practically-good-data-analysis-process"&gt;What is a practically good data analysis process?&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I also came across&amp;nbsp;&lt;a href="http://www.emersonstatistics.com/dnlds/Analysis.pdf"&gt;Organizing Your Approach to a Data Analysis&lt;/a&gt; by &lt;a href="http://www.emersonstatistics.com/"&gt;Scott Emerson&lt;/a&gt; which provides some excellent motivating questions.&lt;br /&gt;
&lt;br /&gt;
Know any other good resources?&lt;br /&gt;
&lt;br /&gt;
I'm keen for feedback, should such a software (web-based) platform exist in the world?&lt;/div&gt;&lt;div&gt;Are their data analysis people that would use this, pay for this, beyond competition patrons?&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/WHFCOSc5B98" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/7826265134450139063/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=7826265134450139063" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/7826265134450139063?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/7826265134450139063?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/WHFCOSc5B98/data-analysis-project-management-saas.html" title="Data Analysis Project Management: SaaS" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/02/data-analysis-project-management-saas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYFRHs9cSp7ImA9WhRaEUU.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-8499974008315208195</id><published>2012-02-14T13:55:00.000+11:00</published><updated>2012-02-14T13:55:15.569+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-14T13:55:15.569+11:00</app:edited><title>Preview of Clever Algorithms: Statistical Machine Learning Recipes</title><content type="html">I am&amp;nbsp;feverishness&amp;nbsp;working to complete a first draft of my next book in the Clever Algorithm series:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;&lt;b&gt;Clever Algorithms: Statistical Machine Learning Recipes&lt;/b&gt;&lt;/blockquote&gt;You can take a&amp;nbsp;&lt;a href="http://www.cleveralgorithms.com/machinelearning/index.html"&gt;sneak&amp;nbsp;peek&lt;/a&gt; at some early chapters online. I am developing the project in plain view on github, &lt;a href="https://github.com/jbrownlee/CleverAlgorithmsMachineLearning"&gt;take a look&lt;/a&gt; at my source R files or LaTeX files if you're into that sort of thing.&lt;br /&gt;
&lt;br /&gt;
The book will provide a treatment of the field of Machine Learning much like the &lt;a href="http://www.cleveralgorithms.com/nature-inspired/index.html"&gt;first book&lt;/a&gt; provided a treatment of the field of Computational Intelligence and Biologically Inspired Computation.&lt;br /&gt;
&lt;br /&gt;
Here is a preliminary blurb:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;Implementing an Machine Learning algorithms is difficult. Algorithm descriptions may be incomplete, inconsistent, and distributed across a number of papers, chapters and even websites. This can result in varied interpretations of algorithms, undue attrition of algorithms, and ultimately bad science.&lt;br /&gt;
This book is an effort to address these issues by providing a handbook of algorithmic recipes drawn from the field of Machine Learning, described in a complete, consistent, and centralized manner. These standardized descriptions were carefully designed to be accessible, usable, and understandable.&lt;br /&gt;
An encyclopedic algorithm reference, this book is intended for research scientists, engineers, students, and interested amateurs. Each algorithm description provides a working code example in R.&lt;/blockquote&gt;&lt;br /&gt;
I have started to distribute chapters to copy editors and technical editors. I'm also trying hard to nail down the table of contents and specifically which algorithms will appear in the text.&lt;br /&gt;
&lt;br /&gt;
If you know anyone who might be interested in technical editing or any editing, get into contact: &lt;a href="mailto:jasonb@CleverAlgorithms.com"&gt;jasonb@CleverAlgorithms.com&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/SRSFlY3U-6A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/8499974008315208195/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=8499974008315208195" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8499974008315208195?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8499974008315208195?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/SRSFlY3U-6A/preview-of-clever-algorithms.html" title="Preview of Clever Algorithms: Statistical Machine Learning Recipes" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2012/02/preview-of-clever-algorithms.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcMQX87cCp7ImA9WhZWFk8.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-2114637774976749145</id><published>2011-05-17T19:03:00.009+10:00</published><updated>2011-05-17T19:54:40.108+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-17T19:54:40.108+10:00</app:edited><title>House Price Regression: Vermont South, Melbourne</title><content type="html">While looking for a house I maintained statistics on the main suburbs we were visiting, and more specifically, on the houses we looked at.&lt;br /&gt;
&lt;br /&gt;
Each house we visited was about 4 bed rooms and generally had the same kinds of attributes - attributes we thought we wanted in a house. For each house we visited, I recorded the address, size of land in square meters, date of sale, sale type (auction, private), asking price, sale price, and other assorted details. An additional contrived measure was the driving distance to main shops reported by Google Maps, in kilometers.&lt;br /&gt;
&lt;br /&gt;
I also supplemented the dataset with additional matching houses in the area when data was available. I found prices were sometimes available from the auction results, although in other cases I had to call to find out, and.or scourer the web.&lt;br /&gt;
&lt;br /&gt;
Rather than let this information go to waste, I thought I would share some of the collected data. This post provides data I collected for the Melbourne suburb of Vermont South.&lt;br /&gt;
&lt;br /&gt;
The following graph simply shows sale price by date, quite boring.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/--HY4mHxmDNk/TdIEfLAIw-I/AAAAAAAAAMY/JPAAsJzIokU/s1600/chart_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/--HY4mHxmDNk/TdIEfLAIw-I/AAAAAAAAAMY/JPAAsJzIokU/s1600/chart_1.png" /&gt;&lt;/a&gt;&lt;/div&gt;The following graph shows the sale price by land size in square meters.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-k4_MZNYqFYE/TdIEgBSKIxI/AAAAAAAAAMg/HzAssjg9mns/s1600/chart_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-k4_MZNYqFYE/TdIEgBSKIxI/AAAAAAAAAMg/HzAssjg9mns/s1600/chart_3.png" /&gt;&lt;/a&gt;&lt;/div&gt;The following graph shows the sale price by distance to a specific set of shops in kilometers.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-VItHcVH7IUE/TdIEfjWD59I/AAAAAAAAAMc/XGjzOGhW59E/s1600/chart_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-VItHcVH7IUE/TdIEfjWD59I/AAAAAAAAAMc/XGjzOGhW59E/s1600/chart_2.png" /&gt;&lt;/a&gt;&lt;/div&gt;I found the data generally useful for plugging in new places and using simple linear regression to help answer questions about expected price at auction or private sale.&lt;br /&gt;
&lt;br /&gt;
Some of this data may be available for purchase from various retail data providers, but I found collecting and entering the data myself made it a lot more personal and gave me some additional focus when inspecting properties and talking to agents about trends.&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/-M8eMUlBBbI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/2114637774976749145/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=2114637774976749145" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/2114637774976749145?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/2114637774976749145?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/-M8eMUlBBbI/house-price-regression-vermont-south.html" title="House Price Regression: Vermont South, Melbourne" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/--HY4mHxmDNk/TdIEfLAIw-I/AAAAAAAAAMY/JPAAsJzIokU/s72-c/chart_1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/05/house-price-regression-vermont-south.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8ER3syeip7ImA9WhZWFU4.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-7839626716015578877</id><published>2011-05-16T18:00:00.030+10:00</published><updated>2011-05-16T18:00:06.592+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-16T18:00:06.592+10:00</app:edited><title>So, we bought a house</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-JkrJ__N2V2g/TdDL4sT0C2I/AAAAAAAAAMU/8Ms5tbyQX38/s1600/house.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-JkrJ__N2V2g/TdDL4sT0C2I/AAAAAAAAAMU/8Ms5tbyQX38/s320/house.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;So we finally bought a house. We've been looking on and off for about 12 months although &lt;a href="http://www.neverreadpassively.com/2011/02/new-project-buy-house.html"&gt;things got serious&lt;/a&gt; about 3 months ago.&lt;br /&gt;
&lt;br /&gt;
We first looked at the place we bought last Saturday, and walking in the door I knew it was a strong contender. We looked at three other places that day, and they all paled in comparison.&lt;br /&gt;
&lt;br /&gt;
The place had been passed in at auction nearly three months before, and we were told that initially the vendors expectations were too high. We saw this as a good opportunity to negotiate and try to broker a good deal. The market had been slumped for a few months and the early figures for the quarter had &lt;a href="http://www.heraldsun.com.au/businessold/melbourne-house-prices-drop-25-per-cent-in-march/story-e6frfh4f-1226048304456"&gt;indicated a ~2.5% drop&lt;/a&gt; in median house price for the city.&lt;br /&gt;
&lt;br /&gt;
We did another inspection on the following Tuesday and enlisted all of the troops (extended family) to give the place a good once over. We then sat down and signed a formal offer. It was rejected. We upped the offer $5K and it was accepted, although at the insistence of my wife we made the offer contingent on the outcome of a builders inspection.&lt;br /&gt;
&lt;br /&gt;
A found a company in the yellow pages and had the inspection done on the last day of the 3 day cooling off period. The building and pest report was incredibly detailed, providing photos and a room-by-room summary, inside and out. We learned a lot about the types of preventative maintenance the place will need over the next 5-10 years, and more importantly, we learned that the upstairs balcony had some major structural problems.&lt;br /&gt;
&lt;br /&gt;
The report said that the wood used was popular in the decade that the balcony was built and was known to rot unless property treated. Rather than expecting the vendor to return the balcony to new condition, we made an offer to split the difference, deducting half of the cost of the repair from our offer.&lt;br /&gt;
&lt;br /&gt;
All of the negotiating occurred on the last day of cooling off period, a Friday. I had my wife on one had, adamant that she didn't want to pay a thing to have the balcony fixed, and the agent on the other hand threatening to open the property for inspection on the next day. I really liked the place and I was feeling totally strung out (to say the least).&lt;br /&gt;
&lt;br /&gt;
We managed to broker a deal in the end and initial the final amendment on the Saturday, one week from our first inspection. With previous auctions and negotiations, I tried to remain emotionless, time was on our side and we could wait for a deal. I really liked this place and it was beginning to dawn on me that our remaining time to find a place (before the baby came) had shrunk to a matter of a few months. We're both happy we finally got there and have high hopes for turning the property into our home.&lt;br /&gt;
&lt;br /&gt;
We learned a lot throughout the process. My analysis of &lt;a href="http://www.neverreadpassively.com/2011/02/melbourne-house-price-trends.html"&gt;median house prices&lt;/a&gt;, &lt;a href="http://www.neverreadpassively.com/2011/02/buying-house-suburb-selection.html"&gt;suburb selection&lt;/a&gt;, &lt;a href="http://www.neverreadpassively.com/2011/02/suburb-analysis-crime-statistics.html"&gt;crime rates&lt;/a&gt;, and even &lt;a href="http://www.neverreadpassively.com/2011/02/suburb-analysis-travel-time-tofrom-work.html"&gt;travel time studies&lt;/a&gt; months ago were interesting, although in the end did not directly affect the outcome. Even the detailed suburb house price regressions I was building up were not used, as we ended up buying in a completing different suburb, inspecting the house on a whim.&lt;br /&gt;
&lt;br /&gt;
I was told early on that buying a home is different from buying an investment, and it bit me in the end, because its emotional. If/when there is a next time, at least our expectations - that it is a long hard emotional roller coaster - will mean we'll be better prepared. Hopefully.&lt;br /&gt;
&lt;br /&gt;
Rather than letting them go to waste, I'll post some regression analysis for a selected suburb soon.&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/XMv7RdFg9dU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/7839626716015578877/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=7839626716015578877" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/7839626716015578877?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/7839626716015578877?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/XMv7RdFg9dU/so-we-bought-house.html" title="So, we bought a house" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-JkrJ__N2V2g/TdDL4sT0C2I/AAAAAAAAAMU/8Ms5tbyQX38/s72-c/house.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/05/so-we-bought-house.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcERHc8fSp7ImA9WhZXE0o.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-8778956601768206816</id><published>2011-05-03T07:00:00.028+10:00</published><updated>2011-05-03T07:00:05.975+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-03T07:00:05.975+10:00</app:edited><title>Quake AI Programming Book</title><content type="html">I intend to write a follow-up book to the &lt;a href="http://cleveralgorithms.com/"&gt;Nature-Inspired Clever Algorithms book&lt;/a&gt; on Machine Learning. I have a lot going on this year, so I was thinking of postponing it until 2012. If I do decided to go down this road, I was thinking of taking on a different project in 2011 that would be smaller in scope, less taxing, although still interesting and rewarding.&lt;br /&gt;
&lt;br /&gt;
I have been thinking of writing a book about the AI in the Quake series of computer games. I was thinking of either writing a book that analysed the Artificial Intelligence architecture in each game in the series, or analyze the AI in the bot modifications. Perhaps both. The book would walk through monster or bot case studies and describe how they fit together, think, and behave. Perhaps with small experiments and demonstrations along the way. The kind of book that would have captured me as a game programming hacker 15 years ago.&lt;br /&gt;
&lt;br /&gt;
In pondering this idea, I thought it prudent to explore other books written on or related to this idea. The following is a list of books that I found:&lt;br /&gt;
&lt;br /&gt;
Quake Series Programming Books&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/193184156X/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=193184156X"&gt;Focus On Mod Programming in Quake III Arena&lt;/a&gt;, 2002&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0470037466/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0470037466"&gt;Quake 4 Mods For Dummies&lt;/a&gt;, 2006&lt;/li&gt;
&lt;/ul&gt;Related Programming Books&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0672326922/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0672326922"&gt;Mastering Unreal Technology: The Art of Level Design&lt;/a&gt;, 2004&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1598631489/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=1598631489"&gt;UnrealScript Game Programming All in One&lt;/a&gt;, 2006&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1598633465/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=1598633465"&gt;Unreal Tournament Game Programming for Teens&lt;/a&gt;, 2006&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1933097132/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=1933097132"&gt;Mapping and Modding Half Life 2 Complete&lt;/a&gt;, 2006&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0470096314/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0470096314"&gt;Half Life 2 Mods For Dummies&lt;/a&gt;, 2007&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/B000OZ0O2A/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=B000OZ0O2A"&gt;Advanced Source Level Design&lt;/a&gt;, 2007&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0672329913/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0672329913"&gt;Mastering Unreal Technology, Volume I: Introduction to Level Design with Unreal Engine 3&lt;/a&gt;, 2009&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0672329921/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0672329921"&gt;Mastering Unreal Technology, Volume II: Advanced Level Design Concepts with Unreal Engine 3&lt;/a&gt;, 2009&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/1568814593/ref=as_li_tf_tl?ie=UTF8&amp;amp;tag=pensiveponder-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=1568814593"&gt;Unreal Game Development&lt;/a&gt;, 2010&lt;/li&gt;
&lt;/ul&gt;These are by no means the cream of the crop of game AI programming, and there are in fact many level design books in there as well.&lt;br /&gt;
&lt;br /&gt;
All of these books are focused on teaching some form of programming or game development using an existing game as a medium. The advantage of the Quake series is that the source code is released under the GPL. The Unreal series and the Half-Life (Source Engine) series are not released as open source, although do provide access to some aspects of the source under restricted licence for the modding community.&lt;br /&gt;
&lt;br /&gt;
It is clear that there is interest/demand for books on game development based on the Unreal series, which makes a lot of sense given their &lt;a href="http://en.wikipedia.org/wiki/List_of_Unreal_Engine_games"&gt;general success&lt;/a&gt; in licencing the technology.&lt;br /&gt;
&lt;br /&gt;
Some concerns about tackling such a project include:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Interest: The games in the Quake series are old (10-15 years). The methods may be outdated, they may not be relevant to modern computer games, and it is more than likely that no one will care&lt;/li&gt;
&lt;li&gt;Low Barrier: It is more than likely that no one has undertaken such a project because the barrier is so low. One can simply read the code and understand what is happening, no analysis is necessary.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Copyright: Although the source code is released under the GPL, the game assets are not. One may have to acquire a licensed copy of the game to do any meaningful development. Additionally, my use of game screenshots may be restricted (fair use!?).&lt;/li&gt;
&lt;/ul&gt;There is some effort required to produce such a work. Getting each project setup may be involved, especially across the three main platforms (Windows, Mac, Linux). The work would be primarily analysis: reading source code, experimenting and communicating what is happening with diagrams and descriptions. This tinker-write cycle is slightly more relaxed than the deep research needed for each algorithm in a machine learning text.&lt;br /&gt;
&lt;br /&gt;
Is there interest in the market? Would you read or skim such a book?&lt;br /&gt;
Let me know what you think in a comment or &lt;a href="mailto:jason.brownlee05@gmail.com"&gt;email&lt;/a&gt;.&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/nUti0Z9vodk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/8778956601768206816/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=8778956601768206816" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8778956601768206816?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8778956601768206816?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/nUti0Z9vodk/quake-ai-programming-book.html" title="Quake AI Programming Book" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><thr:total>3</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/05/quake-ai-programming-book.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEERXg6eSp7ImA9WhZXEkU.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-8298848761142314480</id><published>2011-05-02T07:00:00.000+10:00</published><updated>2011-05-02T07:00:04.611+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-02T07:00:04.611+10:00</app:edited><title>The Little Taxonomist</title><content type="html">We are expecting our first child in a bunch of months and I have been thinking about all kinds of science experiments to perform on/with the bub. I had an idea last week for what I think is a cool little web app that allows a a parent and their child to&amp;nbsp;catalogue&amp;nbsp;the native species around their home and learn more about their local environment. I am referring to this idea as "&lt;i&gt;Little Taxonomist&lt;/i&gt;".&lt;br /&gt;
&lt;br /&gt;
I'll present the idea in the context of some stories:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Story #1&lt;/b&gt;&lt;br /&gt;
A father and son are curious about the plants and animals in and around their house and neighbourhood. In an effort to learn more, they decide to begin to catalogue the things they see in their backyard. They select a subject (say a flower, tree, or insect), photograph it, and note down a few descriptive phrases. They enter this information into a web application. The web application accepts the image and structured description and makes informed guesses (based on location and time of year and subjects collected by others) as to the exact species of the subject. The web application also suggests interesting subjects that are known or expected to exist in their area (probabilistically based on entries of other entries in the area), and some information about where they might be found, creating a context sensitive scavenger hunt. Slowly, a subject every few days, more on weekends, over weeks, they build up a catalogue of plants and animals in and around their home. Together they have learned more about the specifics of the suburban flora and fauna.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Story #2&lt;/b&gt;&lt;br /&gt;
A primary school class have a week or month long assignment that is a scavenger hunt of genera and/or species in the school ground. The class is split into pairs or small groups and allocated a flip camera (or equivalent single button point-and-shoot). They have a list of hints or requirements as well as blank pages, structured to capture basic taxonomic descriptions. Students return to the classroom and use the computer to copy the photos from the camera, drag them into the web application and add their descriptions. Students are awarded badges and points for the breadth and depth of species described, teams are ranked, and some indication of what other groups are finding is provided.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vision&lt;/b&gt;&lt;br /&gt;
A web application for children to be completed in groups or with a guardian. The objective is to describe subjects in the local area (home or neighbourhood) and in so doing learn more about the local flora and fauna. The system encourages the collection of species by intelligently guessing based on brief descriptions and photos as to the actual known species. A gamaification layer is provided that includes badges, points, leaderboards, and similar extrinsic motivators. Additionally, the system uses the localized information in aggregate to suggest subjects to look for (to "collect"), and a probabilistic expectation that they can be spotted (you have a 90% chance of seeing a fruit bat between 5pm and 8pm by looking up). This probabilistic understating of what can be seen in the local area would be coupled with the gamification system, highlighting rare finds. The system would provide all data in aggregate (anonymize) allowing kids to explore what others are finding in their neighbourhood and the types of descriptions being used.&lt;br /&gt;
&lt;br /&gt;
The following are some mock screens I hacked together in Google Docs:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Mock: Add Subject&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hOku7rz5eHE/Tbeb5e81X7I/AAAAAAAAAL8/E7dgUUOjRpI/s1600/a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://4.bp.blogspot.com/-hOku7rz5eHE/Tbeb5e81X7I/AAAAAAAAAL8/E7dgUUOjRpI/s320/a.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Mock: List of Subjects&lt;/b&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-XgCDZiN8_3M/Tbeb5uvq3rI/AAAAAAAAAMA/qQLv8Zv6Gz8/s1600/b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-XgCDZiN8_3M/Tbeb5uvq3rI/AAAAAAAAAMA/qQLv8Zv6Gz8/s400/b.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Forget kids, I want to use this. There might be a general case for adults with smart phones.&lt;br /&gt;
&lt;br /&gt;
I am not sure whether I will build it yet, I figure it needs a 5-10 year old child to make it fun. I figure it could make money by selling some cheap cameras with a website subscription or maybe&amp;nbsp;targeted&amp;nbsp;advertising (kids+science).&lt;br /&gt;
&lt;br /&gt;
A friend pointed me to &lt;a href="http://www.projectnoah.org/"&gt;Project Noah&lt;/a&gt;, which is a similar idea, but not the same.&lt;br /&gt;
&lt;br /&gt;
I'm eager to hear what people think, seen anything like this? Would you use it yourself or with a child?&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/HPfUzgA7ez4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/8298848761142314480/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=8298848761142314480" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8298848761142314480?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8298848761142314480?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/HPfUzgA7ez4/little-taxonomist.html" title="The Little Taxonomist" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-hOku7rz5eHE/Tbeb5e81X7I/AAAAAAAAAL8/E7dgUUOjRpI/s72-c/a.jpg" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/05/little-taxonomist.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MEQHo4fip7ImA9WhZXEk4.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-8447705266847547795</id><published>2011-05-01T16:30:00.000+10:00</published><updated>2011-05-01T16:30:01.436+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-01T16:30:01.436+10:00</app:edited><title>May Challenge: Touch-type Faster!</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-iVJzYMiHVdY/Tbku4figWEI/AAAAAAAAAMM/mYYtks-MN0k/s1600/keyboard.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" src="http://1.bp.blogspot.com/-iVJzYMiHVdY/Tbku4figWEI/AAAAAAAAAMM/mYYtks-MN0k/s320/keyboard.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;We learned touch-typing in high-school. I think we did it for two or three years. Nevertheless, I suck at touch-typing, and as a programmer it may be &lt;a href="http://www.codinghorror.com/blog/2008/11/we-are-typists-first-programmers-second.html"&gt;considered&amp;nbsp;embarrassing&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I can type without looking at the keyboard, so technically, I touch-type all day long. What I don't do is type as I was taught was "correct". I think that as a consequence I am starting to get some wrist pain.&lt;br /&gt;
&lt;br /&gt;
Anyway, in the constant battlefield of self-improvement, I thought I would take the month of May as an opportunity to improve my touch typing and&amp;nbsp;hopeful&amp;nbsp;start typing "correctly" from the end of May onward in day-to-day computer interaction.&lt;br /&gt;
&lt;br /&gt;
The May Challenge is to perform one lesson in touch-typing each day and to measure a standard typing word count each day. Hopefully this word count and/or accuracy will improve by the end of the month and my&amp;nbsp;confidence&amp;nbsp;in correctly touch typing will also improve.&lt;br /&gt;
&lt;br /&gt;
At this stage, I believe I will use the free online service&amp;nbsp;&lt;a href="http://www.typingweb.com/"&gt;www.typingweb.com&lt;/a&gt;&amp;nbsp;because it provides lessons and ad word speed tests, and of course it's free. I just took a test using the "correct" home-row based method and scored: 18 WPM average, 23 WPM gross, and 96% accuracy. It would be interesting to see what my score would be with my unorthodox method - a bad idea, I suspect it may reinforce the bad method.&lt;br /&gt;
&lt;br /&gt;
Again, as with April, I will adopt a penalty-based approach to the challenge. For each day that I miss, I will have to donate $20 to an open source project of choice (not a .NET project as with last month). This is less relaxed (I support opensource, generally), because I am concerned that commitment required may mean that I miss a day or two here and here. We'll see. $20 a day is still a decent disincentive.&lt;br /&gt;
&lt;br /&gt;
I'll be sure to&amp;nbsp;summarize&amp;nbsp;progress at the end of the month.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;Image copyright&amp;nbsp;&lt;a href="http://www.flickr.com/photos/wouterverhelst/362538835/"&gt;Wouter Verhelst&lt;/a&gt;.&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/pnXOmj2_tJo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/8447705266847547795/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=8447705266847547795" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8447705266847547795?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8447705266847547795?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/pnXOmj2_tJo/may-challenge-touch-type-faster.html" title="May Challenge: Touch-type Faster!" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-iVJzYMiHVdY/Tbku4figWEI/AAAAAAAAAMM/mYYtks-MN0k/s72-c/keyboard.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/05/may-challenge-touch-type-faster.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQHSX0ycSp7ImA9WhZXEUw.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-3402660098341434182</id><published>2011-04-30T07:25:00.001+10:00</published><updated>2011-04-30T07:25:38.399+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-30T07:25:38.399+10:00</app:edited><title>April Challenge Over: Watch One Tech Video Every Day</title><content type="html">I set my self a &lt;a href="http://www.neverreadpassively.com/2011/04/april-challenge-watch-1-tech-video.html"&gt;challenge for April&lt;/a&gt; to watch one technical video every day throughout the month. My rationale was that if I could apply the same&amp;nbsp;discipline&amp;nbsp;that I use to discriminate what I eat to what media I consume, that it would have a beneficial effect. Sure, fluffy, but the challenge was measurable and the penalty for missing one day was a donation of $20 to a .NET opensource project.&lt;br /&gt;
&lt;br /&gt;
The month has come to and end and I did manage to watch one technical video each day, so no donations needed.&lt;br /&gt;
&lt;br /&gt;
I&amp;nbsp;intended&amp;nbsp;to spend most of the month watching university lectures and Google Tech Talks, which I mostly did. It became harder and harder towards the end of the month to find an hour+ to watch a tech talk. I ended up catching a quick (15 minute) TED talk instead. TED talks are good (some can be great), but they are so brief that my retention is poor, and so high-level that I finish thinking that I have not learned very much at all.&lt;br /&gt;
&lt;br /&gt;
The following image provides a breakdown of the sources for videos I watched. The "other" category includes random tech videos on youtube that do not fit into one of the other broader and popular categories.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-C28BsCcktsw/TbssDSLFqvI/AAAAAAAAAMQ/LahsDIoyX14/s1600/chart_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-C28BsCcktsw/TbssDSLFqvI/AAAAAAAAAMQ/LahsDIoyX14/s1600/chart_1.png" /&gt;&lt;/a&gt;&lt;/div&gt;I enjoyed almost all videos. I ranked each with a real-valued scoring between 0 and 5 and provided my own description in a spreadsheet. Five real highlight videos (in no particular order) were as follows:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=H3YG-5f9kPU"&gt;Properties of Exoplanets&lt;/a&gt;:&amp;nbsp;Planet detection, Kepler, Nature of planets found so far (bad sound, but whatever!)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=QbTf2nE3Lbw"&gt;Brains, Meaning and Corpus Statistics&lt;/a&gt;:&amp;nbsp;Text statistics in, map of neural activity out!&lt;/li&gt;
&lt;li&gt;&lt;a href="http://media.kaggle.com/MelbURN.html"&gt;Getting in Shape for the Sport of Data &amp;nbsp;Science&lt;/a&gt;:&amp;nbsp;Tools for data mining competitions, intro. to random forests&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=dBnniua6-oM"&gt;Sugar: The Bitter Truth&lt;/a&gt;:&amp;nbsp;Sugar is bad for you, it is a poison&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=xLBvCB2kr4Q"&gt;"All Questions Answered" by Donald Knuth&lt;/a&gt;:&amp;nbsp;Q&amp;amp;A&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;I found that I read a lot less RSS feeds in my Google Reader. I also found that I consumed a lot less 'acquired' media in the form of US TV shows (selling the &lt;a href="http://www.neverreadpassively.com/2011/03/family-media-player.html"&gt;family media player&lt;/a&gt; helped here, no doubt).&lt;br /&gt;
&lt;br /&gt;
I had a good time with this challenge and will attempt to stick to it and record my progress in a spreadsheet.&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/NwprK2suSFg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/3402660098341434182/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=3402660098341434182" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/3402660098341434182?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/3402660098341434182?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/NwprK2suSFg/april-challenge-over-one-tech-video.html" title="April Challenge Over: Watch One Tech Video Every Day" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-C28BsCcktsw/TbssDSLFqvI/AAAAAAAAAMQ/LahsDIoyX14/s72-c/chart_1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/04/april-challenge-over-one-tech-video.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cDSH44eSp7ImA9WhZXEE8.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-8696056937685546197</id><published>2011-04-29T07:00:00.113+10:00</published><updated>2011-04-29T07:11:19.031+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-29T07:11:19.031+10:00</app:edited><title>AIFeeds Part 4: Automating an AIFeed aggregator</title><content type="html">In &lt;a href="http://www.neverreadpassively.com/2011/04/aifeeds-part-1-artificial-intelligence.html"&gt;Part1&lt;/a&gt;, we prepared a large list of RSS feeds and filtered them down to something workable. In &lt;a href="http://www.neverreadpassively.com/2011/04/aifeeds-part-2-recent-ai-articles.html"&gt;Part2&lt;/a&gt;, we processed all of the articles in the feeds and presented posts from the last five days as a static RSS reader. In &lt;a href="http://www.neverreadpassively.com/2011/04/aifeeds-part-3-intelligently-filter-ai.html"&gt;Part3&lt;/a&gt; we used a number of JSON APIs for social networking website to&amp;nbsp;gauge&amp;nbsp;the popularity of articles and highlight those popular posts at the top of the page on our static reader.&lt;br /&gt;
&lt;br /&gt;
In this 4th and final post in the series we will explore different ways to disseminate the results of our filtering.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step1: Send via Email&lt;/b&gt;&lt;br /&gt;
Last time in &lt;a href="http://www.neverreadpassively.com/2011/04/aifeeds-part-3-intelligently-filter-ai.html"&gt;Part3&lt;/a&gt; we ended up with a result that was quite passable. The scripts generated an HTML page that promoted popular AI, Data Mining, Machine Learning, etc. articles from the last 7 days, followed by a listing of all those other articles that, though were deemed to be less popular, may be of interest -&amp;nbsp;organized&amp;nbsp;by day.&amp;nbsp;A simple approach to disseminate the results of this script is to send an email. The objective here is to receive the&amp;nbsp;equivalent&amp;nbsp;of an AI-themed version of the most excellent &lt;a href="http://www.hackernewsletter.com/"&gt;Hacker Newsletter&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I have a Google Gmail account and I assume most programmers do. The first step is to prepare a script that can generate an HTML email message and use the Gmail SMTP server to send the email. We are not focused on mass distribution here, just emailing the results to ourselves, at the moment, on demand. &lt;br /&gt;
&lt;br /&gt;
The built-in &lt;a href="http://www.ruby-doc.org/stdlib/libdoc/net/smtp/rdoc/classes/Net/SMTP.html"&gt;SMTP handling&lt;/a&gt; in the Ruby standard library more than meets our needs here. The Gmail SMTP details are also &lt;a href="http://mail.google.com/support/bin/answer.py?answer=13287"&gt;easily obtained&lt;/a&gt;. The result is a script with two simple functions: the first for building a standard SMTP message with support for text/html content (mimetype), and the second for connecting to the Gmail SMTP server and posting the email. The script provides a spot test that will ask for your Gmail credentials and use them to send you a hello world email. Easy as pie.&lt;br /&gt;
&lt;blockquote&gt;See &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part4/sendemail.rb"&gt;sendemail.rb&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;See below for a screenshot of my Gmail inbox with the resulting test email.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Fwu4nC8af6w/TbZ5daGRPOI/AAAAAAAAALw/6rxH9iAMfk8/s1600/Screen+shot+2011-04-26+at+5.50.24+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://1.bp.blogspot.com/-Fwu4nC8af6w/TbZ5daGRPOI/AAAAAAAAALw/6rxH9iAMfk8/s320/Screen+shot+2011-04-26+at+5.50.24+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Step 2: Cron Send Email&lt;/b&gt;&lt;br /&gt;
The next step is to prepare a script that can be executed each day, generate a summary of the AIFeed output and email it to you. The easiest way to do this on any Linux or Mac machine is with &lt;a href="http://en.wikipedia.org/wiki/Cron"&gt;cron&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
A variation of the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/listpopulardayarticles.rb"&gt;listpopulardayarticles.rb&lt;/a&gt;&lt;/span&gt; script from &lt;a href="http://www.neverreadpassively.com/2011/04/aifeeds-part-3-intelligently-filter-ai.html"&gt;Part3&lt;/a&gt; is used as the basis for the email. A new function is defined that generates the html content of the email and sends it. The script accepts two parameters on the command line: a gmail email address and a gmail password. These&amp;nbsp;credentials&amp;nbsp;are then used to send the email using the script prepared above.&lt;br /&gt;
&lt;blockquote&gt;See &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part4/dailyfeed.rb"&gt;dailyfeed.rb&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;To execute the script we can create a shell script that contains the call to the script and the Gmail credentials used to send the email. For example, the shell script may be called &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;run_dailyfeed.sh&lt;/span&gt; and look as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;cd /path/&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;AIFeeds/part4/&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ruby dailyfeed.rb [email] [password]&amp;nbsp;&lt;gmail email=""&gt;&lt;gmail password=""&gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;/gmail&gt;&lt;/gmail&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/AIFeeds/part4/dailyfeed.log&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The script is three lines: a &lt;a href="http://en.wikipedia.org/wiki/Shebang_(Unix)"&gt;shebang&lt;/a&gt;, change directory to the script location, and a call to the ruby script with parameters. Replace &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/&lt;/span&gt; with the path to your AIFeed directory, and replace the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[email]&lt;/span&gt;&amp;nbsp;and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[password]&lt;/span&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;gmail password=""&gt;&lt;/gmail&gt;&lt;/span&gt;with your gmail login details. The output of the script (and any errors) are output to a new log file&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;dailyfeed.log&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
The crontab for the current user can be opened as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;crontab -e&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Add an entry that looks something like the following:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;* &amp;nbsp; &amp;nbsp;* &amp;nbsp; &amp;nbsp;/path/AIFeeds/part4/run_dailyfeed.sh&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This is all one line with tabs in between the fields. Again&amp;nbsp;replace&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;/path/&lt;/span&gt;&amp;nbsp;with the path to your AIFeed directory.&amp;nbsp;Cron will execute the shell script once each day at 5am local time.&lt;br /&gt;
&lt;br /&gt;
The following is an example of a resulting email sent to my email account.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-r34XPK_ktH8/TbfRLlxok6I/AAAAAAAAAME/5vrNUGJ_eVg/s1600/Screen+shot+2011-04-27+at+6.17.24+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="http://2.bp.blogspot.com/-r34XPK_ktH8/TbfRLlxok6I/AAAAAAAAAME/5vrNUGJ_eVg/s400/Screen+shot+2011-04-27+at+6.17.24+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Improvements and Extensions&lt;/b&gt;&lt;br /&gt;
This section&amp;nbsp;summarizes&amp;nbsp;possible improvements and&amp;nbsp;extensions&amp;nbsp;to this part in the series.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Cron is an easy way to schedule a task on your machine. A better approach would be to set this up on a server (such as&amp;nbsp;&lt;a href="http://www.heroku.com/"&gt;Heroku&lt;/a&gt;, &lt;a href="http://code.google.com/appengine/"&gt;AppEngine&lt;/a&gt;, or &lt;a href="http://aws.amazon.com/"&gt;AWS&lt;/a&gt;) and send an email to an email list (via something like MailChimp).&lt;/li&gt;
&lt;li&gt;An interesting extension to this project would be to turn the output into a webpage that is re-generated every hour or so. This might provide a useful diversion to reddit and hacker news, with a targeted corpus of links to scan over.&lt;/li&gt;
&lt;/ul&gt;In this fourth and final part in the series we have hacked together simple script to send email via Google Gmail and scheduled the script to email ourselves a list of popular AI articles each morning at 5am. Not bad for a few &lt;s&gt;days&lt;/s&gt; hours work. Sure, there are some rough edges, but the result is&amp;nbsp;entirely&amp;nbsp;functional and I think useful.&lt;br /&gt;
&lt;br /&gt;
If you would like to see this as a service or perhaps a website, drop me a comment or an email. I'd be happy to clean it up further and automate it for a broader crowd if I knew that others as passionate as me about AI and Machine Learning were interested!&lt;br /&gt;
&lt;br /&gt;
Don't forget all code and data for this series is available on the &lt;a href="https://github.com/jbrownlee/AIFeeds"&gt;AIFeeds github project&lt;/a&gt;.&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/gEEIztqP_q8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/8696056937685546197/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=8696056937685546197" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8696056937685546197?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8696056937685546197?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/gEEIztqP_q8/aifeeds-part-4-automating-aifeed.html" title="AIFeeds Part 4: Automating an AIFeed aggregator" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Fwu4nC8af6w/TbZ5daGRPOI/AAAAAAAAALw/6rxH9iAMfk8/s72-c/Screen+shot+2011-04-26+at+5.50.24+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/04/aifeeds-part-4-automating-aifeed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcEQH4_cCp7ImA9WhZQGU4.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-1797576859553064184</id><published>2011-04-28T07:00:00.122+10:00</published><updated>2011-04-28T07:00:01.048+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T07:00:01.048+10:00</app:edited><title>AIFeeds Part 3: Intelligently filter AI posts by social impact</title><content type="html">In &lt;a href="http://www.neverreadpassively.com/2011/04/aifeeds-part-1-artificial-intelligence.html"&gt;Part1&lt;/a&gt; we learned how to prepare a master list of Artificial Intelligence and Machine Learning RSS feeds. In &lt;a href="http://www.neverreadpassively.com/2011/04/aifeeds-part-2-recent-ai-articles.html"&gt;Part2&lt;/a&gt; we learned how to process articles from the list of feeds and present them as either a fire-hose or in a more compact day-based manner. In this part we explore how we may filter articles by their perceived social impact.&lt;br /&gt;
&lt;br /&gt;
As with Part2, the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part2/curated_feeds.txt"&gt;curated_feeds.txt&lt;/a&gt;&lt;/span&gt; file is used as the basis for locating articles to consider listing.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 1: Computing Social Impact&lt;/b&gt;&lt;br /&gt;
Computing social impact for a give URL involves determining how many times it has been shared,&amp;nbsp;up-voted, stumbled, etc on popular social networking websites. All of the large sites offer APIs and almost all offer JSON APIs. &lt;br /&gt;
&lt;br /&gt;
I started out thinking I would need a ruby gem for each social networking site, one for Twitter, one for&amp;nbsp;Facebook, etc. I started looking around and found that there were some gems here and there and most were quite outdated. I figured that because most APIs were in JSON format, that I could just interact with each in turn manually. I stared reading API docs for various sites and quickly got bogged down. For example, searching for a URL on&amp;nbsp;twitter&amp;nbsp;is not enough because people use URL shortening services. In fact, these services are quite pervasive.&lt;br /&gt;
&lt;br /&gt;
The requirements here are quite specific: For a given article URL, how popular is it in a given social networking website? After a little more searching around, I came across &lt;a href="http://sharedcount.com/documentation.php"&gt;a very useful website on&amp;nbsp;Shared Count&lt;/a&gt; that provides a listing of the JSON API calls needed to answer this question across a host of social networks. I combined this with some of the API code I had already written and built a little URL scoring sub-system.&lt;br /&gt;
&lt;br /&gt;
Given that all of the APIs we are dealing with are JSON based, we need some robust&amp;nbsp;functions&amp;nbsp;for downloading and parsing JSON files. I installed the&amp;nbsp;&lt;a href="http://flori.github.com/json/"&gt;json gem&lt;/a&gt; and wrote a robust function for making&amp;nbsp;arbitrary&amp;nbsp;JSON API calls (HTTP GET requests) that used similar socket timeout handling as to that which was used in Part1 for RSS downloading.&lt;br /&gt;
&lt;blockquote&gt;See &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/parsejson.rb"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;parsejson.rb&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;Next, the specific query formatting and data processing needed for each social networking website was prepared and tested based on the JSON downloading and parsing code. The scoring of a URL against a a given API was relegated one per file allowing any special handing (like MD5 digests in the case of delicious) and spot checks.&lt;br /&gt;
&lt;br /&gt;
API handling was written for 8 services: (each links to the specific ruby code) &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/scoredelicious.rb"&gt;Delicious&lt;/a&gt;, &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/scoredigg.rb"&gt;Digg&lt;/a&gt;, &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/scorefacebook.rb"&gt;Facebook&lt;/a&gt;, &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/scoregoogle.rb"&gt;Google Web Search&lt;/a&gt;, &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/scoregooglebuzz.rb"&gt;Google Buzz&lt;/a&gt;, &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/scorereddit.rb"&gt;Reddit&lt;/a&gt;, &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/scorestumbleupon.rb"&gt;Stumbleupon&lt;/a&gt;, and &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/scoretwitter.rb"&gt;Twitter&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 2: Article Scoring&lt;/b&gt;&lt;br /&gt;
The next step is to combine the scoring for a given URL. There are many ways to do this and the more thought and experiment put into the scoring, the more&amp;nbsp;meaningful&amp;nbsp;the scores will become.&lt;br /&gt;
&lt;br /&gt;
The chosen method here is a simple sum of the scores. This first approximation will provide a number that can be compared, but the relation between the scores in the sum from different websites is&amp;nbsp;unknown. For example, a large score on&amp;nbsp;Facebook&amp;nbsp;or Twitter likely has more meaning than a large score on the Google web search. This is an obvious area for further research.&lt;br /&gt;
&lt;br /&gt;
A URL scoring function was prepared that evaluated a given address against each website in a different thread. Digg was dropped from the cannon of scoring functions because the results did not appear to be meaningful and the API was always slow to respond.&lt;br /&gt;
&lt;blockquote&gt;See &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/scoreurl.rb"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;scoreurl.rb&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;b&gt;Step 3: List Popular Articles&lt;/b&gt;&lt;br /&gt;
Now that we can score articles by their impact on the world, we can combine the scoring information with the list of articles posted in the last week to create a list of popular articles.&lt;br /&gt;
&lt;br /&gt;
Starting with the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part2/viewarticles.rb"&gt;viewarticles.rb&lt;/a&gt;&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part2/listarticles.rb"&gt;listarticles.rb&lt;/a&gt;&lt;/span&gt; scripts prepared in Part2, an updated list of popular articles can be created. In this case, the score for each article can be computed and all articles can be listed by their scoring. This promotes those articles that are expected to be interesting to the top of the page with the intent that they may be read first.&lt;br /&gt;
&lt;blockquote&gt;See &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/listpopulararticles.rb"&gt;listpopulararticles.rb&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;The following provides a screenshot from the last time that the script was executed showing an example of the resulting &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;populararticles.html&lt;/span&gt; file.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-iFrKycf01Xo/TbYqSX4D4SI/AAAAAAAAALo/Ea83tT-S1f4/s1600/Screen+shot+2011-04-26+at+11.50.04+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-iFrKycf01Xo/TbYqSX4D4SI/AAAAAAAAALo/Ea83tT-S1f4/s400/Screen+shot+2011-04-26+at+11.50.04+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Step 4: Combine List by Day and Popular Articles&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;The resulting listing of posts is long, it contains 7 days worth of articles. Additionally, taking a closer look at the posts in the list shows that most of them have a score of 0. It is expected that the older a post is, the larger its potential to have a meaningful score. This is because it gets indexed and shared more over that time. It is also expected that most articles posted within the last day or two will not have a score. In fact, it is expected that most AI articles in general will not have a score - it is a niche field of interest after all.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;In this step we separate "popular" articles (those with a score) from the "unpopular" articles (those without a score). Popular articles are listed at the top of the page and the remaining articles that have not achieved a score yet are listed&amp;nbsp;below&amp;nbsp;the popular articles, broken down by day.&lt;/div&gt;&lt;blockquote&gt;See &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part3/listpopulardayarticles.rb"&gt;listpopulardayarticles.rb&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;The following screenshot shows an example of the resulting &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;populardayarticles.html&lt;/span&gt; generated by the script.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Yi6lxqViZBk/TbYyGusQ9fI/AAAAAAAAALs/7eNYCzqKAJs/s1600/Screen+shot+2011-04-26+at+12.43.35+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="345" src="http://1.bp.blogspot.com/-Yi6lxqViZBk/TbYyGusQ9fI/AAAAAAAAALs/7eNYCzqKAJs/s400/Screen+shot+2011-04-26+at+12.43.35+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;b&gt;Improvements and Extensions&lt;/b&gt;&lt;br /&gt;
In this section a number of improvements and extensions to this part are&amp;nbsp;summarized.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;An important improvement to this part is the assessment of the URLs. Specifically, permalinks reported by some ATOM and feedburner feeds involve a proxy that redirects to the page. The effect is that the popularity of these proxy URLs are assessed against the social networking websites rather than the permalinks themselves, resulting in incorrect scorings. This may be addressed by following the redirect in the proxy URLs or using a different feed parsing library that has knowledge of the different feed types.&lt;/li&gt;
&lt;li&gt;A natural first extension to this part is to add scoring from more social networks and sources. For example: Hacker News, Google Blog Search, Friendfeed, etc.&lt;/li&gt;
&lt;li&gt;The scoring used is very&amp;nbsp;simplistic. A good extension would be to make better use of the information&amp;nbsp;available&amp;nbsp;for each URL and combine them in more intelligent ways. Such as a weighted sum of their relative importance, more weighting to comments and&amp;nbsp;up-votes, etc.&lt;/li&gt;
&lt;li&gt;Additional meta information about a given URL on social networking sites could be used in&amp;nbsp;conjunction&amp;nbsp;with an intelligent parsing of the articles themselves to determine broader categories that articles could be put into. A new list could be constructed with articles by category and popularity.&lt;/li&gt;
&lt;li&gt;The generated HTML pages will only ever contain AI articles that are actually in the source RSS feeds. A useful&amp;nbsp;extension&amp;nbsp;of this project would be to monitor social networking sites and other news sites for articles on AI and Machine Learning and include them in the mix.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;In this part we looked at the social interest of each article from the last 7 days and used that information to promote "popular" articles to be read above "unpopular" articles. The dynamic nature of the social scoring function means that popularity can be re-calculated each time the script is executed,&amp;nbsp;responding&amp;nbsp;to changes in the spread and sharing of a given story.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;In the next and final article in the series we will look at automating the generation of the AIFeed and in&amp;nbsp;disseminating&amp;nbsp;it via email and the web.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Don't forget that all code and data for this series is available for free on the &lt;a href="https://github.com/jbrownlee/AIFeeds"&gt;AIFeeds github project&lt;/a&gt;.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/1GpDJlO_uLs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/1797576859553064184/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=1797576859553064184" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/1797576859553064184?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/1797576859553064184?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/1GpDJlO_uLs/aifeeds-part-3-intelligently-filter-ai.html" title="AIFeeds Part 3: Intelligently filter AI posts by social impact" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-iFrKycf01Xo/TbYqSX4D4SI/AAAAAAAAALo/Ea83tT-S1f4/s72-c/Screen+shot+2011-04-26+at+11.50.04+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/04/aifeeds-part-3-intelligently-filter-ai.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ECQ3czfSp7ImA9WhZQGEg.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-6287144384030449966</id><published>2011-04-27T07:00:00.104+10:00</published><updated>2011-04-27T09:14:22.985+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-27T09:14:22.985+10:00</app:edited><title>AIFeeds Part 2: Recent AI Articles</title><content type="html">In &lt;a href="http://www.neverreadpassively.com/2011/04/aifeeds-part-1-artificial-intelligence.html"&gt;Part1&lt;/a&gt;, we went through the process of aggregating and filtering a bunch of RSS feeds for Machine Learning, Data Mining, Artificial Intelligence and related topics. In this continuation we will explore the properties of articles listed within a feed and provide a way of generating a static list of recent articles.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 1: List articles from the past week&lt;/b&gt;&lt;br /&gt;
A problem with this effort is that there are a lot of inconsistencies in the real world data. Some feeds are missing fields and some articles have fields that do not match expectations. The first step is to explore the data that we have by listing articles from the past week. This includes all fields that we think might be usefully related to an article, a feed, and its source website.&lt;br /&gt;
&lt;br /&gt;
To start with, the final list of feeds prepared in &lt;a href="http://www.neverreadpassively.com/2011/04/aifeeds-part-1-artificial-intelligence.html"&gt;Part1&lt;/a&gt; was taken and curated based on eyeballing the output in &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;feedlist.html&lt;/span&gt; (also generated in Part1). The result is the file &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part2/curated_feeds.txt"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;curated_feeds.txt&lt;/span&gt;&lt;/a&gt; with some of the more&amp;nbsp;obviously&amp;nbsp;wrong and non-interesting feeds removed.&lt;br /&gt;
&lt;br /&gt;
Next, a script was prepared to generate listing of all articles from the last seven days drawn from the feeds in the curated list. Almost all information for each article is provided such that we can discern what might be appropriate or interesting in further experiments.&lt;br /&gt;
&lt;br /&gt;
It was interesting that some articles had neither a &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;date_published&lt;/span&gt; or &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;last_updated&lt;/span&gt; field. Some articles would put the content in the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;description&lt;/span&gt; and others in the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;content&lt;/span&gt; field. These may be&amp;nbsp;artifacts&amp;nbsp;of the chosen RSS library, or may be&amp;nbsp;artifacts&amp;nbsp;of the feeds themselves, more investigation is needed. There are also Unicode issues with strange characters all over the place where&amp;nbsp;apostrophes&amp;nbsp;and quotes should be. Again, it is not clear whether this is because of the library or because some custom parsing is needed, nevertheless, as a static RSS the result is very basic.&lt;br /&gt;
&lt;blockquote&gt;See &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part2/viewarticles.rb"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;viewarticles.rb&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;The following provides a sample screenshot at the time I last executed the script to produce the&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;articlelview.html&lt;/span&gt; file.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-P3nnaRMRFGU/TbUIsddk7zI/AAAAAAAAALg/mvRJwDFkKAs/s1600/Screen+shot+2011-04-25+at+3.37.15+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://3.bp.blogspot.com/-P3nnaRMRFGU/TbUIsddk7zI/AAAAAAAAALg/mvRJwDFkKAs/s400/Screen+shot+2011-04-25+at+3.37.15+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Step 2: Summarize articles by day&lt;/b&gt;&lt;br /&gt;
In recent months I have become a big fan of the &lt;a href="http://www.hackernewsletter.com/"&gt;Hacker Newsletter&lt;/a&gt;. It is basically an email sent once per-week that contains a summary of the top stories of the week on the website Hacker News with links to comments as well as other relevant and&amp;nbsp;interesting&amp;nbsp;sections. I like the layout of the email and I think it provides a good pattern to head towards in this project.&lt;br /&gt;
&lt;br /&gt;
The previous step&amp;nbsp;explored&amp;nbsp;how to filter the feeds and how to&amp;nbsp;extract&amp;nbsp;the relevant information from each article, but it also demonstrated how ugly rendering the raw data can be. One could invest effort into replicating an RSS reader, or in doing something simpler and move toward a better summary view on the same data. This step explores such a simplified view where each article is presented on one line.&lt;br /&gt;
&lt;br /&gt;
A script was prepared to produce an article summary for the last seven days. The same filtering was performed as in Step1, although rather than writing out a long list of articles, the script was updated to group articles by date and only list the article title and source webpage. The result is a compact listing of recent AI and Machine Learning blog posts. The resulting page also provided clearer insight into the nature of the blogs included in the master list. As a result, the curated list of feeds was further culled.&lt;br /&gt;
&lt;blockquote&gt;See &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part2/listarticles.rb"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;listarticles.rb&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;The following figure provides a screenshot from the last time I executed the script to produce the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;articielist.html&lt;/span&gt; file.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-yOVNrr1Olbw/TbUItDNm-jI/AAAAAAAAALk/r-qLZ4YbbD4/s1600/Screen+shot+2011-04-25+at+3.37.27+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="http://3.bp.blogspot.com/-yOVNrr1Olbw/TbUItDNm-jI/AAAAAAAAALk/r-qLZ4YbbD4/s400/Screen+shot+2011-04-25+at+3.37.27+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;Improvements and&amp;nbsp;&lt;/b&gt;&lt;/span&gt;Extensions&lt;/b&gt;&lt;br /&gt;
This section lists some potential improvements and extensions to this part in the series.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Curating the master list of source feeds by hand is a bad idea. It seems&amp;nbsp;feasible&amp;nbsp;that all articles from each feed could be scanned and their appropriateness to the project determined using heuristics on the structure or content (keywords).&lt;/li&gt;
&lt;li&gt;Unicode&amp;nbsp;characters&amp;nbsp;in the feeds need to be rendered correctly. This still effects the titles of the articles and the blogs themselves.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;In this part we have explored the content for articles in RSS feeds and two methods for&amp;nbsp;presenting&amp;nbsp;the data: a&amp;nbsp;fire-hose&amp;nbsp;and a daily&amp;nbsp;summarization, the latter currently preferred.&lt;br /&gt;
&lt;br /&gt;
Next in Part3 we explore additional social-web based methods for filtering the list of articles and promoting those that are more likely to be interesting to the reader.&lt;br /&gt;
&lt;br /&gt;
Don't forget, all the code and data for this series can be downloaded from the &lt;a href="https://github.com/jbrownlee/AIFeeds"&gt;AIFeeds github project&lt;/a&gt;.&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/mnuMdEiExbc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/6287144384030449966/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=6287144384030449966" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/6287144384030449966?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/6287144384030449966?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/mnuMdEiExbc/aifeeds-part-2-recent-ai-articles.html" title="AIFeeds Part 2: Recent AI Articles" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-P3nnaRMRFGU/TbUIsddk7zI/AAAAAAAAALg/mvRJwDFkKAs/s72-c/Screen+shot+2011-04-25+at+3.37.15+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/04/aifeeds-part-2-recent-ai-articles.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EFRHwzeSp7ImA9WhZQGEg.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-6714469549797694475</id><published>2011-04-26T07:00:00.195+10:00</published><updated>2011-04-27T09:13:35.281+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-27T09:13:35.281+10:00</app:edited><title>AIFeeds Part 1: Artificial Intelligence and Machine Learning blogs</title><content type="html">Recently, I have been neglecting my RSS feeds. I'm a Google Reader user and my unread count is far from zero. I've been&amp;nbsp;distracted&amp;nbsp;and too busy. The problem though, is that there are many excellent Artificial Intelligence and Machine Learning blog posts that are being written every day and I get a lot of enjoyment in reading them and keeping&amp;nbsp;abreast&amp;nbsp;with current research and interesting projects.&lt;br /&gt;
&lt;br /&gt;
An obvious solution would be to simply rely on social media to filter such articles and let the best float to the top on Hacker News, Reddit, and Twitter. Maybe.&lt;br /&gt;
&lt;br /&gt;
I felt like some hacking over my Easter break (in between the numerous family&amp;nbsp;responsibilities), so I decided to have a crack at this problem. This post&amp;nbsp;represents&amp;nbsp;the first of four posts of my exploration of aggregating and filtering RSS feeds from popular blogs in the areas of computer science, data mining, data&amp;nbsp;visualization, machine learning and artificial intelligence. I've called the project AIFeeds and have &lt;a href="https://github.com/jbrownlee/AIFeeds"&gt;hosted the code and data for all parts on github&lt;/a&gt; if you want to skip ahead.&lt;br /&gt;
&lt;br /&gt;
The objective of this first part is to simply build a list of a large number of blogs that match my loose criteria. Specifically, the objective of this part is to prepare a list of working RSS feeds for blogs on (AI and related fields) without any duplicates. This will then be used as the basis for the subsequent parts in the series.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 1: Extract relevant blogs from my Google Reader Account&lt;/b&gt;&lt;br /&gt;
For starters, I have a modest collection of relevant feeds in my google reader. Going to google reader, I clicked settings, Import/Export, then&amp;nbsp;Export your subscriptions as an OPML file. I opened the OPML file in a text editor and delete all those feeds that I knew were not on topic.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 2: Search for lists of relevant blogs&lt;/b&gt;&lt;br /&gt;
The next step is to Google search for lists of machine learning blogs. I remember seeing such lists on Quora and MetaOptimize before so I kept an eye out for these sites in the search results. Here are some good lists I found:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://metaoptimize.com/qa/questions/3163/good-machine-learning-blogs"&gt;Good Machine Learning Blogs&lt;/a&gt; (MetaOptimize)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mark.reid.name/iem/kith.html"&gt;Machine Learning Resources&lt;/a&gt; (Inductio ex Machina)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://yaroslavvb.blogspot.com/2010/09/updated-machine-learningstatistics-blog.html"&gt;Updated Machine Learning/Statistics blog list&lt;/a&gt; (Machine Learning, etc)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dataminingblog.com/list-of-blogs/"&gt;Data Mining Blogs&lt;/a&gt; (Data Mining Research)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.quora.com/What-are-the-best-machine-learning-blogs"&gt;What are the best blogs about data?&lt;/a&gt; (Quora)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.quora.com/What-are-the-best-machine-learning-blogs"&gt;What are the best machine learning blogs?&lt;/a&gt; (Quora)&lt;/li&gt;
&lt;/ul&gt;The result is a bunch of links in webpages and OPML files. Additionally, many of the linked blogs themselves provide a blog roll to related blogs.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 3: Aggregate&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
The first easy thing to do is to write a script to extract all feeds from the collected OPML files. Using the built-in REXML library in Ruby I bashed out a script to read in all .opml files in an &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;opml/&lt;/span&gt; subdirectory, parsing each entry for the&amp;nbsp;rss attribute and writing a &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part1/opml_feeds.txt"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;opml_feeds.txt&lt;/span&gt;&lt;/a&gt; file.&lt;br /&gt;
&lt;blockquote&gt;See &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part1/parseopml.rb"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;parseopml.rb&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;I then did something stupid, slow, but effective. I clicked a lot of links, read a lot of blog rolls, viewed source on a ton of &amp;nbsp;blogs, and copy-pasted links to blog RSS feeds into a &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part1/byhand_feeds.txt"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;byhand_feeds.txt&lt;/span&gt;&lt;/a&gt;. I could have written scripts for this, but there is a lot of pain to deal with and I suspected I could do this once of task by hand faster than I could write code to parse a bunch of pages, extract (the right) links, and then download the pages and extract links to rss feeds. I took an hour or so to do by hand - not a big deal.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Step 4: Filter list of feeds&lt;/b&gt;&lt;br /&gt;
So now we have two lists of RSS feeds. Some may work, some may not. There are likely many duplicates and even many that are not strictly on topic. An easy quick win is to write a script that opens a connection to each url, parses the contents and builds a list of unique feeds.&lt;br /&gt;
&lt;br /&gt;
The first thing that is needed is a library that can process RSS feeds in ruby, at least RSS1, RSS2 and Atom. Google throws up a few options, such as &lt;a href="http://rubyrss.com/"&gt;RubyRSS&lt;/a&gt;, &lt;a href="http://www.ruby-doc.org/stdlib/libdoc/rss/rdoc/index.html"&gt;Ruby RSS in the stdlib&lt;/a&gt;,&amp;nbsp;&lt;a href="http://home.gna.org/ruby-feedparser/"&gt;Ruby-Feedparser&lt;/a&gt;, &lt;a href="http://simple-rss.rubyforge.org/"&gt;Simple RSS&lt;/a&gt;,&amp;nbsp;&lt;a href="http://rubyforge.org/projects/feed-normalizer/"&gt;feed-normalizer&lt;/a&gt;, and others. I tried a few and was somewhat frustrated. I ended up going with feed-normalizer (&lt;a href="http://rubydoc.info/github/aasmith/feed-normalizer/master/frames"&gt;rdoc&lt;/a&gt;) because it was really easy to use and provided a consistent data structure for RSS and Atom feeds.&lt;br /&gt;
&lt;br /&gt;
I wrote a small script using feed-normalizer to parse a feed and return the data structure. Importantly, it provided safety for the URL failing to open, the XML being bad, and for socket timeouts. An error is reported to stdout on error and a &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;nil&lt;/span&gt; is returned. I used this script to test some rss, atom and even some bad URLs. This file provides a home for helper functions for loading and parsing RSS feeds.&lt;br /&gt;
&lt;blockquote&gt;See&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part1/parserss.rb"&gt;parserss.rb&lt;/a&gt;&lt;/span&gt;&lt;/blockquote&gt;Using this parser function, I wrote a script to read in lists of RSS feeds in text files (&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;opml_feeds.txt&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;byhand_feeds.txt&lt;/span&gt;), parse each and build a unique list based on the website name. There are many hundreds of feeds to check in those files and I'm lazy. I wrote a small function to hammer the feeds in the file using lots of threads and then check all of the data structures in memory. Lazy but effective. The result is a list of &lt;b&gt;236&lt;/b&gt; rss feeds in &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part1/filtered_feeds.txt"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;filtered_feeds.txt&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;blockquote&gt;See &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part1/filterfeeds.rb"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;filterfeeds.rb&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;b&gt;Step 5: Summarize list of feeds&lt;/b&gt;&lt;br /&gt;
A final step is to generate a summary of all the available feeds. An easy way to do that is to generate an HTML page that&amp;nbsp;summarizes&amp;nbsp;each feed in turn, ordered by the name of the website. A script was prepared to parse each feed and list the name of the site, link to the site, and finally link to the actual rss feed. The list was ordered by site name.&lt;br /&gt;
&lt;blockquote&gt;See &lt;a href="https://github.com/jbrownlee/AIFeeds/blob/master/part1/listfeeds.rb"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;listfeeds.rb&lt;/span&gt;&lt;/a&gt;&lt;/blockquote&gt;The following provides a screenshot of the generated html page providing the final list of webpages and their rss feeds in &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;feedlist.html&lt;/span&gt;.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qApgwYshUUg/TbTpu2IscDI/AAAAAAAAALY/jw_vraNR3SY/s1600/Screen+shot+2011-04-25+at+1.25.26+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="250" src="http://2.bp.blogspot.com/-qApgwYshUUg/TbTpu2IscDI/AAAAAAAAALY/jw_vraNR3SY/s400/Screen+shot+2011-04-25+at+1.25.26+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;b&gt;Improvements and Extensions&lt;/b&gt;&lt;br /&gt;
There are a number of improvements and extensions that could be made to the first part of this effort, such as:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The final list contains some oddball and even some off-topic feeds. A high-level human-based curation of the list would be a good start. For example, removing Q&amp;amp;A feeds and delicious feeds would be useful.&lt;/li&gt;
&lt;li&gt;Some of the links to the sites in the generated feedlist.html are suspect, meaning that some feeds do not accurately report the site URL or site title. It may be possible to carry over this information from the source documents, either the website themselves and/or the OPML files. Ideally, the final corpus of feeds could/should be stored in an OPML file for portability and reuse.&lt;/li&gt;
&lt;li&gt;Build a larger corpus of feeds. Naturally, this is the easy extension to the whole project and there are may ways to go about collecting more feeds starting with some simple google searches. Getting more OPML files and including them in the opmlparser.rb script would be a great first step.&lt;/li&gt;
&lt;li&gt;Write a script to extract links of blogs from some of the above listed collections. Once such links to blogs are collected, write a script to download the HTML, parse it and extract the link to the RSS or Atom feed. This is most commonly listed in the head tag of the HTML file as an alternative link (at least it is for blogger and wordpress blogs).&lt;/li&gt;
&lt;/ul&gt;&lt;b&gt;Done&lt;/b&gt;&lt;br /&gt;
So we now have a list of RSS feeds for blogs, most of which are likely to provide posts on or related to our topics of interest. Each feed has been tested, and duplicates have been removed.&lt;br /&gt;
&lt;br /&gt;
Next, in AIFeeds Part 2 we will use this list of sources to prepare a summary of posts as a simple static RSS reader.&lt;br /&gt;
&lt;br /&gt;
Remember, all data and code is provided on the&amp;nbsp;&lt;a href="https://github.com/jbrownlee/AIFeeds"&gt;AIFeeds github project&lt;/a&gt;.&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/ukM9BELcmds" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/6714469549797694475/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=6714469549797694475" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/6714469549797694475?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/6714469549797694475?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/ukM9BELcmds/aifeeds-part-1-artificial-intelligence.html" title="AIFeeds Part 1: Artificial Intelligence and Machine Learning blogs" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-qApgwYshUUg/TbTpu2IscDI/AAAAAAAAALY/jw_vraNR3SY/s72-c/Screen+shot+2011-04-25+at+1.25.26+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/04/aifeeds-part-1-artificial-intelligence.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MGQX05eip7ImA9WhZSGEs.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-8003075357821220095</id><published>2011-04-04T07:17:00.000+10:00</published><updated>2011-04-04T07:17:00.322+10:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-04T07:17:00.322+10:00</app:edited><title>Automatically Generate Regular Expressions (regex)</title><content type="html">I had a thought about two weeks ago that I really wanted a web app that would generate regular expressions for me. I was lazy and had spent some time hacking expressions together for a script I was working on.&lt;br /&gt;
&lt;br /&gt;
I wrote some notes and posted them to a gaggle of programmers and engineers I email&amp;nbsp;regularly. Something like:&lt;br /&gt;
&lt;blockquote&gt;A programmer normally google’s for examples of their problem or similar problems online, copies the code and adapts it for their needs. There are websites dedicated to discussing programming problems, and websites dedicated to listing solutions to common problems. The objective of this system is to write a new program for the user from scratch that exactly addresses their needs.&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote&gt;A user defines some sample input and some sample output. The system examines the data and generates a program for the user to perform the transform. This program can be downloaded, executed in place, or used as a service. The more information provided by the user, the better the robot programmer can do its job. The robot programmer may not get it right the first time, providing an opportunity for the user to work with the robot to better define the problem and tinker with candidate programs that may be used as the basis for the robots second and subsequent tries.&lt;/blockquote&gt;I abstracted the problem and proposed a generic "&lt;i&gt;robot programmer&lt;/i&gt;" or "&lt;i&gt;robot coder&lt;/i&gt;" that would compute&amp;nbsp;arbitrary&amp;nbsp;transformations based on sample input and output. I pitched both the general case and the specific regex case and got a variety of responses and some good technical discussions.&lt;br /&gt;
&lt;br /&gt;
Using Heroku, I hacked together a prototype of the interface and sent it around for comment. The following is a snap shot of the regex mock:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-mlvJHLUPc0A/TZQuU1RK9CI/AAAAAAAAALI/1ywge9JUcP8/s1600/Screen+shot+2011-03-31+at+6.27.37+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="322" src="http://1.bp.blogspot.com/-mlvJHLUPc0A/TZQuU1RK9CI/AAAAAAAAALI/1ywge9JUcP8/s400/Screen+shot+2011-03-31+at+6.27.37+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;The following is a snap shot of the general case mock, here the example requires a program to print the input as well as all the input summed together.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-9jyj3eogHeA/TZQuVeSPAUI/AAAAAAAAALM/HrU0nZ_Eeu4/s1600/Screen+shot+2011-03-31+at+6.33.10+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-9jyj3eogHeA/TZQuVeSPAUI/AAAAAAAAALM/HrU0nZ_Eeu4/s400/Screen+shot+2011-03-31+at+6.33.10+PM.png" width="381" /&gt;&lt;/a&gt;&lt;/div&gt;Ideally, the service would be free for the simple case, and cost a dollar or two for a more advanced case. The free case would allow a large corpus of examples to be collected and the system refined, and the complex case would provide useful pay-only features such as: save, private, download in preferred language, and pair-program with the system. This last case would be the truly useful incarnation of the system where one could modify the expressions or programs and I/O and iterate the solver until a desired solution was achieved.&lt;br /&gt;
&lt;br /&gt;
I still think it is a good idea, but I just couldn't think of a good way to&amp;nbsp;monetize&amp;nbsp;it. It is an interesting technical challenge and the service would make an interesting novelty, but it is not an earner and I'd rather hack on other things for now.&lt;br /&gt;
&lt;br /&gt;
I have some designs and small technical prototypes for the ensemble of&amp;nbsp;inductive&amp;nbsp;automatic programming solvers and heuristic solvers that would be needed, but I'm keeping the details to myself for now, just in case the idea gets some traction or I can think of a better way to make a few bucks from it (Excel plug-in?).&lt;br /&gt;
&lt;br /&gt;
Sure the general problem is intractable, but the&amp;nbsp;specific&amp;nbsp;case is results-driven. It only has to be good enough for the users needs - a monkey patch for whatever data conversion or scripting they happen to be doing at the time. The subset of actual problems that people have will be much smaller than all of possibility space, and the web is a fertile ground for seed and test instances.&lt;br /&gt;
&lt;br /&gt;
Anyway, if anyone has a burning desire for either or both of these services to exist or has some further ideas, drop me a comment or an &lt;a href="mailto:jason.brownlee05@gmail.com"&gt;email&lt;/a&gt;.&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/GYepgaNgfDw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/8003075357821220095/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=8003075357821220095" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8003075357821220095?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8003075357821220095?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/GYepgaNgfDw/automatically-generate-regular.html" title="Automatically Generate Regular Expressions (regex)" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-mlvJHLUPc0A/TZQuU1RK9CI/AAAAAAAAALI/1ywge9JUcP8/s72-c/Screen+shot+2011-03-31+at+6.27.37+PM.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/04/automatically-generate-regular.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ECQXs5fip7ImA9WhZSFk0.&quot;"><id>tag:blogger.com,1999:blog-946587890062083577.post-8974022417837366600</id><published>2011-04-01T07:01:00.000+11:00</published><updated>2011-04-01T07:01:00.526+11:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-01T07:01:00.526+11:00</app:edited><title>April Challenge: Watch 1 Tech Video Every Day</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-9XLX5HSf2wE/TY2NG3shcqI/AAAAAAAAAK8/KjKd9qpS3wU/s1600/252772357_e5e0115d32_b.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="https://lh6.googleusercontent.com/-9XLX5HSf2wE/TY2NG3shcqI/AAAAAAAAAK8/KjKd9qpS3wU/s320/252772357_e5e0115d32_b.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;I was recently thinking about my &lt;a href="http://www.neverreadpassively.com/2011/03/junk-food-media-consumption.html"&gt;junkfood media&amp;nbsp;consumption&lt;/a&gt;. My thesis was that one could apply the same&amp;nbsp;discipline&amp;nbsp;that one uses for discerning the food they eat to media consumption, ideally with the intention of self improvement.&lt;br /&gt;
&lt;br /&gt;
If one must consume to relax (as opposed to &lt;a href="http://en.wikipedia.org/wiki/Cognitive_Surplus"&gt;drinking gin&lt;/a&gt;), then why not impose&amp;nbsp;discipline to&amp;nbsp;avoid the fast food of consumption (reading online news, twitter, American TV shows, etc.) and consume with intent.&lt;br /&gt;
&lt;br /&gt;
The April challenge is self imposed (unlike the &lt;a href="http://www.neverreadpassively.com/2011/02/march-challenge-shed-weight-get-ipad.html"&gt;March Challenge&lt;/a&gt;) and is as follows:&lt;br /&gt;
&lt;blockquote&gt;&lt;i&gt;Watch one free online technical video for each day of April. For each day missed, you (I) must donate $20 to .NET open source projects.&amp;nbsp;&lt;/i&gt;&lt;/blockquote&gt;I'm experimenting with a "loss" as a motivating facto, rather than the "gain" of the March challenge. I'm really starting to get into this public challenge approach to self improvement :) Also, I recently sold our &lt;a href="http://www.neverreadpassively.com/2011/03/family-media-player.html"&gt;family media solution&lt;/a&gt;, so there is far less opportunity for general lazy consumption.&lt;br /&gt;
&lt;br /&gt;
Seriously, why would one write open source using the .NET framework? It has oxymoron written all over it.&amp;nbsp;Donating&amp;nbsp;to open source is good, and $20 is not too much pain if I miss a day. It quickly starts adding up though, 5 days is a $100 and I'd much rather give that $100 to some noble device&amp;nbsp;driver hacker working on Linux than some .NET hacker&amp;nbsp;playing&amp;nbsp;around in Visual Studio, or whatever it is they do.&lt;br /&gt;
&lt;br /&gt;
This challenge does not&amp;nbsp;preclude my normal media consumption, although it imposes constraint on at least one hour of that dedicated time, typically in the evenings. If I have a busy night, I guess I'll need to make time in the morning or during my lunch hour. I intend to&amp;nbsp;maintain&amp;nbsp;a spreadsheet of what I watch, it's duration, and its URL. I'm sure I'll think of ways to slice and dice this collected data.&lt;br /&gt;
&lt;br /&gt;
Some sources of media may include:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ted.com/talks"&gt;TED talks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.youtube.com/user/GoogleTechTalks"&gt;Google Tech Talks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.apple.com/education/itunes-u/"&gt;iTunes U&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.khanacademy.org/"&gt;Khan Academy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;I am passionate about technical topics,&amp;nbsp;specifically&amp;nbsp;Artificial Intelligence and Machine Learning, so this directed form of media consumption does align with my interests. I have to focus and&amp;nbsp;concentrate&amp;nbsp;for tech talk, take notes, think, quite different from what I need to do when I consume acquired TV shows. It will be interesting if I can/should switch to more passive consumption for interesting subject matter (what if I&amp;nbsp;forget&amp;nbsp;something amazing!?!). Alternatively, the&amp;nbsp;penalty&amp;nbsp;for remaining active in "relax time" may be worse,&amp;nbsp;irritability,&amp;nbsp;increased&amp;nbsp;tiredness, etc. It will be an interesting experiment.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I'm looking forward to this challenge!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;Image copyright by&amp;nbsp;&lt;a href="http://www.flickr.com/photos/schmilblick/252772357/"&gt;schmilblick&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/NeverReadPassively/~4/9pgo842ItLg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.neverreadpassively.com/feeds/8974022417837366600/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=946587890062083577&amp;postID=8974022417837366600" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8974022417837366600?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/946587890062083577/posts/default/8974022417837366600?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/NeverReadPassively/~3/9pgo842ItLg/april-challenge-watch-1-tech-video.html" title="April Challenge: Watch 1 Tech Video Every Day" /><author><name>Jason Brownlee</name><uri>http://www.blogger.com/profile/11283603094324243247</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="25" height="32" src="http://3.bp.blogspot.com/_Nm8O-3rVrk0/Sk_iFShcXkI/AAAAAAAAAFc/cUqZBpgrQ9Y/S220/Snapshot.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh6.googleusercontent.com/-9XLX5HSf2wE/TY2NG3shcqI/AAAAAAAAAK8/KjKd9qpS3wU/s72-c/252772357_e5e0115d32_b.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://www.neverreadpassively.com/2011/04/april-challenge-watch-1-tech-video.html</feedburner:origLink></entry></feed>
