<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4106114259507101884</id><updated>2012-01-27T22:38:11.712+03:30</updated><category term='pictures'/><category term='buddhism'/><category term='pirates'/><category term='beer'/><category term='finance'/><category term='news'/><category term='books'/><category term='required reading'/><category term='immigration'/><category term='abortion'/><category term='teh funnay'/><category term='open source'/><category term='debate'/><category term='freedom'/><category term='safety'/><category term='war'/><category term='home'/><category term='adsense-is-shit'/><category term='human will'/><category term='truth'/><category term='psychology'/><category term='travel'/><category term='japanese'/><category term='lazy people'/><category term='society'/><category term='geekery'/><category term='family'/><category term='video'/><category term='Canada'/><category term='virtual worlds'/><category term='review'/><category term='c++'/><category term='work'/><category term='rant'/><category term='changes'/><category term='humor'/><category term='socialism'/><category term='exercise'/><category term='racism'/><category term='business'/><category term='finland'/><category term='boredom'/><category term='feminism'/><category term='shout-outs'/><category term='cartoon'/><category term='graphics'/><category term='philosophy'/><category term='fundamentalists'/><category term='networking'/><category term='civil rights'/><category term='hiring'/><category term='diet'/><category term='VoIP'/><category term='people'/><category term='opinion'/><category term='holidays'/><category term='software'/><category term='wankery'/><category term='common sense'/><category term='speech'/><category term='bad stuff'/><category term='fun'/><category term='remnants of spring'/><category term='blogging'/><category term='jerks'/><category term='conferences'/><category term='crypto'/><category term='computing'/><category term='cooking'/><category term='buzzwords'/><category term='education'/><category term='technology'/><category term='democracy'/><category term='omfg'/><category term='magic'/><category term='programming trickery'/><category term='comics'/><category term='mexico'/><category term='marriage'/><category term='winter'/><category term='city at night'/><category term='photos'/><category term='leadership'/><category term='lifestyle'/><category term='curry'/><category term='meditation'/><category term='GTK+'/><category term='internet'/><category term='zen'/><category term='windows'/><category term='learning'/><category term='science'/><category term='ecology'/><category term='linux'/><category term='math'/><category term='children'/><category term='research'/><category term='vacation'/><category term='programming'/><category term='politics'/><category term='California'/><category term='silliness'/><category term='culture'/><category term='moblin'/><category term='OMG'/><category term='scm'/><category term='wingnuts'/><category term='multiculturalism'/><category term='parenting'/><category term='world'/><category term='music'/><category term='games'/><category term='atheism'/><category term='how-to'/><category term='stupid people'/><category term='cross-platform'/><category term='conservatives'/><category term='human beings'/><category term='toys'/><category term='life'/><category term='literature'/><category term='copyright'/><category term='economics'/><category term='energy'/><category term='3D'/><category term='hacks'/><category term='food'/><category term='languages'/><category term='functional programming'/><category term='history'/><category term='poetry'/><category term='religion'/><category term='vegetarian'/><category term='japan'/><category term='idiots'/><category term='past friends'/><category term='failure'/><category term='writing'/><category term='health'/><category term='classic'/><category term='money'/><title type='text'>climbing the hill</title><subtitle type='html'>stars, hide your fires</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default?start-index=101&amp;max-results=100'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>193</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8024838875952608489</id><published>2012-01-27T22:35:00.001+03:30</published><updated>2012-01-27T22:38:11.899+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='stupid people'/><category scheme='http://www.blogger.com/atom/ns#' term='conservatives'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Turns out you may be just stupid.</title><content type='html'>&lt;a href="http://news.yahoo.com/low-iq-conservative-beliefs-linked-prejudice-180403506.html"&gt;Low-intelligence adults tend to gravitate toward socially conservative ideologies, the study found.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8024838875952608489?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8024838875952608489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8024838875952608489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8024838875952608489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8024838875952608489'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2012/01/turns-out-you-may-be-just-stupid.html' title='Turns out you may be just stupid.'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7602945583667257108</id><published>2012-01-23T00:41:00.003+03:30</published><updated>2012-01-23T00:45:23.766+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='debate'/><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>Creationism</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-o26A0VnXThY/Txx79OxOzfI/AAAAAAAABSI/NM7CwX4ks2I/s1600/380042_315559185142043_216301171734512_1055772_1775474040_n.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 198px;" src="http://1.bp.blogspot.com/-o26A0VnXThY/Txx79OxOzfI/AAAAAAAABSI/NM7CwX4ks2I/s400/380042_315559185142043_216301171734512_1055772_1775474040_n.jpg" alt="" id="BLOGGER_PHOTO_ID_5700567520211029490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Taken from a facebook argument where a religious person took affront to the comparison, and claimed evolution was just another theory people believed in.&lt;br /&gt;&lt;span style="font-style: italic;" jsid="text" class="commentBody"&gt;&lt;br /&gt;&lt;br /&gt;The major disconnect in discussions like this is how the two side use words like "belief" and  "theory" entirely differently: for the religious "belief" means "faith"  -- something I hold true without any evidence; for the scientific  "belief" means "hunch" -- something that intuition tells you must be  true and thus guides your search for evidence to dis/confirm. For the religious "theory" means "hypothesis" -- a guess about how things work  needed to remove ambiguity only enough to get things done; for the  scientific "theory" means "model" -- a way to think about what we  observe that allows us to make predictions that are either falsifiable,  or strengthen our confidence in the model's predictive power.&lt;br /&gt;&lt;br /&gt;In this case we can say evolution is a theory which incorporates in its  model all physical evidence ever accumulated, and has enormous  predictive power in telling us how species change over multiple scales.  We can also say scientists believe in this theory in the sense that  based on all the evidence we have, and the predictive power of the  model, our hunch is that evolution well never be disproven, and continue  to help us understand our world and make technological progress (such  as automobiles).&lt;br /&gt;&lt;br /&gt;Creation fails on both counts as a Theory:  either to incorporate all evidence, or to make predictions that are  falsifiable; therefore the only belief possible in creation is one that  disregards evidence and is simply faith in an idea that has no  existential purpose. If we apply this idea more broadly, then  technological progress steadily become more difficult. This is the danger  of your definition of "belief" and "theory".&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7602945583667257108?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7602945583667257108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7602945583667257108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7602945583667257108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7602945583667257108'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2012/01/creationism.html' title='Creationism'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-o26A0VnXThY/Txx79OxOzfI/AAAAAAAABSI/NM7CwX4ks2I/s72-c/380042_315559185142043_216301171734512_1055772_1775474040_n.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3366635717229734866</id><published>2012-01-20T03:59:00.004+03:30</published><updated>2012-01-20T04:02:39.006+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='omfg'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Java</title><content type='html'>&lt;span style="font-weight: bold;color:#204a87;" &gt;&lt;me&gt;: &lt;/me&gt;&lt;/span&gt;what is a "RequestMappingHandlerAdapter"?&lt;br /&gt;&lt;span style="font-weight: bold;color:#204a87;" &gt;:&lt;/span&gt;&lt;span style="font-weight: bold;color:#204a87;" &gt;&lt;me&gt; &lt;/me&gt;&lt;/span&gt;this is what's wrong with modern OOP&lt;br /&gt;&lt;span style="font-weight: bold;color:#204a87;" &gt;:&lt;/span&gt;&lt;span style="font-weight: bold;color:#204a87;" &gt;&lt;me&gt; &lt;/me&gt;&lt;/span&gt;nigh unreadable&lt;span style="font-weight: bold;color:#204a87;" &gt;, &lt;/span&gt;despite the letters expended vainly in the effort&lt;br /&gt;&lt;span style="font-weight: bold;color:#204a87;" &gt;:&lt;/span&gt;&lt;span style="font-weight: bold;color:#204a87;" &gt; &lt;/span&gt;might as well call it LeftBallCheesecakeWizard&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3366635717229734866?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3366635717229734866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3366635717229734866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3366635717229734866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3366635717229734866'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2012/01/java.html' title='Java'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8620848075048713702</id><published>2011-11-19T22:04:00.002+03:30</published><updated>2011-11-19T22:07:26.353+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Canada'/><category scheme='http://www.blogger.com/atom/ns#' term='multiculturalism'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Multiculturalism != segregation</title><content type='html'>This &lt;a href="http://www.calgaryherald.com/news/calgary/Project+Calgary+Building+diverse+communities+role+ethnic+enclaves/5735743/story.html"&gt;article&lt;/a&gt; covers the major differences between multiculturalism as it's practised in Canada versus elsewhere; specifically Europe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8620848075048713702?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8620848075048713702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8620848075048713702' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8620848075048713702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8620848075048713702'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/11/multiculturalism-segregation.html' title='Multiculturalism != segregation'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2673842623862087033</id><published>2011-11-18T20:43:00.003+03:30</published><updated>2011-11-18T20:50:19.460+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='California'/><category scheme='http://www.blogger.com/atom/ns#' term='family'/><title type='text'>The Commuter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i1129.photobucket.com/albums/m501/Sempuki1/IMG_20111030_133225.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 1023px; height: 764px;" src="http://i1129.photobucket.com/albums/m501/Sempuki1/IMG_20111030_133225.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We will absolutely need a car for life in California, as much as I would love to avoid the expense, hassle, and environmental knock-ons. We looked at prices on both sides of the border, and while it was a little more expensive to buy in Canada due to taxes, the added convenience of having a ride from day-one was worth it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2673842623862087033?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2673842623862087033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2673842623862087033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2673842623862087033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2673842623862087033'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/11/commuter.html' title='The Commuter'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8801516374672452512</id><published>2011-11-18T02:55:00.000+03:30</published><updated>2011-11-18T02:56:25.160+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Canada'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>General Government</title><content type='html'>"Canada's Parliament is more dysfunctional than any of  the other Westminster parliaments. No prime minister in  any Commonwealth country with a governor general, until Harper, has ever  sought prorogation to avoid a vote of confidence. Only in Canada has a  government secured the prorogation of Parliament to save itself from  political defeat and only in Canada has the governor general been party  to it."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8801516374672452512?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8801516374672452512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8801516374672452512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8801516374672452512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8801516374672452512'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/11/general-government.html' title='General Government'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2550231236617764211</id><published>2011-11-02T02:07:00.003+03:30</published><updated>2011-11-02T02:10:19.138+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='immigration'/><category scheme='http://www.blogger.com/atom/ns#' term='human beings'/><category scheme='http://www.blogger.com/atom/ns#' term='japan'/><title type='text'>Inhuman Alien</title><content type='html'>This is what drives me the most nuts about Japan's attitude towards foreigners: if &lt;a href="http://www.japantimes.co.jp/text/fl20111101zg.html"&gt;this had happened to a Japanese person&lt;/a&gt; there would be an international firestorm.&lt;br /&gt;&lt;br /&gt;In fact it happened to another African in the UK and there is already a proper investigation there. Japan is so disappointing on a human level sometimes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2550231236617764211?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2550231236617764211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2550231236617764211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2550231236617764211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2550231236617764211'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/11/inhuman-alien.html' title='Inhuman Alien'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8118906784375812056</id><published>2011-09-05T09:25:00.001+04:30</published><updated>2011-09-05T09:25:49.264+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Eurabia</title><content type='html'>&lt;a href="http://www.theglobeandmail.com/news/world/article711186.ece"&gt;The myth of "Eurabia"&lt;/a&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8118906784375812056?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8118906784375812056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8118906784375812056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8118906784375812056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8118906784375812056'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/09/eurabia.html' title='Eurabia'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-357714654419846787</id><published>2011-07-23T22:59:00.001+04:30</published><updated>2011-07-23T23:01:34.488+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='buddhism'/><title type='text'>Unhappiness</title><content type='html'>&lt;div class="usertext-body"&gt;&lt;div class="md"&gt;&lt;p&gt;Unhappiness in general is  an evolved mechanism to tell us when a change is necessary. For more  primitive societies this meant getting up and moving on from where you  are, and expanding somewhere new. This is probably how humans were able  to conquer the globe so completely in such a remarkably short period of  time.&lt;/p&gt;  &lt;p&gt;For modern humans, we cannot just pick up and make changes  arbitrarily. There is no more space left, and social obligations keep us  tied down. We can simulate some of this by changing jobs, getting more  exercise, getting a divorce, etc.; but fundamentally &lt;em&gt;yes&lt;/em&gt; unhappiness &lt;em&gt;is&lt;/em&gt; a modern disease -- one there is no obvious cure for.&lt;/p&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-357714654419846787?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/357714654419846787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=357714654419846787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/357714654419846787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/357714654419846787'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/07/unhappiness.html' title='Unhappiness'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1560772691145865164</id><published>2011-06-06T09:35:00.001+04:30</published><updated>2011-06-06T09:39:18.130+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='buddhism'/><title type='text'>Word</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-ke96Odd-qyE/Texg9YdLziI/AAAAAAAABOs/SVTSL0M8rAo/s1600/psf53.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 264px; height: 400px;" src="http://3.bp.blogspot.com/-ke96Odd-qyE/Texg9YdLziI/AAAAAAAABOs/SVTSL0M8rAo/s400/psf53.jpg" alt="" id="BLOGGER_PHOTO_ID_5614969443077312034" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1560772691145865164?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1560772691145865164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1560772691145865164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1560772691145865164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1560772691145865164'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/06/word.html' title='Word'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ke96Odd-qyE/Texg9YdLziI/AAAAAAAABOs/SVTSL0M8rAo/s72-c/psf53.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4344623186284027503</id><published>2011-05-26T00:49:00.002+04:30</published><updated>2011-05-26T00:58:56.358+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='human beings'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Rationalizing; not Rational</title><content type='html'>It used to be a giant mystery how many people could be just so completely wrong without ever realizing it. Surely a fact is a fact, and when confronted with contradictory information, a rational person must necessarily change their opinion.&lt;br /&gt;&lt;br /&gt;Sadly, it seems that such confrontation appears to only further polarize their opposition. &lt;a href="http://theweek.com/article/index/215257/made-up-minds"&gt;We are not in fact a rational people at all&lt;/a&gt;. It also mean that arguing with anyone who holds an opinion, especially when it's not face-to-face where we might hesitate from becoming overly aggressive, is a hopeless waste of time and in fact damaging to your original objective.&lt;br /&gt;&lt;br /&gt;So where does that leave us as an "intelligent" race? Are we doomed to forever peer at ourselves from across a chasm of disjoint reality?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4344623186284027503?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4344623186284027503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4344623186284027503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4344623186284027503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4344623186284027503'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/05/rationalizing-not-rational.html' title='Rationalizing; not Rational'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-5382757339389828914</id><published>2011-05-14T20:29:00.000+04:30</published><updated>2011-05-14T20:30:19.634+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='comics'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Perspective</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-KWvO8WyzjVE/Tc6m_Uwo1zI/AAAAAAAABOg/seWqgECVsE4/s1600/NoZ0V.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 202px;" src="http://2.bp.blogspot.com/-KWvO8WyzjVE/Tc6m_Uwo1zI/AAAAAAAABOg/seWqgECVsE4/s400/NoZ0V.jpg" alt="" id="BLOGGER_PHOTO_ID_5606602192957527858" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-5382757339389828914?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/5382757339389828914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=5382757339389828914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5382757339389828914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5382757339389828914'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/05/perspective.html' title='Perspective'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-KWvO8WyzjVE/Tc6m_Uwo1zI/AAAAAAAABOg/seWqgECVsE4/s72-c/NoZ0V.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8725251929191572143</id><published>2011-02-11T10:12:00.004+03:30</published><updated>2011-02-11T10:17:03.713+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Way Back Home</title><content type='html'>&lt;iframe title="YouTube video player" width="400" height="255" src="http://www.youtube.com/embed/Cj6ho1-G6tw" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8725251929191572143?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8725251929191572143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8725251929191572143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8725251929191572143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8725251929191572143'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/02/way-back-home.html' title='Way Back Home'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/Cj6ho1-G6tw/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4909766119435557217</id><published>2011-02-08T01:09:00.003+03:30</published><updated>2011-02-08T01:10:20.635+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='world'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Freedom</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/TVBmv0hjDTI/AAAAAAAABM0/s0rxq0I5jvs/s1600/3UMRy.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 291px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/TVBmv0hjDTI/AAAAAAAABM0/s0rxq0I5jvs/s400/3UMRy.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5571065710796541234" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4909766119435557217?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4909766119435557217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4909766119435557217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4909766119435557217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4909766119435557217'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/02/freedom.html' title='Freedom'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_mbtIA8_3IzU/TVBmv0hjDTI/AAAAAAAABM0/s0rxq0I5jvs/s72-c/3UMRy.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4769591392421667776</id><published>2011-01-31T07:34:00.005+03:30</published><updated>2011-01-31T07:48:25.693+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='socialism'/><category scheme='http://www.blogger.com/atom/ns#' term='wingnuts'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>"Socialism" is the opposite of Capitalism</title><content type='html'>Anyone who uses the phrase "socialism" as a slur, or "knows" taxes are destructive to "growth", should be &lt;a href="http://www.inc.com/magazine/20110201/in-norway-start-ups-say-ja-to-socialism.html"&gt;forced to discover how contrary their opinions are to established fact&lt;/a&gt; in most other developed countries.&lt;br /&gt;&lt;br /&gt;It drives me so mad the hear the talking heads spend so much more time on rhetoric when the answer to their questions are only a plane ride (or an internet click) away.&lt;br /&gt;&lt;br /&gt;The fact is I've &lt;span style="font-style:italic;"&gt;lived&lt;/span&gt; in a number of these places, and seen directly how public policy affects peoples' daily lives; and all the number quoting of right-wing think-tanks doesn't remove the fact that societies that work towards social justice and equality are simply better places to live in all regards. &lt;br /&gt;&lt;br /&gt;If the US has been successful at creating a dynamic, competitive economy, it's because of hungry, driven immigrant entrepreneurs; not any of the usual right-wing canards.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4769591392421667776?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4769591392421667776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4769591392421667776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4769591392421667776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4769591392421667776'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/01/socialism-is-opposite-of-capitalism.html' title='&quot;Socialism&quot; is the opposite of Capitalism'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-6281298469055561523</id><published>2011-01-20T09:29:00.012+03:30</published><updated>2011-01-20T10:09:18.972+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>User-space C++ application tracing on Fedora using Systemtap</title><content type='html'>Ever since DTrace came out I realized how much &lt;span style="font-weight: bold;"&gt;that&lt;/span&gt; was what I really wanted to do whenever my program was doing something other than what I assumed it was doing. "Tracing" -- I &lt;span style="font-style: italic;"&gt;want&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;that&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Debugging is fine; but you need to have debug symbols, you need to pick the right spot in the code to break at, you have to keep manual track if you're tracing a long-running execution, and real-time applications may not play nice when paused for arbitrary periods. Often I would want to not follow a thread of execution up and down its call stack -- rather I'd be interested in the "cross-cutting concerns" -- how a certain variable changes over time.&lt;br /&gt;&lt;br /&gt;DTrace will never be coming to my favorite platform (GNU/Linux), but there is a similar library called &lt;a href="http://sourceware.org/systemtap/"&gt;SystemTap&lt;/a&gt; for Linux, which has had the Linux kernel instrumented for a while, but just recent has allowed tracing in user-space programs. I think you will need Fedora 14 to run user-space traces; at least that is what I am using. With the appropriate setup you can start tracing your own C++ applications without modifying the source.&lt;br /&gt;&lt;br /&gt;SystemTap uses "static" (preprocessor macro-based source code) probes that are compatible with DTrace; so if you decide to mark-up your source with these macros (as Java, Python, MySQL, et al. are) you can use DTrace or SystemTap depending on your platform. These probes are turned into no-ops when not in use, so they are &lt;span style="font-style: italic;"&gt;very&lt;/span&gt; fast. However the usage that I am interested in is &lt;span style="font-weight: bold;"&gt;ad-hoc&lt;/span&gt; tracing for the purpose of debugging or simple profiling. Thankfully for this case all you need is debug symbols.&lt;br /&gt;&lt;br /&gt;Once you have SystemTap installed, and your program compiled with symbols, you can write your custom probes. The syntax of the probes is beyond our scope, but you can &lt;a href="http://sourceware.org/systemtap/SystemTap_Beginners_Guide.pdf"&gt;read about it here&lt;/a&gt;. Instead I will post a simple "hello world" demo as follows:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#include &amp;lt iostream &amp;gt&lt;br /&gt;#include &amp;lt vector &amp;gt&lt;br /&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;namespace Baz&lt;br /&gt;{&lt;br /&gt;    struct Foo&lt;br /&gt;    {&lt;br /&gt;        int i; int n; float f;&lt;br /&gt;&lt;br /&gt;        Foo() : i (0), n (0), f (3.14) {}&lt;br /&gt;        Foo(int a, float b) : i (a), n (0), f (b) {}&lt;br /&gt;        Foo(Foo const &amp;c) : i (c.i), n (c.n), f (c.f) {}&lt;br /&gt;        ~Foo() {}&lt;br /&gt;&lt;br /&gt;        int dolart () { f += i; f /= 3.14; return 0; }&lt;br /&gt;        int dofizz (int a) { n = a; i += n; return n; }&lt;br /&gt;    };&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;    vector &amp;lt int &amp;gt test;&lt;br /&gt;    vector &amp;lt Baz::Foo &amp;gt list;&lt;br /&gt;&lt;br /&gt;    for (int i=0; i&lt;5; ++i)&lt;br /&gt;    {&lt;br /&gt;        test.push_back (i);&lt;br /&gt;        list.push_back (Baz::Foo (i, 1.1));&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    vector &amp;lt Baz::Foo &amp;gt::iterator i = list.begin();&lt;br /&gt;    vector &amp;lt Baz::Foo &amp;gt::iterator e = list.end();&lt;br /&gt;&lt;br /&gt;    for (int n=0; i != e; ++i)&lt;br /&gt;        i-&gt;dolart (), i-&gt;dofizz (++n); &lt;br /&gt;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And if we use the following "tapset" on the code&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;global lart_count&lt;br /&gt;global fizz_count&lt;br /&gt;global push_back_count&lt;br /&gt;&lt;br /&gt;probe process("a.out").function("Baz::Foo::do*").return &lt;br /&gt;{ if ($return == 2) printf("Foo returned 2!\n"); }&lt;br /&gt;&lt;br /&gt;probe process("a.out").function("Baz::Foo::dolart") &lt;br /&gt;{ ++lart_count; }&lt;br /&gt;&lt;br /&gt;probe process("a.out").function("Baz::Foo::dofizz") &lt;br /&gt;{ ++fizz_count; }&lt;br /&gt;&lt;br /&gt;probe process("a.out").function("vector &amp;lt * &amp;gt::push_back")&lt;br /&gt;{ ++push_back_count; }&lt;br /&gt;&lt;br /&gt;probe process("a.out").function("main").return&lt;br /&gt;{&lt;br /&gt;  printf("dolart was called %d times.\n", lart_count);&lt;br /&gt;  printf("dofizz was called %d times.\n", fizz_count);&lt;br /&gt;  printf("vector::push_back was called %d times.\n", push_back_count);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And run it as follows:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ g++ -g test.cpp&lt;br /&gt;$ sudo stap probe.stp -c ./a.out&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Then we should get the following result:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Foo returned a 2!&lt;br /&gt;dolart was called 5 times.&lt;br /&gt;dofizz was called 5 times.&lt;br /&gt;vector::push_back was called 10 times.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;A couple issues I noticed&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You must run this as root. This is because stap has to compile and load a kernel module that has enormous power to probe your system.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Seems to run a bit slow on the simple example. This could be one-time start-up due to compiling a kernel module, or it could be a real-time overhead of not using the cheaper static probes.&lt;/li&gt;&lt;li&gt;It seems to spew a lot of strange mangled C++ names for an unknown reason.&lt;/li&gt;&lt;li&gt;Constantly respecifying process("a.out") seems redundant. There's probably a way to get around this overhead.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-6281298469055561523?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/6281298469055561523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=6281298469055561523' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/6281298469055561523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/6281298469055561523'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2011/01/user-space-c-application-tracing-on.html' title='User-space C++ application tracing on Fedora using Systemtap'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-5397923779916731774</id><published>2010-11-29T08:22:00.002+03:30</published><updated>2010-11-29T08:23:37.055+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='society'/><category scheme='http://www.blogger.com/atom/ns#' term='civil rights'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><category scheme='http://www.blogger.com/atom/ns#' term='democracy'/><title type='text'>Authority must be Respected</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/TPMxugeDLYI/AAAAAAAABMU/NbGgjkJ5ACk/s1600/b204d4c74f69bb80047c7a5c949f.jpeg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 330px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/TPMxugeDLYI/AAAAAAAABMU/NbGgjkJ5ACk/s400/b204d4c74f69bb80047c7a5c949f.jpeg" alt="" id="BLOGGER_PHOTO_ID_5544830241282928002" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-5397923779916731774?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/5397923779916731774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=5397923779916731774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5397923779916731774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5397923779916731774'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/11/authority-must-be-respected.html' title='Authority must be Respected'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_mbtIA8_3IzU/TPMxugeDLYI/AAAAAAAABMU/NbGgjkJ5ACk/s72-c/b204d4c74f69bb80047c7a5c949f.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8575208475600916698</id><published>2010-11-11T22:21:00.007+03:30</published><updated>2010-11-11T22:33:41.675+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='adsense-is-shit'/><title type='text'>Fuck AdSense</title><content type='html'>I had it turned on just to see if I could ever generate some spare change from my minor musings, and in the some 3 years I've had it on I think I've accrued no more than $20 revenue.&lt;br /&gt;&lt;br /&gt;The unfortunate thing is each time I change countries, Google tells me I have to cancel my account and re-open a new one. Yet without a balance over $100, they won't bother sending you any money, and whatever it is you made just reverts to their general coffer.&lt;br /&gt;&lt;br /&gt;The bottom line is, unless you intend to pursue blogging as a (part-time) job, there is no point whatsoever in having adsense turned on -- it just makes your blog look petty.&lt;br /&gt;&lt;br /&gt;So I've turned it off, and I recommend you do the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8575208475600916698?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8575208475600916698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8575208475600916698' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8575208475600916698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8575208475600916698'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/11/fuck-adsense.html' title='Fuck AdSense'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-6029725209461101938</id><published>2010-11-01T06:48:00.018+03:30</published><updated>2010-11-01T08:07:31.776+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='society'/><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='children'/><title type='text'>Don't have kids?</title><content type='html'>I've read a couple on-line arguments about whether to have children or not; how the decision affects one's quality of life and whether or not there are moral implications to the decision.&lt;br /&gt;&lt;br /&gt;Some felt children cause an undesirable revolution in one's entire lifestyle; others felt a life without children was shallow and unfulfilling. The most interesting part of the discussion, I felt, was the observation that people (couples) who had decided not to have children often felt they were somehow judged to be "selfish" for their decision, and countered that what was really selfish was insisting on bringing a bunch of new "mini-me"s into an already overcrowded world. What was interesting was I somehow &lt;span style="font-style: italic;"&gt;agreed&lt;/span&gt; that there was some part of being electively childless that felt selfish, but couldn't immediately put my finger on why.&lt;br /&gt;&lt;br /&gt;My choice is obvious. I have a daughter, and couldn't imagine a life without my family. However, I think if you really feel you don't want children, you shouldn't have some just to satisfy some reactionary outside pressure to conform; that's not doing anyone long-term good. So why then do I feel there's something "off" about couples choosing to be childless?&lt;br /&gt;&lt;br /&gt;"Selfish" means making or taking advantage for one's own benefit. If anything, those who insist on making mini copies of themselves to have run about the world could be considered "selfish". Childless couples on the other hand are "self-centred": principally considering one's own point of view. They seek to avoid the &lt;span style="font-style: italic;"&gt;sacrifice&lt;/span&gt; to their lifestyle involved in having kids.&lt;br /&gt;&lt;br /&gt;Society is primarily defined as a network of responsibilities owed to one another that knits us together and makes us stronger as a group than as individuals. And responsibility is primarily a matter of sacrificing our individual desires to ensure our responsibility is met.&lt;br /&gt;&lt;br /&gt;We begin this process from birth, where our most immediate need is immediately translated into a responsibility for someone else to satisfy -- our consciousness is only capable of comprehending and expressing our own self-need. As we grow older, we learn about sharing (suppressing our need for acquisition and ownership for the benefit of others), chores (suppressing our free playtime for necessary duties), discipline (suppressing immediate gratification for delayed gratification), work (exchange time in unrewarding tasks for money) etc. We learn about family (before our selves), make friends (before our family), have girlfriends (before our friends), get married (one mate before all others), raise kids (before our mate) and so on. Our entire lives are spent learning how to strip a piece of our soul and use it as mortar for the future of our shared society. And when children grow up, they will take the foundation we left them, and start the cycle over again.&lt;br /&gt;&lt;br /&gt;In the end, &lt;span style="font-style: italic;"&gt;this&lt;/span&gt; is what people instinctively react to: electively childless couples have decided contribute to and enjoy the benefits of present society, but have abstained from helping build our common future. They are not dedicating the next 20 years of their life energy making sure the next generation is healthy and well adjusted; they're dissipating it for their own benefit.&lt;br /&gt;&lt;br /&gt;I can &lt;span style="font-style: italic;"&gt;guarantee&lt;/span&gt; you, no one looks at a childless couple who invents the cure for cancer as "selfish". No one thinks the childless couple who volunteers to teach children in Africa are "selfish". But maybe, just maybe, if you're a hipster spending your dual income on lattes, studio apartments,  and purse-sized "dogs", someone &lt;span style="font-style: italic;"&gt;might&lt;/span&gt; look down their nose at you when they stayed awake all night wiping the snot from a sick child's nose. And I don't think the genetic origination of said child matters; only that the child represents the next generation of our society.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-6029725209461101938?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/6029725209461101938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=6029725209461101938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/6029725209461101938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/6029725209461101938'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/11/dont-have-kids.html' title='Don&apos;t have kids?'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4525861177338824079</id><published>2010-08-12T16:11:00.002+04:30</published><updated>2010-08-12T16:12:17.519+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='teh funnay'/><title type='text'>You're wrong</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/TGPd-dQSG0I/AAAAAAAABLw/J-EgXIqNe78/s1600/gNXaO.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 320px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/TGPd-dQSG0I/AAAAAAAABLw/J-EgXIqNe78/s400/gNXaO.jpg" alt="" id="BLOGGER_PHOTO_ID_5504487234651429698" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4525861177338824079?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4525861177338824079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4525861177338824079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4525861177338824079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4525861177338824079'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/08/youre-wrong.html' title='You&apos;re wrong'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_mbtIA8_3IzU/TGPd-dQSG0I/AAAAAAAABLw/J-EgXIqNe78/s72-c/gNXaO.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7409444224883060657</id><published>2010-07-16T09:16:00.002+04:30</published><updated>2010-07-16T09:18:59.511+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='feminism'/><title type='text'>Women in Technology</title><content type='html'>An opinion offered by an actual woman in technology (eponymously known as "Jessica Boxer"; taken from a blog post I otherwise disagree with).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Firstly, I think the main reason women are less inclined to work in tech is because, as a general rule, women are much more sociable than men. I am sure you are aware of the good, evolutionary reasons why that is so. I believe this is more than a nurture thing, I think it is also to do with the way their brains are wired, which is notably different than the way men are wired. (This isn’t some handwavy opinion, it is a physiological fact.)&lt;br /&gt;&lt;br /&gt;Because they are more social, they tend to want to do things that involve sociability more. The scientist or programmer tends to be a lone wolf, spending most of his time talking to his computer or test tube, rather than interacting with people. This fits in considerably less well with the preferences of women. it is also why women who are in computing tend to drift toward the more social jobs, such as testing, tech support, management and GUI design.&lt;br /&gt;&lt;br /&gt;Secondly, because computing has tended to be dominated by males, the systems and processes that are in place tend to be more male oriented. for example, design meetings tend to be confrontational rather than consensus oriented, aesthetic is eschewed for functional, individual preferred to group. None of these are intrinsic properties of programming, neither are death marches for that matter. But the dominant class has set the system to their preferences, and so there is a feedback loop that decreases the attractiveness of programming to the less dominant group.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7409444224883060657?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7409444224883060657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7409444224883060657' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7409444224883060657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7409444224883060657'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/07/women-in-technology.html' title='Women in Technology'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1938115149227506985</id><published>2010-06-04T00:02:00.014+04:30</published><updated>2010-06-04T00:29:07.228+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='buddhism'/><title type='text'>Status and Navel-gazing</title><content type='html'>I never really knew what "self esteem" was supposed to mean. It always seemed to translate into "I think I'm better than others", and I regularly failed to see why that would be a good idea to be teaching that to kids. I guess &lt;a href="http://www.psychologytoday.com/blog/your-brain-work/200910/status-more-accurate-way-understanding-self-esteem"&gt;this excellent discussion of status&lt;/a&gt; makes it clear that "better than others" is precisely what self esteem is.&lt;br /&gt;&lt;br /&gt;I've often felt that modern society is somehow &lt;span style="font-style:italic;"&gt;unhappier&lt;/span&gt; than a perceived simpler past, and this article helps explain why I feel so: If status is self-esteem, and status is relative, then how we feel about ourselves is relative to what we have. And modern humans have &lt;span style="font-style:italic;"&gt;a lot&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;We feel rewarded when we gain some relative improvement in our lives. In a simpler world, there is a more direct line to incremental status improvements. Being the best in your village means besting only dozens of challengers for esteem.&lt;br /&gt;&lt;br /&gt;In a world where the simple achievements are common-place, we seek improving status in ever more circuitous, arduous routes. Even grand accomplishments seem hollow when you're comparing yourself to the global population. Even scaling the worlds highest mountain is blase -- a friend's brother is doing it right now!&lt;br /&gt;&lt;br /&gt;This is what makes buddhist philosophy more relevant today than ever, because it teaches us to find "status" in the things that are already around us, and quit searching out "hollow" status in harmful pursuits. Given our current pace of exploitation, what was once the "high-status" of possessing a clean source of water may yet come back in fashion due to scarcity.&lt;br /&gt;&lt;br /&gt;"Status" is a thing of &lt;span style="font-style:italic;"&gt;our&lt;/span&gt; creation, and we can choose to find it where we will; if we can tame a relentless nature.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1938115149227506985?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1938115149227506985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1938115149227506985' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1938115149227506985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1938115149227506985'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/06/status-and-self.html' title='Status and Navel-gazing'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7173152558614391953</id><published>2010-05-29T13:26:00.016+04:30</published><updated>2010-05-29T15:22:23.443+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Boost your Spirits</title><content type='html'>After struggling with &lt;a href="http://boost-spirit.com/home/"&gt;Boost.Spirit&lt;/a&gt; for a couple days, I've finally gotten my head around the parser component (Qi) enough I thought I might share.&lt;br /&gt;&lt;br /&gt;Most of the trouble getting things working is the same trouble one gets from most template-based libraries often found in Boost: since template programming is not based on a solid methodology (such as OO) that one can build intuition upon -- rather on C++ tricks or compile-time side effects, and the errors the compiler issues are nigh unreadable, when something goes wrong it's hard to know where or why.&lt;br /&gt;&lt;br /&gt;However Spirit is quite redeemable because frankly I'm not sure how many ad-hoc parsers I wish to write in my life-time. Spirit is a &lt;a href="http://en.wikipedia.org/wiki/Recursive_descent_parser"&gt;recursive descent parser&lt;/a&gt;, where the grammar is specified directly in C++, using C++ operators to build the parser. This means Spirit could be a quick and simple way to add parsing to your projects without a lot of effort. Spirit is limited to &lt;a href="http://en.wikipedia.org/wiki/LL_parser"&gt;LL(k) grammars&lt;/a&gt;, but most grammars one encounters are fairly simple, so this fits the bill quite ably.&lt;br /&gt;&lt;br /&gt;There is some good &lt;a href="http://www.boost.org/doc/libs/1_43_0/libs/spirit/doc/html/index.html"&gt;documentation and examples&lt;/a&gt; on the Boost site, so I won't be writing a tutorial. Instead I'll try to give you advice and help you conceptualize what's going on, so you have an easier time reading the tutorials.&lt;br /&gt;&lt;br /&gt;Basically, Spirit (or more accurately the Qi parsing component) has a beautiful design: parsers are built by joining simpler parse objects together, using overloaded C++ operators, to build complicated parsers. So,&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;char_&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;is a predefined boost::spirit::terminal (grammar[1]) that recognizes a single character.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;char_("a")&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;recognizes the single character 'a'.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;char_("a-z")&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;recognizes a single lower-case character from a to z.&lt;br /&gt;&lt;br /&gt;int_ recognizes integers, hex recognizes hexadecimal integers, double_ recognizes double precision floating point numbers, etc.&lt;br /&gt;&lt;br /&gt;Now using the grammar operators, we can recognize the following statement:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;{0xbeef}&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;as 48879 with the following grammar:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;char_('{') &gt;&gt; string("0x") &gt;&gt; hex &gt;&gt; char_('}')&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;If we had a list of such bracketed numbers, we could place a &lt;a href="http://en.wikipedia.org/wiki/Kleene_star"&gt;Kleene star&lt;/a&gt; in front[2] of the whole expression to recognize the list. The full detail of built-in parsers and grammar operators can be found in the documentation.&lt;br /&gt;&lt;br /&gt;Spirit has another interesting idea called a &lt;span style="font-weight:bold;"&gt;skip parser&lt;/span&gt;. Basically this is what's used to help tokenize the input by deciding what is &lt;span style="font-style:italic;"&gt;not&lt;/span&gt; semantically relevant. Usually the skip parser skips space and comments.&lt;br /&gt;&lt;br /&gt;For example, if comments are "//-to-eol" delimited, the following may be your skip grammar:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;ascii::space | "//" &gt;&gt; *(char_ - eol) &gt;&gt; eol;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;So now we have handled white-space and comments, and recognized our number, how do we read 48879 into our program?&lt;br /&gt;&lt;br /&gt;Each parser has an associated "&lt;span style="font-weight: bold;"&gt;attribute&lt;/span&gt;" that, in the case of terminals, is easy to deduce. For char_ it is &lt;span style="font-style: italic;"&gt;char&lt;/span&gt;, for int_ and hex it is &lt;span style="font-style: italic;"&gt;int&lt;/span&gt;, in the case of *double_ it is &lt;span style="font-style: italic;"&gt;std::vector&amp;lt;double&amp;gt;&lt;/span&gt;, and so on.&lt;br /&gt;&lt;br /&gt;Wait, how did that vector get in there? Good question. You see, the operator not only joins parsers together in a new modified parser, it joins the attributes together into a new modified type. For example if parser &lt;span style="font-weight: bold;"&gt;p&lt;/span&gt; has attribute &lt;span style="font-weight: bold;"&gt;a&lt;/span&gt; of type &lt;span style="font-weight: bold;"&gt;A&lt;/span&gt;, then parser &lt;span style="font-weight: bold;"&gt;*p&lt;/span&gt; has an attribute of type &lt;span style="font-weight: bold;"&gt;std::vector&amp;lt;A&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Each operator has its own modifier, and this is where things start to get messy. If you have built up recursively a fairly large grammar, the attribute type of the final grammar can be a mammoth unwieldy beast. This type (whatever huge amalgamation it may have turned out to be) is your output &lt;a href="http://en.wikipedia.org/wiki/Abstract_syntax_tree"&gt;AST&lt;/a&gt;. Even with simplifying rules, this is a bit of an unwieldy representation.&lt;br /&gt;&lt;br /&gt;The documentation tells you define your own sub-rules and sub-grammars so you can get a handle on the complexity, but my recommendation for non-trivial grammars is to skip this automatic attribute generation entirely, and use &lt;a href="http://www.boost.org/doc/libs/1_43_0/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html"&gt;semantic actions&lt;/a&gt; to manually construct your own custom intermediate representation. The result will be more verbose boiler-plate code, but a cleaner representation and ultimately more readable, understandable code.&lt;br /&gt;&lt;br /&gt;Quite simply, a semantic action is a callable object which is executed on successful recognition of a token. The parameter of the call is the attribute type. Since you are attaching functions to parsers at a low level, we don't have a problem with huge aggregate types. &lt;br /&gt;&lt;br /&gt;Going back to our original example, given the following grammar:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;*('{' &gt;&gt; lit("0x") &gt;&gt; hex &gt;&gt; '}'))&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;and the following test input:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;// my data!&lt;br /&gt;{0xabba}&lt;br /&gt;{0xfeed}&lt;br /&gt;{0xbeef}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;if we add a semantic action ("got_it()") as follows:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;std::list&amp;lt;int&amp;gt; list;&lt;br /&gt;&lt;br /&gt;void got_it (int n) { list.push_back (n); }&lt;br /&gt;&lt;br /&gt;*('{' &gt;&gt; lit("0x") &gt;&gt; hex[&amp;got_it] &gt;&gt; '}'))&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;We have a our own custom made representation built in easy to debug steps. Reading this is simple: "when a hexadecimal number is recognized, call a function which pushes the number onto a list".&lt;br /&gt;&lt;br /&gt;[1] Actually terminal doesn't appear to inherit from boost::spirit::qi::grammar at all.&lt;br /&gt;[2] Because it's the C++ deference operator*() overloaded, it goes in front, not behind as is traditional.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7173152558614391953?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7173152558614391953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7173152558614391953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7173152558614391953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7173152558614391953'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/05/boost-your-spirits.html' title='Boost your Spirits'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8102335639183719814</id><published>2010-03-19T09:37:00.001+03:30</published><updated>2010-03-19T09:39:10.892+03:30</updated><title type='text'>Work Culture</title><content type='html'>Someone asked me why the work culture in Japan is bad, especially for software engineers. Here's a partial list:&lt;br /&gt;&lt;br /&gt;# long, mostly wasted hours&lt;br /&gt;# endemically poor communication skills (regardless of fluency)&lt;br /&gt;# retarded skill level at all levels of the company&lt;br /&gt;# non-existent management ability&lt;br /&gt;# lack of engineering, or even rational mind-set&lt;br /&gt;# mind-set locked into meaningless habit&lt;br /&gt;# soul-crushing conformity everywhere&lt;br /&gt;# insane commutes, long and packed&lt;br /&gt;# lack of social connection with co-workers outside of late-night drinking&lt;br /&gt;# lack of connection outside of co-workers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8102335639183719814?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8102335639183719814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8102335639183719814' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8102335639183719814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8102335639183719814'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/03/work-culture.html' title='Work Culture'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4666625470204209830</id><published>2010-03-09T15:41:00.005+03:30</published><updated>2010-03-09T15:43:47.953+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='buddhism'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>All truism</title><content type='html'>Karma has long been considered a truism, but there is &lt;a href="http://www.wired.com/wiredscience/2010/03/kindness-spreads/"&gt;scientific evidence&lt;/a&gt; it's in fact a fundamental operating procedure of human relations.&lt;br /&gt;&lt;br /&gt;Ultimately it's why US's social welfare-poor political policies will only a continued drain on national potential; perhaps ultimately leading to it one day becoming a "failed state".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4666625470204209830?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4666625470204209830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4666625470204209830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4666625470204209830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4666625470204209830'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/03/karma-has-long-been-considered-truism.html' title='All truism'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7743254812563392534</id><published>2010-02-16T16:48:00.001+03:30</published><updated>2010-02-16T16:49:26.185+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>You're SCREWED</title><content type='html'>Note to self: &lt;span style="font-style:italic;"&gt;NEVER&lt;/span&gt; sign a contract not written in English. &lt;span style="font-style:italic;"&gt;ALWAYS&lt;/span&gt; get all promises in writing. &lt;br /&gt;&lt;br /&gt;You &lt;span style="font-style:italic;"&gt;CANNOT&lt;/span&gt; trust people simply because they're Finns, or "friends".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7743254812563392534?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7743254812563392534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7743254812563392534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7743254812563392534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7743254812563392534'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/02/youre-screwed.html' title='You&apos;re SCREWED'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2856580497971048992</id><published>2010-02-10T23:21:00.000+03:30</published><updated>2010-02-10T23:22:05.379+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>State of the Driver Stack in Linux</title><content type='html'>&lt;a href="http://www.informit.com/articles/article.aspx?p=1554200"&gt;Excellent article&lt;/a&gt;! Surprising find.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2856580497971048992?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2856580497971048992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2856580497971048992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2856580497971048992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2856580497971048992'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/02/state-of-driver-stack-in-linux.html' title='State of the Driver Stack in Linux'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4665718528901203890</id><published>2010-02-05T00:23:00.002+03:30</published><updated>2010-02-08T21:48:01.919+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Beautiful C++</title><content type='html'>It is possible.&lt;br /&gt;&lt;br /&gt;I think &lt;a href="http://github.com/sempuki/code/tree/master/signal/"&gt;this is possibly the most elegant code&lt;/a&gt; I've written as a professional programmer.&lt;br /&gt;&lt;br /&gt;A lot of thought went into making it that small and simple.&lt;br /&gt;&lt;br /&gt;Here's hoping it only gets better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4665718528901203890?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4665718528901203890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4665718528901203890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4665718528901203890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4665718528901203890'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/02/beautiful-c.html' title='Beautiful C++'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3464881041326573481</id><published>2010-01-20T22:38:00.001+03:30</published><updated>2010-01-20T22:38:56.183+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><title type='text'>ラナ子 Forever</title><content type='html'>スミコはどこから&lt;br /&gt;やってきたのでしょう&lt;br /&gt;スミコ、スミコ&lt;br /&gt;welcome、ん～、スミコ&lt;br /&gt;あなたの心の&lt;br /&gt;遠い思い出から&lt;br /&gt;スミコはやってくるのです&lt;br /&gt;スミコはどこかに&lt;br /&gt;帰るのでしょうか&lt;br /&gt;スミコ、スミコ&lt;br /&gt;goodbye、お～、スミコ&lt;br /&gt;あなたの心の&lt;br /&gt;あたたかい場所で&lt;br /&gt;スミコはいつもいっしょです&lt;br /&gt;大人はみんな、こわい顔&lt;br /&gt;それでいてみんな、さみしそう&lt;br /&gt;でもね、忘れないで&lt;br /&gt;笑顔あふれたあのころを&lt;br /&gt;なつかしくて&lt;br /&gt;あたたかで&lt;br /&gt;スミコはとてもかわいい子&lt;br /&gt;スミコ、スミコ&lt;br /&gt;できることなら&lt;br /&gt;いつまでも&lt;br /&gt;スミコ、スミコ&lt;br /&gt;forever、スミコ&lt;br /&gt;スミコは時々&lt;br /&gt;見えなくなります&lt;br /&gt;スミコ、スミコ&lt;br /&gt;come back、お～、スミコ&lt;br /&gt;あなたの心が&lt;br /&gt;汚れたときに&lt;br /&gt;スミコは見なくなるのです&lt;br /&gt;大人になれば&lt;br /&gt;辛いこと&lt;br /&gt;悲しいことが&lt;br /&gt;あるでしょね&lt;br /&gt;でもね、いつでも戻れる&lt;br /&gt;やさしかった、あのころに&lt;br /&gt;なつかしくて&lt;br /&gt;あたたかで&lt;br /&gt;スミコはとてもかわい子&lt;br /&gt;スミコ、スミコ&lt;br /&gt;できることなら&lt;br /&gt;いつまでも&lt;br /&gt;スミコ、スミコ&lt;br /&gt;forever、スミコ&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3464881041326573481?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3464881041326573481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3464881041326573481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3464881041326573481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3464881041326573481'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2010/01/forever.html' title='ラナ子 Forever'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2395945330935115471</id><published>2009-11-29T10:06:00.002+03:30</published><updated>2009-11-29T10:09:50.646+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='hiring'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><title type='text'>How he hires</title><content type='html'>&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class=" on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;img src="img/blank.gif" alt="Link" class="gl_link" border="0" /&gt;While ago I wrote an entry on &lt;a href="http://climbing-the-hill.blogspot.com/2008/06/every-thing-you-need-to-know-about.html"&gt;how I hire&lt;/a&gt;.Today I came across &lt;a href="http://www.aaronsw.com/weblog/hiring"&gt;this fellow opinion&lt;/a&gt;, which is similar to my own.&lt;br /&gt;&lt;br /&gt;I agree with the author, and this this is how you should hire too.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2395945330935115471?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2395945330935115471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2395945330935115471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2395945330935115471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2395945330935115471'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/11/how-he-hires.html' title='How he hires'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2851743983530958082</id><published>2009-11-29T00:12:00.001+03:30</published><updated>2009-11-29T00:13:50.339+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><title type='text'>The Essence of a Manager</title><content type='html'>I didn't write this, and I'm not sure it matters who did; only that it's true and bears memorialization.&lt;br /&gt;&lt;br /&gt;&lt;p style="font-style: italic;"&gt;Managers get to do a lot of knowledge-free decision making, which necessarily drives them insane. Here’s how the manager’s bipolar disorder works.&lt;/p&gt; &lt;p style="font-style: italic;"&gt;During maniacal periods, the manager is the only one who can do anything around here. This frequently happens when the manager is under external pressure, and he feels that control is slipping out of his hands. He’s trying to compensate for his lack of knowledge by immense concentration and willpower. (Managers always have ample emergency supplies of both.) “Concentration” translates to an ability to derive general and far-reaching conclusions from insignificant details, then “willpower” translates to aggression.&lt;/p&gt; &lt;p style="font-style: italic;"&gt;Then depression follows: “Don’t bother me with details”. This results partly from exhaustion quickly arrived at during the mania (especially if reports were wise enough to not argue with the manager, letting his efforts defeat their own purpose.) The manager has delivered his trademark concentration and willpower, so he no longer feels guilty on that front. However, he’s overwhelmed by information and (rightly) feels that he doesn’t know what’s going on. He decides it is none of his business and concentrates on the Big Picture (does nothing). Usually, the cycle repeats upon a new wave of external pressure.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2851743983530958082?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2851743983530958082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2851743983530958082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2851743983530958082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2851743983530958082'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/11/essence-of-manager.html' title='The Essence of a Manager'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-9018267402180080348</id><published>2009-09-27T12:34:00.007+03:30</published><updated>2009-09-27T12:54:00.341+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='travel'/><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><title type='text'>New Zealand</title><content type='html'>Much thanks to Mariusz for graciously hosting me in his home, and taking me out to see the sights with his family.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/Sr8tcp_9eMI/AAAAAAAAAVA/plwba6nYeUg/s1600-h/IMG_0203.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/Sr8tcp_9eMI/AAAAAAAAAVA/plwba6nYeUg/s400/IMG_0203.JPG" alt="" id="BLOGGER_PHOTO_ID_5386073649692113090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/Sr8riHQLbKI/AAAAAAAAAUg/SElii83Nf4k/s1600-h/IMG_0137.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 224px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/Sr8riHQLbKI/AAAAAAAAAUg/SElii83Nf4k/s400/IMG_0137.JPG" alt="" id="BLOGGER_PHOTO_ID_5386071544420854946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/Sr8u3oli4zI/AAAAAAAAAVQ/SifzZkHGQzs/s1600-h/IMG_0279.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/Sr8u3oli4zI/AAAAAAAAAVQ/SifzZkHGQzs/s400/IMG_0279.JPG" alt="" id="BLOGGER_PHOTO_ID_5386075212680979250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/Sr8so8p3VRI/AAAAAAAAAUw/kjEBTGchC1w/s1600-h/IMG_0322.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/Sr8so8p3VRI/AAAAAAAAAUw/kjEBTGchC1w/s400/IMG_0322.JPG" alt="" id="BLOGGER_PHOTO_ID_5386072761346512146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/Sr8tIIDmVeI/AAAAAAAAAU4/0EV9MN8DHvg/s1600-h/IMG_0420.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/Sr8tIIDmVeI/AAAAAAAAAU4/0EV9MN8DHvg/s400/IMG_0420.JPG" alt="" id="BLOGGER_PHOTO_ID_5386073296983184866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/Sr8uMwPS2cI/AAAAAAAAAVI/SjGDFcIGFd0/s1600-h/IMG_0303.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/Sr8uMwPS2cI/AAAAAAAAAVI/SjGDFcIGFd0/s400/IMG_0303.JPG" alt="" id="BLOGGER_PHOTO_ID_5386074476000762306" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-9018267402180080348?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/9018267402180080348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=9018267402180080348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/9018267402180080348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/9018267402180080348'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/09/new-zealand.html' title='New Zealand'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_mbtIA8_3IzU/Sr8tcp_9eMI/AAAAAAAAAVA/plwba6nYeUg/s72-c/IMG_0203.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1122172907802525275</id><published>2009-09-24T11:03:00.019+03:30</published><updated>2009-10-12T08:28:05.039+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Building Qt4 for Windows using MSVC 2008</title><content type='html'>&lt;ol&gt;&lt;li&gt;Make directories C:\Qt\src and C:\Qt\build (the build procedure &lt;span style="font-style: italic;"&gt;really&lt;/span&gt; doesn't like fancy paths, so &lt;span style="font-style: italic; font-weight: bold;"&gt;do&lt;/span&gt; use something this simple)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Download and unzip Qt Open Source SDK to C:\Qt\&lt;version&gt;src&lt;/version&gt;&lt;/li&gt;&lt;li&gt;Copy C:\Qt\src\qt\mkspecs C:\Qt\build\&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Open your Visual Studio Command Prompt&lt;/li&gt;&lt;li&gt;$ "bin\vcvars32.bat"&lt;/li&gt;&lt;li&gt;$ cd C:\Qt\src&lt;version&gt;&lt;/version&gt;&lt;/li&gt;&lt;li&gt;$ bin\qtenv.bat&lt;/li&gt;&lt;li&gt;$ cd qt\&lt;/li&gt;&lt;li&gt;$ configure -opensource -platform win32-msvc2008 -prefix C:\Qt\build&lt;/li&gt;&lt;li&gt;$ nmake&lt;/li&gt;&lt;li&gt;$ nmake install&lt;/li&gt;&lt;li&gt;set QTDIR=C:\Qt\build&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;note&lt;/span&gt;: Qt will hard-code the prefix path into it's binaries. It &lt;span style="font-style: italic;"&gt;cannot&lt;/span&gt; be relocated in the file-system.&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;note&lt;/span&gt;: if you get link errors warning about inability to find MOC-related problems (mine was in WebCore), you may want to delete the mocinclude.tmp file (src/3rdparty/webkit/WebCore/tmp/moc/{debug,release}_shared/mocinclude.tmp).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1122172907802525275?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1122172907802525275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1122172907802525275' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1122172907802525275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1122172907802525275'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/09/building-qt4-for-windows-using-msvc.html' title='Building Qt4 for Windows using MSVC 2008'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2690328296501537947</id><published>2009-08-29T12:04:00.002+04:30</published><updated>2009-08-29T12:17:35.354+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>The dawning of the Windows era</title><content type='html'>Recently the RSI stress in my right hand is becoming too much to bear. I needed to find a way to reduce the stress on my hands so I went to pick up Dragon NaturallySpeaking. The idea is, for me to use voice recognition to do regular English writing, such as e-mails, blogs, and other non-coding writing.&lt;br /&gt;&lt;br /&gt;Since trading NaturallySpeaking is a Windows only product, and the open source speech recognition tools are not nearly mature enough, this is meant that I've had to officially convert one of my machines to Windows. I think Dragon NaturallySpeaking can be made to work in wine, but when it comes to something as serious as my health I'd rather just bite the bullet, and exchange OS preference for physical comfort.&lt;br /&gt;&lt;br /&gt;I purchased a Compaq Mini 10 inch laptop, with Windows XP installed, so that I can take it into a quiet room in order to dictate. The first thing I did with the laptop is remove all the preinstalled software that came with the laptop, and installed from source alternatives like Firefox, OpenOffice, VideoLAN, and ClamAV.&lt;br /&gt;&lt;br /&gt;So far using Dragon NaturallySpeaking has been as smooth as silk, the error rate is extremely low, and if there is a mistake it's usually because I slurred my speech. In fact this whole blog entry has been dictated through Dragon NaturallySpeaking; in far less time and far more comfort than had I had to type it out. The only adaptation being having to think about what you say before you speak it,and make sure you enunciate clearly. it also includes a startlingly large dictionary with plenty of technical terms included such as Windows, Linux, Firefox, OpenOffice; all dictated directly without need for correction.&lt;br /&gt;&lt;br /&gt;If there is one drawback, it's that writing become so easy, there is a tendency to carry on far too long. :)&lt;br /&gt;&lt;br /&gt;Here's hoping someday open source speech dictation becomes as good as this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2690328296501537947?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2690328296501537947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2690328296501537947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2690328296501537947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2690328296501537947'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/08/dawning-of-windows-era.html' title='The dawning of the Windows era'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3797443904195739195</id><published>2009-08-22T10:32:00.004+04:30</published><updated>2009-08-22T10:39:22.116+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='conservatives'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Glenn Beck's "Common Sense" in all it's glory</title><content type='html'>Since amazon removed this scathing criticism of the book, I'll repost it for posterity. It'd be a shame to let something this good go to waste.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;647 of 678 people found the following review helpful: Don't Buy this Book - It's a Sham, August 10, 2009 By M. Mazenko&lt;/p&gt;  &lt;p&gt;Well, I just finished Glenn Beck's "Common Sense," which, according to Beck, was "Inspired by Thomas Paine." Beck has clearly never truly read Thomas Paine and knows very little about him, his history, or his beliefs. For many readers, pages one to seven seem to make a lot of sense. There are some general and specific criticisms about government spending and corruption in Congress I agree with. Who wouldn't? But Beck's attempt to connect his neo-conservative positions with Founding Father Thomas Paine is shockingly ignorant of both Paine and American history.&lt;/p&gt;  &lt;p&gt;Beck uses this book - and Paine's name - to criticize "Progressivism," blaming it for much of what ails the country. Sadly, this is a complete distortion of Paine's legacy. While the extent of most Americans' knowledge of Paine is "he wrote Common Sense, I teach his work in class every year. I use "The Crisis" and selections from "The Rights of Man" and "Age of Reason." If you want to understand Paine and his vision for America, you should read them. Beck doesn't understand Paine, but he does want to use the credibility of "The Founding Fathers" to promote an anti-government message.&lt;/p&gt;  &lt;p&gt;Far from opposing "progressivism," Thomas Paine is one of the original "Progressives," though at the time he was called a radical for his liberal views. He is commonly associated with the origins of American liberalism. "Common Sense" was one small piece of his work - it was a pamphlet simply designed to encourage revolution against Britain. Paine later clearly outlined his vision of what he thought American government should look like. This is where Beck falls off the apple cart.&lt;/p&gt;  &lt;p&gt;Beck uses this book to openly criticize progressive taxation, public education, social security, and "the progressive agenda." But readers should know something - Thomas Paine was one of the earliest advocates of progressive taxation, even drawing up tables and rates.&lt;/p&gt;  &lt;p&gt;He was also the first proponent of the estate tax. And in Agrarian Justice he proposed a democratic ideal to combat poverty and income inequality by taxing the wealthy to give jobs and "grants" to young people. He also proposed using this system to provide government-sponsored pensions for the elderly. Historians cite Paine's Agrarian Justice as the earliest call for a national old-age pension - ie. Social Security. He wanted to tax the rich and give money to the poor.&lt;/p&gt;  &lt;p&gt;He joined Thomas Jefferson in strongly advocating universal tax-supported public education, believing it was necessary to promote an educated electorate and was a necessary way to combat poverty. Paine also sought a federally guaranteed minimum wage, and long before Woodrow Wilson, Paine urged the establishment of, and US participation in, global organizations to help solve international problems and avoid wars.&lt;/p&gt;  &lt;p&gt;Yet, this is all lost on Glenn Beck.&lt;/p&gt;  &lt;p&gt;Beck criticizes Progressives for leading the United States away from its original purpose. He even goes as far as chastising Teddy Roosevelt. That's pretty bold for a guy whose only contribution to the United States has been as an entertainer. Has Glenn Beck completely forgotten "The Gilded Age"? While Beck, for whatever reason, is disturbed by progressive ideals, he fails to concede the un-democratic conditions that led to the desire of Americans for the rise of progressive reforms.&lt;/p&gt;  &lt;p&gt;In fact, if you look at American history from 1776 to 1900 and from 1900 to present, you will see that Beck is right in that progressives shaped America into the country that it is. It's one with a thriving middle class, reasonably safe food and water, no child labor, forty hour workweeks, etc. If Beck wants to dismiss Progressives and return to life under President McKinley or Harding with robber barons running the economy and the atrocious work conditions chronicled by Upton Sinclair in The Jungle, he's crazy. Beck has never known what it would be like to live in an America not guided by the leadership of progressives. Instead, he lives comfortably in a nation defined by liberal and progressive policies, and then audaciously challenges the very notion of the peaceful prosperity they provide.&lt;/p&gt;  &lt;p&gt;Beck ironically praises "our political leaders" that could inspire us to "defeat Nazism and fascism," and then goes on to criticize that leader - FDR - as helping destroy the country. Beck doesn't even concede that the United States would never have been able to wage WWII or build the Atomic Bomb or put a man on the moon or wage and win the Cold War if it weren't for the large-scale ability of the federal government to raise revenue, mainly through progressive taxation. He reviews the original foundation of the United States government in the Articles of Confederation, acknowledging that it failed because it was too weak, and then heaps his praise on the Constitution. However, he doesn't concede that the significant difference in power given to the federal government in the Constitution was the power to levy taxes. Even conservative Edmund Burke knew that "the revenue of the state is the state." Thus, weak revenue gathering equals weak government. And a weak federal government would never have been able to respond to two World Wars, the Cold War, and two Iraq wars.&lt;/p&gt;  &lt;p&gt;Beck goes on to criticize Hillary Clinton and the public education system for "suggesting the community has a vested interest in what each child is taught." Who doesn't believe that? He offers no alternative proposals for how education should be carried out. Though I hardly believe he is proposing the end of public education. That would be so un-Jeffersonian, another Founding Father.&lt;/p&gt;  &lt;p&gt;On page 99, Beck shifts from a scathing criticism of public education to promote God and religion in public life. This is completely disingenuous in a book "inspired by Thomas Paine." Paine was a deist who vigorously opposed Christianity or any organized religion. He often called himself an atheist. Paine was very anti-Christianity. He vehemently opposed the government supporting religion in any way. In fact, in his later life, he was practically exiled from the country because of his criticism of religion in America.&lt;/p&gt;  &lt;p&gt;A few other criticisms:&lt;/p&gt;  &lt;p&gt;On page 61, Beck paraphrases Barry Goldwater's quote, "A government big enough to give you everything you want is big enough to take everything you have," and doesn't even give the original mind credit.&lt;/p&gt;  &lt;p&gt;On page 17, Beck paraphrases the well-known "You can't save the poor by destroying the rich" quote from Reverend William J. H. Boetcke and again doesn't give credit. Historians and English teachers call this plagiarism.&lt;/p&gt;  &lt;p&gt;Finally, Beck writes a mere 111 pages, and then re-prints all of Paine's "Common Sense" which is in the public domain - and he charges $12.00 for the book. What a sham. I'm glad I checked it out of the library, but I hate that my library spent taxpayer funds on it. They should have waited until it was in the bargain bin for $.99&lt;/p&gt;  &lt;p&gt;That's why Beck is disingenuous. He is a hack, and while I occasionally enjoyed some of his earlier work - I've read all three of his books - I am sadly disappointed in this mis-use of one of America's Founding Fathers. Beck says Americans do not know their history, but he is one of them, and with this book he is counting on their ignorance. Ultimately, he is&lt;/p&gt;  &lt;p&gt;From what I know of American history, Thomas Paine would have been appalled by Beck associating their two ideologies, and he would have bitch-slapped Beck. And Beck would have deserved it.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3797443904195739195?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3797443904195739195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3797443904195739195' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3797443904195739195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3797443904195739195'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/08/glenn-becks-common-sense-in-all-its.html' title='Glenn Beck&apos;s &quot;Common Sense&quot; in all it&apos;s glory'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1952885654609241791</id><published>2009-08-18T23:19:00.004+04:30</published><updated>2009-08-18T23:38:35.810+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Handedness in coordinate systems</title><content type='html'>When I learned about handedness in coordinate systems, it was algebraically (AxB=C, BxA=-C), which is interesting but doesn't build much intuition. I enjoy analytic arguments, but ultimately it's the intuitive reasoning that tends to stick with me and inform new insights.&lt;br /&gt;&lt;br /&gt;I often had trouble remembering which meant which, staring at my hands trying to remember how "that stuff" went, looking rather silly the while. I recently wanted to recall what OpenGL and D3D respectively do, and came across &lt;a href="http://www.realtimerendering.com/blog/left-handed-vs-right-handed-viewing/"&gt;this discussion on real-time rendering&lt;/a&gt;, pointing out that even the pros get mixed up sometimes.&lt;br /&gt;&lt;br /&gt;His example gave me, finally, a good piece of intuition about handedness: label your thumb X, index Y, and middle Z.&lt;br /&gt;&lt;br /&gt;A right-handed coordinate system is what you have when you imagine your world relative to your desk: X goes east, Y goes north, and Z goes into the sky.&lt;br /&gt;&lt;br /&gt;A left-handed coordinate system is what you get when you imagine your world relative to your monitor: X goes right, Y goes up, and Z goes into the monitor.&lt;br /&gt;&lt;br /&gt;A perfectly good reason why modellers would prefer their object coordinates to be in a RHS, and programmers might convert it to LHS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1952885654609241791?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1952885654609241791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1952885654609241791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1952885654609241791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1952885654609241791'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/08/handedness-in-coordinate-systems.html' title='Handedness in coordinate systems'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-166289179113197369</id><published>2009-08-10T11:46:00.001+04:30</published><updated>2009-08-10T11:48:32.031+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='atheism'/><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>In Response to "There is a beautiful message in understanding God"</title><content type='html'>The debate about atheism rages on the Red Deer Express. I'll quote the original poster in case it disappears again.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;" class="linkcopy"&gt;There is a beautiful message in understanding God&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;!-- opinion #1 text --&gt; &lt;span style="font-style: italic;" class="newsdate"&gt;07/29/09&lt;/span&gt;&lt;br /&gt; &lt;span style="font-style: italic;" class="bodytext"&gt;&lt;br /&gt;In response to the article titled, “Clearing up misconceptions about Atheistic community”, the cry in the heart of a man to relate to a personal God that loves them was so poignantly expressed by Bryan Rowsell who said, “I do wish there was a God...Life would be so much simpler if we all had someone to listen to our problems, help us through crises and carry us to a  place more grand than this Earth.”&lt;br /&gt;&lt;br /&gt;The joy is that there is such a personal God. A living being that has feelings, one who created this world. One in whose image we are created.&lt;br /&gt;&lt;br /&gt;We long for friendships - and so does He long to be friends with us.&lt;br /&gt;&lt;br /&gt;I think of the wonderful hymn that states, “What a Friend we have in Jesus, all our sins and griefs to bare...”&lt;br /&gt;&lt;br /&gt;It is He who created the tree that Bryan Rowsell would get the seeds from to challenge Nancy Greenwood.&lt;br /&gt;&lt;br /&gt;And this loving God who created all things for us to enjoy, who wouldn’t want to experience such deep love from a personal Creator?&lt;br /&gt;&lt;br /&gt;Yes, many misrepresent Him to others, but that does not make Him non-existent or untouchable by anyone no matter what they have done or who they are.&lt;br /&gt;&lt;br /&gt;True science is observable and repeatable. If you boil water and I boil water, our results are the same. We find the temperature to boil water to also be the same.&lt;br /&gt;&lt;br /&gt;Since none of us was there to observe when this lovely world and everything in it started, we can only point to that “artistic works of an artist” like Greenwood mentioned as a point of understanding.&lt;br /&gt;&lt;br /&gt;The “evidence” in the theory of evolution is not always accurate. Piltdown man was a proven hoax and came from the tooth of a pig. Fossilized teddy bears are now on sale.&lt;br /&gt;&lt;br /&gt;Fossils can be produced in a short time with pressure and there are now fossilized hats on the market. So evolution regarding millions of years doesn’t add up any more.&lt;br /&gt;&lt;br /&gt;Evolution says there is an adaptation of the animal to its environment over a period of time. Giraffes couldn’t have evolved at all because medically it is impossible for them to bend down and drink water without rupturing blood vessels in their brains.&lt;br /&gt;&lt;br /&gt;Bryan Rowsell and others like him who are struggling are banking on so called evolutionary “evidence” to hold him away from a wonderful experience with Someone beyond our world.&lt;br /&gt;&lt;br /&gt;May I invite them to meet the most wonderful friend they will ever have, who loves them, cares about their every need, and laid down His life to give them life?&lt;br /&gt;&lt;br /&gt;This is the message that should be conveyed. It is a marvelous way to live now and in the future beyond the grave.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Padre Johnson&lt;br /&gt;Red Deer&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Padre Johnson correctly points out that science is observable and repeatable. He fails to remind us that it's purpose is to give us a consistent understanding of our observations in order to make correct predictions. When established scientific results, like the fossil record, make a prediction (for example "if you find a type of fossil at one layer of sediment, you can find another similar fossil in the same layer"), the prediction either helps scientists ("find fossils in a given layer") or doesn't and is rejected. It is selected for fitness to the observed world, not believed as a matter of faith.&lt;br /&gt;&lt;br /&gt;The Padre mentions Piltdown Man (http://en.wikipedia.org/wiki/Piltdown_Man) as an example of faked scientific fossil data. However the deception was started in 1912 and revealed conclusively in 1953. This is a strength of science, not a weakness, as the find was not simply accepted with blind faith, but was examined closely and eventually refuted. To quote the above article, "In the decades prior to its exposure as a forgery in 1953, scientists increasingly regarded Piltdown as an enigmatic aberration inconsistent with the path of hominid evolution as demonstrated by fossils found elsewhere."&lt;br /&gt;&lt;br /&gt;While we do no posses time machines to observe dinosaurs being fossilized, we can and do regularly observe and repeat experiments on the fossils themselves. Repeated experiments based on not just one technique of dating, but many different -- but ultimately agreeing -- methods. While it remains a ridiculously slim possibility that every single fossil -- out of millions unearthed an dated -- is an elaborate forgery, the far more likely conclusion is that it is just true.&lt;br /&gt;&lt;br /&gt;The strength of the scientific evidence is not simply that fossils exist, or missing links exist, or speciation occurs, or tectonic plates shift, or carbon dating is accurate, or any other single fact you can isolate and find ways of "debunking". The strength of the scientific evidence is that the facts **all agree with each other** with such consistency, and to such an astonishing degree of accuracy, that the only possibility for fraud is one of cosmic proportions.&lt;br /&gt;&lt;br /&gt;Either the world is as we see it, or god faked it that way in order to convince us at *every* turn, to such a degree that no *rational* man could possibly come to any other conclusion. Either we can understand our natural world through observation and rationalization, or we can only understand the world according to a single ancient book.  Unfortunately for theists, the modern world, including this internet, was created by people who did the former; and the dark ages and the inquisition were created by people who did the latter. &lt;br /&gt;&lt;br /&gt;It would be enjoyable to discuss the philosophy of science with theists if they didn't so consistently get their science so wrong. The Padre, mystifyingly, claims that "medically it is impossible for them to bend down and drink water without rupturing blood vessels in their brains", yet clearly here is video of a Giraffe doing just that...  http://www.youtube.com/watch?v=gbSAJKAF8O4 Perhaps the video has been faked -- after all it's easy to do with a computer.&lt;br /&gt;&lt;br /&gt;If theists wish to claim that their methods help an individual reach a higher state of emotional peace, then they are welcome to make a case, but in trying to fight a force they so poorly comprehend only serves to show up their lack of scientific education.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-166289179113197369?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/166289179113197369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=166289179113197369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/166289179113197369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/166289179113197369'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/08/in-response-to-there-is-beautiful.html' title='In Response to &quot;There is a beautiful message in understanding God&quot;'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7225606410296304454</id><published>2009-08-02T18:54:00.021+04:30</published><updated>2009-08-02T20:37:26.978+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='economics'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>An Explanation of the Economic of Open Source</title><content type='html'>When I was in University, not long after discovering a thing called "&lt;a href="http://en.wikipedia.org/wiki/Linux_distribution"&gt;Linux&lt;/a&gt;" and all the wonderful  &lt;a href="http://en.wikipedia.org/wiki/Free_software_movement"&gt;free software&lt;/a&gt; that came with it, I fell in love with &lt;a href="http://en.wikipedia.org/wiki/Open_source"&gt;Open Source&lt;/a&gt;. The ethics of openness and meritocracy really appealed to me. It just seemed to me to be the "right" way of doing things.&lt;br /&gt;&lt;br /&gt;However it was a source of some good humoured tension between myself and my colleagues, &lt;a href="http://en.wikipedia.org/wiki/Red_Hat_Linux#Version_history"&gt;circa Red Hat 6.0&lt;/a&gt;. Reaction against the idea of open source basically ranged from "anything given away for free can't be any good", to "very idealistic but it has no future since there is no way to make a living off of 'free'".&lt;br /&gt;&lt;br /&gt;When he came to speak with us at the &lt;a href="http://ucalgary.ca/"&gt;University&lt;/a&gt;, I asked the inventor of Java, Sun Fellow, and former Alum &lt;a href="http://en.wikipedia.org/wiki/James_Gosling"&gt;James Gosling&lt;/a&gt;, whether Java would ever be open sourced. He replied that this would be unlikely to ever happen, as no one had yet figured out an economic model for open source, and the quality of the software would likely remain below traditional proprietary products, since it could only be done by otherwise employed programmers in their free time -- not an uncommon sentiment at the time.&lt;br /&gt;&lt;br /&gt;Since then both of Sun's flagship products, &lt;a href="http://www.fsf.org/news/fsf-welcomes-gpl-java.html"&gt;Java&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/OpenSolaris#License"&gt;Solaris&lt;/a&gt; have been open sourced.&lt;br /&gt;&lt;br /&gt;Open Source is now big money, with &lt;a href="http://oss.oracle.com/"&gt;many&lt;/a&gt; &lt;a href="http://opensource.nokia.com/"&gt;largest&lt;/a&gt; &lt;a href="http://www.apple.com/opensource/"&gt;technology&lt;/a&gt; &lt;a href="http://www.microsoft.com/opensource/default.aspx"&gt;companies&lt;/a&gt; &lt;a href="http://www.ibm.com/developerworks/opensource"&gt;converting&lt;/a&gt; &lt;a href="http://software.intel.com/sites/oss/"&gt;their&lt;/a&gt; &lt;a href="http://www.novell.com/offices/opensourcecenter.html"&gt;product&lt;/a&gt; &lt;a href="http://www.sunsource.net/"&gt;lines&lt;/a&gt; to open source, and many open source companies enjoying &lt;a href="http://www.reuters.com/article/rbssTechMediaTelecomNews/idUSN2421958220090624"&gt;unprecedented profitability&lt;/a&gt;. What happened?&lt;br /&gt;&lt;br /&gt;To finally reply to Mr. Gosling, people figured out the economics of it, and the economics are good.&lt;br /&gt;&lt;br /&gt;Basically it's a sophisticated variation of a &lt;a href="http://en.wikipedia.org/wiki/Loss_leader"&gt;loss leader&lt;/a&gt;, like giving away razors so you can sell blades. Except you share the cost of developing razors (including R&amp;amp;D, which is significant for software) and development of the market (everyone already knows they need to shave, but not everyone knows they need a new "foobarizer" software); and all revenue thereafter is almost pure profit (as there is no manufacturing costs).&lt;br /&gt;&lt;br /&gt;As razors are hardware, once designed to specification they can be mass produced by the cheapest manufacturer -- which is how everything tangible you buy in a store is made in China. In software, however, there is no cost to manufacture; the cost to design correctly is the entirety of the production overhead.&lt;br /&gt;&lt;br /&gt;Since software is complex, and requires highly skilled, creative, and thus expensive designers; it cannot be out-sourced to the cheapest bidder. Companies that once made hardware, such as Intel and Nokia, are increasingly turning to software to help compete against strong Chinese companies good at cloning things.&lt;br /&gt;&lt;br /&gt;That may explain why software is popular, but how is open source in specific profitable if you're giving away the designs to your products for free?&lt;br /&gt;&lt;br /&gt;To get the complete picture of the economics of open source, I have reproduced the following  &lt;a href="http://www.reddit.com/r/programming/comments/96r5l/code_sharing_is_an_economic_surplus_phenomenon_it/c0bmhqp"&gt;reply I gave on reddit&lt;/a&gt; to &lt;a href="http://groups.google.com/group/comp.lang.lisp/msg/29f678c98842ea2d?dmode=source&amp;amp;output=gplain"&gt;this "old-school" take on open source&lt;/a&gt; economics by Erik Naggum.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;p&gt;The economics of open source are now well understood.&lt;/p&gt;  &lt;p&gt;The part that Erik missed was neither source code itself nor the time invested by a programmer, no matter how expert, is intrinsically economically valuable. What's valuable is source code that creates value for a customer.&lt;/p&gt;  &lt;p&gt;Let's say you create a library for Singular Value Decomposition. Good luck finding someone who finds that so valuable that they will pay you money for it. Maybe you can, but it'll take work to find such a person.&lt;/p&gt;  &lt;p&gt;Now let's say you open source that library, and share the burden of maintaining it with other programmers in the same situation with you. You have code that is the product of 10 programmers at the expense of 1.&lt;/p&gt;  &lt;p&gt;Now you have more time to integrate that library into a larger application, let's say one for visualizing complex data sets. Now you begin to start creating enough value that it's easy to find people who will pay you.&lt;/p&gt;  &lt;p&gt;But what if it's GPL? You've still created value, but things are not as simple as being able to just sell it as a software license.&lt;/p&gt;  &lt;p&gt;Well, no matter what you make, someone will always either manage to break it; or find some flaw they would like improvement in -- especially as time and market conditions change. So you sell support and contract upgrades.&lt;/p&gt;  &lt;p&gt;But since everyone else can just take a copy and distribute it themselves, won't you have endless competition?&lt;/p&gt;  &lt;p&gt;Well yes, but the hard truth is that's probably in your own long-term best interest. There is collective benefit to having competition.&lt;/p&gt;  &lt;p&gt;As the creator of the software you have competitive advantage amongst any pretenders; you know it best, and your superior skill will tend to win out in the end. So the only people you are really competing against are other experts.&lt;/p&gt;  &lt;p&gt;There are customers you cannot or will not serve yourself, that can be served well by your fellow competitors. Even if a competitor takes money out of your hand on one transaction, the fact that he even exists means the market for your goods is growing -- and in the aggregate -- you'll have more customers than if the market was entirely proprietary to you alone. Consumers will enjoy the competitive pricing and service, and will see it as an advantage over proprietary markets.&lt;/p&gt;  &lt;p&gt;Moreover, since you now share a common open market, your product stands a chance of becoming a de-facto standard, meaning it becomes the platform for launching ever more specialized, value-added extensions to the original product. Even as the platform loses value, it's corpse fertilizes the ground for the next generation of products, ever climbing upward.&lt;/p&gt;  &lt;p&gt;It's called "growing the pie", and is truly the healthy and productive free market at work; no "communism" or "sharing" anywhere. It's proprietary systems, trying to lock their own customers into traps they cannot escape to wring every last penny out, that is anti-free market.&lt;/p&gt;  &lt;p&gt;It's not &lt;em&gt;time&lt;/em&gt; (spend coding) that's economically valuable, it's the value that code creates for a customer. And if you don't know how your time creates value for customers, you don't deserve to be in business.&lt;/p&gt;&lt;/i&gt;&lt;br /&gt;So to the summarize the &lt;a href="http://en.wikipedia.org/wiki/Perfect_competition#Examples"&gt;economic proposition&lt;/a&gt; of open source:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Decide what it is you do that provides value to someone with money; which we'll call V.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Decide what is needed before-hand in order to enable V; a "platform", which we'll call P.&lt;/li&gt;&lt;li&gt;Begin designing and producing P, as pre-requisite business development overhead necessary for V.&lt;/li&gt;&lt;li&gt;Share P as open source, inviting outside participation in the evolution of P; a community of P of size N we'll call C.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;As you can see, the key to this strategy is the development and maturation of P through the cooperative efforts of C.&lt;br /&gt;&lt;br /&gt;With luck and management, the cost of development of P is divided by N. Moreover, as software creation is a highly creative task, the outside input from C has multiplied the value of P by N. On the down side, you also may have as many as N possible competitors to V.&lt;br /&gt;&lt;br /&gt;However recall that you specifically chose V to be something that'd be hard for others competitors to replicate. If you did a good job, your "competitors" products are actually &lt;a href="http://en.wikipedia.org/wiki/Strategic_complements"&gt;complementary&lt;/a&gt; to yours. If you did a bad job, you're no worse than any other firm in &lt;a href="http://en.wikipedia.org/wiki/Perfect_competition"&gt;perfect competition&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;With time, P grows and develops inertia that causes it to &lt;a href="http://en.wikipedia.org/wiki/Disruptive_technology"&gt;disrupt&lt;/a&gt; other similar (proprietary) platforms, lending V a competitive advantage because it uses P.&lt;br /&gt;&lt;br /&gt;As all technology follows a typical S-curve &lt;a href="http://en.wikipedia.org/wiki/Technology_lifecycle"&gt;life cycle&lt;/a&gt;, features lose value and migrate from V to P. This is natural and expected, and indeed necessary for the continued growth of P. New and more developed P enables newer and more valuable V.&lt;br /&gt;&lt;br /&gt;Like a shark, firms must always be re-evaluating V to ensure they're still giving a reason for consumers to pay for V.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7225606410296304454?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7225606410296304454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7225606410296304454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7225606410296304454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7225606410296304454'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/08/explanation-of-economic-of-open-source.html' title='An Explanation of the Economic of Open Source'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8076775153964598202</id><published>2009-07-29T14:16:00.001+04:30</published><updated>2009-07-29T14:16:33.405+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='teh funnay'/><title type='text'>I have no friends</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SnAacZD_1rI/AAAAAAAAAT8/ndNENUaeqyI/s1600-h/danbooruup12464821821402047499799-5723.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 379px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SnAacZD_1rI/AAAAAAAAAT8/ndNENUaeqyI/s400/danbooruup12464821821402047499799-5723.jpg" alt="" id="BLOGGER_PHOTO_ID_5363816231264573106" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8076775153964598202?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8076775153964598202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8076775153964598202' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8076775153964598202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8076775153964598202'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/07/i-have-no-friends.html' title='I have no friends'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_mbtIA8_3IzU/SnAacZD_1rI/AAAAAAAAAT8/ndNENUaeqyI/s72-c/danbooruup12464821821402047499799-5723.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8718502419595077053</id><published>2009-07-26T12:38:00.008+04:30</published><updated>2009-07-26T13:14:44.587+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='economics'/><category scheme='http://www.blogger.com/atom/ns#' term='education'/><title type='text'>Supply and Demand</title><content type='html'>It often annoys me to read about people complain about needing unsustainable ecologically unfriendly jobs because they need to put food on their table, or to hear how unfair it is that unskilled labor is being moved overseas; because I can't help but remember that those were probably the exact same people who, through lazy short-term their life choices, put themselves in that position. They took the "easy road", when the "hard road" -- choosing to train themselves in a profession that is in demand and thus pays well, wasn't very much extra work in the larger view of things.&lt;br /&gt;&lt;br /&gt;They partied away high school, skipped university to go take a job as a waiter or in retail, and suddenly woke up one day married with children and painted in a corner by the fact that they are entirely replaceable. They do nothing unique that can't be found in someone who will work for less. Since there are so many unskilled workers, they need more and more of such jobs in order to stem the tide of losses due to technology or outsourcing to third-world countries, that they will destroy their native environment -- their children's future, in order to make up for the fact that they themselves short-sightedly aborted their own economic future.&lt;br /&gt;&lt;br /&gt;What makes is a more bitter pill, is that in high school these were the same people who gave me a hard time, making my life difficult; teasing, bullying, but mostly just ostracisation. Now that I have given myself something economic value through a couple years of "hard" study, and have the freedom to work where and how I want, I am supposed to be sorry for those exact same people, and ask my government to pander to the proven short-term, self-destructive, who can't be bothered have invested 4 years into a "hard" degree?&lt;br /&gt;&lt;br /&gt;These are the &lt;a href="http://money.cnn.com/2009/07/24/news/economy/highest_starting_salaries/index.htm"&gt;top 15 highest paid university degrees&lt;/a&gt;. To be explicit, let me host the chart directly:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/SmwVNc0gSEI/AAAAAAAAAT0/V-8W3cRQ8k0/s1600-h/chart_top_earning_degrees.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 220px; height: 386px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/SmwVNc0gSEI/AAAAAAAAAT0/V-8W3cRQ8k0/s400/chart_top_earning_degrees.gif" alt="" id="BLOGGER_PHOTO_ID_5362684577110313026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Notice something in common in that list?&lt;br /&gt;&lt;br /&gt;If you don't have a degree, or your degree isn't one of the above, and you want the government to destroy our shared environment, or you want whinge about how you got replaced by someone who will do your unskilled labor for less money, STFU. It's supply and demand, and idiots are in oversupply.&lt;br /&gt;&lt;br /&gt;kthxbye.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8718502419595077053?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8718502419595077053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8718502419595077053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8718502419595077053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8718502419595077053'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/07/supply-and-demand.html' title='Supply and Demand'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_mbtIA8_3IzU/SmwVNc0gSEI/AAAAAAAAAT0/V-8W3cRQ8k0/s72-c/chart_top_earning_degrees.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-360200924922096584</id><published>2009-07-25T12:42:00.008+04:30</published><updated>2009-07-25T12:53:04.785+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='mexico'/><category scheme='http://www.blogger.com/atom/ns#' term='vacation'/><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><title type='text'>Vacation</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/SmrA2Lbjw7I/AAAAAAAAATs/tjSldCqcYEM/s1600-h/IMG_2658.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/SmrA2Lbjw7I/AAAAAAAAATs/tjSldCqcYEM/s400/IMG_2658.JPG" alt="" id="BLOGGER_PHOTO_ID_5362310343351845810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SmrAiZ4ZbYI/AAAAAAAAATc/wt9OrzpZljc/s1600-h/IMG_2648.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SmrAiZ4ZbYI/AAAAAAAAATc/wt9OrzpZljc/s400/IMG_2648.JPG" alt="" id="BLOGGER_PHOTO_ID_5362310003633515906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SmrAXpy35UI/AAAAAAAAATU/rrlN0AHzGcc/s1600-h/IMG_2607.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 224px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SmrAXpy35UI/AAAAAAAAATU/rrlN0AHzGcc/s400/IMG_2607.JPG" alt="" id="BLOGGER_PHOTO_ID_5362309818926753090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SmrAGHJZxSI/AAAAAAAAATM/qlBWe4cYHsA/s1600-h/IMG_2599.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SmrAGHJZxSI/AAAAAAAAATM/qlBWe4cYHsA/s400/IMG_2599.JPG" alt="" id="BLOGGER_PHOTO_ID_5362309517568230690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/Smq_rVkKwyI/AAAAAAAAATE/TKQ6mlnU0Xc/s1600-h/IMG_2520.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/Smq_rVkKwyI/AAAAAAAAATE/TKQ6mlnU0Xc/s400/IMG_2520.JPG" alt="" id="BLOGGER_PHOTO_ID_5362309057582121762" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-360200924922096584?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/360200924922096584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=360200924922096584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/360200924922096584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/360200924922096584'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/07/vacation.html' title='Vacation'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_mbtIA8_3IzU/SmrA2Lbjw7I/AAAAAAAAATs/tjSldCqcYEM/s72-c/IMG_2658.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1749168875069512701</id><published>2009-07-24T13:33:00.008+04:30</published><updated>2009-07-25T11:23:06.776+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='moblin'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>Moblin 2.0 Beta Impressions</title><content type='html'>&lt;ul&gt;&lt;li&gt;Boot is insanely quick. BIOS appears to take longer to come up.&lt;/li&gt;&lt;li&gt;Alpha software, not Beta. Crashes a lot. Functionality doesn't consistently work.&lt;/li&gt;&lt;li&gt;Reworked UI hints at amazing amount of promise. So many interesting new possibilities. So many of which are yet unrealized.&lt;/li&gt;&lt;li&gt;Pop-up activity menu: central means of task management. Saves a lot of screen real estate compared to windows/GNOME task bars. Can pop up unexpectedly when interacting with menus of your individual tasks. Not a lot of room for growth.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;MyZone: aggregates what you've been doing with the netbook recently. Kind of like a local facebook feed page. Privacy concerns: don't surf porn unless you want a thumbnail of the site in question on the first page you see after boot.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SmqnQ50CCrI/AAAAAAAAARU/bHVvQf-aErk/s1600-h/myzone.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SmqnQ50CCrI/AAAAAAAAARU/bHVvQf-aErk/s200/myzone.png" alt="" id="BLOGGER_PHOTO_ID_5362282215176800946" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Status: sets your presence info on IM and any web services. Interesting, but is this really a top-level task?&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/SmqngCzMFkI/AAAAAAAAARc/o5VsyRy0MF4/s1600-h/status.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/SmqngCzMFkI/AAAAAAAAARc/o5VsyRy0MF4/s200/status.png" alt="" id="BLOGGER_PHOTO_ID_5362282475287221826" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;People: add IM accounts and display their presence status. Can't IM directly from this screen. Doesn't feel finished design-wise.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SmqnrDbmmMI/AAAAAAAAARk/Q0dDNnQnFE8/s1600-h/people.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SmqnrDbmmMI/AAAAAAAAARk/Q0dDNnQnFE8/s200/people.png" alt="" id="BLOGGER_PHOTO_ID_5362282664435292354" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Internet: shows thumbnails of recently visited websites, and allows searching for or directly opening new sites. Nice and simple UI for the built-in WebKit-based browser.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SmqoYzn2GHI/AAAAAAAAARs/hbqbCD7Z7VY/s1600-h/internet.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SmqoYzn2GHI/AAAAAAAAARs/hbqbCD7Z7VY/s200/internet.png" alt="" id="BLOGGER_PHOTO_ID_5362283450465654898" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Media: searches and plays local video, sound, and image files. Nice and simple UI for known libraries, but missing features for importing new media or complex library management. No MP3 or other "non-free" codecs (see previous bog).&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SmqovbxdI7I/AAAAAAAAAR0/zU5giwHyGts/s1600-h/media.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SmqovbxdI7I/AAAAAAAAAR0/zU5giwHyGts/s200/media.png" alt="" id="BLOGGER_PHOTO_ID_5362283839200502706" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Pasteboard: a simple copy-n-paste UI? I think it's a shame that no previous OS had a clipboard management UI, but at this point we really need this as a top-level task? If it was integrated with pastebin.com however, it might be a different story.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/SmqpAVguDbI/AAAAAAAAAR8/hV2yrjZhATc/s1600-h/pasteboard.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/SmqpAVguDbI/AAAAAAAAAR8/hV2yrjZhATc/s200/pasteboard.png" alt="" id="BLOGGER_PHOTO_ID_5362284129577471410" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Applications: simple application finder. Non-Moblin apps, like Firefox and Terminal; and GNOME settings here. I changed my CAPS LOCK to a Ctrl key. :)&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SmqpRG6Z6ZI/AAAAAAAAASE/NMRC41n8xNY/s1600-h/applications.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SmqpRG6Z6ZI/AAAAAAAAASE/NMRC41n8xNY/s200/applications.png" alt="" id="BLOGGER_PHOTO_ID_5362284417716447634" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Zones: Moblin concept for window management. Seems like each application gets it's own virtual desktop. Interesting idea given such limited screen real estate, but the execution doesn't feel very comfortable.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/SmqpcToCAOI/AAAAAAAAASM/yKciqk_kZLM/s1600-h/zones.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/SmqpcToCAOI/AAAAAAAAASM/yKciqk_kZLM/s200/zones.png" alt="" id="BLOGGER_PHOTO_ID_5362284610107605218" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Applets: one for screen/power, sound, and wireless. Wireless applet doesn't show signal strength.&lt;/li&gt;&lt;li&gt;Calender: Seems to be local, underpowered thingy. It's 2009 FFS, if you can't integrate with a web-based calender, don't bother! Very very unimpressed, as calender is integrated with MyZone, which could have made it a very smart feature.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SmqqGwpnDKI/AAAAAAAAASU/zD540UiiihY/s1600-h/calender.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SmqqGwpnDKI/AAAAAAAAASU/zD540UiiihY/s200/calender.png" alt="" id="BLOGGER_PHOTO_ID_5362285339453361314" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Web Services: only integrates with twitter and last.fm, and as I don't use those, hard to say what this does. No Facebook integration is very disappointing.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/SmqqSsu5h6I/AAAAAAAAASc/0ad1EPoQzcI/s1600-h/webservices.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/SmqqSsu5h6I/AAAAAAAAASc/0ad1EPoQzcI/s200/webservices.png" alt="" id="BLOGGER_PHOTO_ID_5362285544560232354" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Web browser: flash built in. Simple and fast. UI similar to Safari. Opening links in tabs doesn't seem to work yet, and entering URLs manually works spottily, making it basically unusable for serious work. Did this blog in it, so it's just a matter of time before bugs are cleaned out.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/Smqq73m6q1I/AAAAAAAAASs/10X7VkQ-h14/s1600-h/web.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/Smqq73m6q1I/AAAAAAAAASs/10X7VkQ-h14/s200/web.png" alt="" id="BLOGGER_PHOTO_ID_5362286251854179154" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Media player: as expected clutter UI really shines here. Lots of thumbnails and animated progressions. Lacks complex importing such as from digital camera.&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SmqruztLHLI/AAAAAAAAAS0/8HQWBtm_Fos/s1600-h/media.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SmqruztLHLI/AAAAAAAAAS0/8HQWBtm_Fos/s200/media.png" alt="" id="BLOGGER_PHOTO_ID_5362287126980009138" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Email: appeared to understand my gmail account well enough to set up IMAP for it, but wasn't actually able to show me any of my emails.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/Smqqm1cyYDI/AAAAAAAAASk/NHUqap5RIcs/s1600-h/email.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 200px; height: 117px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/Smqqm1cyYDI/AAAAAAAAASk/NHUqap5RIcs/s200/email.png" alt="" id="BLOGGER_PHOTO_ID_5362285890497568818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Conclusions&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This is Alpha software. Lots of basic functionality is missing or spotty. Lots of foundational work yet needed. UI specifically needs much testing, as the technology under the surface is mostly proven.&lt;/li&gt;&lt;li&gt;Clearly shows the results of such an ambitious effort to redesign and rewrite so much of the basic desktop software stack. I just hope the team has the balls to continue forward, and not let it die because of the tough road it has chosen, because there is *so* much potential to do something truly new and make a substatial improvement over what is available today.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;As a *netbook* OS, one hopes for much better integration with existing web APIs. Specifically neither Google nor Facebook have any integration what so ever. Specifically I'd like to have the calendar and email applications handle web calendars and email as the primary use case.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1749168875069512701?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1749168875069512701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1749168875069512701' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1749168875069512701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1749168875069512701'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/07/moblin-20-beta-impressions.html' title='Moblin 2.0 Beta Impressions'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_mbtIA8_3IzU/SmqnQ50CCrI/AAAAAAAAARU/bHVvQf-aErk/s72-c/myzone.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2904718268612574249</id><published>2009-07-23T22:17:00.017+04:30</published><updated>2009-07-25T12:18:59.707+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='hacks'/><category scheme='http://www.blogger.com/atom/ns#' term='moblin'/><title type='text'>How to get GStreamer codecs working on Moblin 2.0 beta</title><content type='html'>Since the latest &lt;a href="http://moblin.org/"&gt;Moblin&lt;/a&gt; is based on &lt;a href="http://fedoraproject.org/"&gt;Fedora&lt;/a&gt; 10, we can install gstreamer-plugins-bad over yum to get most codecs working correctly. However, we'll have to hack things somewhat.&lt;br /&gt;&lt;br /&gt;Moblin uses the OpenSSL from F11, but libstdc++ 4.3 from F10. Since some media libraries seem to rely on both we will have to try to mix repositories carefully.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;download the latest &lt;a href="http://rpmfusion.org/Configuration"&gt;rpmfusion&lt;/a&gt; and &lt;a href="http://mirrors.fedoraproject.org/publiclist/Fedora/11/"&gt;fedora&lt;/a&gt; release rpms, as they contain all the yum repository configurations&lt;/li&gt;&lt;li&gt;force install rpmfusion release: &lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;$ rpm -Uvh --nodeps rpmfusion*release*.rpm&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;unpack fedora release: &lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;$ rpm2cpio fedora-release.rpm | cpio -idv&lt;/span&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;$ cp ./etc/yum.repos.d/* /etc/yum.repos.d&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;manually set configurations&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="font-style: italic;"&gt;$ sed -i 's/$releasever/11/' /etc/yum.repo.d/rpmfusion*&lt;br /&gt;&lt;/li&gt;&lt;li style="font-style: italic;"&gt;$ sed -i 's/$releasever/10/' /etc/yum.repo.d/fedora*&lt;/li&gt;&lt;li style="font-style: italic;"&gt;$ sed -i 's/enabled=1/enabled=0/' /etc/yum.repo.d/fedora*&lt;/li&gt;&lt;li style="font-style: italic;"&gt;$ sed -i 's/gpgcheck=1/gpgcheck=0/' /etc/yum.repo.d/fedora*&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;install dirac-libs from F10&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;$ yum install --enablerepo=fedora,updates dirac-libs&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;change to F11&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li style="font-style: italic;"&gt;$ sed -i 's/10/11/' /etc/yum.repo.d/fedora*&lt;/li&gt;&lt;li style="font-style: italic;"&gt;$ rm -rf /var/cache/yum&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;install the rest &lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt; $ yum install --enablerepo=fedora,updates --exclude=dirac-libs gstreamer-plugins-bad gstreamer-plugins-flumpegdemux gstreamer-ffmpeg&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2904718268612574249?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2904718268612574249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2904718268612574249' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2904718268612574249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2904718268612574249'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/07/how-to-get-non-free-codecs-workin-on.html' title='How to get GStreamer codecs working on Moblin 2.0 beta'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1824160632587118870</id><published>2009-07-10T23:01:00.004+04:30</published><updated>2009-08-10T11:07:24.522+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fundamentalists'/><category scheme='http://www.blogger.com/atom/ns#' term='atheism'/><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><title type='text'>In Reply to Nancy of Red Deer</title><content type='html'>I stumbled across this letter to the editor attacking atheists in in Red Deer, just north of Calgary. However, since it was near my home town, I thought i had a little bit of responsibility to say something. I submitted the following, but perhaps there are others who might be interested in debating.&lt;br /&gt;&lt;br /&gt;The original post has moved, so I'll archive it here:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;In response to the letter “Atheists have a problem claiming evidence to disprove God”, published in the July 1, 2009 paper, I think Johnnie Bachusky is using the media for free advertising for atheism especially now that he is the editor.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Unfortunately, the opinion of Kim Beach was another “same story” diatribe regarding this topic that Bachusky is using to sell papers.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Beach states there is no evidence for God. This is not true. There are some key factors involved in this thinking by atheists that are not usually published.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Being the hot topic of the day, any discussion of atheism, should include these ‘difficult to admit’ points:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Firstly, atheists claim that they themselves are god. They claim they have superior knowledge then the rest of us by trying to say that they have better knowledge because of their own thinking. They will not acknowledge anyone else to be above them.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Secondly, atheists have been hurt somewhere in their lives, can’t understand suffering, and are mad at God — so it is easier to deny there is one.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Thirdly, atheists are looking for God for the same reason a thief would be looking for a police officer. They don’t want to be accountable to a higher being because of the wrong things they do.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Fourthly, atheists forget that when a person goes to a museum and admires a painting, that there was a painter/designer of that art piece. The art piece is absolute evidence of a painter and not caused by random nothingness.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;All of the world, stars, animals, plants, oceans, and mountains are absolute proof of a divine intelligent being (beyond our human ability and thinking) who made these things.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Can the atheist make a tree? It is scientifically impossible for bees to fly (laws of physics) and yet they do. It is impossible for our eyes to see and yet they do. What more proof does an atheist need than their own heart pumping in their chest without them commanding their heart to pump each beat in perfect timing each and every second necessary?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Fifthly, denial is a strong coping mechanism in crisis, but does not serve anyone in the long run. Like an ostrich with its head in the sand, an atheist denies God not because God does not exist—but because the atheist doesn’t want God to exist and does not want to see the truth and evidence in front of their eyes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;I would rather believe in God and make sure my life is doing what is acceptable to this Superior Being than to not believe in God and find out I will be accountable to this God for everything I’ve done after I die. With 84% of the world’s population believing in the existence of God, I think the majority rules in this case.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;In closing, I would like to quote from the late Dr. J. Dominquez, MD, who said, “To be in error in Religion, is to have a ‘cancer in the soul’....it can ruin the only life on Earth, and the eternal one after Death. I am a Doctor in Medicine and Surgery. When I have a patient with cancer, I love the patient, but I hate his cancer, and I try my best to eradicate it from him... The ‘Greatest Love’ is to eradicate an ‘error’ from a person, even if it hurts!...and in fact, the ‘Greatest Love’ is to lay down your life to clean the sins, the bad karma, of your friends and foes, and to eradicate their errors once and for all...”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I wonder how it is Nancy is so certain of her points, given she has clearly not in fact ever talked to an atheist, only created a strawman in her mind to argue against. Let me try to let Nancy know what atheists do in fact think, so that her next letter will have something worth discussion.&lt;br /&gt;&lt;br /&gt;Firstly, atheists cannot think themselves god, because to them no concept of god exists. It makes as much sense as telling an atheist they must think they are unicorns. Atheists do not believe that their own personal "thinking" is "right", as if thinking existed separated from reality and is entirely subjective. That is the theist's point of view, where "thinking" comes not from a rational analysis of all existing facts, but from what is accepted on faith from a book or preacher, regardless of evidence to the contrary.&lt;br /&gt;&lt;br /&gt;What atheists do believe, is that the world we inhabit obeys predictable rules; and those rules can be discerned through a process called science. Science is a process that involves curiosity, objectivity, doubt, and progressive advancement in our collective state of understanding -- all things anathematic to faith. This has been thoroughly demonstrated throughout history as science continues to explain more and more of the universe -- including how eyes evolved[1] and bees fly[2] -- relegating religion to smaller and smaller dark corners where science hasn't yet gotten around to illuminating.&lt;br /&gt;&lt;br /&gt;All much to the continued benefit of the human race. It wasn't priests that invented the Internet that we are now using to discuss religion.  Religion, in past times, provided us comfort, explanation of the mysterious, and social support when we could get it from no where else; however we now have much more powerful ways of protecting and nurturing the human race, and we have out grown the need for religion.&lt;br /&gt;&lt;br /&gt;Secondly, we deny there is a Christian god the same way you deny there is a Zeus, a Shiva, or a tooth fairy -- we believe it's superstition.  You can't argue god exists by starting out with the assumption that god exists.&lt;br /&gt;&lt;br /&gt;And if we are to judge by who has been hurt and in need of a comforting by a supernatural father in the sky that makes everything right in the end, I am pretty sure atheists would not look so bad in the comparison.&lt;br /&gt;&lt;br /&gt;Thirdly, accountability is an interesting topic. Atheists believe in holding yourself accountable for what is right, as defined by biological altruistic[3] imperatives, and learned social norms as codified as the laws of our ancestors. Meaning a invisible man in the sky is not required to make violence or subjugation immoral. It's immoral because any society based on such practices would very quickly destroy itself, and be replaced with ones who didn't.&lt;br /&gt;&lt;br /&gt;If theists really believe that should the holy books be destroyed and memory of the passages be erased, that they themselves would instantly revert to evil without regard to their personal sense of right and wrong; that a single book is all that holds them back from praying on their fellow human beings mercilessly; then that is a scary group of humans I want my kids as far away from as possible!&lt;br /&gt;&lt;br /&gt;Fourthly, atheists know that evolution is not a process of "random nothingness", but a stochastic process that converges to a stable solution given time. It is rather involved to see how it's obviously true, and requires an actually opened mind. So short of requesting a return trip to school, I am afraid you will continue to believe it's impossible, and science will continue learn new things beyond your ability to accept[4] regardless.&lt;br /&gt;&lt;br /&gt;Fifthly, you're mistaken. Atheists do not believe god exists because there is no way for there to be a god, except by unsupported leap of faith.&lt;br /&gt;&lt;br /&gt;Moreover people willing to make such irrational leaps[5] based on what is read in a book or spoken by a preacher, tend to do poorly at making this world a nice place to live in[6] -- kind of a self-fulfilling prophecy whereby belief in a better afterworld makes you likely sacrifice each other in the one we currently inhabit.&lt;br /&gt;&lt;br /&gt;You also use Pascal's Wager, a much debunked argument[7]. Bottom line is while X% percent of the world may call themselves religious, the reality is those are all different religions, and in most of them, you go to hell with me. Perhaps you should worship all of them just to be safe?&lt;br /&gt;&lt;br /&gt;Lastly, I'll offer a quote from R. Dawkins PhD. to help start your reinvestigation into what atheists really believe: “After sleeping through a hundred million centuries we have finally opened our eyes on a sumptuous planet, sparkling with color, bountiful with life. Within decades we must close our eyes again. Isn’t it a noble, an enlightened way of spending our brief time in the sun, to work at understanding the universe and how we have come to wake up in it? This is how I answer when I am asked—as I am surprisingly often—why I bother to get up in the mornings.”&lt;br /&gt;&lt;br /&gt;[1] http://en.wikipedia.org/wiki/Evolution_of_the_eye&lt;br /&gt;[2] http://www.livescience.com/animals/060110_bee_fight.html&lt;br /&gt;[3] http://en.wikipedia.org/wiki/Altruism&lt;br /&gt;[4] http://www.newscientist.com/topic/evolution&lt;br /&gt;[5] http://www.telegraph.co.uk/news/uknews/2111174/Intelligent-people-less-likely-to-believe-in-God.html&lt;br /&gt;[6] http://www.cnn.com/2009/US/04/30/religion.torture/&lt;br /&gt;[7] http://en.wikipedia.org/wiki/Pascal%27s_Wager&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1824160632587118870?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1824160632587118870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1824160632587118870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1824160632587118870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1824160632587118870'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/07/in-reply-to-nancy-of-red-deer.html' title='In Reply to Nancy of Red Deer'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4371051740049639726</id><published>2009-06-20T10:14:00.004+04:30</published><updated>2009-06-20T10:19:52.838+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='stupid people'/><title type='text'>Where an illegal download is worth 3.33 a dead relative</title><content type='html'>I wonder what the thought process is when downloading &lt;a href="http://img40.imageshack.us/img40/9172/1245456677307.jpg"&gt;bad pop music is worth $80,000 per song&lt;/a&gt;. How do you calculate that?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4371051740049639726?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4371051740049639726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4371051740049639726' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4371051740049639726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4371051740049639726'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/06/where-illegal-download-is-worth-333.html' title='Where an illegal download is worth 3.33 a dead relative'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4261260947844519068</id><published>2009-06-18T10:19:00.000+04:30</published><updated>2009-06-18T10:20:08.312+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>Science is not faith</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/SlaCq3dKvvI&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/SlaCq3dKvvI&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4261260947844519068?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4261260947844519068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4261260947844519068' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4261260947844519068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4261260947844519068'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/06/science-is-not-faith.html' title='Science is not faith'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4877006905390566904</id><published>2009-06-17T11:17:00.002+04:30</published><updated>2009-06-17T11:20:07.320+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='world'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Solidarity</title><content type='html'>Changed my blog profile and time zone to Tehran, Iran in solidarity with democracy protesters.&lt;br /&gt;&lt;br /&gt;I guess in the end it's a fairly meaningless gesture, but it's better to do something small than nothing at all I think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4877006905390566904?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4877006905390566904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4877006905390566904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4877006905390566904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4877006905390566904'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/06/solidarity.html' title='Solidarity'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1536072780811102903</id><published>2009-06-13T18:23:00.000+04:30</published><updated>2009-06-13T18:40:34.632+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><category scheme='http://www.blogger.com/atom/ns#' term='finland'/><title type='text'>Suomipop</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/SjOxiZlyvnI/AAAAAAAAAQ0/6idczSCKQyg/s1600-h/IMG_2353.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/SjOxiZlyvnI/AAAAAAAAAQ0/6idczSCKQyg/s400/IMG_2353.JPG" alt="" id="BLOGGER_PHOTO_ID_5346812387161980530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/SjOx8lEtV6I/AAAAAAAAAQ8/2At6q6bDN1E/s1600-h/IMG_2369.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/SjOx8lEtV6I/AAAAAAAAAQ8/2At6q6bDN1E/s400/IMG_2369.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5346812836921038754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SjOy9MpNuYI/AAAAAAAAARE/2SLNQoO8G20/s1600-h/IMG_2406.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SjOy9MpNuYI/AAAAAAAAARE/2SLNQoO8G20/s400/IMG_2406.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5346813947054766466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SjOzQ2q-IqI/AAAAAAAAARM/hRyMOSkfGFo/s1600-h/IMG_2449.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SjOzQ2q-IqI/AAAAAAAAARM/hRyMOSkfGFo/s400/IMG_2449.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5346814284753937058" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1536072780811102903?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1536072780811102903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1536072780811102903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1536072780811102903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1536072780811102903'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/06/suomipop.html' title='Suomipop'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_mbtIA8_3IzU/SjOxiZlyvnI/AAAAAAAAAQ0/6idczSCKQyg/s72-c/IMG_2353.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7200513139707612373</id><published>2009-06-13T11:43:00.000+04:30</published><updated>2009-06-13T11:44:13.777+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='math'/><category scheme='http://www.blogger.com/atom/ns#' term='teh funnay'/><title type='text'>Never have hairy balls been so interesting</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Hairy_ball_theorem"&gt;As seen on TV&lt;/a&gt;. Perhaps not, sadly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7200513139707612373?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7200513139707612373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7200513139707612373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7200513139707612373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7200513139707612373'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/06/never-have-hairy-balls-been-so.html' title='Never have hairy balls been so interesting'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8190996438861392183</id><published>2009-06-07T12:21:00.000+04:30</published><updated>2009-06-08T11:17:32.286+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtual worlds'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>On Platforms and the Convergence of 2D and 3D Internet</title><content type='html'>Working in &lt;a href="http://en.wikipedia.org/wiki/Virtual_world"&gt;Virtual Worlds&lt;/a&gt;, we are often given to wonderful discussions about what the future will hold for the Internet, and when and how various technologies will converge.&lt;br /&gt;&lt;br /&gt;One popular school of thought is that virtual worlds should be embedded in existing web browsers as "light" plug-ins -- in order to make installation easy, and leverage history's most popular connected application platform.&lt;br /&gt;&lt;br /&gt;The other is that there should be a "heavy" viewer designed completely around a unique virtual world experience; which happens to contain a superset of features, including web-browsing.&lt;br /&gt;&lt;br /&gt;I belong to the second school; and in fact that opinion had lead to conflicts within my &lt;a href="http://www.virtualworldsnews.com/2008/09/3di-announces-b.html"&gt;previous company&lt;/a&gt;. Thankfully, my &lt;a href="http://www.realxtend.org/"&gt;current employer&lt;/a&gt; very much shares my vision.&lt;br /&gt;&lt;br /&gt;However there are many in the first camp, and I am sometimes asked why I will not join them, especially in light of &lt;a href="http://www.khronos.org/news/press/releases/khronos-launches-initiative-for-free-standard-for-accelerated-3d-on-web/"&gt;recent&lt;/a&gt; &lt;a href="http://code.google.com/apis/o3d/"&gt;developments&lt;/a&gt; specifically aimed at bringing 3D to web browsers. Let me try to explain why despite all the momentum for adding 3D to web browsers:&lt;br /&gt;&lt;br /&gt;I believe placing a 3D virtual world viewer within a 2D web viewer is somewhat comparable to embedding a gopher viewer, or ftp viewer, or email viewer within a web browser -- it's of course been done, but it's backwards, leads to awkward results, and has never proven to be very popular.&lt;br /&gt;&lt;br /&gt;In the long term, computer code is plastic. If the world decided to morph a web browser into a 3D application platform overnight, there is no technological reason why it couldn't happen. So the question of where to put certain features is more ideological, metaphorical, or about user interaction concerns&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;What is a web browser?&lt;/h1&gt;&lt;br /&gt;Is it the ultimate convergence point for anything internet-related? Is it a new OS that should have it's &lt;a href="https://wiki.mozilla.org/Canvas:3D"&gt;own version of OpenGL&lt;/a&gt;? Is it just a safer sandbox for internet applications that the OS itself?&lt;br /&gt;&lt;br /&gt;For me, issues of security or specific features are not interesting. Clearly any application platform needs to constrain the ways in which hosted applications can access raw resources. And clearly the needs of the platform evolve over time, and that requires adding new APIs.&lt;br /&gt;&lt;br /&gt;For me, the question of what makes a web browser is a question of design, and mental modes; and how the totality of those decisions affect the expressiveness of applications written for the platform.&lt;br /&gt;&lt;br /&gt;A web browser, for me, is a &lt;span style="font-style: italic;"&gt;transaction&lt;/span&gt;-oriented &lt;span style="font-style: italic; font-weight: bold;"&gt;2D&lt;/span&gt; &lt;span style="font-style: italic;"&gt;document&lt;/span&gt;-centred internet application platform. A virtual world viewer is a &lt;span style="font-style: italic;"&gt;stream&lt;/span&gt;-oriented &lt;span style="font-style: italic;"&gt;real-time&lt;/span&gt; interactive &lt;span style="font-weight: bold;"&gt;3D&lt;/span&gt; &lt;span style="font-style: italic;"&gt;scene&lt;/span&gt;-centred internet application platform. I am not sure there exists any easy abstraction that allows one to fluidly translate concepts between categories. The commonality that they host applications that run on the internet is not enough to unite disparate modes, and inform the design of a coherent platform.&lt;br /&gt;&lt;br /&gt;Web browsers will indeed need 3D features. But they way in which 3D will be used on the web will be document-oriented, and happen in transactions (not real time). Things like e-commerce catalogues can be made available in full 3D. Any number of static scenes relating to the host web document will add a lot of value -- the way embedded streaming video adds value to many current websites.&lt;br /&gt;&lt;br /&gt;But World of Warcraft will never run in Firefox (not at least without a severe redefinition of "browser", "runtime", or "OS").&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;What is a platform?&lt;/h1&gt;&lt;br /&gt;What might the average computer look like in 10 years from the perspective of application platforms?&lt;br /&gt;&lt;br /&gt;I feel that each computer will consist of several rings or layers of runtime platform:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Native: applications are programmed against the native OS libraries, and constrained by native OS security model (ex: win32, POSIX, OpenGL, etc.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Managed: applications are programmed against a large, general purpose, coherent, high-level API; and run in a virtual machine with detailed, explicit, and programmable security model (.NET, Java, Python, etc.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Internet: applications are programmed against a special-purpose API, with clearly defined semantics, which is exposed though a common data model (the DOM for web) and standard set of operating primitives (HTTP for the web); security model is highly sandboxed, limiting access to private data where not explicitly required by the data model or operating primitives (IE, Firefox, and one day Virtual World Viewers?)&lt;/li&gt;&lt;/ol&gt;I expect that in the future, each computer will come equipped with one OS, a handful of managed runtimes, and precisely two internet application platforms: a web browser and a virtual world viewer.&lt;br /&gt;&lt;h1&gt;How would the web look in a VW viewer?&lt;/h1&gt;&lt;br /&gt;I think it would be wrong to assume that because 2D embeds in 3D mathematically, that the web browser should go away -- entirely subsumed in a 3D viewer. That really ignores the long and ongoing history of humans quite preferring to do a lot of their most abstract work in 2D documents. It would also really undermine my own argument that the web and VWs are really very different modes of interaction.&lt;br /&gt;&lt;br /&gt;Instead, I believe that the VW viewer will know of the system's web browser, and rely on it directly for all web-related tasks. Examples might be embedding a browser window for the purpose of authenticating with an OpenID or oAuth provider for some network resource, such as gaining access to your facebook profile, or to send emails through gmail. Web applications like Google Apps would also make a simple and effective document sharing service available from within a virtual space.&lt;br /&gt;&lt;br /&gt;So from a user's perspective, the web browser would be rendering elements of the regular user interface, or displaying discrete web pages in an integrated manner without appearing as a full web browser. There will also be cases of rendering to texture in order to display web pages as in-world objects, but their purpose will be peripheral.&lt;br /&gt;&lt;br /&gt;As a some what related aside, I find it constantly amusing to see VW implementers try to embed 2D documents in 3D spaces. With few exceptions, there is no benefit whatsoever to being able to see your spread sheet in perspective projection as a texture. Give me a use case where having 2D documents in 3D is more than a gimmick, and I'll give you a modified use case where dimensionality is irrelevant, and the interaction feels much more natural.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;Not just the browser&lt;/h1&gt;&lt;br /&gt;Other internet applications that I feel should not be subsumed within the virtual world viewer, but instead should integrate smoothly with them using an &lt;a href="http://www.freedesktop.org/wiki/Software/dbus"&gt;inter-process communication channel&lt;/a&gt; are things like E-mail, IM/Chat networks, Streaming Media, Office programs, etc.; all of which are regular desktop applications that the viewer calls out to in response to in-world stimulus; or alternatively, will respond in-world to a stimulus from the user's desktop.&lt;br /&gt;&lt;br /&gt;Imagine a "meet in-world" button on your IM client, or having the streaming audio in your virtual home synced with your current desktop play-list (or vice versa).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8190996438861392183?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8190996438861392183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8190996438861392183' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8190996438861392183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8190996438861392183'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/06/on-convergence-of-2d-and-3d-internet.html' title='On Platforms and the Convergence of 2D and 3D Internet'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3537292419628248392</id><published>2009-06-06T21:10:00.000+04:30</published><updated>2009-06-07T16:00:45.691+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='idiots'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Why Windows is not yet ready for the Desktop</title><content type='html'>I don't spend my time telling other people which OS should or shouldn't suit their way of working. But it seems there are &lt;a href="http://linuxfonts.narod.ru/why.linux.is.not.ready.for.the.desktop.html"&gt;people who do&lt;/a&gt;, and like to get blog hits for it.&lt;br /&gt;&lt;br /&gt;The problem with these "critiques" is always that the author is carrying around the self-serving assumption that their preferred OS embodies the only real way to organize a software ecosystem, and all others have inferior value. Moreover, since they are naturally only looking for a way to justify their existing pre-conclusion, they are often sadly misinformed about most of their "complaints", half of which are either entirely subjective, or just flat-out wrong.&lt;br /&gt;&lt;br /&gt;And it is thus that I find myself moved enough to mock their contribution to the state of public discourse as follows (&lt;a href="http://linuxfonts.narod.ru/why.linux.is.not.ready.for.the.desktop.html"&gt;&lt;span style="font-weight: bold;"&gt;public service announcement: this is tongue-in-cheek parody&lt;/span&gt;&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;Preface:&lt;br /&gt;&lt;br /&gt;In this document we only discuss Windows deficiencies while everyone should keep in mind that there are areas where Windows has excelled other OSes.&lt;br /&gt;&lt;br /&gt;A primary target of this comparison is Linux OS.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Windows major shortcomings and problems:  &lt;/p&gt;&lt;p&gt;0. &lt;b&gt;Premise&lt;/b&gt;: free and open software will stay indefinitely. Full stop. You may argue eternally, but free software is the ultimate disruptive technology, moving up from the low ground, replacing complicated and ill-fitting proprietary alternatives at every turn, such as web-browsers, e-mail clients, video players, office software, etc., which at one point cost money, but now most people find that they can no longer justify spending money to buy an upgrade for more "Clippy the Happy Assistant". Proprietary software will only be able to stay relevant by searching out ever more niche applications, or by massive expenditure on research in high-end applications for which it will take time for the ideas and algorithms to filter down to the greater community, and thus a brief window of profitability will remain. Software patents are nothing but a destructive force to retard innovation, and with more and more of the technology and legal communities realizing this basic fact, software patents are about to go away forever. &lt;/p&gt;1. Security&lt;br /&gt;&lt;br /&gt;1.1 History's greatest playground for malicious software. With unpatched machines on the internet taking only minutes to become infested with viruses, or become a slave bot for massive illegal spamming operations, Windows is a blight on the Internet's infrastructure.&lt;br /&gt;&lt;br /&gt;1.2 Countless applications are released every year with obvious security holes. The programmers that make Windows applications are clearly some of the worst.&lt;br /&gt;&lt;br /&gt;1.3 Microsoft has countless times avoided appropriate steps to secure the OS and limit the potential damage a compromised binary could cause. It has consistently either or added half-measures, out right refused to take necessary steps to ensure a safer computing environment for all users, for fear of making "Auntie Jo'" 10% more confused about the "1.3GHz hard drive" on her desk.&lt;br /&gt;&lt;br /&gt;1.4 Every windows application I've ever installed messes with the Registry, places files about my hard drive which it never cleans up, installs icons, or worse surreptitiously installs spy- or ad-ware.&lt;br /&gt;&lt;br /&gt;1.5 Any OS that regularly requires a wipe and reinstall to fix is beyond tolerance by any sane person.&lt;br /&gt;&lt;br /&gt;1.6 A galore of software bugs across all applications. Just look into Vista, or call Microsoft tech support, pay exorbitant support fees, then wonder why some bugs are now ten years old with over several dozens of duplicates and no one is working on them.&lt;br /&gt;&lt;br /&gt;2. User Interface&lt;br /&gt;&lt;br /&gt;2.1 No consistent API. Win32? MFC? WinForms? WPF?&lt;br /&gt;&lt;br /&gt;2.2 No scripting bindings for UI programming. No Python, Perl, Ruby, Java, etc.&lt;br /&gt;&lt;br /&gt;2.3 Themeing and skinning support is laughable. Widget toolkit, display, rendering, input, and window managers, are all joined in a ridgid, monolithic blob, opaque to outside developers. Non-trivial changes to look and behaviour of the UI require either proprietary add-ons or third-party hacks; and even then most of your choices are hard-coded by Microsoft designers.&lt;br /&gt;&lt;br /&gt;2.4 Lack of CLI (command line interface) errors for user applications (see clause 4.). All GUI applications should have a CLI errors presentation. Why on earth would you flash some crazy warning message to the user when you should be logging it to a file for a skilled technician to view instead of the poor unsuspecting end-user.&lt;br /&gt;&lt;br /&gt;3. Interoperability&lt;br /&gt;&lt;br /&gt;3.1 Windows has NO interoperability with non-Windows OSs. Installing Windows arrogantly destroys any previous OS boot-loader you may have had. Totally unable to read non-FAT or NTFS partitions.&lt;br /&gt;&lt;br /&gt;3.2 Windows ships no other runtime environments except .NET. Has actively tried to disable or cripple competing platforms such as Netscape or Java.&lt;br /&gt;&lt;br /&gt;3.3 Microsoft is in regular legal trouble for monopolistic and anti-competitive practices, which as a consumer of non-Microsoft products, means Microsoft considers me an enemy. Why own an OS that is constantly out to defeat you, from a vendor that requires massive anti-trust lawsuits to force it to simply not behave in an under-handed manner?&lt;br /&gt;&lt;br /&gt;3.4 It should be possible to configure &lt;span style="font-weight: bold;"&gt;everything&lt;/span&gt; from the command line. Why should I give myself a work-place injury clicking everywhere with the mouse like a &lt;a href="http://en.wikipedia.org/wiki/Tweaking_%28behavior%29"&gt;tweaking&lt;/a&gt; junkie in order to make a change that could be described succinctly in a line or two of text?&lt;br /&gt;&lt;br /&gt;4. Drivers&lt;br /&gt;&lt;br /&gt;4.1 Windows driver support is so abysmal, each individual device manufacturer must ship drivers with the device itself. If you have to reinstall windows, none of your devices will work until you individually download and install the latest versions from each vendor's website, potentially consuming many long frustrating hours.&lt;br /&gt;&lt;br /&gt;4.2 Drivers often need to be installed, tweaked, or configured before they can even be used as intended. They often don't work "out of the box". Moreover, they never seem to be *just* drivers, there is always some application that gets installed without your consent which provides questionable value yet consumes resources and slows your computer down.&lt;br /&gt;&lt;br /&gt;4.2 Drivers are one of the main sources of system instability (likely just behind viruses/malware). Poor quality drivers make Windows experience painful.&lt;br /&gt;&lt;br /&gt;4.3 Windows has no means to reliably update drivers when critical updates have been made available for them.&lt;br /&gt;&lt;br /&gt;4.4 A lot of Linux specific embedded devices do not have &lt;i&gt;any&lt;/i&gt; Windows support. An argument that embedded device developers should make their device Windows compatible is silly since that way Windows won't ever gain even a traction of popularity among people who need source-level access to the OS. Why should I install an OS where my own hardware doesn't work?&lt;br /&gt;&lt;br /&gt;5. Installing Applications&lt;br /&gt;&lt;br /&gt;5.1 Very few Windows applications, by volume, are free or open source; which means you are totally beholden to application developer in ways that would never be allowed by law for makers of physical products. Happen to have your business critical data in a proprietary format when your license runs out? Lost your dongle just before the big presentation? Had to transfer your application to another computer because your laptop was stolen? Sorry to hear you just went out of business.&lt;br /&gt;&lt;br /&gt;5.2 Windows has no regular time-based release cycle. You paid good money for a few features and a lot of bugs. It may be a few years from now when you can expect them truly fixed, but you can't count on it. And you'll have to pay again.&lt;br /&gt;&lt;br /&gt;5.3 Windows has no central means of downloading new software, their dependencies, or upgrades. Each new application must be purchased from a physical store, or from each individual vendor's website. There is no dependency tracking (or worse no library sharing!), and updating for security, bug-fixes, or features is ad-hoc and entirely dependent on the whim of the vendor. Likely the vendor will use remote updating features to unethically sneak updates to your computer without your knowledge.&lt;br /&gt;&lt;br /&gt;5.4 Windows comes almost barren on a fresh install. To get your machine back to a usable state, you must spend hours remembering what applications you had installed, and manually downloading and installing each one individually. With a reboot in between each install.&lt;br /&gt;&lt;br /&gt;5.5 Windows applications need to reboot any time a new application or library is installed. 1991 called. They want their loading technology back. I hear DLL-hell isn't a problem any more though.&lt;br /&gt;&lt;br /&gt;5.6 Microsoft enforces a great many intra-windows compatibility constraints to minimize the ever-present costs of portability, but it comes at the cost of inconsistent behaviour, buggy programs, and internal complexity that is slowing rotting Windows itself from the inside out.&lt;br /&gt;&lt;br /&gt;5.7 Lack of hard-core Linux programs like grep/awk/GDB/valgrind/SystemTap/SELinux. Programmers just won't bother installing Windows until they can work for real.&lt;br /&gt;&lt;br /&gt;6. Problems stemming from the fact that Windows isn't Linux&lt;br /&gt;&lt;br /&gt;6.1 Ok I am officially tired of this game.&lt;br /&gt;&lt;br /&gt;To be clear, I don't necessary truly believe all of the above, as unlike most people, I realize the world is full of complications and subtlety -- I'm just tired of hearing coming in the opposite direction, and had to vent lest my head explode from idiocy-overload.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3537292419628248392?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3537292419628248392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3537292419628248392' title='55 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3537292419628248392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3537292419628248392'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/06/why-windows-is-not-yet-ready-for.html' title='Why Windows is not yet ready for the Desktop'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>55</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2797062258661110731</id><published>2009-06-03T19:02:00.001+04:30</published><updated>2009-06-03T19:03:58.511+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='research'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Structured Streams</title><content type='html'>&lt;a href="http://pdos.csail.mit.edu/uia/sst/"&gt;TCP done right&lt;/a&gt;, implemented over UDP, as a user-space library.&lt;br /&gt;&lt;br /&gt;What more could you ask for? Seriously, &lt;a href="http://www.brynosaurus.com/pub/net/sst.pdf"&gt;the paper&lt;/a&gt; is simple yet beautiful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2797062258661110731?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2797062258661110731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2797062258661110731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2797062258661110731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2797062258661110731'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/06/structured-streams.html' title='Structured Streams'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-827366182338550738</id><published>2009-05-26T17:24:00.001+04:30</published><updated>2009-05-26T17:54:20.185+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='how-to'/><category scheme='http://www.blogger.com/atom/ns#' term='computing'/><title type='text'>Compiling WebKit on Windows</title><content type='html'>&lt;ol&gt;&lt;li&gt;If you're doing any open source programming, you'll need to constrain yourself to the Cairo-based WebKit, as Apple's CoreGraphics-based rendering is non-redistributable.&lt;/li&gt;&lt;li&gt;You'll need VS 2005, as anything newer isn't supported. If you're using Express edition, make sure you have the Windows Platform SDK.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You'll need cygwin to run the build scripts. Make sure you install perl (in cygwin) -- but not GCC, as this may interfere with the scripts finding Visual Studio's compiler.&lt;/li&gt;&lt;li&gt;If cygwin has any problems with "/r" character in text files, run the command "dos2unix $(find . -name '*.sh' -o -name '*.pm')" in "C:\cygwin\home\$username", to convert bash and perl files to UNIX new-lines.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Run "C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat" to enable the path's needed to run the compiler from command line.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Check out your source from SVN. Nightly tarballs have some sort processing step specific to the platform that may remove things you might want.&lt;/li&gt;&lt;li&gt;Check out the SVN into "C:\cygwin\home\&lt;username&gt;$username", as the build scripts assume this.&lt;/username&gt;&lt;/li&gt;&lt;li&gt;Set the environment variables "WEBKITLIBRARIESDIR=C:\cygwin\home\$username&lt;username&gt;\WebKitSupportLibrary\win" and "WEBKITOUTPUTDIR=C:\cygwin\home\&lt;username&gt;$username\webkit\WebKitBuild".&lt;/username&gt;&lt;/username&gt;&lt;/li&gt;&lt;li&gt;Configure WebCore/config.h to build with Cairo instead of "Safari", &lt;a href="http://trac.webkit.org/wiki/BuildingCairoOnWindows"&gt;as according to this&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Run WebKit/WebKitTools/Scripts/update-webkit&lt;/li&gt;&lt;li&gt;Run WebKit/WebKitTools/Scripts/update-webkit-support-libs&lt;/li&gt;&lt;li&gt;Run WebKit/WebKitTools/Scripts/update-webkit-auxiliary-libs&lt;/li&gt;&lt;li&gt;Run WebKit/WebKitTools/Scripts/build-webkit --cairo-win32 --debug&lt;/li&gt;&lt;li&gt;To be continued!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-827366182338550738?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/827366182338550738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=827366182338550738' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/827366182338550738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/827366182338550738'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/05/compiling-webkit-on-windows.html' title='Compiling WebKit on Windows'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2349986555448157484</id><published>2009-05-22T11:28:00.001+04:30</published><updated>2009-05-22T16:22:29.246+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ecology'/><category scheme='http://www.blogger.com/atom/ns#' term='food'/><title type='text'>Goodbye, and thanks for all the fish.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/ShZNNqwWTZI/AAAAAAAAAQs/2LoYNG4lw4Q/s1600-h/trans0509nomorefishinthesea.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 321px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/ShZNNqwWTZI/AAAAAAAAAQs/2LoYNG4lw4Q/s400/trans0509nomorefishinthesea.jpg" alt="" id="BLOGGER_PHOTO_ID_5338539305505017234" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2349986555448157484?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2349986555448157484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2349986555448157484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2349986555448157484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2349986555448157484'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/05/eat-as-much-as-you-want.html' title='Goodbye, and thanks for all the fish.'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_mbtIA8_3IzU/ShZNNqwWTZI/AAAAAAAAAQs/2LoYNG4lw4Q/s72-c/trans0509nomorefishinthesea.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8819847138458653856</id><published>2009-05-12T18:56:00.000+04:30</published><updated>2009-05-12T18:58:12.159+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='parenting'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>Does your ability to delay gratification corrolate directly to your success if life?</title><content type='html'>&lt;a href="http://www.newyorker.com/reporting/2009/05/18/090518fa_fact_lehrer?currentPage=all"&gt;It would seem so&lt;/a&gt;. It would also suggest simple ways to ensure your child's future by teaching them about delayed gratification.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8819847138458653856?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8819847138458653856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8819847138458653856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8819847138458653856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8819847138458653856'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/05/does-your-ability-to-delay.html' title='Does your ability to delay gratification corrolate directly to your success if life?'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-25165895949746390</id><published>2009-05-09T20:31:00.000+04:30</published><updated>2009-05-09T20:33:22.886+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='philosophy'/><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Morality doesn't need a God</title><content type='html'>&lt;a href="http://blog.beliefnet.com/kingdomofpriests/2009/05/a-challenge-to-atheists.html"&gt;Wow... Smack. Down.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Read the first comment in reply to the challenge.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-25165895949746390?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/25165895949746390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=25165895949746390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/25165895949746390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/25165895949746390'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/05/morality-doesnt-need-god.html' title='Morality doesn&apos;t need a God'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3130957326363613860</id><published>2009-04-27T22:07:00.001+04:30</published><updated>2009-04-28T09:17:46.165+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>A Programmers Work-day</title><content type='html'>When I first started working as a programmer full time outside of school, in the "real world", I was a bit unsure what to expect. Would I spend all my day slaving at a keyboard? Would I spend it all in endless meetings? Buried under mountains of TPS reports? How does a &lt;i&gt;real&lt;/i&gt; software house organize it's labour force on the day-to-day?&lt;br /&gt;&lt;br /&gt;Starting my career in some poorly managed companies didn't provide a shining example for me to learn from.&lt;br /&gt;&lt;br /&gt;I was literally shocked to see how much of the day co-workers just surfing out of boredom, but I was a little ashamed to ask anyone about their workplaces. Would anyone be honest about such flagrant waste of time? Would they look down on my workplace as a joke? Was the big horrible secret of the "working world" the fact that very little work actually gets done?&lt;br /&gt;&lt;br /&gt;It touched protestant work ethic I didn't know I had. So much wasted time and money felt dirty to me.&lt;br /&gt;&lt;br /&gt;That said, it wasn't long before I too #$%@ed my day away on websites; and for the same reason co-workers did: there was no serious management structure. Management didn't give anyone serious goals, or give developers the resources needed to meet them. Management provided no structure or oversight to the development process, and morale was fairly low; no one cared. One place I worked some of the developers showed up at 3pm and left before 7pm, four days of the week!&lt;br /&gt;&lt;br /&gt;Over the development of my career no one has yet come out and given me a clear definition of what the professional standard for work ethic, but I have managed to develop my own idea of what should be expected of all programmers from a work day (you'll note I do not include managerial job titles):&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Organizational Overhead&lt;/h2&gt;&lt;b&gt;2 hours per day&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is the overhead that is not an output itself, but is a natural requirement of any development process, and thus is has to be done every day.&lt;br /&gt;&lt;br /&gt;It's often characterized by a series of interruptible tasks that center around communication with other human beings.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Face to face meetings&lt;/li&gt;&lt;li&gt;Phone calls&lt;/li&gt;&lt;li&gt;E-mail and mailing-lists&lt;/li&gt;&lt;li&gt;Bug triaging and code reviews&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Work-related blogs, websites, and IMs&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Development&lt;/h2&gt;&lt;b&gt;4 hours per day&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is the "real" work, and is the measurable result by which your contribution to the group will be judged. If you're not producing here, you are not a developer.&lt;br /&gt;&lt;br /&gt;This work is characterize by the necessity to spend long unbroken periods concentrating single-mindedly on the task(s) at hand.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Researching technologies or libraries&lt;/li&gt;&lt;li&gt;Devising designs&lt;/li&gt;&lt;li&gt;Proposing and discussing design details&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Implementing code&lt;/li&gt;&lt;li&gt;Testing and debugging running code&lt;/li&gt;&lt;li&gt;Implementing tests and documentation&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;You'll also note that that accounts for only 6 hours, and the reason is that I essentially do not believe that knowledge workers' productivity, especially developers who are required to expend so much concentration for extended periods of time, scales linearly with time. Your brain needs breaks to open back up. Overwork just leads to burn-out.&lt;br /&gt;&lt;br /&gt;The ideal work day for a programmer is some variation on the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;0900-1000: handle time-critical overhead tasks such as emails, bug reports, and meetings&lt;/li&gt;&lt;li&gt;1000-1200: concentrate on priority work items&lt;/li&gt;&lt;li&gt;1300-1400: regular meetings and emails&lt;/li&gt;&lt;li&gt;1400-1600: concentrate on other important work items&lt;/li&gt;&lt;/ul&gt;It may look like a short day, but I do assume you have developed the ability to concentrate on your task, and you have the freedom to eliminate distractions. I do admit that it is often quite hard, and most people's day looks more like:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1300-1700: try concentrate on work while being distracted by meetings and emails&lt;/li&gt;&lt;/ul&gt;If you really need to have an 8 hour work day for some reason, you'll only find that the extra two hours ends up going into work-place play or dawdling; and I'd personally prefer to go home to my family.&lt;br /&gt;&lt;br /&gt;Trying to do too much per day leads to burn-out, which doesn't have to be emotional or dramatic; it can be intellectual, and manifest itself is a subtle lack of creativity that's hard to detect.&lt;br /&gt;&lt;br /&gt;Do you agree with my experience-bought conclusion? Do you have your own? Let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3130957326363613860?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3130957326363613860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3130957326363613860' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3130957326363613860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3130957326363613860'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/04/programmers-work-day.html' title='A Programmers Work-day'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3036619913849102863</id><published>2009-04-23T13:25:00.001+04:30</published><updated>2009-04-23T13:25:45.631+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Dotmatrix Rhapsody</title><content type='html'>&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Ht96HJ01SE4&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Ht96HJ01SE4&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3036619913849102863?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3036619913849102863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3036619913849102863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3036619913849102863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3036619913849102863'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/04/dotmatrix-rhapsody.html' title='Dotmatrix Rhapsody'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4072035261829841947</id><published>2009-04-19T13:38:00.001+04:30</published><updated>2009-04-19T15:01:37.140+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='computing'/><title type='text'>Mini book reviews</title><content type='html'>I buy and read a lot of computer books (for various definitions of "read" -- references often aren't page turners). &lt;br /&gt;&lt;br /&gt;I always have my judgement about the book from my point of view, but I hesitate to share it with others, as I think there is no better opinion than the one a reader has after he's read the whole book on his own.&lt;br /&gt;&lt;br /&gt;That said, when I buy books, I want to read what others thought of it. So to provide a service to my faithful readers, I am kicking off some mini-reviews of book's I've read, mostly in relation to my work.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a href="http://books.google.com/books?id=9F7gaZKd2rYC&amp;amp;hl=en"&gt;About Face 3&lt;/a&gt;: Essentials of Interaction Design&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;For anyone like me, who hasn't formally studied Human-Computer Interaction in school but now finds themselves working on anything with a non-trivial user interface, this is the first book I recommend you read.&lt;br /&gt;&lt;br /&gt;It's extremely easy to read, and spends a respectable part of the beginning of the book explaining why UIs need to be designed, before moving on to the how of designing one. If you're buying an interaction design book it's because you realize the need for UI design yourself, but may be first required to convince management that the interaction design process needs to be taken seriously; the beginning section will give you that ammunition.&lt;br /&gt;&lt;br /&gt;However those who are already professional designers will likely find it fairly a waste of time, and spend most of the book skimming over repetitions of things they already know.&lt;br /&gt;&lt;br /&gt;Those like myself, who feel they have a bit of intuition for user interaction design, will find a fair amount to skim over; however without any previous training HCI, it is reassuring to have your intuitions confirmed by the experts, and so even the skimming will be rewarding.&lt;br /&gt;&lt;br /&gt;The reason why I chose this book over others is that it's a tutorial, and it proposes a simple design method that concentrates on the heart of designing any tool: people (personas) and what they want to do (goals). It's simple, direct, and resonates very well with my design sensibilities.&lt;br /&gt;&lt;br /&gt;The middle part of the book introduces the core methodology (Goal-directed Design), and the latter part of the book moves on to placing that theory within the context of contemporary GUI design. An excellent combinational of motivation, leading into theory, leading into method, leading into example, in a comprehensive, intuition building manner.&lt;br /&gt;&lt;br /&gt;Any software developer without existing library on user interaction design needs this book in their core library.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a href="http://www.content-networking.com/"&gt;Content Networking&lt;/a&gt;: Architecture, Protocols, and Practise&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;I am not sure if the book defines "Content Networking" very well, but basically it amounts to "how do you get lots of cool content to lots of people on an Internet Scale?" This is very relevant question for our virtual world design efforts.&lt;br /&gt;&lt;br /&gt;Printed 2005, this book is somewhat dated given that I am basically only looking out for state-of-the-art texts (or theory, which is undying). &lt;br /&gt;&lt;br /&gt;It has chapters on web content, streaming media, IM, and P2P, but those chapters, for me, feel like very cursory survey chapters that don't tell me very much. I enjoyed reading them and found them useful, but I'd probably rather buy dedicated books on each of those topics separately.&lt;br /&gt;&lt;br /&gt;What I found very interesting was the treatment of web content, and the secret weapon of the web that makes it so insanely scalable: load balancing and caching. Both of which are relatively simple techniques, but the book goes into specific methods in detail and really opened my eyes to what goes on that I merely took for granted. HTTP gets static for having higher overhead than UDP, but this book makes it pretty clear the stateless nature of HTTP means you can do amazing things with caching and load balancing that make the web scale to global levels.&lt;br /&gt;&lt;br /&gt;If you're planning a large scale content deployment system I recommend taking a browse through this survey book, but otherwise it's not overly impressive. Borrow a copy.&lt;br /&gt;&lt;br /&gt;&lt;h2 style="text-align: left;"&gt;&lt;a href="http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0471183830.html"&gt;Parallel and Distributed Simulation Systems&lt;/a&gt;&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;From the title it's appropriateness to virtual worlds is obvious. However its printing date of 2000 belies a different focus. The book assumes an audience of mostly military simulation designers, and makes direct reference to various standards published by the US military for use in war simulations. The book makes reference to "casual" uses outside tanks and jets, and may even use the phrase "virtual world", but it will take some imagination to remove the discussion from it's military context and place it in a VW one.&lt;br /&gt;&lt;br /&gt;The book has a distinct academic feel, visible in its eagerness to categorize all different kinds of methods or system types and give them "helpful" acronyms. The reading is a bit dry, but not overly technical.&lt;br /&gt;&lt;br /&gt;If you are looking for a systematic approach to simulations, and want to know what the baseline standards are, having been established in 2000 or earlier, it's worth spending some time to look through. It is probably reassuring to know some terminology within the book, and that you can't go wrong doing something the military has done previously. However there are no new or interesting ideas here at all. At best a reference for a fall-back implementation.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a href="http://books.google.com/books?id=CB1N1aaoMloC&amp;amp;hl=en"&gt;Level of Detail for 3D Graphics&lt;/a&gt;&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Level of Detailing is quite possibly one of the single most critical linchpins for scalability in a virtual world. You can have a large number of objects sitting in a database, but at the end of the day, a camera sees everything up until the horizon, in all directions, and in some manner everything visible has to be brought into memory and drawn. Clearly the less work "drawing" all those things are, the higher your simulation can scale.&lt;br /&gt;&lt;br /&gt;Sometimes reading a book is less about what it tells you as what it doesn't tell you, or rather what it tells you "don't worry, you're not missing anything":&lt;br /&gt;&lt;br /&gt;Although the book is dated, the book told me the state of the art LoDing in 2003 boils down to the following decisions: when to LoD, what to LoD, and how far to LoD. LoDing itself is taken for granted as only mesh simplification, which was a bit of a disappointment in that I was hoping there were more magical techniques available, especially for textures which are a substantial burden in VWs. Perhaps there is more to LoDing, just all of it invented post 2003. I was also hoping to find some techniques that minimize loading of meshes, but perhaps the authors failed to consider anyone would be so reckless as to download meshes over the internet. :)&lt;br /&gt;&lt;br /&gt;Disappointments aside, mesh simplification is extremely important for future reX, but I suspect that loading those meshes from over the network is by far the greater bottleneck, hitting long before the graphics card breaks a sweat from excessive vertices, so for us mesh simplification would have to happen before the client viewer downloads it.&lt;br /&gt;&lt;br /&gt;Recommended for anyone who is implemented a LoD system where huge meshes are bottle necking the G/CPU.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4072035261829841947?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4072035261829841947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4072035261829841947' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4072035261829841947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4072035261829841947'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/04/mini-book-reviews.html' title='Mini book reviews'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4229921425366557013</id><published>2009-04-13T11:24:00.001+04:30</published><updated>2009-04-13T11:24:58.580+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><category scheme='http://www.blogger.com/atom/ns#' term='marriage'/><title type='text'>You can help stop this horrible social affliction</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ZC4B4LknF90&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ZC4B4LknF90&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4229921425366557013?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4229921425366557013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4229921425366557013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4229921425366557013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4229921425366557013'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/04/you-can-help-stop-this-horrible-social.html' title='You can help stop this horrible social affliction'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1576285785405250115</id><published>2009-04-09T09:29:00.000+04:30</published><updated>2009-04-09T09:32:03.526+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='shout-outs'/><title type='text'>Looking for stock art or illustrations?</title><content type='html'>I recommend the guys at &lt;a href="http://stockart.com/"&gt;stockart.com&lt;/a&gt; for their dedication in representing their clients protecting their copyrights.&lt;br /&gt;&lt;br /&gt;It can be hard to make a living when copying work on the internet is so easy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1576285785405250115?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1576285785405250115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1576285785405250115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1576285785405250115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1576285785405250115'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/04/looking-for-stock-art-or-illustrations.html' title='Looking for stock art or illustrations?'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3537311653297284853</id><published>2009-03-16T22:15:00.001+03:30</published><updated>2009-03-16T22:15:48.827+03:30</updated><title type='text'>So Beautiful</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/H_0oWqOLpo4&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/H_0oWqOLpo4&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3537311653297284853?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3537311653297284853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3537311653297284853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3537311653297284853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3537311653297284853'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/03/so-beautiful.html' title='So Beautiful'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-5585954868649047023</id><published>2009-03-15T21:15:00.000+03:30</published><updated>2009-03-15T21:44:43.024+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='winter'/><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><category scheme='http://www.blogger.com/atom/ns#' term='finland'/><title type='text'>Memories of Winter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/Sb1Fiog2vVI/AAAAAAAAAQg/joNnNLQGs3g/s1600-h/dscn0030.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/Sb1Fiog2vVI/AAAAAAAAAQg/joNnNLQGs3g/s400/dscn0030.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5313479596660145490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/Sb0_KH_bW2I/AAAAAAAAAP4/j5dAypnasJc/s1600-h/IMG_2326.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/Sb0_KH_bW2I/AAAAAAAAAP4/j5dAypnasJc/s400/IMG_2326.JPG" alt="" id="BLOGGER_PHOTO_ID_5313472578543377250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/Sb0_bGI2o7I/AAAAAAAAAQA/Rhp81Vo-Qno/s1600-h/IMG_2336.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/Sb0_bGI2o7I/AAAAAAAAAQA/Rhp81Vo-Qno/s400/IMG_2336.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313472870103819186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/Sb0_tRnBCFI/AAAAAAAAAQI/V1o9Ig1CilM/s1600-h/IMG_2339.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/Sb0_tRnBCFI/AAAAAAAAAQI/V1o9Ig1CilM/s400/IMG_2339.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313473182420764754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/Sb0_6KRMGII/AAAAAAAAAQQ/4ZgjecQixZ8/s1600-h/IMG_2337.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/Sb0_6KRMGII/AAAAAAAAAQQ/4ZgjecQixZ8/s400/IMG_2337.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313473403788466306" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-5585954868649047023?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/5585954868649047023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=5585954868649047023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5585954868649047023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5585954868649047023'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/03/memories-of-winter.html' title='Memories of Winter'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_mbtIA8_3IzU/Sb1Fiog2vVI/AAAAAAAAAQg/joNnNLQGs3g/s72-c/dscn0030.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-538594164409853117</id><published>2009-02-01T17:55:00.000+03:30</published><updated>2009-02-01T17:57:09.493+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ecology'/><title type='text'>Lets go for a Swim</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/SYWxL49lEtI/AAAAAAAAAPw/XmbtEx1h5M0/s1600-h/05RubbishGraphic_15022a.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 227px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/SYWxL49lEtI/AAAAAAAAAPw/XmbtEx1h5M0/s400/05RubbishGraphic_15022a.jpg" alt="" id="BLOGGER_PHOTO_ID_5297835354498601682" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-538594164409853117?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/538594164409853117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=538594164409853117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/538594164409853117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/538594164409853117'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/02/lets-go-for-swim.html' title='Lets go for a Swim'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_mbtIA8_3IzU/SYWxL49lEtI/AAAAAAAAAPw/XmbtEx1h5M0/s72-c/05RubbishGraphic_15022a.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2849552851678488039</id><published>2009-02-01T15:31:00.000+03:30</published><updated>2009-02-01T17:00:47.196+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='health'/><category scheme='http://www.blogger.com/atom/ns#' term='computing'/><title type='text'>Treating RSI</title><content type='html'>One of the most critical health issues around programming is &lt;a href="http://en.wikipedia.org/wiki/Repetitive_strain_injury"&gt;RSI&lt;/a&gt;. If not properly addressed, it can end your career. For a while I was quite concerned that it would end mine.&lt;br /&gt;&lt;br /&gt;The problem with RSI is it seems the causes are each subtly different, and so it responds differently to  various treatments.&lt;br /&gt;&lt;br /&gt;Here then is my personal set of treatments. If you're feeling any discomfort at all, don't wait, change your set-up immediately.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;See a doctor immediately. I eventually got a doctor to drain the &lt;a href="http://en.wikipedia.org/wiki/Ganglion_cyst"&gt;cyst&lt;/a&gt; in my wrist, drastically reducing the discomfort.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Take breaks of all kinds. Hourly breaks for 5 minutes. Lunch breaks. Weekends off. Long computerless vacations.&lt;/li&gt;&lt;li&gt;Sleep. Highly underrated treatment. Directly proportional to comfort.&lt;/li&gt;&lt;li&gt;Wear long-sleeve shirts and even fingerless gloves in order to keep the hands warm while working. Also very underrated.&lt;/li&gt;&lt;li&gt;Ice inflamed areas after work.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.kinesis-ergo.com/advantage.htm"&gt;Kinesis Advantage keyboard&lt;/a&gt;. Worth more to me than the entire computer itself.&lt;/li&gt;&lt;li&gt;Ergonomic mouse. Try to never use it. Especially the wheel.&lt;/li&gt;&lt;li&gt;Turn up the thermostat in your computer room. Never program in the cold.&lt;/li&gt;&lt;li&gt;Sleep. Some more.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2849552851678488039?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2849552851678488039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2849552851678488039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2849552851678488039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2849552851678488039'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/02/treating-rsi.html' title='Treating RSI'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-6199197058246764728</id><published>2009-01-28T19:08:00.000+03:30</published><updated>2009-01-28T20:01:42.137+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='world'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><category scheme='http://www.blogger.com/atom/ns#' term='languages'/><title type='text'>Language Acquisition</title><content type='html'>Moving from Canada to live in Japan exposed me a lot to issues of acquiring and using language.&lt;br /&gt;&lt;br /&gt;In Canada, Japanese is considered an exotic, difficult, but cool-to-know language. Often people would stop me while reading Japanese and exclaim "how on earth can you read that?"&lt;br /&gt;&lt;br /&gt;In Japan by contrast, Japanese would always complement me on my Japanese, regardless of how poorly I was speaking. The Japanese believe their language is hard to learn (a common enough bias, after all &lt;i&gt;they&lt;/i&gt; don't know how they learned it), and they know from experience that English is "hard". They naturally assume its because all language acquisition is hard.&lt;br /&gt;&lt;br /&gt;(Aside: a joke among expats: "How can you tell when your Japanese is getting good? When people stop complimenting you on it!")&lt;br /&gt;&lt;br /&gt;The problem with Japanese and learning English, is not that English, or any other language, is hard to learn. The problem is with the Japanese and the way they try to learn it.&lt;br /&gt;&lt;br /&gt;They approach foreign things as one might approach alien things: with a certain distance born of trepidation; and not without a little touch of fear. Japanese culture teaches that it is polite to be reserved, and that verbal outbursts could land you in real hot water.&lt;br /&gt;&lt;br /&gt;They are also taught that since speakers are circumspect, listeners hold the burden of interpreting the meaning of those choice words, and must act without need for further clarification.&lt;br /&gt;&lt;br /&gt;The result is an intolerable internal state for many Japanese people; marked by a sensation of stress owing to the conflict between the demands of society, and their individual failure to meet those demands in a foreign language. This angst can be avoided in education by sticking to completely sanitized forms of learning, specifically wrote memorization of vocabulary and grammar being the most common teaching method throughout Asia.&lt;br /&gt;&lt;br /&gt;When I was there, I tried to explain this to some of my exasperated Japanese friends when they complained how hard English was. I would say, "No, no; you just have to adjust your strategy to include more human-human practise! Just speak and listen often! And don't care about making mistakes!"&lt;br /&gt;&lt;br /&gt;Another problem I found was that Japanese always wanted to learn English in little convenient to chew pieces -- an hour once a week -- after work as part of an involuntary training program at the local English Conversation school. They'd spend .5hr turning their brain to English mode, then just when they'd have succeeded, the next 23.5hrs were spent forgetting all about it.&lt;br /&gt;&lt;br /&gt;Another frequent recommendation that was fairly abhorrent to most inquisitors was the suggestion to spend a month overseas. I never understood how one could spend so much time and effort on consistently proven ineffective methods, then balk at such a simple, proven, effective ones. No one had ever heard of "language immersion!"&lt;br /&gt;&lt;br /&gt;Now living in Finland, its such a shock to me how it is that so many Northern Europeans are so good at English. One might be able to argue that Swedish and Norwegian are distant relatives of English, and that's why its easy for them. But there is &lt;b&gt;no&lt;/b&gt; arguing that Finnish is any way related to English -- and yet the Finns are astoundingly good at it.&lt;br /&gt;&lt;br /&gt;If you ask them why it is, they'll tell you, "Because we are only [4] million people. No one is ever going to bother to learn [Finnish], so we learn English. And its not just in the schools. Almost all of our (imported) television is in English, with subtitles."&lt;br /&gt;&lt;br /&gt;In other words, from youth they are exposed to a lot of English speaking, with Finnish translations. And in time, probably years, it becomes easier to listen to the (native) English than read the Finnish. Repetitive exposure.&lt;br /&gt;&lt;br /&gt;I am not sure how really "revolutionary" &lt;a href="http://www.physorg.com/news152292870.html"&gt;this&lt;/a&gt; study is, since it just validates what I knew already from experience. However perhaps if it gets more exposure, it will quiet the old-school thinkers who actually think text-books and memorization will ever help. Or that one can learn a language in "X minutes per day!" Or speaking two languages to a (my) child will only "confuse" them (her).&lt;br /&gt;&lt;br /&gt;Bottom line: if you don't indent to spend a significant amount of time surrounded by a language, you should not be surprised that its not sticking, or its "hard". That includes the majority of Japan.&lt;br /&gt;&lt;br /&gt;What was a bit of a surprise to me, now validated by the above study, is that exposure to a lot of TV-with-subtitles appears to be enough (along with basic grammar in schools) to attain a surprising level of proficiency.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-6199197058246764728?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/6199197058246764728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=6199197058246764728' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/6199197058246764728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/6199197058246764728'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/01/language-acquisition.html' title='Language Acquisition'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8786000303588751408</id><published>2009-01-24T23:19:00.000+03:30</published><updated>2009-01-25T20:55:04.978+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='food'/><title type='text'>Never Buy Salsa Again</title><content type='html'>One of the best part of visiting Mexico was the food. After trying the local dishes prepared as they locals enjoy them, I don't think there is any way I could ever buy "Old El Paso" again. The fresh stuff is just so much better in every way. I highly recommend you don't ever either.&lt;br /&gt;&lt;h3&gt;Salsa Mexicano&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fresh Tomatoes and Onions in 3:1 ratio&lt;/li&gt;&lt;li&gt;Fresh Cilantro&lt;/li&gt;&lt;li&gt;Fresh Lime&lt;/li&gt;&lt;li&gt;Jalapeño&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Dice Tomatoes finely&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Dice Onions finely&lt;/li&gt;&lt;li&gt;Add chopped Cilantro, Jalapeño, and Lime juice to taste&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Store in fridge for flavours to mix at least 1 hour&lt;/li&gt;&lt;/ol&gt;It's best to peel and seed the Tomatoes, and chop everything by hand. A food processor will tend to mush things, leaving some pieces too large and some too small, and the salsa will lose its character.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8786000303588751408?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8786000303588751408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8786000303588751408' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8786000303588751408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8786000303588751408'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/01/never-buy-salsa-again.html' title='Never Buy Salsa Again'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2883016953865138224</id><published>2009-01-16T19:38:00.000+03:30</published><updated>2009-01-16T20:08:56.657+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross-platform'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Finally a work-related post -- about Windows?!</title><content type='html'>I decided to force myself to make a technology blog. Its because I have made a very important discovery.&lt;br /&gt;&lt;br /&gt;For a long time I've been a linux user working in a world where windows is overly common. Luckily though, I have often been able to make the argument to my bosses that cross-platform development is important, and that free-software tools are high quality and save much time and effort.&lt;br /&gt;&lt;br /&gt;What often stymied my noble efforts however, was the pain in the arse, not in making cross-platform code, which is a problem well attended to over the decades, but the trouble of getting something to &lt;i&gt;build&lt;/i&gt; on all platforms.&lt;br /&gt;&lt;br /&gt;You have &lt;a href="http://en.wikipedia.org/wiki/GNU_build_system"&gt;autotools&lt;/a&gt; on the unix side, Visual Studio solution-files on the windows side, and well-meaning &lt;a href="http://www.cmake.org/"&gt;cmake&lt;/a&gt; in the middle, with a down-trodden, lonely, underused look on his schoolboy face.&lt;br /&gt;&lt;br /&gt;This is issue is oppressing me as we speak at work, with us trying to integrate the powerful and flexible &lt;a href="http://telepathy.freedesktop.org/wiki/"&gt;Telepathy&lt;/a&gt; messaging framework, and its companion libraries &lt;a href="http://gstreamer.freedesktop.org/"&gt;GStreamer&lt;/a&gt; and &lt;a href="http://www.freedesktop.org/wiki/Software/dbus"&gt;D-Bus&lt;/a&gt;. All of it portable C. All of it buried under mounds of steaming autotools.&lt;br /&gt;&lt;br /&gt;For the past week we have been doing the slop-work of trying to reverse-engineer the intended build process codified in the dead languages that make up autotools, and re-implement them in cmake in the hopes that it might be accepted upstream, and one day be liberated from the shackles of 1987.&lt;br /&gt;&lt;br /&gt;It's not Happy.&lt;br /&gt;&lt;br /&gt;And neither was I until I stumbled across this &lt;a href="http://lwn.net/Articles/307732/"&gt;little gem&lt;/a&gt;. Long story short: Fedora 11 will ship with a fully functional windows cross compiler.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;pre&gt;&lt;br /&gt;Autoconf-based programs can generally be cross-compiled by doing:&lt;br /&gt;&lt;br /&gt;     yum install mingw32-*&lt;br /&gt;     ./configure --host=i686-pc-mingw32&lt;br /&gt;     make&lt;br /&gt;&lt;/pre&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Project page &lt;a href="http://fedoraproject.org/wiki/MinGW"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;That however means that the binary will not be build with VC++, rather GCC, which may cause some windows programmers to cringe. I'd like to learn just how much performance is really lost. I also wonder what sort of ABI boogie-men are lurking.&lt;br /&gt;&lt;br /&gt;To summarize&lt;br /&gt;&lt;b&gt;&lt;br /&gt;1. Portable code - Done&lt;br /&gt;2. Cross-platform build system (with no need for windows license!!) - Check&lt;br /&gt;3. Broad binary compatibility - Future is Hazy&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2883016953865138224?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2883016953865138224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2883016953865138224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2883016953865138224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2883016953865138224'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/01/finally-work-related-post-about-windows.html' title='Finally a work-related post -- about Windows?!'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4049304152413011373</id><published>2009-01-11T23:17:00.000+03:30</published><updated>2009-01-11T23:44:20.295+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='pictures'/><title type='text'>Mexico</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/SWpNfGS4YvI/AAAAAAAAAOw/es0nDsIA9GM/s1600-h/IMG_1530.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/SWpNfGS4YvI/AAAAAAAAAOw/es0nDsIA9GM/s400/IMG_1530.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290125908961157874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/SWpOIKML5PI/AAAAAAAAAPA/mLU1ntGgU4Y/s1600-h/IMG_1582.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/SWpOIKML5PI/AAAAAAAAAPA/mLU1ntGgU4Y/s400/IMG_1582.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290126614381454578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/SWpNzGVIrxI/AAAAAAAAAO4/fApDENaLms8/s1600-h/IMG_1555.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/SWpNzGVIrxI/AAAAAAAAAO4/fApDENaLms8/s400/IMG_1555.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290126252567998226" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/SWpRqvzqdBI/AAAAAAAAAPo/htOfXKCvAe0/s1600-h/IMG_2029.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/SWpRqvzqdBI/AAAAAAAAAPo/htOfXKCvAe0/s400/IMG_2029.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290130507129582610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SWpQpIsBMEI/AAAAAAAAAPg/1LuRL1BjIGg/s1600-h/IMG_1998.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 224px; height: 400px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SWpQpIsBMEI/AAAAAAAAAPg/1LuRL1BjIGg/s400/IMG_1998.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290129379937038402" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SWpPxx6-SBI/AAAAAAAAAPY/h5UjoWDZQO8/s1600-h/IMG_1877.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SWpPxx6-SBI/AAAAAAAAAPY/h5UjoWDZQO8/s400/IMG_1877.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290128428932941842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SWpPCZNc5CI/AAAAAAAAAPQ/L325WPoIthw/s1600-h/IMG_1788.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SWpPCZNc5CI/AAAAAAAAAPQ/L325WPoIthw/s400/IMG_1788.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290127614845707298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/SWpO7F5TPLI/AAAAAAAAAPI/nPZYs2R8ZeY/s1600-h/IMG_1781.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/SWpO7F5TPLI/AAAAAAAAAPI/nPZYs2R8ZeY/s400/IMG_1781.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290127489401830578" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4049304152413011373?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4049304152413011373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4049304152413011373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4049304152413011373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4049304152413011373'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2009/01/mexico.html' title='Mexico'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_mbtIA8_3IzU/SWpNfGS4YvI/AAAAAAAAAOw/es0nDsIA9GM/s72-c/IMG_1530.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7374142249257300798</id><published>2008-12-26T19:48:00.000+03:30</published><updated>2008-12-27T04:36:18.059+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='economics'/><title type='text'>Reboot America</title><content type='html'>&lt;a href="http://www.nytimes.com/2008/12/24/opinion/24friedman.html?_r=1&amp;partner=rss&amp;emc=rss&amp;pagewanted=all"&gt;&lt;i&gt;You know what the trouble is? We used to make shit in this country, build shit. Now we just put our hand in the next guy's pocket.&lt;/i&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Bottom line is the only thing that produces real wealth anymore is investing in science and engineering that will create new technologies that improve real people's lives. Anything else is an economic dead-end.&lt;br /&gt;&lt;br /&gt;I fear for a world that neglects investing in the education of its populace in favor of vacuous diversions and populist short term public policies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7374142249257300798?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7374142249257300798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7374142249257300798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7374142249257300798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7374142249257300798'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/12/reboot-america.html' title='Reboot America'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-5040866796264783452</id><published>2008-12-25T19:51:00.000+03:30</published><updated>2008-12-25T20:01:56.492+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='food'/><title type='text'>How to construct a healthy diet</title><content type='html'>&lt;a href="http://www.nytimes.com/2007/01/28/magazine/28nutritionism.t.html?_r=2&amp;pagewanted=all"&gt;Eat food&lt;/a&gt;. Or how the gaming of nutrient intake, through misguided politics, science, and commercialism, is making us unhealthy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-5040866796264783452?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/5040866796264783452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=5040866796264783452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5040866796264783452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5040866796264783452'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/12/how-to-construct-healthy-diet.html' title='How to construct a healthy diet'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7309336822034415458</id><published>2008-12-24T23:45:00.000+03:30</published><updated>2009-01-08T13:28:52.079+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='food'/><title type='text'>6kg Bonito</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SVKY_phYNbI/AAAAAAAAAOo/ojodFDvWnnk/s1600-h/P1020858.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SVKY_phYNbI/AAAAAAAAAOo/ojodFDvWnnk/s400/P1020858.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283453532104046002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SVKYrZiwXeI/AAAAAAAAAOg/NCf7kLfUyVs/s1600-h/P1020860.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SVKYrZiwXeI/AAAAAAAAAOg/NCf7kLfUyVs/s400/P1020860.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283453184217472482" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7309336822034415458?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7309336822034415458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7309336822034415458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7309336822034415458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7309336822034415458'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/12/yellowfin.html' title='6kg Bonito'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_mbtIA8_3IzU/SVKY_phYNbI/AAAAAAAAAOo/ojodFDvWnnk/s72-c/P1020858.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3548174280743063265</id><published>2008-12-18T09:40:00.001+03:30</published><updated>2008-12-18T09:41:19.365+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='psychology'/><category scheme='http://www.blogger.com/atom/ns#' term='society'/><title type='text'>Consuming excessive fantasy impares your ability to handle reality</title><content type='html'>&lt;a href="http://news.bbc.co.uk/2/hi/uk_news/scotland/edinburgh_and_east/7784366.stm"&gt;More studies&lt;/a&gt; showing how right I am about everything!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3548174280743063265?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3548174280743063265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3548174280743063265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3548174280743063265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3548174280743063265'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/12/consuming-excessive-fantasy-impares.html' title='Consuming excessive fantasy impares your ability to handle reality'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2290480538926003464</id><published>2008-12-13T21:03:00.000+03:30</published><updated>2008-12-13T21:05:26.170+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='pirates'/><title type='text'>How many of you wish you were in Sherbrooke now?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SUPyPsyHjjI/AAAAAAAAAOY/Ih9r2rFSbLI/s1600-h/34812.strip.print.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 124px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SUPyPsyHjjI/AAAAAAAAAOY/Ih9r2rFSbLI/s400/34812.strip.print.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5279329539741683250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/G-PQbdmQRwc&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/G-PQbdmQRwc&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2290480538926003464?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2290480538926003464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2290480538926003464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2290480538926003464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2290480538926003464'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/12/how-many-of-you-wish-you-were-in.html' title='How many of you wish you were in Sherbrooke now?'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_mbtIA8_3IzU/SUPyPsyHjjI/AAAAAAAAAOY/Ih9r2rFSbLI/s72-c/34812.strip.print.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3675331532999679245</id><published>2008-12-02T14:44:00.001+03:30</published><updated>2008-12-02T14:44:58.385+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='war'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>The functional argument against Torture</title><content type='html'>&lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2008/11/28/AR2008112802242.html?hpid=opinionsbox1"&gt;Sticky-noted&lt;/a&gt; for future reference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3675331532999679245?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3675331532999679245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3675331532999679245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3675331532999679245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3675331532999679245'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/12/functional-argument-against-torture.html' title='The functional argument against Torture'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-5068031701415878318</id><published>2008-11-23T21:05:00.000+03:30</published><updated>2008-11-23T21:15:47.069+03:30</updated><title type='text'>Working Girl</title><content type='html'>Just another day behind the scenes at the photo shoot.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/SSmUrgOLPOI/AAAAAAAAAN4/s7HA78kGJ_A/s1600-h/Lana+034.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/SSmUrgOLPOI/AAAAAAAAAN4/s7HA78kGJ_A/s400/Lana+034.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271908313918553314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_mbtIA8_3IzU/SSmWFwl-OpI/AAAAAAAAAOA/qS1ZZ5n9c3M/s1600-h/Lana+029.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_mbtIA8_3IzU/SSmWFwl-OpI/AAAAAAAAAOA/qS1ZZ5n9c3M/s400/Lana+029.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271909864501557906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SSmWGEjSIsI/AAAAAAAAAOI/iFAxghQs0nA/s1600-h/Lana+054.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SSmWGEjSIsI/AAAAAAAAAOI/iFAxghQs0nA/s400/Lana+054.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271909869858988738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SSmWGF8ymuI/AAAAAAAAAOQ/sX-P7yfA19U/s1600-h/Lana+049.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SSmWGF8ymuI/AAAAAAAAAOQ/sX-P7yfA19U/s400/Lana+049.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5271909870234409698" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-5068031701415878318?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/5068031701415878318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=5068031701415878318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5068031701415878318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5068031701415878318'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/11/working-girl.html' title='Working Girl'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_mbtIA8_3IzU/SSmUrgOLPOI/AAAAAAAAAN4/s7HA78kGJ_A/s72-c/Lana+034.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-847745607342097815</id><published>2008-11-20T21:00:00.000+03:30</published><updated>2008-11-20T21:02:23.515+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='society'/><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><title type='text'>Graphical Evidence of the Evil of Gay Marriage</title><content type='html'>&lt;a href="http://graphjam.files.wordpress.com/2008/11/gaymarriage.gif"&gt;Oh GEAR DOD, noes!!1eleventy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please do not offer my god a peanut.&lt;br /&gt;&lt;br /&gt;Thank you and come again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-847745607342097815?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/847745607342097815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=847745607342097815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/847745607342097815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/847745607342097815'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/11/graphical-evidence-of-evil-of-gay.html' title='Graphical Evidence of the Evil of Gay Marriage'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7588686868163877259</id><published>2008-11-04T18:35:00.000+03:30</published><updated>2008-11-04T18:43:04.901+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='pictures'/><category scheme='http://www.blogger.com/atom/ns#' term='finland'/><title type='text'>Postcards from the North Pole</title><content type='html'>I thought I'd update with some pictures from Oulu that I took on a Saturday stroll after the first snow of the year last week.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SRBmK84FO1I/AAAAAAAAANU/8nKdh4pCJdw/s1600-h/IMG_1476.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SRBmK84FO1I/AAAAAAAAANU/8nKdh4pCJdw/s400/IMG_1476.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5264820302722186066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_mbtIA8_3IzU/SRBl2zAmYvI/AAAAAAAAANM/vRAvkiysbWY/s1600-h/IMG_1478.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_mbtIA8_3IzU/SRBl2zAmYvI/AAAAAAAAANM/vRAvkiysbWY/s400/IMG_1478.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5264819956476175090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SRBllaPqGHI/AAAAAAAAANE/J8lhYVMHkMA/s1600-h/IMG_1481.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SRBllaPqGHI/AAAAAAAAANE/J8lhYVMHkMA/s400/IMG_1481.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5264819657770670194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_mbtIA8_3IzU/SRBlcLlX9MI/AAAAAAAAAM8/ITOMWmraeng/s1600-h/IMG_1482.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_mbtIA8_3IzU/SRBlcLlX9MI/AAAAAAAAAM8/ITOMWmraeng/s400/IMG_1482.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5264819499216401602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_mbtIA8_3IzU/SRBlShCGg-I/AAAAAAAAAM0/zMZP8V9pToU/s1600-h/IMG_1483.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_mbtIA8_3IzU/SRBlShCGg-I/AAAAAAAAAM0/zMZP8V9pToU/s400/IMG_1483.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5264819333175346146" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7588686868163877259?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7588686868163877259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7588686868163877259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7588686868163877259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7588686868163877259'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/11/postcards-from-sana.html' title='Postcards from the North Pole'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_mbtIA8_3IzU/SRBmK84FO1I/AAAAAAAAANU/8nKdh4pCJdw/s72-c/IMG_1476.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1495416051488754365</id><published>2008-10-28T13:57:00.000+03:30</published><updated>2008-12-13T21:06:17.382+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>A moment of human brilliance</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1k08yxu57NA&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/1k08yxu57NA&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1495416051488754365?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1495416051488754365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1495416051488754365' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1495416051488754365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1495416051488754365'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/10/moment-of-human-brilliance.html' title='A moment of human brilliance'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4810467160945828650</id><published>2008-10-23T08:44:00.000+03:30</published><updated>2008-10-23T08:45:55.254+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='cartoon'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Teh funnay</title><content type='html'>What excuse do those voting &lt;a href="http://www.mattbors.com/archives/444.html"&gt;McCain/Palin&lt;/a&gt; make?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4810467160945828650?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4810467160945828650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4810467160945828650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4810467160945828650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4810467160945828650'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/10/teh-funnay.html' title='Teh funnay'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-6903495046225246697</id><published>2008-10-11T12:09:00.000+03:30</published><updated>2008-10-11T12:10:51.567+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='money'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>A voice from history</title><content type='html'>&lt;a href="http://anapologyfromicelanders.blogspot.com/"&gt;An apology&lt;/a&gt; from a nation ruined by corrupt banking practices.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-6903495046225246697?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/6903495046225246697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=6903495046225246697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/6903495046225246697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/6903495046225246697'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/10/voice-from-history.html' title='A voice from history'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3148193248421091082</id><published>2008-09-19T06:13:00.001+04:30</published><updated>2008-09-19T06:14:25.205+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>"Left" and "Right"</title><content type='html'>Interesting to see research shedding light on something I have considered from an intuitive point of view before.&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-style:italic;"&gt;Their research, published in the journal Science, indicates that people who are sensitive to fear or threat are likely to support a right wing agenda.&lt;br /&gt;&lt;br /&gt;Those who perceived less danger in a series of images and sounds were more inclined to support liberal policies. &lt;/span&gt;" &lt;a href="http://news.bbc.co.uk/2/hi/science/nature/7623256.stm"&gt;--&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3148193248421091082?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3148193248421091082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3148193248421091082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3148193248421091082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3148193248421091082'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/09/left-and-right.html' title='&quot;Left&quot; and &quot;Right&quot;'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1861207336456338515</id><published>2008-09-15T04:23:00.000+04:30</published><updated>2008-09-15T04:28:40.690+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><category scheme='http://www.blogger.com/atom/ns#' term='freedom'/><title type='text'>Get the ____ out you' throat and go vote.</title><content type='html'>&lt;span style="font-style:italic;"&gt;If you are bored and disgusted by politics and don't bother to vote, you are in effect voting for the entrenched Establishments of the two major parties, who please rest assured are not dumb, and who are keenly aware that it is in their interests to keep you disgusted and bored and cynical and to give you every possible reason to stay at home doing one-hitters and watching MTV on primary day. By all means stay home if you want, but don't bullshit yourself that you're not voting. In reality, there is no such thing as not voting: you either vote by voting, or you vote by staying home and tacitly doubling the value of some Diehard's vote.&lt;/span&gt; &lt;a href="http://en.wikipedia.org/wiki/David_Foster_Wallace"&gt;--&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1861207336456338515?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1861207336456338515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1861207336456338515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1861207336456338515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1861207336456338515'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/09/get-out-you-throat-and-go-vote.html' title='Get the ____ out you&apos; throat and go vote.'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-1586780285235020438</id><published>2008-09-09T03:30:00.000+04:30</published><updated>2008-09-09T18:08:19.416+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><title type='text'>Happy Birthday L.</title><content type='html'>This should have been posted yesterday, but I spent all of yesterday playing with L. Her party is booked tomorrow with cake and everything.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-1fcf42b8a469f94d" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v1.nonxt2.googlevideo.com/videoplayback?id%3D1fcf42b8a469f94d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329923010%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D69DD1532E91E9E62CE2E6E8D6E09AE2880942B80.5BF8464067718ADD9AECFE6226A12FA5621A0D24%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1fcf42b8a469f94d%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dk6WItdE_82v2Yok03EDjmttkzQk&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v1.nonxt2.googlevideo.com/videoplayback?id%3D1fcf42b8a469f94d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329923010%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D69DD1532E91E9E62CE2E6E8D6E09AE2880942B80.5BF8464067718ADD9AECFE6226A12FA5621A0D24%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1fcf42b8a469f94d%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dk6WItdE_82v2Yok03EDjmttkzQk&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Try to ignore the fool behind the camera.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-1586780285235020438?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=1fcf42b8a469f94d&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/1586780285235020438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=1586780285235020438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1586780285235020438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/1586780285235020438'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/09/happy-birthday-l.html' title='Happy Birthday L.'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-5139518771130368685</id><published>2008-08-28T04:56:00.000+04:30</published><updated>2008-08-28T07:06:05.652+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='crypto'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual worlds'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>Distributed Identity in Virtual Worlds</title><content type='html'>Thinking about managing identity across various distributed grids of virtual worlds, I am of course drawn immediately to &lt;a href="http://openid.net/"&gt;OpenID&lt;/a&gt; as the current preeminent solution to that problem. Let me explain the problem a little bit, and discuss how OpenID might fit in.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;The Problem&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;VWs suffer from the same problem as website with regard to multiple sign-on. However due to the central role Identity makes in VWs, the problem is much magnified in its implications. Having single identities for each website you visit is merely a clerical annoyance -- remembering each user name and password -- and one that can be quite acceptably fixed with a smart enough user agent keeping track of each password, as Firefox now does.&lt;br /&gt;&lt;br /&gt;However in a VW, having a new Identity for each grid of VW means having to recreate yourself each time you change worlds. You have to redesign your avatar appearance, rebuild your inventory, rebuild your social network, etc. An unacceptably large burden that turns the "metaverse" into a series of "walled gardens".&lt;br /&gt;&lt;br /&gt;What we need is a means of&lt;br /&gt;&lt;ol&gt;&lt;li&gt;asserting a unique identity agreed to by all observers&lt;/li&gt;&lt;li&gt;mapping of that identity to a common specification for appearance, inventory, etc.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;For this post, we will only be considering how to enable item 1.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Thinking about solutions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The obvious means of asserting identity, at least for those of us who have followed any cryptographic developments within the past decade, is for the user agent in question to generate a asymmetric key pair, and use it to pass to the VW a &lt;a href="http://en.wikipedia.org/wiki/Digital_signature"&gt;digital signature&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However as we well know, an endpoint directly asserting a signature without a public third-party is vulnerable to a &lt;a href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack"&gt;man-in-the-middle attack&lt;/a&gt;. However if there was a public third party from which he could receive your public key, then that could be avoided (so long as the third party is actually publicly trusted).&lt;br /&gt;&lt;br /&gt;Also, the tools for generating, maintaining, and using an asymmetric key set are far from ubiquitous and user friendly. If we really want it to be something that everyone can agree on and use, is has to be practicable for the average computer user. If we wanted to use PKI directly, we would have to create a standard protocol for use in VWs, write a standard implementation, then convince everyone to use it. Otherwise we'd have nothing more than cryptographically secure walled gardens.&lt;br /&gt;&lt;br /&gt;The simplest way to take the burden off the end-user from maintaining his own identity is to outsource it a third party as much as possible. Also we can increase the odds that various VWs might standardize on something third party.&lt;br /&gt;&lt;br /&gt;An interesting security property of having a 3-way negotiation, is that if any one party feels that they might be being lied to by one other party, they can always verify with the third. So it takes two parties collaborating with each other to create a deception.&lt;br /&gt;&lt;br /&gt;With special consideration towards having a protocol that could be standardized on, and already has existing implementations, we look at OpenID to see how it measures up to our criteria, and what flaws it possesses.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OpenID Protocol&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I recommend you read for yourself &lt;a href="http://openid.net/developers/specs/"&gt;here&lt;/a&gt; and &lt;a href="http://wiki.openid.net/Introduction"&gt;here&lt;/a&gt;, however I will provide a brief overview of how it works.&lt;br /&gt;&lt;br /&gt;Let us define:&lt;br /&gt;&lt;br /&gt;User Agent: The end user's Web browser, which we will denote AliceFox.&lt;br /&gt;&lt;br /&gt;Relying Party: A Web application that wants proof that the end user controls an Identifier, which we will denote BobBlog.&lt;br /&gt;&lt;br /&gt;OpenID Provider: An OpenID Authentication server on which a Relying Party relies for an assertion of identity, which we will call CarolCert.&lt;br /&gt;&lt;br /&gt;Identity: A URI that represents an identity that AliceFox will assert, and and CarolCert will corroborate. Notice that this identity is "for" AliceFox, but cannot exist outside the context of CarolCert. The two are inextricably tied. We will denote AliceFox's identity with CarolCert as alice.carolcert.com.&lt;br /&gt;&lt;br /&gt;Protocol:&lt;br /&gt;&lt;br /&gt;AliceFox (A) wishes to assert her identity alice.carolcert.com (I) to BobBlog.com/comment.cgi (B) for the purpose of submitting a comment under that identity. She POSTs I to B through the comment form.&lt;br /&gt;&lt;br /&gt;B GETs the URL I, which includes a "link" tag which points to carolcert.com/id.cgi (C). B redirects A to C, passing a "return to" parameter (R) and nonce (N) to C as GET parameters.&lt;br /&gt;&lt;br /&gt;A and C confer amongst themselves is a manner undefined by the protocol in order to verify that A is in fact the entity known as I.&lt;br /&gt;&lt;br /&gt;When C is satisfied of this fact, it prepares a reply to B by creating a secret key (K), a "handle" (H) that publicly identifies that secret key, and signs certain fields to ensure detection of tampering (S). C redirects A back to B with H and S attached as GET parameters.&lt;br /&gt;&lt;br /&gt;If B carries state, B can negotiate (out of band??) the exchange of K with C using &lt;a href="http://en.wikipedia.org/wiki/Diffie-Hellman"&gt;Diffie-Hellman key exchange&lt;/a&gt;, and use K to verify S.&lt;br /&gt;&lt;br /&gt;If B is stateless, he merely echos A's message back to C to verify that A did not tamper with it en-route.&lt;br /&gt;&lt;br /&gt;When B or C verifies S, B considers the identity successfully asserted, and associates A with I for the duration of the session.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What does OpenID Give&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;With that understanding in mind, what can we say about A and B, and what does I really mean to them?&lt;br /&gt;&lt;br /&gt;It's important to point this out: all OpenID says from B's perspective is "A is an entity known to C as I". The delimiting context here is important to understand. A could have any multiple of identities with C, or any other OpenID provider. Moreover C could be anyone at all, even an untrustworthy party. OpenID says nothing about trust.&lt;br /&gt;&lt;br /&gt;However, it is easy to create a trust-based system if one was to white list OpenID providers based on public reputation. It's certainly trivial to create a black list of known untrustworthy providers. This is certainly enough for our purposes as a distributed VW authentication system.&lt;br /&gt;&lt;br /&gt;That said OpenID gives us much more. As we said above, its not hard to create our own simpler (and probably more secure) protocol. However that would entail writing an implementation, drafting a standard, ensuring it was practically deployable in working systems, and building critical mass for its adoption by all VW players. OpenID lets us skip that work, because its done already for us, and get straight to solving our own domain specific problems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What does OpenID not Give&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There is a well-known flaw in OpenID that can be used for phishing. If B is malicious, he can redirect A to his own copy-cat OpenID provider C', and if the user doesn't notice, C' can possibly steal A's credentials and allow a malicious party A' to impersonate A.&lt;br /&gt;&lt;br /&gt;There are other means of misdirection as well. While a computer would always be able to tell that I and I' are different identities, humans might be confused if A and C are sufficiently similar looking to A' and C'.&lt;br /&gt;&lt;br /&gt;The only solution to this is to white list known providers.&lt;br /&gt;&lt;br /&gt;Another known problem with OpenID is the common reliance on passwords as a means of validating A with C. While that is no different from the password schemes currently in use on VWs or websites, I am sure a digital signature based protocol would be vastly superior from a technical standpoint.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;My humble alternative protocol&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Often the best way to judge a design is to consider how you would do it yourself, if you were tasked with making an alternative. I am happy to say that while what I started out with was quite different from OpenID, as I improved my protocol, I noticed that my decisions became more and more like those taken by OpenID, which is a good sign.&lt;br /&gt;&lt;br /&gt;Warning: I am neither a security nor web expert, nor do I claim to be. Be gentle with your corrections.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;This design also relies on cookies from one site being inaccessible from another. I have no idea how true this is in practice.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When A registers an identity I with C, A downloads an implementation of an asymmetric cipher in JavaScript that writes the private key K in a cookie, and the public key P in C's database.&lt;br /&gt;&lt;br /&gt;A asserts identity I to B. Like OpenID, this is a URL that ties A to C, such as alice.carol.com.&lt;br /&gt;&lt;br /&gt;Like OpenID, I contains a link to C, which B redirects A to, sending a return-to R and nonce N as GET parameters.  Unlike OpenID, I also contains a link to P, which B downloads and associates with N.&lt;br /&gt;&lt;br /&gt;C delivers to A a JavaScript program which opens K, encrypts N into a digital signature DS, then creates a message signature S to detect tampering. C then redirects A back to B, with N, DS, and S as GET parameters.&lt;br /&gt;&lt;br /&gt;B verifies S, uses P to decrypt DS and verify it is the same as N. If so, B considers I successfully asserted.&lt;br /&gt;&lt;br /&gt;Essentially C is nothing more than a repository for 1) public keys, 2) trusted JavaScript implementation of cryptographic algorithms.&lt;br /&gt;&lt;br /&gt;Thoughts?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-5139518771130368685?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/5139518771130368685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=5139518771130368685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5139518771130368685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5139518771130368685'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/08/distrubuted-identity.html' title='Distributed Identity in Virtual Worlds'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7934427886101070590</id><published>2008-08-21T05:07:00.000+04:30</published><updated>2008-08-21T07:36:12.946+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='buzzwords'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Disruptive Products, or Disruptive Technology doesn't apply to Software</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Disruptive Technology&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For a long time I've heard people use the phrase "Disruptive Technology" in conjunction with one idea or another, as if the invocation of the phrase was supposed lend some weight to the discussion I never quite fathomed. The people who tended to use the phrase also tended to be the sort of people who often used those kind of phrases in such a manner as to render them meaningless, so I never really paid much attention to exactly what it was that they meant -- because strangely enough, it turned out that whether declared "disruptive" or not, it made no difference as far as I could tell!&lt;br /&gt;&lt;br /&gt;I've heard half-coherent explanations of the phrase, but I always took it to mean "technology that makes managers and business-types no longer understand how to make money", which I thought was nothing special considering I assume that most business types don't understand technology anyways, and their understanding of how to make money with it was always suspect in the first place.&lt;br /&gt;&lt;br /&gt;However after Clayton Christensen's "The Innovators Dilemma" made its way to the bookshelf at work, I thought I would see just what it was I was missing the whole time. Turns out there is far more to the idea than the throngs of excessive catch-phrase users would imply.&lt;br /&gt;&lt;br /&gt;Firstly, I object to the use of the phrase "Disruptive &lt;span style="font-style:italic;"&gt;Technology&lt;/span&gt;", since that implies to me there is something inherent in the engineering or science that causes a technology to become "disruptive", which is just not the case. The things labeled disruptive technologies often have traits in common, but those traits are really all about how a market perceives them, and have nothing to do with technology itself. I prefer "Disruptive Products", because that captures the fact that this is a book about &lt;span style="font-style: italic;"&gt;Business Management&lt;/span&gt;, not Engineering. The idea of "disruptive technology" as presented by Christensen &lt;span style="font-style: italic;"&gt;cannot&lt;/span&gt; be separated from the fact that is is a product destined to be sold on a market.&lt;br /&gt;&lt;br /&gt;I recommend you read the entire book yourself, because there are lots of noteworthy ideas for anyone interested the business of technology, but I will give a brief summary of the major themes as I saw them herein.&lt;br /&gt;&lt;br /&gt;The author uses his extensive research into a collection of industries where certain technological innovations happened, which he characterizes as either "sustaining" or "disruptive", and how the affected the health of the businesses in that industry.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A Sustaining Technology&lt;/span&gt; is one where the market for the products made with the technology is well known, and the firm in question can use the technology to increase its profit margin by adding new features which increase the products performance in the market.&lt;br /&gt;&lt;br /&gt;Higher profit margins mean the company can further grow, and invest that growth in tuning the entire operation of the firm to servicing the high-margin market. In many ways the firm becomes captive to its high-margin customers, because failing to invest in sustaining the growth in performance of the products, as its existing customers demand, will cause it to hamper its own growth in profit, and lose market position. The author notes that a firm's quest for continued growth, forces it to "trend upward" from the low-end low-margin area of the market, to the high-end high-margin, and that trend is essentially inevitable if a firm wants to satisfy its investors.&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;Disruptive Technology&lt;/span&gt; is one where there the technology has no proven market at the time of development, but eventually will develop a market outside the expectation of its developers.&lt;br /&gt;&lt;br /&gt;That in and of itself is hardly surprising. The interesting thing about the book is that Christensen does his research, and finds there is a historical trend in disruptive technologies, that if known, can help businesses manage and succeed in turning disruptive technologies into profitable, and often industry changing, products.&lt;br /&gt;&lt;br /&gt;He discovered that DTs have common traits, and the following traits serve as a definition of a DT&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DT often appear as an innovation stemming from an existing industry.&lt;/li&gt;&lt;li&gt;DT provide value in areas that the current market places no value in. Historically this means they are low-performing and low-cost, but provide benefits such as reduced size, or improved flexibility.&lt;/li&gt;&lt;li&gt;DT, due their perceived lack of value in the existing market, begin their life as a product by taking the low end of the market, left under served as established firms climb to the high-end in pursuit of growth.&lt;/li&gt;&lt;li&gt;Existing firms are completely unable to capitalize on DTs because their high-end cost structure means they cannot grow with low margins, and thus development of DT into products for the emerging market is left entirely to small firms.&lt;/li&gt;&lt;li&gt;DT improve in performance in traditional metrics over time, as well as retaining the benefits that gave it access to its first emerging market, and thus begins to move into the high-end and cannibalize the previous market (for which it initially appeared ill-suited), and the existing firms, caught flat footed, find them selves in serious trouble.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;To make that more concrete, the classic example used throughout the book is the hard drive industry. The story there is&lt;br /&gt;&lt;ol&gt;&lt;li&gt;market demands higher capacity and speed for their existing computers, which existing well-managed firms deliver, and thus grow and move upscale&lt;/li&gt;&lt;li&gt;someone develops a smaller form factor drive, with dramatically reduced capacity, and the existing market soundly rejects is as unsuitable for their needs&lt;/li&gt;&lt;li&gt;new markets emerge for smaller computers (mainframe -&gt; minicomputer -&gt; pc -&gt; notebook -&gt; appliance (ipod, car-navi)), which find the smaller form factor indispensable&lt;/li&gt;&lt;li&gt;density on the small form factor drives increase to the point where it cannibalizes the market for large high-margin drives, and the once small companies who were able to market the small drives grow larger and displace the incumbents&lt;br /&gt;&lt;/li&gt;&lt;li&gt;repeat (14 -&gt; 8 -&gt; 5.25 -&gt; 3.5 -&gt; 2.5 -&gt; 1.8 etc inch drives)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Disruptive Products&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;However while reading the book, I kept trying to see how the concepts there applied to what I was doing, which is programming in the software industry. I couldn't help but come to believe that this analysis was a little bit dated, being published in 1997, and only seemed to apply hardware products.&lt;br /&gt;&lt;br /&gt;Hardware products have a easily quantifiable manufacturing and distribution costs, and thus have a clear relationship between price and profit. That is expensive hardware is expensive because the physical bits involved in making it are expensive, and the overhead of moving those bits to market is expensive.&lt;br /&gt;&lt;br /&gt;Software however, has no fixed costs except programmer salary (among which programmer talent and pay can vary widely), and some minor managerial overhead. For a shrink wrapped software product, you could charge $1000 one day and $1 the next, and it would cost you nothing but your profit margin to do.&lt;br /&gt;&lt;br /&gt;And here is the controversial point coming up:&lt;br /&gt;&lt;br /&gt;I don't believe that, ultimately, software is really a product at all. It's a service. The days of being able to hand over an application in exchange for $X will soon be gone for good.&lt;br /&gt;&lt;br /&gt;Ultimately, there will be two models for commerce in the software industry:&lt;br /&gt;1. Custom whole application development&lt;br /&gt;2. Customization of existing open source solutions to emerging, specific, business needs&lt;br /&gt;&lt;br /&gt;Although the first case you might assume that since there is an integrated deliverable, you might consider it a "product", I would assert that what the developer is being paid for is to solve a problem, and so the compensation is proportional to the problem, not to the cost of manufacturing the good.&lt;br /&gt;&lt;br /&gt;I foresee that so long as there exist new and different niche businesses, there will always be a demand for new and niche software; things not complete serviced by any pre-existing software package, and have to be built from scratch.&lt;br /&gt;&lt;br /&gt;The second case makes a lot of assumptions in excluding proprietary software from the picture. Let me try to follow the history of open source in the software industry, and use that to justify my extrapolation.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Most open source projects are born out of existing industries, either because the a firm needed some software for its core business, and found that once completed it was valueless to keep it secret, or because engineers trained in an industry felt like putting their skills to use outside of a corporate setting.&lt;/li&gt;&lt;li&gt;Open source solutions at first held no value for anyone outside hobbyist and hackers. It was hard to use, poorly supported, and lacking important features. However the one value proposition it did provide, access to the source code, gave it flexibility that made it absolutely indispensable for certain applications such as research or highly customized niche applications, where the code would have to be heavily modified, but there was no justification for starting entirely from scratch.&lt;/li&gt;&lt;li&gt;Due to the perceived inappropriateness of open source for business or personal use, open source use often started out as skunkworks style projects running under the radar of management, in small low-end roles where other existing solutions were inappropriate.&lt;/li&gt;&lt;li&gt;Existing firms software firms, Apple, MS, Adobe, etc, at first treated open source with derision, then fear, and tried to ignore it for the longest time, because their dependence on high-margin software sales could never allow it to move downscale and compete with something that was free. It would be corporate suicide. This allowed smaller shops to capitalize on the commercialization of open source.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;While at first constrained to only the low end, open source has been on a trend of steadily increasing quality over time, and is now at the point where MacOS has significant open source portions, Adobe is open sourcing the basis for its strategic Flash platform, and Linux is seen as a credible alternative for  Windows on low end machines.&lt;/li&gt;&lt;li&gt;I predict this trend will continue to the point where open source has so complete dominated the software world, from the bottom up, that firms like Apple are constrained to sell their OS as value-added perks on top of a mostly open OS for their hardware, Adobe becomes a seller of boutique software, and MS becomes a systems integrator and software as a service provider.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Open Source is a Disruptive Product&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Surely, I'm not the first person to think of this...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7934427886101070590?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7934427886101070590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7934427886101070590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7934427886101070590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7934427886101070590'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/08/disruptive-products-or-disruptive.html' title='Disruptive Products, or Disruptive Technology doesn&apos;t apply to Software'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3375557059020805286</id><published>2008-08-10T16:31:00.000+04:30</published><updated>2008-08-10T17:38:14.249+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='changes'/><category scheme='http://www.blogger.com/atom/ns#' term='family'/><title type='text'>The Next Chapter</title><content type='html'>While I was at 3Di I had the pleasure of working with many real and potential partner companies from across the globe. Many times I succeeded only in embarrassing myself professionally; but I always tried to hold true to a sense of professional competence, ethics, and behaviour that stood for the kind of person I want to be. Not unselfishly, I hoped to be seen as a stand out guy, even if only to serve my own conceited self image.&lt;br /&gt;&lt;br /&gt;Part of my professional ethic is that companies, as abstract entities, with no more life than that which the whim of its investors endow it, deserve no great respect or loyalty in and of themselves. Companies demand obedience, whether it be to laws or directives from superiors; but it's &lt;span style="font-style:italic;"&gt;people&lt;/span&gt; that deserve respect and loyalty. And many times it's people outside your company, who's respect you've cultivated and earned, who go furthest in helping you accomplish your goals.&lt;br /&gt;&lt;br /&gt;I hope that doesn't sound too shocking, because superficially it appears to be a contradictory to the notions of belonging and identity that most people hold. However if you look closer you might find merely a different definition of the same.&lt;br /&gt;&lt;br /&gt;The purpose for someone like me to join a company, it's never about getting rich, it's always about creating something larger that yourself. Money is just a means to play the game, not the game in and of itself. On the other hand, for many people, joining a company is about keeping your head down so you can continue to earn a wage to fund whatever it is you'd rather be doing. People like that aren't going to join you in building new things.&lt;br /&gt;&lt;br /&gt;I am happy to say that the result of my connections was several strong relationships with people from many different companies, industries, and backgrounds. Some of whom I haven't even ever met in person yet. When I informed those people that I would no longer be able to act as a liaison with 3Di due to my decision to leave, I was impressed with the level of interest in continuing working with me after 3Di. It didn't take very long for someone to offer me a job, but I am somewhat surprised at the quality of opportunity I have been given a shot at. &lt;br /&gt;&lt;br /&gt;I have tentatively accept a role as senior engineer with &lt;a href="http://realxtend.org"&gt;RealXtend&lt;/a&gt;, an emerging leader in open 3D virtual worlds, to work with them directly in Oulu Finland. I will likely be involved in working with the open source community, general programming, and helping plot technical direction using the knowledge and insight I've cultivated during my short but eventful career in virtual worlds.&lt;br /&gt;&lt;br /&gt;That means picking up the family and heading down to the equivalent of a small town to the north of Edmonton. While Oulu is quite a bit smaller than the some 35M people in the greater Tokyo area, I am actually relishing a chance to leave this mass of humanity behind for a while. I needed a new direction, under leadership that I can respect, and quite frankly, I am impressed beyond words at the professionalism and attitude that realxtend has shown in their work to get me over to Finland. These guys are great guys, and as I said to start out, it's the &lt;span style="font-style:italic;"&gt;people&lt;/span&gt; there that have earned my respect and loyalty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3375557059020805286?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3375557059020805286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3375557059020805286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3375557059020805286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3375557059020805286'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/08/next-chapter.html' title='The Next Chapter'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-530815682397840357</id><published>2008-07-26T10:01:00.000+04:30</published><updated>2008-07-26T10:17:17.150+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='holidays'/><title type='text'>Bonus Track</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-82100cb64ce5e23d" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v23.nonxt5.googlevideo.com/videoplayback?id%3D82100cb64ce5e23d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329923010%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D838D12A681F460BDAD67869FAC99005AEC8F3F3C.F6D37DA91ECED5FCC0755A32A7E00B18981F842%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D82100cb64ce5e23d%26offsetms%3D5000%26itag%3Dw160%26sigh%3DWtkKEuM4d-Ifxcesa9whhNw66kU&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v23.nonxt5.googlevideo.com/videoplayback?id%3D82100cb64ce5e23d%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329923010%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D838D12A681F460BDAD67869FAC99005AEC8F3F3C.F6D37DA91ECED5FCC0755A32A7E00B18981F842%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D82100cb64ce5e23d%26offsetms%3D5000%26itag%3Dw160%26sigh%3DWtkKEuM4d-Ifxcesa9whhNw66kU&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Bonus points if you can tell me where that was shot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-530815682397840357?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=82100cb64ce5e23d&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/530815682397840357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=530815682397840357' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/530815682397840357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/530815682397840357'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/07/bonus-track.html' title='Bonus Track'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-9062634279491018665</id><published>2008-07-26T09:25:00.000+04:30</published><updated>2008-07-26T10:00:13.743+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='idiots'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='pictures'/><title type='text'>Belated Happy L. Day, and other such Joyous News!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_mbtIA8_3IzU/SIq1_e-D2iI/AAAAAAAAAJU/rmBWiVnYs0s/s1600-h/IMG_1120.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_mbtIA8_3IzU/SIq1_e-D2iI/AAAAAAAAAJU/rmBWiVnYs0s/s400/IMG_1120.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5227190419766630946" /&gt;&lt;/a&gt;&lt;br /&gt;I know my blog entries have become scarce. There is a fair amount of change happening in my world, and what free time I do have generally goes to L., who demands it most insistently.&lt;br /&gt;&lt;br /&gt;For those that don't know, I am finally leaving 3Di after over a year. The final incident that decided the matter was a bit of a much-ado-about-nothing due to political and cultural issues, and I finally realized that what I was doing wasn't rewarding enough to justify that degree of continued frustration. I told the management that something had to change or I would leave; and they sat on their thumbs, and said nothing, as they are wont to do, until I resigned as I said I must. And thus it was decided.&lt;br /&gt;&lt;br /&gt;My entire career at 3Di might be considered one of trying to "fix things from the inside", but in the end it must be said that I have failed almost entirely. I don't blame myself for it, though I am hardly blameless -- no doubt my frequent lack of tact when complaining of systematic incompetence throughout the company lead to a situation where after a while no one would hear anything I had to say any more. However simply ignoring a rather insistent complaint doesn't make the root disease vanish, and so it's management's failure to own up to their own ... um failures and implement some real improvement, that was the ultimate ... ah failure. Fail.&lt;br /&gt;&lt;br /&gt;That said I cherish my time at 3Di, as it has taught me a lot about technology, business, management, and myself. I am very glad that I joined this rollercoaster, and would do it again.&lt;br /&gt;&lt;br /&gt;Where to go from here is a little unclear yet, but one thing I am fairly certain of, I don't wish to work for any Japanese capitalized/managed companies any more. I've had my share, and it's taught me that outside of some superstar companies like Toyota or Sony, (current?) Japanese business culture rewards mediocrity, hides incompetence, and punishes excellence. It obscures clear, precise communication, and is generally ill-suited for business outside of Japan. (This is a whole rant in and of itself!)&lt;br /&gt;&lt;br /&gt;I am looking at western companies in Tokyo, a handful of foreign companies related to my work at 3Di, various companies back in Canada and the US. I am also considering taking some of my ideas from working at 3Di and seeing if anyone wants to do some research with me. Particularly I wish to study Scalability, Security, and Identity in Virtual Worlds (OpenSim).&lt;br /&gt;&lt;br /&gt;And now time for something completely different.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_mbtIA8_3IzU/SIq1Ezdb0qI/AAAAAAAAAJM/7BmCA8SWZn0/s1600-h/IMG_1122.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_mbtIA8_3IzU/SIq1Ezdb0qI/AAAAAAAAAJM/7BmCA8SWZn0/s400/IMG_1122.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5227189411654652578" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-9062634279491018665?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/9062634279491018665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=9062634279491018665' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/9062634279491018665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/9062634279491018665'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/07/belated-happy-l-day-and-other-such.html' title='Belated Happy L. Day, and other such Joyous News!'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_mbtIA8_3IzU/SIq1_e-D2iI/AAAAAAAAAJU/rmBWiVnYs0s/s72-c/IMG_1120.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-801993873770592983</id><published>2008-06-19T16:38:00.001+04:30</published><updated>2009-11-29T19:23:42.756+03:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='hiring'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><title type='text'>Every thing you need to know about a Programmer, you can learn from having them explain their own code to you.</title><content type='html'>I've been doing interviewing and hiring at our technology startup for almost a year now. When we began hiring, I found that I was basically the only person who would do it -- partly because I was the only person who displayed any sort of natural aptitude at judging another Engineer's technical and personal abilities.&lt;br /&gt;&lt;br /&gt;It didn't take me long to create my own system which I thought was both fair to the interviewee (whom I empathized with, having been one for so long), and gave me a decent understanding of the candidate's qualities. With a little bit of intuition, and some trial-and-error, I evolved my system.&lt;br /&gt;&lt;br /&gt;As the people I had interviewed and hired began to join me in the interviewing process, I got to notice how other people handled going from interviewee to interviewers, and how their outlook on a candidate's performance differed from mine.&lt;br /&gt;&lt;br /&gt;This evolutionary process has lead me to solidify the following as my Golden Laws (tm) of hiring. Most people who are experienced with interviewing will not be surprised I think, but when a new person joins our team, I find that I need to explain these rules each time anew, so I thought I'd write them down.&lt;br /&gt;&lt;br /&gt;1. Hiring is the single most important thing a company can do because it directly affects all other things that are done thereafter.&lt;br /&gt;&lt;br /&gt;2. Hire only people you completely trust to fulfil a given role. Then completely trust those people.&lt;br /&gt;&lt;br /&gt;3. Your job as an interviewer is NOT to hire "good" people -- that's an undecidable problem. Your job as interviewer is to REJECT substandard people.&lt;br /&gt;&lt;br /&gt;4. The most critical personality trait to look for in a candidate is Honesty. All other important properties flow from that font. Dishonesty in an interview is the Kiss-of-Death.&lt;br /&gt;&lt;br /&gt;5. Every thing you need to know about an Programmer, you can learn from having them explain their own code to you.&lt;br /&gt;&lt;br /&gt;(And lastly, the Green Interviewer's Trap: Hiring is not a popularity contest. Most interviewees are a nice people.You are not required to hire nice people just because they're nice.)&lt;br /&gt;&lt;br /&gt;The last law is the title of this entry because its perhaps the most controversial item. Yet I hold it to be the most essential truth I have discovered about hiring Programmers. So much so, I am going to let you in to my entire technical review process, and how it is centred around item 5:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;The Sample&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After reviewing the candidate's resume, and mentally making note of potential strengths and weaknesses, I always request a code sample from the candidate, in the following order of preference:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;1. Open Source or otherwise Publicly Available Source&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Open source is &lt;span style="font-weight: bold;"&gt;the&lt;/span&gt; best way to possibly find out how good a programmer is. A public SCM server has all history and contribution information regarding that project. You can graph a programmer's entire history with that code base to the most minute detail.&lt;br /&gt;&lt;br /&gt;Mailing lists have discussions of technical matters, and help show how well the candidate gets along with other people.&lt;br /&gt;&lt;br /&gt;Open Source is usually a work of passion, and outside the corrupting influence of bad company management, so you have already factored out the naked element of talent.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;2. Redacted Source code taken from a company project (without violating any applicable laws, be careful)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Proprietary (but redacted in order to comply with confidentiality laws) source code is good because it shows what the candidate produces when given a real-world problem in real-world circumstances. Particularly it shows if they tend cut corners to meet deadlines or other practical constraints.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;3. School Coursework (if a semi-recent graduate)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;School coursework, if not too dated, is good because it shows what the candidate can do when asked to really apply their intellect to a serious problem. It's also an opportunity for the candidate to explain how his coding style has evolved over time, and why he would make different decisions today.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;4. Toy Project selected by Candidate&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Candidate-selected toy project is good because it shows what interest the candidate has if someone is not over their shoulder telling them what to do.&lt;br /&gt;&lt;br /&gt;Do they choose something just difficult enough to meet your requirements? Do they choose something way too hard to complete in a reasonable amount of time? Do they report enjoying the exercise?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;5. Toy Project selected by Me&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One reason why I neglect this option to the last is that one must be respectful that candidates often are busy people, and they can and will turn down the interview because they feel they have better things to do than jump through your recruiting hoops.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;6. Source written by Me&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is fun for showing off your work, and is realistic in the sense that programmers are routinely asked to do exactly that, however its rarely under such pressure situations. It's too easy to have a flustered programmer get thrown off by some minor detail, and thus you end up with incomplete reading of their true ability.&lt;br /&gt;&lt;br /&gt;Either way, it is &lt;span style="font-style: italic;"&gt;absolutely critical&lt;/span&gt; that the code is either hand-written by the candidate (or in cases where external code sources were used, clearly attributed as belonging to someone else), because &lt;span style="font-weight: bold;"&gt;we are going to ask them to explain its working to us&lt;/span&gt;. Clear attribution is critical because it is an unalterable part of our standard of honesty.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;The Interview Prep&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once you have a sample of their code, you can of course review the code before the Interview to look at issues of Style, Correctness, Performance, Good Design. This is important. However the real purpose of reviewing the code is to generate questions for the candidate once he arrives to the interview. Ask yourself, "why did this person choose to make these decisions when writing the code?"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;The Interview&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When the Candidate arrives, I open the interview with a stupid joke or sarcasm. Partly because I often am as nervous as the candidate, and I want to break the ice. I also tell him that there &lt;span style="font-weight: bold;"&gt;are no "Right" answers in this interview&lt;/span&gt;, and &lt;span style="font-weight: bold;"&gt;no trick questions&lt;/span&gt;. It is important for the dignity of both parties to keep the interview cooperative, and to make it understood that you are both on the same side -- after you hire the candidate, you certainly will be counting on their cooperation and good will then!&lt;br /&gt;&lt;br /&gt;Next I have a short list of simple, no-nonsense, general questions that I ask &lt;span style="font-style: italic;"&gt;every&lt;/span&gt; candidate. For example "We are in the technology field, and as we both know, technology changes at a staggering rate. What methods do you use to keep on top of that change? Please be specific."&lt;br /&gt;&lt;br /&gt;Next I have the list of questions generated from their sample code with me, and I move across the table to sit beside to the candidate with my laptop. I open their source code opened in a text editor (their preferred on if possible).&lt;br /&gt;&lt;br /&gt;I ask the candidate to pretend that I am a Junior Engineer, and he must explain his code to me. As a curious person, I will stop them at various points to clarify the concerns I compiled during the Interview Prep, and put to rest any questions that happen to come into my mind as they are speaking.&lt;br /&gt;&lt;br /&gt;What an observer can gather from this simple exercise is essentially everything you'll ever need to know about that person as a Programmer.&lt;br /&gt;&lt;br /&gt;- A person who remembers even very old code is a person that was paying close attention when they wrote it, and understood the nuance of every line.&lt;br /&gt;&lt;br /&gt;People who have trouble recalling what they wrote either didn't write it, or never understood it clearly when the wrote it.&lt;br /&gt;&lt;br /&gt;- A person who speaks confidently and at a decent pace is a person at ease with their code and the decisions that code embodies. Even if the code is bad, a good programmer can justify their compromises in a rational manner.&lt;br /&gt;&lt;br /&gt;People who speak in broad generalities, ramble incoherently, or carry off on tangents are more than just disorganized. They are trying to distract you from the fact that they don't know what they are talking about by burrying you in an avalache of verbage.&lt;br /&gt;&lt;br /&gt;- A person who identifies their own mistakes and errors is more than just aware of their own mistakes, they are showing an honesty and desire to learn and improve. Similarly, people admit their don't know or understand some facet of the system.&lt;br /&gt;&lt;br /&gt;A person who steadfastly insists on issues where you know him to be mistaken are not capable working with others, and should be rejected immediately.&lt;br /&gt;&lt;br /&gt;- A person that can turn a complicated algorithm or technical trick into something easily understood by any simple engineer has not just a gift for teaching, but likely a deep and intuitive understanding of domain.&lt;br /&gt;&lt;br /&gt;People who cannot relate technical matter without speaking entirely above your level may be brilliant, but could prove problematic if they have to work with others.&lt;br /&gt;&lt;br /&gt;That said, even simple body language can tell you a lot about a candidate. One of the most dependable Engineers I've ever worked with failed horribly in trying to understand some source code I had written (possibly because I hadn't written it nearly as well as I thought I had!). Every time I asked him what a certain peice of code was doing, he politely answered "I don't know". What impressed me was the way in which he studied my code so closely, determined to fathom out my design through force of will. To this day his tenacity to reason through a problem completely is the hallmark of his good work with our company.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;The wind-down&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If I have come to a negative conclusion about the candidate, and decided not to continue, I ask the if he has any questions, then thank the person for their time, and ask them to leave.&lt;br /&gt;&lt;br /&gt;If I have finished my walk-through on a positive note, I wrap the interview up with a brief explanation of my company, then invite the candidate to ask his own questions of us in a reversal of the interview process.&lt;br /&gt;&lt;br /&gt;A complete and incisive set of questions for me to answer is a sign of a good candidate.&lt;br /&gt;&lt;br /&gt;If I conclude that a person is technically competent, the next round of interviews include various members of our team, and are mostly about making sure that personalities match well, and that company culture is maintained.&lt;br /&gt;&lt;br /&gt;If any one interviewer registers a "refuse" vote, then the candidate is refused.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-801993873770592983?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/801993873770592983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=801993873770592983' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/801993873770592983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/801993873770592983'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/06/every-thing-you-need-to-know-about.html' title='Every thing you need to know about a Programmer, you can learn from having them explain their own code to you.'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4556736379168733411</id><published>2008-05-29T17:27:00.000+04:30</published><updated>2008-05-29T17:40:25.906+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='vacation'/><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='home'/><title type='text'>Coming Home</title><content type='html'>I should have posted this a very long time ago, but I've been rather busy with work and life.&lt;br /&gt;&lt;br /&gt;It seems that since I got back from NY in April I've been running around doing something, or just being plain run down. I had my friend Anand in town, and we had a good time about Tokyo. Now Deifante has come, and we'll be off to the &lt;a href="http://virtualworld-conference-expo.net/english/index.html"&gt;Virtual World Conference and Expo&lt;/a&gt; here in Tokyo. The reason D. is in town is because we are kicking off a new project that I am ostensibly leading, and D. is contracting to work with us on it.&lt;br /&gt;&lt;br /&gt;However, I am now planning to pack up my family and head back to Canada for the first time in over 2 years. It will be L.'s first trip on an airplane, and my family's first time seeing L. in person.&lt;br /&gt;&lt;br /&gt;If anyone I know in Calgary would like to meet me or M. or L., please drop me an email, and I will do my best to arrange it. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4556736379168733411?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4556736379168733411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4556736379168733411' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4556736379168733411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4556736379168733411'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/05/coming-home.html' title='Coming Home'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-4064491843793119440</id><published>2008-05-06T15:23:00.000+04:30</published><updated>2008-05-06T15:35:15.249+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='literature'/><category scheme='http://www.blogger.com/atom/ns#' term='poetry'/><title type='text'>If I had a wedding, and I had tried this line at it, I think I would have lost exactly everyone</title><content type='html'>&lt;blockquote&gt;&lt;p style="font-weight: bold;"&gt;&lt;i&gt;[Reads]&lt;/i&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;You that choose not by the view,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Chance as fair and choose as true!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Since this fortune falls to you,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Be content and seek no new,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;If you be well pleased with this&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;And hold your fortune for your bliss,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Turn you where your lady is&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;And claim her with a loving kiss.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A gentle scroll. Fair lady, by your leave;&lt;br /&gt;I come by note, to give and to receive.&lt;br /&gt;Like one of two contending in a prize,&lt;br /&gt;That thinks he hath done well in people's eyes,&lt;br /&gt;Hearing applause and universal shout,&lt;br /&gt;Giddy in spirit, still gazing in a doubt&lt;br /&gt;Whether these pearls of praise be his or no;&lt;br /&gt;So, thrice fair lady, stand I, even so;&lt;br /&gt;As doubtful whether what I see be true,&lt;br /&gt;Until confirm'd, sign'd, ratified by you.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/The_Merchant_of_Venice"&gt;-- BASSANIO, SCENE II. Belmont. A room in PORTIA'S house.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-4064491843793119440?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/4064491843793119440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=4064491843793119440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4064491843793119440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/4064491843793119440'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/05/if-i-had-wedding-and-i-had-tried-this.html' title='If I had a wedding, and I had tried this line at it, I think I would have lost exactly everyone'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-100141260182243083</id><published>2008-05-01T15:31:00.000+04:30</published><updated>2008-05-01T17:26:11.380+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='boredom'/><category scheme='http://www.blogger.com/atom/ns#' term='math'/><title type='text'>So this is what my Degree comes to...</title><content type='html'>After many years of study, it comes down to solving logarithms in your head while you're trying to get to sleep.&lt;br /&gt;&lt;br /&gt;How many rounds of Russian Roulette does it take before you have 50-50 or worse odds of surviving?&lt;br /&gt;&lt;br /&gt;If we assume there is 1 bullet in a 6 chambered revolver, you have a 1/5 chance of having your wig pushed back, and 5/6 chance of taking another breath. The problem is that every time you play (and survive to play again), you're taking another trial with 5/6 odds, which gives you (5/6)^n probability of surviving after n rounds.&lt;br /&gt;&lt;br /&gt;Problem is that when you multiply a number less than 1, you always get something smaller than what you started with. That means one day, you will bite the bullet. The question is, after how many tries?&lt;br /&gt;&lt;br /&gt;We wish to solve the following for n:    &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;(5/6)^n = 1/2&lt;br /&gt;=&gt;    lg (5/6)^n = lg (1/2)&lt;br /&gt;=&gt;    n * lg (5/6) = lg (1/2)&lt;br /&gt;=&gt;    n * (lg(5) - lg(6)) = lg(1) - lg(2)&lt;br /&gt;=&gt;    n * (lg(5) - lg(2) - lg(3)) = -1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now here we reason that since lg() is a continuous, monotonically increasing function, by the intermediate value theorem:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;2 &lt; 3 &lt; 4 &lt; 5 &lt;br /&gt;=&gt; lg(2) &lt; lg(3) &lt; lg(4) &lt; lg(5)&lt;br /&gt;= 1 &lt; lg(3) &lt; 2 &lt; lg(5)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;That gives us a tight enough bound for lg(3) ~ 1.5, considering the precision we need only to the nearest whole number, but the bound on lg(5) is pretty loose, so we'll need to do better.&lt;br /&gt;&lt;br /&gt;We know that we can approximate an analytic function, as lg() certainly is, about a point "a" using its derivative:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;lg(x) ~ lg(a) + lg'(x) * (x-a)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;We also know that &lt;br /&gt;&lt;pre&gt; &lt;br /&gt;lg'(x) = 1/(x * ln2)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;where e ~ 2.7, so we take ln2 ~ 1.&lt;br /&gt;&lt;br /&gt;Together this gives:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;lg(5) &lt;br /&gt;~ lg(4) + 1/5 * (5-4)&lt;br /&gt;= 2 + 1.5 = 2.2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Going back to the original equation:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;n * (lg(5) - lg(2) - lg(3)) = -1&lt;br /&gt;=&gt; n * (2.2 - 1 - 1.5) = -1&lt;br /&gt;=&gt; n = 1 / 0.3 = 3.3&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Lets verify that we haven't wandered completely off-base by checking our calculation:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;(5/6)^3 = 125 / 216 &gt; 125 / 250 = 1/2&lt;br /&gt;=&gt; (5/6)^3 &gt; 1/2&lt;br /&gt;&lt;br /&gt;(5/6)^4 = (125 * 5) / (216 * 6) = 625 / 1296 &lt; 1250 = 1/2&lt;br /&gt;=&gt; (5/6)^4 &lt; 1/2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;So there you have it: 3 rounds of everyone's favorite pastime gives you better than 50-50 odds, and 4 rounds give you worse than 50-50 odds. Running it through the calculator the next morning, you have a 57% chance of surviving 3 rounds, and 48% after 4. &lt;br /&gt;&lt;br /&gt;Now, play a game of Russian Roulette and have a blast.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-100141260182243083?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/100141260182243083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=100141260182243083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/100141260182243083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/100141260182243083'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/05/so-this-is-what-my-degree-comes-to.html' title='So this is what my Degree comes to...'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-5594975579865654748</id><published>2008-04-21T12:26:00.000+04:30</published><updated>2008-04-21T18:10:22.479+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='VoIP'/><category scheme='http://www.blogger.com/atom/ns#' term='computing'/><title type='text'>Asterisk Realtime Architecture</title><content type='html'>Like any machine tinkered with heavily over time, Asterisk has a lot of exposed configuration points in a lot of places, and it can be hard to know how or why what you want to do isn't working because you neglected to set some variable that became necessary since the last time the module was documented.&lt;br /&gt;&lt;br /&gt;I've fallen into this situation for the past couple days, and having finally found the right thing to tweak, let me write down how to use ODBC to access Asterisk's configuration files, including the dial plan, from a real-time database.&lt;br /&gt;&lt;br /&gt;First thing: go read the &lt;a href="http://www.asteriskdocs.org/"&gt;official book&lt;/a&gt; by O'Reilly, and read the chapter on ARA.&lt;br /&gt;&lt;br /&gt;Once you have downloaded Asterisk, as we did &lt;a href="http://climbing-the-hill.blogspot.com/2008/04/working-with-asterisk.html"&gt;here&lt;/a&gt;, run &lt;span style="font-style: italic;"&gt;./configure&lt;/span&gt;, then &lt;span style="font-style: italic;"&gt;make menuselect&lt;/span&gt; and ensure &lt;span style="font-weight: bold;"&gt;res_odbc&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;res_config_odbc&lt;/span&gt;, and all *&lt;span style="font-weight: bold;"&gt;_realtime&lt;/span&gt; modules are set&lt;br /&gt;to be built. If they have a 'XXX' beside their name, it means that you need to install some dependencies. Search your package installer for "ODBC" and a database that supplies an ODBC driver, such as PostgreSQL or MySQL. You may also need the "-devel" version of those packages.&lt;br /&gt;&lt;br /&gt;To make the tutorial complete, we'll pick a DB for the examples, so we choose PostgreSQL.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Setting Up the Database&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As the DB's (&lt;span style="font-style: italic; font-weight: bold;"&gt;not the system's&lt;/span&gt;) root user create a new role and database for Asterisk to use:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;createuser -SRdP &lt;span style="font-weight: bold;"&gt;asterisk-role&lt;br /&gt;&lt;/span&gt;createdb --owner=asterisk-role &lt;span style="font-weight: bold;"&gt;asterisk-db&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;Then restart the database.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Setting Up ODBC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ensure that /etc/odbcinst.ini exists and contains something like the following:&lt;br /&gt;[PostgreSQL]&lt;br /&gt;Description  = ODBC for PostgreSQL&lt;br /&gt;Driver       = /usr/lib/libodbcpsql.so&lt;br /&gt;Setup        = /usr/lib/libodbcpsqlS.so&lt;br /&gt;FileUsage    = 1&lt;br /&gt;&lt;br /&gt;Ensure that /etc/odbcinst.ini exists and contains something like the following:&lt;br /&gt;[asterisk-postgres-connector]&lt;br /&gt;Description          = PostgreSQL connection to 'asterisk' database&lt;br /&gt;Driver               = PostgreSQL&lt;br /&gt;Database             = asterisk-db&lt;br /&gt;Servername           = localhost&lt;br /&gt;UserName             = asterisk-role&lt;br /&gt;Password             = 123456&lt;br /&gt;&lt;br /&gt;Then verify that the connection works using the following command:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;echo "select 1" | isql -v asterisk-postgres-connector&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Setting Up a Basic Asterisk Configuration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;extconfig.conf &lt;/span&gt;&lt;br /&gt;[settings]&lt;br /&gt;sipusers =&gt; odbc,asterisk-postgres-connector,sip_table&lt;br /&gt;sippeers =&gt; odbc,asterisk-postgres-connector,sip_table&lt;br /&gt;extensions =&gt; odbc,asterisk-postgres-connector,extensions_table&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;extensions.conf &lt;/span&gt;&lt;br /&gt;[general]&lt;br /&gt;[default-sip]&lt;br /&gt;switch =&gt; Realtime/@&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;modules.conf &lt;/span&gt;&lt;br /&gt;[modules]&lt;br /&gt;autoload=yes&lt;br /&gt;preload =&gt; res_odbc.so&lt;br /&gt;preload =&gt; res_config_odbc.so&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;res_odbc.conf &lt;/span&gt;&lt;br /&gt;[ENV]&lt;br /&gt;&lt;br /&gt;[asterisk-postgres-connector]&lt;br /&gt;enabled =&gt; yes&lt;br /&gt;dsn =&gt; asterisk-postgres-connector&lt;br /&gt;username =&gt; asterisk-role&lt;br /&gt;password =&gt; 123456&lt;br /&gt;pre-connect =&gt; yes&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sip.conf &lt;/span&gt;&lt;br /&gt;[general]&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;4. Setting up Dialplan and Sip User/Peer Tables&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is perhaps the most mysterious point. The ARA requires a number of columns to be set within the table, and if they aren't it will silently fail. The SIP table in particular. Nearest I can tell, the only source of &lt;a href="http://www.voip-info.org/wiki/view/Asterisk+RealTime+Sip"&gt;documentation is here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Run the following SQL code as the &lt;span style="font-weight: bold;"&gt;asterisk-role&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;CREATE TABLE extensions_table&lt;br /&gt;(&lt;br /&gt;"id" serial,&lt;br /&gt;"context" varchar(20) NOT NULL default '',&lt;br /&gt;"exten" varchar(36) NOT NULL default '',&lt;br /&gt;"priority" smallint NOT NULL default '0',&lt;br /&gt;"app" varchar(20) NOT NULL default '',&lt;br /&gt;"appdata" varchar(128) NOT NULL default '',&lt;br /&gt;&lt;br /&gt;PRIMARY KEY (id)&lt;br /&gt;) WITHOUT OIDS;&lt;br /&gt;&lt;br /&gt;CREATE TABLE sip_table&lt;br /&gt;(&lt;br /&gt;"id" serial,&lt;br /&gt;"name" varchar(80) NOT NULL default '',&lt;br /&gt;"host" varchar(31) NOT NULL default 'dynamic',&lt;br /&gt;"nat" varchar(5) NOT NULL default 'route',&lt;br /&gt;"type" varchar(6) check (type in ('user','peer','friend')) NOT NULL default 'friend',&lt;br /&gt;"accountcode" varchar(20) default NULL,&lt;br /&gt;"amaflags" varchar(13) default NULL,&lt;br /&gt;"callgroup" varchar(10) default NULL,&lt;br /&gt;"callerid" varchar(80) default NULL,&lt;br /&gt;"call-limit" int NOT NULL default '0',&lt;br /&gt;"cancallforward" char(3) default 'no',&lt;br /&gt;"canreinvite" char(3) default 'no',&lt;br /&gt;"context" varchar(80) default 'default-sip',&lt;br /&gt;"defaultip" varchar(15) default NULL,&lt;br /&gt;"dtmfmode" varchar(7) default NULL,&lt;br /&gt;"fromuser" varchar(80) default NULL,&lt;br /&gt;"fromdomain" varchar(80) default NULL,&lt;br /&gt;"insecure" varchar(4) default NULL,&lt;br /&gt;"language" char(2) default NULL,&lt;br /&gt;"mailbox" varchar(50) default NULL,&lt;br /&gt;"md5secret" varchar(80) default NULL,&lt;br /&gt;"deny" varchar(95) default NULL,&lt;br /&gt;"permit" varchar(95) default NULL,&lt;br /&gt;"mask" varchar(95) default NULL,&lt;br /&gt;"musiconhold" varchar(100) default NULL,&lt;br /&gt;"pickupgroup" varchar(10) default NULL,&lt;br /&gt;"qualify" char(3) default NULL,&lt;br /&gt;"regexten" varchar(80) default NULL,&lt;br /&gt;"restrictcid" char(3) default NULL,&lt;br /&gt;"rtptimeout" char(3) default NULL,&lt;br /&gt;"rtpholdtimeout" char(3) default NULL,&lt;br /&gt;"secret" varchar(80) default NULL,&lt;br /&gt;"setvar" varchar(100) default NULL,&lt;br /&gt;"disallow" varchar(100) default '',&lt;br /&gt;"allow" varchar(100) default '',&lt;br /&gt;"fullcontact" varchar(80) NOT NULL default '',&lt;br /&gt;"ipaddr" varchar(15) NOT NULL default '',&lt;br /&gt;"port" smallint NOT NULL default '0',&lt;br /&gt;"regserver" varchar(100) default NULL,&lt;br /&gt;"regseconds" int NOT NULL default '0',&lt;br /&gt;"username" varchar(80) NOT NULL default '',&lt;br /&gt;"delay" int NOT NULL default '0',&lt;br /&gt;"sortorder" int NOT NULL default '1',&lt;br /&gt;PRIMARY KEY  (id),&lt;br /&gt;UNIQUE (name)&lt;br /&gt;) WITHOUT OIDS;&lt;br /&gt;&lt;br /&gt;GRANT ALL ON sip_table TO asterisk;&lt;br /&gt;GRANT ALL ON extensions_table TO asterisk;&lt;br /&gt;&lt;br /&gt;INSERT INTO extensions_table (context, exten, priority, app, appdata) VALUES ('default-sip', 'sip-extn', 1, 'Answer', '');&lt;br /&gt;INSERT INTO extensions_table (context, exten, priority, app, appdata) VALUES ('default-sip', 'sip-extn', 2, 'Wait', '2');&lt;br /&gt;INSERT INTO extensions_table (context, exten, priority, app, appdata) VALUES ('default-sip', 'sip-extn', 3, 'Playback', 'hello-world');&lt;br /&gt;INSERT INTO extensions_table (context, exten, priority, app, appdata) VALUES ('default-sip', 'sip-extn', 4, 'Wait', '2');&lt;br /&gt;INSERT INTO extensions_table (context, exten, priority, app, appdata) VALUES ('default-sip', 'sip-extn', 5, 'Hangup', '');&lt;br /&gt;&lt;br /&gt;INSERT INTO sip_table (name, context, host, type) VALUES ('sip-user', 'default-sip', 'dynamic', 'friend');&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Test the setup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Run Asterisk on the console, and verify the ODBC connection is working by issuing the command &lt;span style="font-style: italic;"&gt;odbc show.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Don't bother trying to run &lt;span style="font-style: italic;"&gt;dialplan show&lt;/span&gt; or similar, as this will &lt;span style="font-weight: bold; font-style: italic;"&gt;not&lt;/span&gt; display what we inserted in the previous step. Instead we need to make a call to test: in your soft-phone, dial &lt;span style="font-style: italic;"&gt;sip:sip-extn@asterisk.example.com&lt;/span&gt;, and you should hear a voice say "hello world".&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-5594975579865654748?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/5594975579865654748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=5594975579865654748' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5594975579865654748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/5594975579865654748'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/04/asterisk-realtime-architecture.html' title='Asterisk Realtime Architecture'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-6492420377100264344</id><published>2008-04-17T14:56:00.000+04:30</published><updated>2008-04-17T16:53:19.141+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='VoIP'/><category scheme='http://www.blogger.com/atom/ns#' term='computing'/><title type='text'>Working with Asterisk</title><content type='html'>Recently I have been working on some &lt;a href="http://en.wikipedia.org/wiki/VoIP"&gt;VoIP&lt;/a&gt; based solutions using &lt;a href="http://en.wikipedia.org/wiki/Asterisk_%28PBX%29"&gt;Asterisk&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've found it a bit hard to work on, partly because Asterisk appears to suffer from some ad-hoc growth over time, and not only is the design somewhat dated, but more importantly the documentation left around the web appears to be tied to past versions such that working with the newest versions can leave you scratching you head why what one guy did, and what you're doing don't seem to match up. Even when you manage to get the example working you're never quite sure which flag you twiddled happened to do the trick.&lt;br /&gt;&lt;br /&gt;(Aside: there seems to be a lot of consulting business around Asterisk. Partly this is due to the inherently Enterprise-related nature of a PBX. However I have to wonder if these consultants don't have a vested interest in keeping Asterisk opaque. Certainly they'd have more clients than if the community spent time making it easier to use.)&lt;br /&gt;&lt;br /&gt;First thing one needs to do when learning a system is to make some small examples. The easiest way to test your examples, lacking the sort of hardware one might have if they owned a real Enterprise phone system, is to use &lt;a href="http://ekiga.org/"&gt;software phones&lt;/a&gt;. The most common kind of software phone is one that uses &lt;a href="http://en.wikipedia.org/wiki/Session_Initiation_Protocol"&gt;SIP&lt;/a&gt; to set up an audio stream (over &lt;a href="http://en.wikipedia.org/wiki/Real-time_Transport_Protocol"&gt;RTP&lt;/a&gt;) for voice communication.&lt;br /&gt;&lt;br /&gt;To obtain a working Asterisk server, download either the source, or a pre-compiled binary from your favorite location. If you're working a lot with Asterisk it makes sense to &lt;a href="http://www.asteriskpbx.org/developers/get-source"&gt;build the source&lt;/a&gt; yourself, since it's rather easy to build.&lt;br /&gt;&lt;br /&gt;After you have completed the install, your /etc/asterisk/ directory should be full of a wild assortment of configuration files, each over-teeming with tweak-worth options. However just to set up a simple call, we don't need such complexity. Copy those files to a safe place, and consider the minimal files below:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;a href="http://voip-info.org/wiki/index.php?page=Asterisk+config+modules.conf"&gt;modules.conf&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;As far as I can tell, this is all you'll ever need from modules.conf, under any situation.&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;[modules]&lt;br /&gt;autoload=yes&lt;br /&gt;&lt;br /&gt;This means that as Asterisk looks for .conf files (which we have mostly removed), and processes its internal and external dependencies, it will automatically load the binary files in /usr/lib/asterisk/modules.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.voip-info.org/wiki/view/Asterisk+config+sip.conf"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;sip.conf&lt;/span&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;This file controls the SIP input "channel", from which any session created from &lt;/span&gt;sip:a-sip-user@example.com&lt;span style="font-style: italic;"&gt; to &lt;/span&gt;sip:somewhere@asterisk.example.com&lt;span style="font-style: italic;"&gt;, must pass first on its way through an Asterisk system. The call from a-sip-user is assigned a "context" which is where in the "dialplan" the call should be routed. ("user" means that the call is in-bound only, and "dynamic" means the server should look up the user's IP address dynamically)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;[a-sip-user]&lt;br /&gt;context=my-sip-context&lt;br /&gt;type=user&lt;br /&gt;host=dynamic&lt;br /&gt;&lt;br /&gt;This means that anyone who call into Asterisk, and declares themselves to be "a-sip-user" via their SIP URI (such as &lt;span style="font-style: italic;"&gt;sip:a-sip-user@somewhere.example.com&lt;/span&gt;), is given a dial plan context of "my-sip-context".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.voip-info.org/tiki-index.php?page=Asterisk%20config%20extensions.conf"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;extensions.conf&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This is the "dial plan", the place where the routing logic of a &lt;a href="http://en.wikipedia.org/wiki/PBX"&gt;PBX&lt;/a&gt; is stored. It consists of a number of named contexts, under which a series of sequential functions are called. It will appear odd to a modern programmer, but if one considers the evolution of old-fashioned hardware based PBXs, it makes more sense.&lt;br /&gt;&lt;br /&gt;Basically there is first an "extension", which is related to the old extension numbers you would have to dial over an old-fashioned system. However with software based PBXs, those extensions can now easily be human-readable strings.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A call is brought in to the dial plan from a channel. The only channel we are considering now is a SIP-based VoIP call. That channel attached a context to the call, and starting from the named context, the dial plan attempts to match an extension pattern to the one specified in a call.&lt;br /&gt;&lt;br /&gt;In the case of a SIP call, where the URI is &lt;/span&gt;sip:my-destination@asterisk.example.com&lt;span style="font-style: italic;"&gt;, the extension is considered to be "&lt;/span&gt;my-destination&lt;span style="font-style: italic;"&gt;".&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;[my-sip-context]&lt;br /&gt;exten =&gt; sip-extn,1,Answer()&lt;br /&gt;exten =&gt; sip-extn,n,Wait(2)&lt;br /&gt;exten =&gt; sip-extn,n,Playback(hello-world)&lt;br /&gt;exten =&gt; sip-extn,n,Wait(2)&lt;br /&gt;exten =&gt; sip-extn,n,Hangup()&lt;br /&gt;&lt;br /&gt;&lt;span&gt;This means that when dropped in the "my-sip-context" context, Asterisk will attempt to match the extension against "sip-extn". The first action to be taken is to answer the call. The steps with &lt;a href="http://www.voip-info.org/wiki/index.php?page=Asterisk+priorities"&gt;priority&lt;/a&gt; marked "n" proceed sequentially from each other.&lt;br /&gt;&lt;br /&gt;In the example above, the soft-phone must dial the following URI: &lt;/span&gt;&lt;span style="font-style: italic;"&gt;sip:sip-extn@asterisk.example.com&lt;/span&gt; &lt;span&gt;as the user designated &lt;/span&gt;&lt;span style="font-style: italic;"&gt;sip:a-sip-user@somewhere.example.com&lt;/span&gt;&lt;span&gt;. Upon doing so, they should hear a female voice saying "hello world!"&lt;br /&gt;&lt;br /&gt;If you are using ekiga as your soft-phone, go to &lt;span style="font-style: italic;"&gt;Edit-&gt;Accounts&lt;/span&gt;, and then add a new one. The name can be any thing you like, however the registrar must be &lt;span style="font-style: italic;"&gt;asterisk.example.com&lt;/span&gt; (that is the name or IP address of the machine running Asterisk), and the user must be &lt;span style="font-style: italic;"&gt;a-sip-user. &lt;/span&gt;The password is empty because we have not required password protection in sip.conf.&lt;br /&gt;&lt;br /&gt;Click &lt;span style="font-style: italic;"&gt;OK&lt;/span&gt; and confirm that the Status indicates that it is registered with the server. If registration fails, check that the server's firewall is not blocking port 5060, and that you are not using the soft-phone from the same machine that Asterisk is running on since port numbers will conflict.&lt;br /&gt;&lt;br /&gt;In the top-most address bar, enter the URI &lt;span style="font-style: italic;"&gt;sip:sip-extn@asterisk.example.com&lt;/span&gt; and click enter. You should now hear the words "hello world!"&lt;br /&gt;&lt;br /&gt;The version of Asterisk I used was &lt;span style="font-weight: bold;"&gt;1.6&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-6492420377100264344?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/6492420377100264344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=6492420377100264344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/6492420377100264344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/6492420377100264344'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/04/working-with-asterisk.html' title='Working with Asterisk'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7310467629603818764</id><published>2008-04-13T16:26:00.000+04:30</published><updated>2008-04-13T16:41:00.420+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='travel'/><category scheme='http://www.blogger.com/atom/ns#' term='pictures'/><title type='text'>A selection from NY</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_mbtIA8_3IzU/SAH4OCZjEmI/AAAAAAAAAIE/g6KUaMjN9kc/s1600-h/IMG_0814.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_mbtIA8_3IzU/SAH4OCZjEmI/AAAAAAAAAIE/g6KUaMjN9kc/s400/IMG_0814.JPG" alt="" id="BLOGGER_PHOTO_ID_5188701165753406050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_mbtIA8_3IzU/SAH4EyZjElI/AAAAAAAAAH8/PJ4YsvXi6OM/s1600-h/IMG_0791.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_mbtIA8_3IzU/SAH4EyZjElI/AAAAAAAAAH8/PJ4YsvXi6OM/s400/IMG_0791.JPG" alt="" id="BLOGGER_PHOTO_ID_5188701006839616082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_mbtIA8_3IzU/SAH2QSZjEkI/AAAAAAAAAH0/9nyc56PEFKQ/s1600-h/IMG_0755.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_mbtIA8_3IzU/SAH2QSZjEkI/AAAAAAAAAH0/9nyc56PEFKQ/s400/IMG_0755.JPG" alt="" id="BLOGGER_PHOTO_ID_5188699005384856130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_mbtIA8_3IzU/SAH1uSZjEjI/AAAAAAAAAHs/_NxfW0a0t0Q/s1600-h/IMG_0730.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_mbtIA8_3IzU/SAH1uSZjEjI/AAAAAAAAAHs/_NxfW0a0t0Q/s400/IMG_0730.JPG" alt="" id="BLOGGER_PHOTO_ID_5188698421269303858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_mbtIA8_3IzU/SAH1hCZjEiI/AAAAAAAAAHk/L26ODo4gI9k/s1600-h/IMG_0727.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_mbtIA8_3IzU/SAH1hCZjEiI/AAAAAAAAAHk/L26ODo4gI9k/s400/IMG_0727.JPG" alt="" id="BLOGGER_PHOTO_ID_5188698193636037154" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7310467629603818764?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7310467629603818764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7310467629603818764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7310467629603818764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7310467629603818764'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/04/selection-from-ny.html' title='A selection from NY'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_mbtIA8_3IzU/SAH4OCZjEmI/AAAAAAAAAIE/g6KUaMjN9kc/s72-c/IMG_0814.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-3880437131087062523</id><published>2008-04-10T07:51:00.001+04:30</published><updated>2008-04-10T18:44:15.344+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='geekery'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>How do you use your shell?</title><content type='html'>[ryanm@3Di0021d ~]$ history | awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head&lt;br /&gt;177 make&lt;br /&gt;144 ll&lt;br /&gt;96 git&lt;br /&gt;77 cd&lt;br /&gt;59 grep&lt;br /&gt;59 gvim&lt;br /&gt;40 cp&lt;br /&gt;38 git-svn&lt;br /&gt;32 ./secondlife&lt;br /&gt;30 svn&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-3880437131087062523?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/3880437131087062523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=3880437131087062523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3880437131087062523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/3880437131087062523'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/04/how-do-you-use-your-shell.html' title='How do you use your shell?'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-7851903692405144705</id><published>2008-03-30T06:10:00.000+04:30</published><updated>2008-03-30T06:11:39.619+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='economics'/><category scheme='http://www.blogger.com/atom/ns#' term='finance'/><title type='text'>Economics, U.S.A.-Style</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_mbtIA8_3IzU/R-7vw_9_TyI/AAAAAAAAAHA/DGj84ZmckMY/s1600-h/swashbucklingcapitalist.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_mbtIA8_3IzU/R-7vw_9_TyI/AAAAAAAAAHA/DGj84ZmckMY/s400/swashbucklingcapitalist.gif" alt="" id="BLOGGER_PHOTO_ID_5183343846234214178" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-7851903692405144705?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/7851903692405144705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=7851903692405144705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7851903692405144705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/7851903692405144705'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/03/economics-usa-style.html' title='Economics, U.S.A.-Style'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_mbtIA8_3IzU/R-7vw_9_TyI/AAAAAAAAAHA/DGj84ZmckMY/s72-c/swashbucklingcapitalist.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-8619493981993128872</id><published>2008-03-28T16:28:00.001+04:30</published><updated>2008-03-28T16:29:13.530+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ecology'/><category scheme='http://www.blogger.com/atom/ns#' term='politics'/><title type='text'>Ecology, U.S.A.-Style</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_mbtIA8_3IzU/R-zdff9_TxI/AAAAAAAAAG4/SgSe8WceYLU/s1600-h/foodforcar.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_mbtIA8_3IzU/R-zdff9_TxI/AAAAAAAAAG4/SgSe8WceYLU/s400/foodforcar.jpg" alt="" id="BLOGGER_PHOTO_ID_5182760804423782162" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-8619493981993128872?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/8619493981993128872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=8619493981993128872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8619493981993128872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/8619493981993128872'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/03/ecology-usa-style.html' title='Ecology, U.S.A.-Style'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_mbtIA8_3IzU/R-zdff9_TxI/AAAAAAAAAG4/SgSe8WceYLU/s72-c/foodforcar.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4106114259507101884.post-2182841247092735430</id><published>2008-03-26T19:27:00.000+04:30</published><updated>2008-03-26T19:38:01.750+04:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='pictures'/><category scheme='http://www.blogger.com/atom/ns#' term='family'/><category scheme='http://www.blogger.com/atom/ns#' term='food'/><title type='text'>A Tradegy, in 3 Acts.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_mbtIA8_3IzU/R-pk9v9_TvI/AAAAAAAAAGo/EnMS65OJ36g/s1600-h/IMG_0534.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_mbtIA8_3IzU/R-pk9v9_TvI/AAAAAAAAAGo/EnMS65OJ36g/s400/IMG_0534.JPG" alt="" id="BLOGGER_PHOTO_ID_5182065333254442738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_mbtIA8_3IzU/R-pk-P9_TwI/AAAAAAAAAGw/Pq5CsC4gc04/s1600-h/IMG_0528.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_mbtIA8_3IzU/R-pk-P9_TwI/AAAAAAAAAGw/Pq5CsC4gc04/s400/IMG_0528.JPG" alt="" id="BLOGGER_PHOTO_ID_5182065341844377346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_mbtIA8_3IzU/R-pk9f9_TuI/AAAAAAAAAGg/nk8_lhfGxMA/s1600-h/IMG_0487.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_mbtIA8_3IzU/R-pk9f9_TuI/AAAAAAAAAGg/nk8_lhfGxMA/s400/IMG_0487.JPG" alt="" id="BLOGGER_PHOTO_ID_5182065328959475426" border="0" /&gt;&lt;/a&gt;Fin.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4106114259507101884-2182841247092735430?l=climbing-the-hill.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://climbing-the-hill.blogspot.com/feeds/2182841247092735430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4106114259507101884&amp;postID=2182841247092735430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2182841247092735430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4106114259507101884/posts/default/2182841247092735430'/><link rel='alternate' type='text/html' href='http://climbing-the-hill.blogspot.com/2008/03/tradegy-in-3-acts.html' title='A Tradegy, in 3 Acts.'/><author><name>R. McDougall</name><uri>http://www.blogger.com/profile/13605778690333215958</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_mbtIA8_3IzU/R-pk9v9_TvI/AAAAAAAAAGo/EnMS65OJ36g/s72-c/IMG_0534.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
