<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Calum writes things of questionable importance here.</description><title>Stuff and things</title><generator>Tumblr (3.0; @calumleslie)</generator><link>http://calumleslie.tumblr.com/</link><item><title>Complex regexp worked exactly as expected</title><description>&lt;p&gt;&lt;a href="http://devopsreactions.tumblr.com/post/43636741338/complex-regexp-worked-exactly-as-expected" class="tumblr_blog"&gt;devopsreactions&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;img src="http://i.imgur.com/GcrIkeh.gif"/&gt;&lt;/p&gt;
&lt;p&gt;Submitted by Leprosy&lt;/p&gt;&lt;/blockquote&gt;</description><link>http://calumleslie.tumblr.com/post/44361182897</link><guid>http://calumleslie.tumblr.com/post/44361182897</guid><pubDate>Sat, 02 Mar 2013 10:13:21 +0000</pubDate></item><item><title>Lessig Blog, v2: Prosecutor as bully</title><description>&lt;a href="http://lessig.tumblr.com/post/40347463044/prosecutor-as-bully"&gt;Lessig Blog, v2: Prosecutor as bully&lt;/a&gt;: &lt;p&gt;&lt;a href="http://lessig.tumblr.com/post/40347463044/prosecutor-as-bully" class="tumblr_blog"&gt;lessig&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/ragesoss/3835494997/" title="Boston Wiki Meetup  by ragesoss, on Flickr"&gt;&lt;img alt="Boston Wiki Meetup " height="400" src="http://farm3.staticflickr.com/2552/3835494997_edc2e1dc12.jpg" width="500"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;(Some will say this is not the time. I disagree. This is the time when every mixed emotion needs to find voice.)&lt;/span&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span&gt;Since his arresting the early morning of January 11, 2011 — two years to the day before Aaron Swartz ended his life — I have known more about the events that began this…&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;</description><link>http://calumleslie.tumblr.com/post/40369024088</link><guid>http://calumleslie.tumblr.com/post/40369024088</guid><pubDate>Sat, 12 Jan 2013 22:04:34 +0000</pubDate></item><item><title>programming is terrible: Learning from Nostalgia</title><description>&lt;a href="http://programmingisterrible.com/post/40051255211/learning-from-nostalgia"&gt;programming is terrible: Learning from Nostalgia&lt;/a&gt;: &lt;p&gt;This topic fascinates me, and I think tef learns and wants to learn the same way that I do. See also &lt;a href="http://worrydream.com/LearnableProgramming/"&gt;Bret Victor’s Learnable Programming&lt;/a&gt; which also cites MindStorms, and is generally a brilliant piece. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://programmingisterrible.com/post/40051255211/learning-from-nostalgia" class="tumblr_blog"&gt;programmingisterrible&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you ask any programmer how you should learn to program, you will get the following answer:&lt;/p&gt; &lt;blockquote&gt;People should learn programming from my mistakes by repeating them exactly, because my mistakes have been refined and polished over the years&lt;/blockquote&gt; &lt;p&gt;Nostalgia, and the way in which the teacher learns best—both…&lt;/p&gt;&lt;/blockquote&gt;</description><link>http://calumleslie.tumblr.com/post/40081721237</link><guid>http://calumleslie.tumblr.com/post/40081721237</guid><pubDate>Wed, 09 Jan 2013 07:31:35 +0000</pubDate></item><item><title>Probabilistic Graphical Models on Coursera</title><description>&lt;p&gt;I recently completed the &lt;a href="https://www.coursera.org/course/pgm"&gt;Probabilistic Graphical Models course on Coursera&lt;/a&gt;, and thought I would note down my thoughts about it.&lt;/p&gt;

&lt;h2&gt;What?&lt;/h2&gt;

&lt;p&gt;Probabilistic Graphical Models are a tool used in statistical fields, in particular commonly in machine learning. They are:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Models&lt;/strong&gt; because the representation of the problem is separate from its solution (meaning you can solve it in different ways).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Graphical&lt;/strong&gt; because the models are represented as &lt;em&gt;graphs&lt;/em&gt;; this is the most characteristic feature of PGMs, and gives one a much more direct, tangible understanding of the problem. It also makes it a little easier to have non-technical domain experts create your model.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Probabilistic&lt;/strong&gt; because, in essence, we&amp;#8217;re guessing. Some or even most of the values in the model can be unknown and the problem is guessing their assignment.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Here&amp;#8217;s a quick example:&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.zootm.co.uk/images/blog/pgm-of-love.png" alt='A graph with various edges leading to and from a vertex labelled "in love"'/&gt;&lt;/p&gt;

&lt;p&gt;This is a Bayes Net. The way to read this is as &amp;#8220;flow of influence&amp;#8221;; you can read find which conditions affect which others directly from the graph. Some examples:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;Meeting someone new alters the chances that you&amp;#8217;ve fallen in love.&lt;/li&gt;
&lt;li&gt;Receiving flowers might cause you to fall in love with someone&amp;#8230; or it might mean that you&amp;#8217;re being consoled for a bereavement.&lt;/li&gt;
&lt;li&gt;Love can take your breath away, but so can being asthmatic.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The relations of probabilities between these (which we must learn or infer in some way) allow us to make judgements. If you are short of breath, it might be because you are in love; if you&amp;#8217;re also asthmatic, the chances of your gasping being due to love are lowered. The more information one has, the better one can make judgements about the missing values.&lt;/p&gt;

&lt;p&gt;The course also covered Markov Networks, which are similar but with undirected relationship edges.&lt;/p&gt;

&lt;p&gt;The nice thing is that there&amp;#8217;s a massive number of problems that can be modelled in this way; there are a few different types of questions you can answer like this:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Probability of assignments&lt;/strong&gt; &amp;#8212; &amp;#8220;What is the probability of a given value?&amp;#8221; If a patient has a set of symptoms and a set of risk factors, what is the probability they have a given condition?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maximum a posteriori assignment&lt;/strong&gt; &amp;#8212; &amp;#8220;What is the most likely joint assignment of values?&amp;#8221; For example if you are doing optical character recognition, what word is the set of images you have most likely to represent?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Value of information&lt;/strong&gt; &amp;#8212; &amp;#8220;How much is it worth to find out more information?&amp;#8221; Is it worth my while to do market research before deciding to launch my company? How much is it likely to alter my decision, versus how much it costs to perform?&lt;/li&gt;
&lt;li&gt;&amp;#8230;as well as these, information can be obtained simply by learning a model. Even though one may never use the model that is created, the relationships the learning process finds may not be ones which are known.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Instant gratification&lt;/h2&gt;

&lt;p&gt;At first, a lot of these models seem quite divorced from actual problem solving. Watching the course lectures and trying to take the information in, it can seem quite theoretical and &amp;#8220;fluffy,&amp;#8221; not quite directly applicable to your day-to-day.&lt;/p&gt;

&lt;p&gt;This impression is unfounded, as I found out in the first practical for the course. I was surprised to find that after wiring up a model in a relatively naive way it all &lt;em&gt;just worked&lt;/em&gt; (given a pre-written workbench for experimenting with the values). A lot of the coursework was like this, mystical theory machines spitting out reasonable answers following an understandable process. Although the problems were largely toys, you can &lt;em&gt;feel&lt;/em&gt; that this could be made to work on real problems, and you can see how.&lt;/p&gt;

&lt;p&gt;My surprise with the practicality of the course didn&amp;#8217;t end there, though. I found a few of the more self-contained topics (often presented as sidenotes) were immediately useful to me even in my day job. It helped solve problems I was only half-aware that I had.&lt;/p&gt;

&lt;h2&gt;Sacrifice&lt;/h2&gt;

&lt;p&gt;The course is gruelling in its time demands. The Coursera description puts it at &amp;#8220;8-10 hours per week&amp;#8221;, but I think this is lowballing it somewhat. Watching the lectures alone, at regular speed, can take around 2-4 hours, depending on the week. The actual programming assignments took, in some cases, some 18 hours or more.&lt;/p&gt;

&lt;p&gt;This might not be the same for everyone. I didn&amp;#8217;t have much statistics or probability knowledge that I could actively remember, definitely less than the &amp;#8220;very little&amp;#8221; the course recommends. Learning this on the go can be difficult given the amount of time already spent watching lectures.&lt;/p&gt;

&lt;p&gt;I also wasn&amp;#8217;t familiar with Matlab/Octave, and it&amp;#8217;s a definite &amp;#8220;experience&amp;#8221; for anyone used to modern programming languages or paradigms. The lectures make the point that they&amp;#8217;ve found this toolkit works better for those learning, but in my own experience a considerable amount of the exercises was spent trying to glue various types of 2D matrices together in such a way that a library function can sweep in and calculate everything you want at once, since direct processing in the language itself is often too slow to be useful. This often feels like it&amp;#8217;s more &amp;#8220;busy-work&amp;#8221; than actually helping you learn the topic. It&amp;#8217;s a little like a much less satisfying version of lining up dominoes to fall.&lt;/p&gt;

&lt;h2&gt;Disappointment, and redemption&lt;/h2&gt;

&lt;p&gt;The exercises, while very varied and conceptually interesting, do vary a lot in quality and difficulty. There&amp;#8217;s a few places where the assignments were confusing, misleading, or incomplete. This could make it very difficult to even know where to start at times. A lot of time is spent squinting, and occasionally trying to reverse-engineer what is wanted from the test data, in the cases where the lectures and assignment notes really don&amp;#8217;t seem to give enough information.&lt;/p&gt;

&lt;p&gt;Also, although the assignments often included test data with which to test one&amp;#8217;s implementation, this was sometimes a little sparse. It didn&amp;#8217;t test everything &amp;#8212; deliberately, so that your understanding could be graded down the line &amp;#8212; and sometimes there was so much to do in one section that trivial bugs could be near-impossible to find or diagnose. I suspect my lack of expertise with Octave also caused trouble in these situations.&lt;/p&gt;

&lt;p&gt;However, these problems did lead me to the course&amp;#8217;s online forum where others taking the course along with teaching assistants (usually &amp;#8220;TAs&amp;#8221;) were all trying to help one another out. This forum was a ray of hope when I&amp;#8217;d gotten myself stuck on an exercise. When there were ambiguities, you&amp;#8217;d be sure that someone else would have encountered them too. Normally questions had been asked and often answered before I&amp;#8217;d even gotten to the relevant part of the assignment. Each of the assignments got a handy test script to run your code against the test data automatically (I&amp;#8217;d been doing this by hand before). The friendly TAs took the roles of providing authoritative answers when it was clear that there was widespread misunderstanding, and of ensuring that the answers never got so explicit that one might think of it as cheating, or that it gives away what one would be trying to learn.&lt;/p&gt;

&lt;p&gt;This all came to a head with the assignment 5 (the notorious &amp;#8220;PA5&amp;#8221;), an assignment that was both very challenging, and written in a fairly difficult-to-follow way. In this case, the TAs had provided a rewritten and expanded version of the assignment text, and were further revising this with comments from students. It&amp;#8217;s hard to imagine how I&amp;#8217;d have managed to do this assignment without the rewrite (a friend of mine also on the course tried this &amp;#8212; it sounded horrible). With the revised text one could skip past the difficulties introduced by the sometimes-lacking descriptions and skip right to the gruelling but beneficial act of working out how to solve the puzzles.&lt;/p&gt;

&lt;h2&gt;Overall&lt;/h2&gt;

&lt;p&gt;I feel like I learned a lot from this course. Furthermore I feel like I learned a lot that was useful, and that I wouldn&amp;#8217;t have learned in the course of my job or my usual tinkering. This is, for me, one of the most important aspects of this course &amp;#8212; sometimes it&amp;#8217;s easy to stick to what you already know and can practice easily, and often the academic aspects are what get dropped.&lt;/p&gt;

&lt;p&gt;The assignments&amp;#8217; role in showing how directly the content of the seemingly-abstract lectures could be used showed that these techniques were useful. The approachable  nature of the lectures were good at conveying understanding.&lt;/p&gt;

&lt;p&gt;Although I can gripe about the assignments, the workload, and Octave (and trust me &amp;#8212; I &lt;em&gt;can&lt;/em&gt; gripe about those things), this felt really worthwhile. I might wait a while (and think harder) before investing so much time in another online course, but although it was occasionally painful I&amp;#8217;m glad that I did it, and I think others will feel the same way. Plus the people helping one another in the forums in a mostly civilised and productive way gave a little extra boost to my faith in humanity. Isn&amp;#8217;t that reason enough?&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/39863967488</link><guid>http://calumleslie.tumblr.com/post/39863967488</guid><pubDate>Sun, 06 Jan 2013 20:51:00 +0000</pubDate><category>coursera</category><category>probabilistic graphical models</category></item><item><title>programming is terrible: What makes good and what makes bad programmers?</title><description>&lt;a href="http://programmingisterrible.com/post/39420736223/bisecting-programmers"&gt;programming is terrible: What makes good and what makes bad programmers?&lt;/a&gt;: &lt;p&gt;&lt;a href="http://programmingisterrible.com/post/39420736223/bisecting-programmers" class="tumblr_blog"&gt;programmingisterrible&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Many blogs claim to elcuidate a dichotomy of programmers—normally good and bad. Upon careful inspection, most of them turn out to actually dictate the following–&lt;/p&gt; &lt;blockquote&gt;
&lt;ol&gt;&lt;li&gt;Programmers who are like me are good&lt;/li&gt;
&lt;li&gt;Programmers who are not like me are bad&lt;/li&gt;
&lt;/ol&gt;&lt;/blockquote&gt; &lt;p&gt;The assertion is that if you cargo cult their…&lt;/p&gt;&lt;/blockquote&gt;</description><link>http://calumleslie.tumblr.com/post/39509815706</link><guid>http://calumleslie.tumblr.com/post/39509815706</guid><pubDate>Wed, 02 Jan 2013 23:04:10 +0000</pubDate></item><item><title>"And so this is Node.js’s problem. It’s just another gun in the gunfight, but its..."</title><description>“And so this is Node.js’s problem. It’s just another gun in the gunfight, but its community thinks its a cannon.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;A &lt;a href="https://news.ycombinator.com/item?id=4306241"&gt;old response to Ryan Dahl on Hacker News&lt;/a&gt; which sums up the overall feeling I got after trying out Node.js a while ago.&lt;/em&gt;</description><link>http://calumleslie.tumblr.com/post/34287368927</link><guid>http://calumleslie.tumblr.com/post/34287368927</guid><pubDate>Thu, 25 Oct 2012 09:10:53 +0100</pubDate></item><item><title>I’m a man on the edge. A man with a deep, dangerous...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lyoh0xqRzH1qz5w0go1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;span&gt;I’m a man on the edge. A man with a deep, dangerous hatred.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I hate my alarm clock.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It’s not a &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;em&gt;&lt;span&gt;bad&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;alarm clock. I got it as a gift, and it has served me well for a few years now. But it works hard at bugging me. For example:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;
&lt;p&gt;&lt;span&gt;If the alarm is going off, and you want to see what time it is, you turn on the screen backlight by pressing “BRIGHTNESS CONTROL”. Except that the “BRIGHTNESS CONTROL” button is &lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;em&gt;&lt;span&gt;also&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;the snooze (“REPEAT ALARM”) button. So the radio stops. And you must start it again. Of course dedicated buttons for these two functions would be crazy, since you need space for a dedicated “SCAN” button&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span&gt;To start the radio again, you press “SOURCE” until the function (FM, DAB, or “3.5mm jack you can put into your phone”) you want is highlighted on the screen. This helpfully remembers whether you had the alarm on earlier, to excite you by changing the number of presses required to get to DAB (I think it is 1 if the radio was on, 3 otherwise). This is a fun game!&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span&gt;If you try to turn one of the two alarms (“AL1” and “AL2”) off using their alarm buttons, you must use the alarm button for the alarm going off. Remember that the screen is unreadable and dark at this point! If you press the other button, it will toggle the other alarm on or off for the next day. This is a great feature for people who like to be surprised by which time they’re getting up.[1]&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span&gt;Whenever the radio is making a sound of any kind, there’s an audible background hum. This renders the fact that it “fades in” the radio when the alarm sounds effectively useless; the clicking on of the hum is loud enough to wake me.&lt;/span&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;[1] To be completely fair there is an “AL RESET” button snuck up in the corner which apparently resets either alarm.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[Flames image is CC-BY from &lt;/span&gt;&lt;a href="http://www.flickr.com/photos/pgordon/6091566242/"&gt;&lt;span&gt;pgordon on Flickr&lt;/span&gt;&lt;/a&gt;&lt;span&gt;.]&lt;/span&gt;&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/16829047113</link><guid>http://calumleslie.tumblr.com/post/16829047113</guid><pubDate>Tue, 31 Jan 2012 19:34:09 +0000</pubDate></item><item><title>I always liked the Banshee music player, but their 2.0 version...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_lnitx64K1H1qz5w0go1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;I always liked the &lt;a href="http://banshee.fm/"&gt;Banshee music player&lt;/a&gt;, but their 2.0 version seems to have fixed all of the niggling issues I had with previous releases, and fixed most of my typo’d music tags from when I still typed those on my own. Good stuff.&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/7022337427</link><guid>http://calumleslie.tumblr.com/post/7022337427</guid><pubDate>Tue, 28 Jun 2011 23:17:31 +0100</pubDate></item><item><title>"I walked through my front door with purpose and gathered my family members in the living room to..."</title><description>“I walked through my front door with purpose and gathered my family members in the living room to tell them about my vision. I was going to rewrite the birth of Jesus Christ and I was going to make it POP.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://hyperboleandahalf.blogspot.com"&gt;Hyperbole and a Half&lt;/a&gt; is always great, and &lt;a href="http://hyperboleandahalf.blogspot.com/2010/12/year-kenny-loggins-ruined-christmas.html"&gt;this Christmas-related entry&lt;/a&gt; had me giggling like an errant child.&lt;/em&gt;</description><link>http://calumleslie.tumblr.com/post/2470274249</link><guid>http://calumleslie.tumblr.com/post/2470274249</guid><pubDate>Sun, 26 Dec 2010 16:43:15 +0000</pubDate></item><item><title>CSS3 - A practical introduction</title><description>&lt;a href="http://leaverou.me/ft2010/#intro"&gt;CSS3 - A practical introduction&lt;/a&gt;: &lt;p&gt;Quite enjoyed this presentation by Lea Verou; it’s both informative and, unusually, pretty. The new CSS3 stuff looks really neat, although I wouldn’t like to speculate when we can actually use any significant amount of it.&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/1448688965</link><guid>http://calumleslie.tumblr.com/post/1448688965</guid><pubDate>Sun, 31 Oct 2010 21:23:11 +0000</pubDate></item><item><title>A representative of Twilio doing a presentation about the system...</title><description>&lt;object width="400" height="242" id="lsplayer" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"&gt;&lt;param name="movie" value="http://cdn.livestream.com/grid/LSPlayer.swf?channel=nytechmeetup&amp;clip=pla_8b03ead8-b68f-4f04-9744-2e0e85274b03&amp;autoPlay=false" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed name="lsplayer" wmode="transparent" src="http://cdn.livestream.com/grid/LSPlayer.swf?channel=nytechmeetup&amp;clip=pla_8b03ead8-b68f-4f04-9744-2e0e85274b03&amp;autoPlay=false" width="400" height="242" allowscriptaccess="always" allowfullscreen="true" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;A representative of &lt;a href="http://www.twilio.com/"&gt;Twilio&lt;/a&gt; doing a presentation about the system by live coding in front of the New York Tech Meetup. Really impressive.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;via. &lt;a href="http://www.avc.com/a_vc/2010/08/how-to-pitch-a-product.html"&gt;this article on avc.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/1161128328</link><guid>http://calumleslie.tumblr.com/post/1161128328</guid><pubDate>Tue, 21 Sep 2010 13:04:41 +0100</pubDate></item><item><title>Stupid Manufactoria has stolen my last couple of lunches from...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_l82uzyYFXk1qz5w0go1_400.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Stupid &lt;a href="http://pleasingfungus.com/"&gt;Manufactoria&lt;/a&gt; has stolen my last couple of lunches from me. I don’t usually fall for these nerd-focused casual games.&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/1048567361</link><guid>http://calumleslie.tumblr.com/post/1048567361</guid><pubDate>Wed, 01 Sep 2010 17:55:10 +0100</pubDate></item><item><title>Some not entirely independent variables</title><description>&lt;p&gt;&lt;ul&gt;&lt;li&gt;Nearby sell-by dates.&lt;/li&gt;
&lt;li&gt;Stupendous special offers.&lt;/li&gt;
&lt;li&gt;Calum gorging himself on Frubes.&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/1038420493</link><guid>http://calumleslie.tumblr.com/post/1038420493</guid><pubDate>Mon, 30 Aug 2010 21:32:26 +0100</pubDate></item><item><title>Headius: My Thoughts on Oracle v Google</title><description>&lt;a href="http://blog.headius.com/2010/08/my-thoughts-on-oracle-v-google.html"&gt;Headius: My Thoughts on Oracle v Google&lt;/a&gt;: &lt;p&gt;Not only a good primer on the recent legal challenge, but actually a good primer on the background of Android and Java over the last decade or so. Excellent article.&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/987201221</link><guid>http://calumleslie.tumblr.com/post/987201221</guid><pubDate>Sat, 21 Aug 2010 12:42:22 +0100</pubDate></item><item><title>10 Common Mistakes Made by API Providers</title><description>&lt;a href="http://www.readwriteweb.com/cloud/2010/08/the-new-api-movement-may.php"&gt;10 Common Mistakes Made by API Providers&lt;/a&gt;: &lt;p&gt;This list of common mistakes made in web APIs is excellent; many of the points apply equally well to APIs in general, especially remote ones.&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/987198211</link><guid>http://calumleslie.tumblr.com/post/987198211</guid><pubDate>Sat, 21 Aug 2010 12:40:56 +0100</pubDate></item><item><title>Having installed apps from QR codes a couple of times, this new...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_l4dn2232eb1qz5w0go1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Having installed apps from QR codes a couple of times, &lt;a href="http://github.com/blog/665-apk-downloads-for-android-projects"&gt;this new GitHub feature&lt;/a&gt; seems disproportionately useful to me.&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/722591460</link><guid>http://calumleslie.tumblr.com/post/722591460</guid><pubDate>Mon, 21 Jun 2010 19:22:50 +0100</pubDate></item><item><title>An excellent whiteboard animation based on a talk by Dan...</title><description>&lt;iframe width="400" height="225" src="http://www.youtube.com/embed/u6XAPnuFjJc?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;An excellent whiteboard animation based on a talk by &lt;a href="http://en.wikipedia.org/wiki/Dan_Pink"&gt;Dan Pink&lt;/a&gt;’s talk on the same subject as his book &lt;em&gt;&lt;a href="http://www.amazon.co.uk/gp/product/1847677681?ie=UTF8&amp;tag=calulesl-21&amp;linkCode=as2&amp;camp=1634&amp;creative=19450&amp;creativeASIN=1847677681"&gt;Drive: The Surprising Truth About What Motivates Us&lt;/a&gt;&lt;img src="http://www.assoc-amazon.co.uk/e/ir?t=calulesl-21&amp;l=as2&amp;o=2&amp;a=1847677681" border="0" height="1" width="1"/&gt;&lt;/em&gt;*. Found this via &lt;a href="http://www.codinghorror.com/blog/2010/06/the-vast-and-endless-sea.html"&gt;an entry on &lt;em&gt;Coding Horror&lt;/em&gt;&lt;/a&gt;, which isn’t normally a blog I read, but I’m glad I did this time.&lt;/p&gt;
&lt;p&gt;* Associates link, apologies for capitalism etc.&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/711374696</link><guid>http://calumleslie.tumblr.com/post/711374696</guid><pubDate>Fri, 18 Jun 2010 13:54:07 +0100</pubDate></item><item><title>"We prove that the implementation always strictly follows our high-level abstract specification of..."</title><description>“We prove that the implementation always strictly follows our high-level abstract specification of kernel behaviour. This encompasses traditional design and implementation safety properties such as that the kernel will never crash, and it will never perform an unsafe operation. It also implies much more: we can predict precisely how the kernel will behave in every possible situation.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Bold claims from &lt;a href="http://lambda-the-ultimate.org/node/3916"&gt;a proof of correctness of the seL4 kernel&lt;/a&gt;&lt;/em&gt;</description><link>http://calumleslie.tumblr.com/post/698484374</link><guid>http://calumleslie.tumblr.com/post/698484374</guid><pubDate>Mon, 14 Jun 2010 21:25:49 +0100</pubDate></item><item><title>BEHOLD PRINGLESCAT</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_l1t7puVetz1qz5w0go1_250.gif"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;BEHOLD PRINGLESCAT&lt;/p&gt;</description><link>http://calumleslie.tumblr.com/post/566438218</link><guid>http://calumleslie.tumblr.com/post/566438218</guid><pubDate>Sun, 02 May 2010 21:32:17 +0100</pubDate></item><item><title>"Dynamic programming” never meant anything; it was nothing but a political euphemism. But..."</title><description>““Dynamic programming” never meant anything; it was nothing but a political euphemism. But somehow it became attached to one of the useful concepts Bellman discovered, and to this day, students of computer science struggle to learn that simple idea, because it’s burdened with a nonsense name.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="http://arcanesentiment.blogspot.com/2010/04/why-dynamic-programming.html"&gt;Interesting&lt;/a&gt;! I’ve always thought that term was weird.&lt;/em&gt;</description><link>http://calumleslie.tumblr.com/post/545492435</link><guid>http://calumleslie.tumblr.com/post/545492435</guid><pubDate>Sat, 24 Apr 2010 14:24:32 +0100</pubDate></item></channel></rss>
