<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUICQH85fSp7ImA9WhRaE0Q.&quot;"><id>tag:blogger.com,1999:blog-16828289</id><updated>2012-02-16T12:59:21.125+01:00</updated><category term="2009" /><category term="Apache Axis" /><category term="erlang" /><category term="web" /><category term="guilty pleasures" /><category term="FAST PVV Guardian" /><category term="canon" /><category term="adobe" /><category term="open source" /><category term="Photoshop" /><category term="pepper" /><category term="easydriver" /><category term="mad scientist" /><category term="qr codes" /><category term="wish" /><category term="evil" /><category term="stepper" /><category term="p6000" /><category term="voting" /><category term="roadster" /><category term="energy efficiency" /><category term="irrational" /><category term="ODF" /><category term="scalability" /><category term="camera" /><category term="Closures" /><category term="Spotify" /><category term="online banking" /><category term="compact camera" /><category term="clueless" /><category term="pdf" /><category term="text" /><category term="zone encoding" /><category term="carbon fiber" /><category term="drm" /><category term="software" /><category term="protobuffer" /><category term="raw" /><category term="Autoboxing" /><category term="lightweight" /><category term="fun" /><category term="OOXML" /><category term="nikon" /><category term="ipod touch" /><category term="content" /><category term="volkswagen one litre" /><category term="Microsoft" /><category term="consumer trust" /><category term="democracy" /><category term="apple" /><category term="sauce" /><category term="ISO" /><category term="sony" /><category term="web search" /><category term="im" /><category term="piracy" /><category term="speech patterns" /><category term="cnc" /><category term="ebook" /><category term="dull" /><category term="Audio" /><category term="apple bugs dearsteve" /><category term="filler" /><category term="Indiana Jones" /><category term="chat" /><category term="services" /><category term="ixus 960IS" /><category term="CS3" /><category term="Yahoo" /><category term="car" /><category term="arduino" /><category term="350z" /><category term="meh" /><category term="ripping" /><category term="mazzer mini" /><category term="workaround" /><category term="dromedar" /><category term="voip" /><category term="Kent" /><category term="music" /><category term="communication" /><category term="chili" /><category term="Generics" /><category term="web services" /><category term="FAST" /><category term="Java" /><category term="instant messaging" /><category term="Google" /><category term="electronics" /><category term="scoville" /><category term="lost password" /><category term="mobile banking" /><category term="bluetooth" /><category term="g9" /><category term="ftpsearch" /><category term="pragmatic" /><category term="invoice" /><category term="Linux" /><category term="twitter" /><category term="customer experience" /><category term="Updater" /><category term="movie industry" /><category term="gambling" /><category term="coffee" /><category term="fear" /><category term="myths" /><category term="reader" /><title>blog.borud</title><subtitle type="html">Random thoughts. Not fit for general consumption.  Parental advisory.  Occasional sarcasm and irony ahead.  No warranties, explicit or implied.  No money-back-guarantee.  Does not prevent hairloss, bad foot hygiene or acid reflux.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.borud.no/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.borud.no/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>251</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Blogborud" /><feedburner:info uri="blogborud" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;AkIFRHg5eyp7ImA9WhRWFEQ.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-2562287860524900800</id><published>2012-01-02T10:57:00.002+01:00</published><updated>2012-01-02T11:01:55.623+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-02T11:01:55.623+01:00</app:edited><title>Correct, Understandable, Fast</title><content type="html">Alex Reid recently wrote a blog posting about there being &lt;a href="http://blog.phiz.net/theres-no-shame-in-good-enough"&gt;no shame in code that is "good enough"&lt;/a&gt;. &amp;nbsp;I suspect most people are only going to read the first few paragraphs and use this as some sort of justification for producing crappy code. So, as a service, I am going to quote the important part at the end of the blog posting.&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;b&gt;Good enough doesn't imply half-arsed or lashed together&lt;/b&gt;. It should concisely meet the requirements at hand, not what you think the requirements might be next week. It doesn't mean you are naive and haven't considered the big picture, nor are you lazy or stupid. It doesn't mean you are a moron if you don't use wildcard generics and don't have a fetish for multiple inheritance.&lt;br /&gt;
&lt;b&gt; I believe all developers should have a geek valve that prevents them from introducing overly-generic, indecipherable black magic to a codebase.&lt;/b&gt; In conversation you would look a bit unusual if you insisted on using flowery language to express a point that could be adequately conveyed in more standard terms. Some people may miss your point. The fact that their grasp of English isn't as advanced as yours doesn't make them stupid. It means you aren't communicating efficiently. Why can't the same logic apply to code? Favour explicit and clear over clever.&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;The challenge is in defining what "good enough" means. &amp;nbsp;I'm not going to attempt that here, but I am going to say something about what I minimally expect from code that I am supposed to take seriously.&lt;br /&gt;
&lt;br /&gt;
When I write code I have the following priorities:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Correct&lt;/li&gt;
&lt;li&gt;Understandable&lt;/li&gt;
&lt;li&gt;Fast&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Correct.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;If the code is not correct it has no reason to exist in the first place. &amp;nbsp;The most convenient way to verify that the code is correct is to write proper tests. &amp;nbsp;If I stumble across a piece of code that lacks tests, I am going to assume that the author either doesn't know or doesn't care if his or her code actually works. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;It is not okay to skip writing tests. &amp;nbsp;Yes, I know all the excuses for not writing tests so you can spare me the tedium of repeating them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Understandable.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The code you write is for communicating with other people. &amp;nbsp;Not for communicating with the compiler. &amp;nbsp; The compiler will accept a lot of unreadable nonsense -- your coworkers will not. &amp;nbsp;For your code to be understandable its intent has to be clear. &amp;nbsp;Once the intent is clear you should aim for the simplest solution that will do -- the simpler a solution is the easier it will be to verify.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;It is not okay to skip documenting your code. &amp;nbsp;It is not okay to add layers of abstraction where none are needed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Fast.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;If you have managed to demonstrate that your code is correct and understandable, you should ask yourself if it will perform adequately. &amp;nbsp;In a lot of cases there will be no need to optimize your code. &amp;nbsp;The first thing you need to do is to understand what your performance goal is. &amp;nbsp;Then you measure. &amp;nbsp;Then you optimize.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Most programmers are bad at writing correct and understandable code -- which sort of makes it irrelevant whether it is fast or not.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-2562287860524900800?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oFH5qbLYPGI6ndbroK0hjOpbtfU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oFH5qbLYPGI6ndbroK0hjOpbtfU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oFH5qbLYPGI6ndbroK0hjOpbtfU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oFH5qbLYPGI6ndbroK0hjOpbtfU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/6-jk5pUMO18" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/2562287860524900800/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2012/01/correct-understandable-fast.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/2562287860524900800?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/2562287860524900800?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/6-jk5pUMO18/correct-understandable-fast.html" title="Correct, Understandable, Fast" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2012/01/correct-understandable-fast.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYARHs7cCp7ImA9WhRXGUQ.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-743736174101576162</id><published>2011-12-27T13:47:00.001+01:00</published><updated>2011-12-27T13:49:05.508+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-27T13:49:05.508+01:00</app:edited><title>Receipts</title><content type="html">While I'm sorting through the receipts from this year's travels, one thing really annoys me: the terrible formatting of receipts.&lt;br /&gt;
&lt;br /&gt;
A receipt essentially has only three interesting pieces of information:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;What&lt;/li&gt;
&lt;li&gt;When&lt;/li&gt;
&lt;li&gt;How much&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;If I can't find the "when" and "how much" in under a second, the person doing the receipt layout has failed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Usually, the hardest piece of information to locate is the &lt;i&gt;when. &lt;/i&gt;Our inability to express times and dates has always amazed me. &amp;nbsp;I can't think of any single piece of common data that incurs more processing cost and errors than dates and times.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Why does anything related to accounting have to be so badly designed? &amp;nbsp;Is this stupidity or laziness?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-743736174101576162?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2wSy6zzkHRNFeoQvBP2Fy9EbHgk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2wSy6zzkHRNFeoQvBP2Fy9EbHgk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2wSy6zzkHRNFeoQvBP2Fy9EbHgk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2wSy6zzkHRNFeoQvBP2Fy9EbHgk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/yAYsxUBVI_M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/743736174101576162/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/12/receipts.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/743736174101576162?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/743736174101576162?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/yAYsxUBVI_M/receipts.html" title="Receipts" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2011/12/receipts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEMSXY6eCp7ImA9WhRXFEU.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-2993107575441238015</id><published>2011-12-21T17:58:00.000+01:00</published><updated>2011-12-21T17:58:08.810+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-21T17:58:08.810+01:00</app:edited><title>Democracy and the press.</title><content type="html">According to the "Democracy Index 2010" from The Economist, democracy is steadily retreating. &amp;nbsp;The world is gradually becoming less democratic.&lt;br /&gt;
&lt;br /&gt;
A few days ago I heard that CNN is letting something like 50 of their reporters go. &amp;nbsp;The reasoning was that CNN would rather not have that many editors, reporters and photographers on staff, but want to source the material from "citizen reporting". &lt;br /&gt;
&lt;br /&gt;
Whatever that means.&lt;br /&gt;
&lt;br /&gt;
The biggest problem with this is that when a private person starts taking pictures of something that isn't quite right, there is a risk that law-enforcement will intervene and harass the individual attempting to record events in any way. &amp;nbsp;People have ended up getting harsh sentences for recording the actions of law enforcement in public spaces. &amp;nbsp;Pointing a camera at a police officer is extremely high risk. &amp;nbsp;Even in many western countries.&lt;br /&gt;
&lt;br /&gt;
The threshold for throwing an accredited journalist in jail is considerably higher. &amp;nbsp;First off, law-enforcement usually think twice about molesting journalists in &lt;i&gt;nominally democratic&lt;/i&gt; countries. &amp;nbsp;Second, journalists are usually more aware of their rights and more prepared to challenge law enforcement. &amp;nbsp;Third, if they do end up in jail, they have the backing of organizations that know a thing or two about making life miserable for corrupt officials.&lt;br /&gt;
&lt;br /&gt;
We need proper journalists to poke their lenses in the faces of those tasked with upholding the law. &amp;nbsp;"Citizen reporting" is all well and good, but it is inadequate to prevent our democracies from crumbling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-2993107575441238015?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1rafsEw1-EWhxsmtDmt68imNgDU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1rafsEw1-EWhxsmtDmt68imNgDU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1rafsEw1-EWhxsmtDmt68imNgDU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1rafsEw1-EWhxsmtDmt68imNgDU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/Nam5jS807Uk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/2993107575441238015/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/12/democracy-and-press.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/2993107575441238015?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/2993107575441238015?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/Nam5jS807Uk/democracy-and-press.html" title="Democracy and the press." /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2011/12/democracy-and-press.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQFRXs-fCp7ImA9WhRRFUs.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-4438028057194381242</id><published>2011-11-29T11:41:00.000+01:00</published><updated>2011-11-29T11:41:54.554+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T11:41:54.554+01:00</app:edited><title>Sound, dynamics, and such</title><content type="html">This morning I came across a newspaper article trying to describe difference between current and former mastering practices for records. &amp;nbsp;And of course with generous helpings of confusion. &amp;nbsp;Most records today are mastered in a way that leaves very little dynamics. &amp;nbsp;For those of you not familiar with what "dynamics" means in this context; &amp;nbsp;high dynamics means that there is a bigger difference between the loud and the silent parts of a recording.&lt;br /&gt;
&lt;br /&gt;
There are lots of tricks to boost silent parts and dampen the loud parts, but the most important tool in the arsenal to accomplish this is various forms of compressors. &amp;nbsp;For more information on &lt;a href="http://en.wikipedia.org/wiki/Dynamic_range_compression"&gt;dynamic compressors the article on Wikipedia might be helpful&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
While over-zealous use of compressors makes the sound somewhat dull and uninteresting it might be useful to point out why this is done. &amp;nbsp;&lt;b&gt;It is an adaptation to make recordings sound a bit better in challenging listening conditions. &amp;nbsp;Most of us do the majority of our listening (to music and other content) on crappy earbuds in noisy environments.&lt;/b&gt; &amp;nbsp;By compressing the dynamic range you don't have to ride the volume controls on your device when you are listening to music in your car, for instance.&lt;br /&gt;
&lt;br /&gt;
This is nothing new, but it is, and has always been, a balancing act. &amp;nbsp;There have always been devices and listening conditions where dynamics is a challenge. &amp;nbsp;For instance, a lot of mastering engineers will have multiple sets of loudspeakers, some of which are rubbish, to test their settings. &amp;nbsp;In an interview I read years ago, one mastering engineer pointed out that he used the crappy stereo in his car to test his work. &amp;nbsp;If it worked there, and on his high end studio monitors, it was probably a good final master.&lt;br /&gt;
&lt;br /&gt;
As a consumer I've long wished for compressors to become part of the player -- so that you can choose to what degree content should have its dynamic range compressed. &amp;nbsp;For instance, if I am listening to a record at home, on a decent'ish stereo, I want the full dynamic range and as little compression as possible. &amp;nbsp;However, if I am in my car, I might want the dynamic range to be as narrow as possible so the faint parts are not drowned out by noise and the loud parts do not burst my eardrums.&lt;br /&gt;
&lt;br /&gt;
Some movies have awful sound mixing. &amp;nbsp;The silent parts are too silent and the loud parts are too loud. If you are watching a movie in a noisy environment you end up riding the volume buttons and being annoyed.&lt;br /&gt;
&lt;br /&gt;
Some devices have very simple compressors. &amp;nbsp;For instance I had a CD player years ago that had a built-in compressor. &amp;nbsp;&lt;i&gt;(Generally you want to perform any compression on the digital signal, not the analog signal)&lt;/i&gt;. &amp;nbsp;However, this is not a very wide-spread feature.&lt;br /&gt;
&lt;br /&gt;
Learning how to use a mastering compressor takes time. &amp;nbsp;In fact, they can be quite complex beasts, featuring different compression parameters for different frequency bands etc. &amp;nbsp;It is going to take a while for fully automated detection of adequate compression parameters is going to sound good. &amp;nbsp;This is why I would love if the sound industry could come up with a reference model for compressors and encode the parameters into an automation track delivered with the content. &amp;nbsp;This way the consumer could turn compression on when desirable -- or even be given a control that lets the consumer decide the severity of compression.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-4438028057194381242?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/b-PFp65P7AiV5qzRD2nCPHSqNyk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b-PFp65P7AiV5qzRD2nCPHSqNyk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/b-PFp65P7AiV5qzRD2nCPHSqNyk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b-PFp65P7AiV5qzRD2nCPHSqNyk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/FEgkaAeCJLc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/4438028057194381242/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/11/sound-dynamics-and-such.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/4438028057194381242?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/4438028057194381242?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/FEgkaAeCJLc/sound-dynamics-and-such.html" title="Sound, dynamics, and such" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2011/11/sound-dynamics-and-such.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcAQHozfyp7ImA9WhRTGUo.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-8236232530224281305</id><published>2011-11-10T20:22:00.001+01:00</published><updated>2011-11-11T01:07:21.487+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-11T01:07:21.487+01:00</app:edited><title>The lost art of mending.</title><content type="html">A couple of years ago one of my Alesis M1 speakers stopped working. &amp;nbsp;These are powered studio monitors, which means they have a PSU in each speaker and an embedded amplifier. &amp;nbsp;This is a known issue for these speakers. &amp;nbsp;The problem is a 2 watt resistor that is mounted too close to an electrolytic capacitor, so the resistor heats up and over time ends up frying the capacitor.&lt;br /&gt;
&lt;br /&gt;
At the time when this happened I didn't bother googling it, so I just noted the problem and dropped the speaker off at a company that my local dealer of sound equipment recommended.&lt;br /&gt;
&lt;br /&gt;
It took them a couple of weeks to fix and the bill was for about $500-600. &amp;nbsp;The guy had just thrown out the PSU, ordered a brand new one and put it in.&lt;br /&gt;
&lt;br /&gt;
Of course, the other PSU failed shortly after. &lt;br /&gt;
&lt;br /&gt;
Not wanting to spend another chunk of cash, this time I researched the issue a bit. &amp;nbsp;All in all it took me 3 minutes of googling to figure out what was wrong. &amp;nbsp;At the time I didn't have a selection of components lying around, so I had to spend 3-4 minutes online finding and ordering the components. &amp;nbsp;They arrived 2 days later and then it took me all of 10 minutes to get set up, replace the components (with somewhat uprated components) and verify that the repair worked.&lt;br /&gt;
&lt;br /&gt;
Total component cost was something in the area of $2-3 and then I had nine spare sets of components, so if the problem returns I can fix it easily. &amp;nbsp;Any idiot can fix it.&lt;br /&gt;
&lt;br /&gt;
What depresses me is that people don't know how to fix things. &amp;nbsp;The dude in the shop apparently had no useful skills. &amp;nbsp;Because if he did he could have saved himself the hassle of ordering (and waiting for) a new part, and he could have saved me a huge bill and perhaps seen some return business.&lt;br /&gt;
&lt;br /&gt;
I see the same thing with my car. &amp;nbsp;Every spring and every fall I switch to or from winter wheels and I stored the other set at this company. &amp;nbsp;The last time I picked up my car, one of the wheel nuts was missing and about 4-5 of the remaining wheel nuts had been over-torqued thus destroying them. &amp;nbsp;You would think that when you pay someone to do this, and they do this for a living, they would be able to do a better job. &amp;nbsp;Even I know that you can't apply arbitrary amounts of torque to the wheel nuts, and I am not a mechanic -- I don't do wheel changes for a living.&lt;br /&gt;
&lt;br /&gt;
About once per year I go to the local landfill to get rid of things I don't need. &amp;nbsp;Thankfully, they have various recycling stations there so I can at least hope that some of the things I get rid of there actually are recycled responsibly. &amp;nbsp;But I am still depressed when I drive home. &amp;nbsp;So much STUFF. &amp;nbsp;And most of it still usable -- and a lot of the stuff that is broken should be easily fixable.&lt;br /&gt;
&lt;br /&gt;
If you care about the environment you should care about the fixability of your gadgets. &amp;nbsp;You can buy carbon offsets or take part in all manner of feelgood environmental nonsense, &amp;nbsp;but the fact is that the device you are using to read this blog posting will end up in a landfill when it breaks or when you get a new gadget. &amp;nbsp;Because you are not going to fix it, and I am pretty sure you do not know of anyone capable, willing or qualified to fix it either. &amp;nbsp;It might end up in some third world country where some kid is going to set fire to it to get the metals out of it -- releasing noxious gases.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;If you have kids or you want a hobby: lots of gadgets have cool components that you can scavenge. Rather than throwing away that useless printer, rip it apart and have a look inside. &amp;nbsp;There's lots of fun stuff inside that you can build interesting toys from. &amp;nbsp;And it isn't hard. &amp;nbsp;You don't have to be a genius to play with these things. &amp;nbsp;Get an Arduino and learn.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I think we need to make it cool to know how to fix stuff again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-8236232530224281305?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3wVJZ4303mQmCOTQo1ACQmhbgRc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3wVJZ4303mQmCOTQo1ACQmhbgRc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3wVJZ4303mQmCOTQo1ACQmhbgRc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3wVJZ4303mQmCOTQo1ACQmhbgRc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/8TNqy7Gt58M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/8236232530224281305/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/11/lost-art-of-mending.html#comment-form" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/8236232530224281305?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/8236232530224281305?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/8TNqy7Gt58M/lost-art-of-mending.html" title="The lost art of mending." /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>7</thr:total><feedburner:origLink>http://blog.borud.no/2011/11/lost-art-of-mending.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8BQ3oycCp7ImA9WhRTEk4.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-5841346916327046665</id><published>2011-11-02T12:37:00.000+01:00</published><updated>2011-11-02T12:37:32.498+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-02T12:37:32.498+01:00</app:edited><title>Lightbulbs, why isn't this a solved problem?</title><content type="html">With all the new regulations that require lightbulbs to be of some energy-saving design, buying lightbulbs has become a major pain in the neck -- as well as an overly expensive affair. &amp;nbsp;Here are some suggestions for both manufacturers and groups that advise consumers.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Many of the new types of light bulbs have physical dimensions that are not within the envelope of the traditional tungsten counterparts. &amp;nbsp;Lightbulbs that are outside this envelope should be clearly marked as such since it is very hard to judge while you are standing there in the store without ripping open boxes and comparing light bulbs.&lt;/li&gt;
&lt;li&gt;The type of socket should be clearly marked on the box. &amp;nbsp;One would think that this piece of information would be prominently displayed on the packaging, but quite often it is tucked away somewhere in the fine print. &amp;nbsp;I've even come across packaging that doesn't print the socket type at all. The result is that to be sure you have to rip open the packaging to inspect the socket.&lt;/li&gt;
&lt;li&gt;The lifetime figures printed on the box are nonsense. &amp;nbsp;Exactly NONE of the power-saving lightbulbs I've purchased have lasted anywhere near as long as it says on the box. &amp;nbsp;Not even after I moved into a brand new house. &amp;nbsp;Quite obviously the manufacturers either lie outright or the standards for testing are inadequate. &amp;nbsp;Many of the energy-saving lightbulbs boast of longer life (to justify their high price), but in reality they have only somewhat longer life-span. &amp;nbsp;If it is longer at all.&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;Points 1 and 2 should be easily fixable for manufacturers. &amp;nbsp;The fact that many major manufacturers don't do this just means they have figure out what on earth the people who design their packaging are doing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Point 3 is probably never going to happen. &amp;nbsp;Lightbulbs have limited life-span by design so manufacturers are incentivized to make sure their bulbs stop working as soon as possible -- but not so soon that consumers catch on. &amp;nbsp;If they wanted to they could make nearly unbreakable bulbs that would keep functioning for decades, but they won't. &amp;nbsp;Fine, we know this, but I think some manufacturers have become a bit too greedy and it is time to introduce some balance. &amp;nbsp;Perhaps some regulatory action is needed.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-5841346916327046665?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RM0kjKUhZp4TWqhtVW6nATrisgg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RM0kjKUhZp4TWqhtVW6nATrisgg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RM0kjKUhZp4TWqhtVW6nATrisgg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RM0kjKUhZp4TWqhtVW6nATrisgg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/HBkBiPoLgms" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/5841346916327046665/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/11/lightbulbs-why-isnt-this-solved-problem.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/5841346916327046665?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/5841346916327046665?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/HBkBiPoLgms/lightbulbs-why-isnt-this-solved-problem.html" title="Lightbulbs, why isn't this a solved problem?" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://blog.borud.no/2011/11/lightbulbs-why-isnt-this-solved-problem.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04HQ3c4cSp7ImA9WhdaFUs.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-5890344702315334607</id><published>2011-10-25T18:57:00.001+02:00</published><updated>2011-10-25T18:58:52.939+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-25T18:58:52.939+02:00</app:edited><title>IPv6 has to be made sexy.</title><content type="html">Switching to IPv6 is like taking out the trash: everyone hopes someone else is going to do it so they don't have to.&lt;br /&gt;
&lt;br /&gt;
I've known a lot of people who have enthusiastically set out to IPv6ify the world only to realize that their &lt;i&gt;mission&lt;/i&gt; is met by as much enthusiasm as experienced by those who turn up at your doorstep with pamphlets to guide your soul away from some inevitable doom.&lt;br /&gt;
&lt;br /&gt;
If I were an economist &lt;i&gt;(a proper one)&lt;/i&gt; I would probably ask: &lt;b&gt;where are the incentives?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Because there are no incentives. In fact, there are only disincentives. It is hard enough to teach people how to set up a network using IPv4. If you start talking about IPv6 their eyes just glaze over.&lt;br /&gt;
&lt;br /&gt;
For IPv6 to become a mainstream occurrence companies like Cisco and Intel need to hire people that understand the need to make products that are significantly easier to configure. The products have to be so easy to configure that they are sexy. And this has to go beyond just slapping some My First Pony GUIs on top. The sexiness has to be deeper. To appeal to morons and tinkerers alike.&lt;br /&gt;
&lt;br /&gt;
Ever tried to configure a router using its command line interface? &amp;nbsp;Exactly. &amp;nbsp;They are rubbish almost no matter what the price range. &amp;nbsp;It seems no matter how many times I try, I can't get the broadband router in my home to behave sensibly. &amp;nbsp;It has been some years since I had to set up a Cisco router, and while those are made by somewhat brighter people, you are still going to need to study the manual to figure the thing out.&lt;br /&gt;
&lt;br /&gt;
When networking gear becomes more sensible, and is designed by people who have an ambition to simplify their use adequately, IPv6 can succeed. Until then it will remain the domain of people with pony tails, suspect body odors and an undying belief that the rest of the world even gives a shit about the diminishing supply of public IP addresses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-5890344702315334607?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-zRfmNUNFBTx49tuDHwvgp-qimw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-zRfmNUNFBTx49tuDHwvgp-qimw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-zRfmNUNFBTx49tuDHwvgp-qimw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-zRfmNUNFBTx49tuDHwvgp-qimw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/79vW9qWOcGE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/5890344702315334607/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/10/ipv6-has-to-be-made-sexy.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/5890344702315334607?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/5890344702315334607?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/79vW9qWOcGE/ipv6-has-to-be-made-sexy.html" title="IPv6 has to be made sexy." /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2011/10/ipv6-has-to-be-made-sexy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIEQX8zfSp7ImA9WhdbE08.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-2928289038384218493</id><published>2011-10-11T09:51:00.002+02:00</published><updated>2011-10-11T10:08:20.185+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-11T10:08:20.185+02:00</app:edited><title>Android as a platform for launching a new language?</title><content type="html">I'm not sure if I would say that there is a lot of &lt;i&gt;focus&lt;/i&gt; on designing languages at Google, but with the recent announcement of Dart, I couldn't help but think that Google actually has what it takes to make a language successful quickly. If they develop a new language for the largest smart-phone platform on the planet, they can reach a lot of programmers in a very short time.&lt;br /&gt;
&lt;br /&gt;
(Just look at how quickly the world learned Objective-C, which was all but an oddity, to make apps for iOS).&lt;br /&gt;
&lt;br /&gt;
I think Oracle are mismanaging Java and that they have proved to be extremely short-sighted. Trying to extort Google for cash rather than seeing Android as an opportunity for becoming relevant on mobile platforms is a very weak response and one that tells me that Oracle does not have the long term in mind. And if you make an investment in a language you want a responsible "owner" that has the long term in mind.&lt;br /&gt;
&lt;br /&gt;
Oracle is not that responsible owner, and as long as the attitudes of Larry Ellison persist, there will be a dark cloud hanging over Java.&lt;br /&gt;
&lt;br /&gt;
I'm not sure if either Go or Dart are suitable for writing applications for a mobile platform. But it if Google should decide to create a replacement for Java on Android I think it could have a profound impact on the industry. They can reach a lot of developers very fast.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-2928289038384218493?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YWTTfJCW5yWA9-8eJl9E6x1qmD4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YWTTfJCW5yWA9-8eJl9E6x1qmD4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YWTTfJCW5yWA9-8eJl9E6x1qmD4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YWTTfJCW5yWA9-8eJl9E6x1qmD4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/Ml7ImgLA-YU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/2928289038384218493/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/10/android-as-platform-for-launching-new.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/2928289038384218493?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/2928289038384218493?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/Ml7ImgLA-YU/android-as-platform-for-launching-new.html" title="Android as a platform for launching a new language?" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2011/10/android-as-platform-for-launching-new.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEBQX0yfip7ImA9WhdUEUs.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-3198415309617012012</id><published>2011-09-28T01:30:00.001+02:00</published><updated>2011-09-28T01:37:30.396+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-28T01:37:30.396+02:00</app:edited><title>There will be no "later".</title><content type="html">One of the more peculiar things you often see in source code is when programmers write messages to their future selves.&amp;nbsp; In the shape of TODOs or even excuses for why the code is not done properly and how they are going to come and clean it up later.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;I'll let you in on a secret: there will be no "later".&amp;nbsp; Most unfinished code is going to remain unfinished to the day it is replaced or becomes irrelevant&lt;/b&gt;.&lt;br /&gt;
&amp;nbsp;If you don't do it properly now, you are not going to come back later and put things right. You have just one shot at doing it right.&lt;br /&gt;
&lt;br /&gt;
Because it is never a good time to get things done properly.&amp;nbsp; That green field on the other side of the release isn't there.&amp;nbsp; It is a mirage.&amp;nbsp; Because when you get there you are going to waste the first part of it on distractions, and you are going to spend the second part of it running around like a headless chicken with your ass on fire producing even more unfinished code in time for the next release.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-3198415309617012012?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Wb5h3XbY0Y-GBpAnUmnwxCzbfcc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wb5h3XbY0Y-GBpAnUmnwxCzbfcc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Wb5h3XbY0Y-GBpAnUmnwxCzbfcc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wb5h3XbY0Y-GBpAnUmnwxCzbfcc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/E1EuV-EytKw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/3198415309617012012/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/09/there-will-be-no-later.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/3198415309617012012?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/3198415309617012012?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/E1EuV-EytKw/there-will-be-no-later.html" title="There will be no &quot;later&quot;." /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://blog.borud.no/2011/09/there-will-be-no-later.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8ER308eip7ImA9WhdXFk4.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-4913303606719357497</id><published>2011-08-27T16:29:00.011+02:00</published><updated>2011-08-29T18:03:26.372+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-29T18:03:26.372+02:00</app:edited><title>Steve</title><content type="html">&lt;a href="http://1.bp.blogspot.com/-7lCCVbaT06I/TllyAH50eJI/AAAAAAAABCM/98FHnSRqvUE/s1600/Picture+7.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;My admiration for Steve Jobs started the first time I read about the &lt;a href="http://en.wikipedia.org/wiki/NeXT_Computer"&gt;NeXT&lt;/a&gt; computer back in 1988.&amp;nbsp; The NeXT computer was just a stunning piece of work.&amp;nbsp; Absolutely every aspect of this computer was forward-looking in a way that I had never seen before.&amp;nbsp; In fact, the least interesting thing about this computer was the hardware spec -- even though it was pretty spectacular. &lt;br /&gt;
&lt;br /&gt;
What made the NeXT so amazing was that it represented Steve Jobs' ability to look ahead.&amp;nbsp; He understood the importance of having a solid operating system at the bottom. &amp;nbsp;He made great strides in bringing graphical user interfaces to the forefront. &amp;nbsp;He understood the importance of networking.&amp;nbsp; He understood the importance of industrial design. And he was able to keep all of these things in his head at the same time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-hkrbRP6ANtk/Tll0N3Crc2I/AAAAAAAABCU/mAgTMZRrM3M/s1600/bluecube.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-hkrbRP6ANtk/Tll0N3Crc2I/AAAAAAAABCU/mAgTMZRrM3M/s320/bluecube.jpg" width="293" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
The NeXT was the first beautiful computer.&amp;nbsp; And it wasn't just beautiful on the surface.&amp;nbsp; Anyone who has taken apart a NeXT cube and looked inside can attest to the fact that this was the first personal computer that was properly engineered.&amp;nbsp; Right down to the spring-loaded back-panel screws and the only cooling fan I have ever seen that not only keeps the device cool, but also filters the air and is easy to service because even the power connector was designed with care and attention to detail.&amp;nbsp; Not to mention the single cable running from the main unit to the screen.&amp;nbsp; One cable with video signal, audio in and out, keyboard, mouse and power, yet it was flexible and not overly thick.&amp;nbsp; It took some hard work to design that thing.&amp;nbsp; Amazing attention to detail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-4jBloYqrnbg/TllzuX3ZRmI/AAAAAAAABCQ/gO9cqSpc5Fs/s1600/printermonitor.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="197" src="http://3.bp.blogspot.com/-4jBloYqrnbg/TllzuX3ZRmI/AAAAAAAABCQ/gO9cqSpc5Fs/s400/printermonitor.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
It was also the first proper &lt;i&gt;personal&lt;/i&gt; computer to have a UNIX flavor operating system.&amp;nbsp; This was a wise choice.&amp;nbsp; In evolutionary terms, UNIX may be old, but it has stuck around because it was an unusually optimal design philosophy.&amp;nbsp; The core idea behind UNIX is simplicity, smallness, and abstraction. &amp;nbsp;Which means it is uniquely suitable as the foundation for layering operating environments and user interfaces on top. &amp;nbsp;UNIX today is the dominant operating system in mobile telephones as well as the vast server farms of companies such as Google.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;UNIX, as I use the term, refers to a family of operating systems rather than any particular operating system. &amp;nbsp;NeXTStep was, strictly speaking a "Mach kernel with a BSD personality". &amp;nbsp;Explaining what UNIX really means may be the topic of a whole other blog post.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
The NeXT computer was, of course, the direct precursor to the computers we use today.&amp;nbsp; And in evolutionary terms, the Mac practically &lt;i&gt;is&lt;/i&gt; the NeXT computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-7lCCVbaT06I/TllyAH50eJI/AAAAAAAABCM/98FHnSRqvUE/s1600/Picture+7.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-7lCCVbaT06I/TllyAH50eJI/AAAAAAAABCM/98FHnSRqvUE/s200/Picture+7.png" width="140" /&gt;&lt;/a&gt;Steve Jobs is often thought of as a harsh, direct and difficult person.&amp;nbsp; And I have no doubt that he is all of those things.&amp;nbsp; Over the past days I've read a few articles on how Steve Jobs is not a good role model for aspiring leaders.&lt;br /&gt;
&lt;br /&gt;
I both agree and disagree.&lt;br /&gt;
&lt;br /&gt;
I disagree because this seems to ignore the fact that it takes a strong personality and a strong will to realize a vision without compromising until mediocrity is inevitable.&amp;nbsp;&amp;nbsp; When a product is designed it goes through several stages.&amp;nbsp; You start with the concept.&amp;nbsp; The the concept is watered down during engineering.&amp;nbsp; Then the product is further watered down when it has to be manufactured.&amp;nbsp; This is why concept cars look so exciting -- and why the finished production model is inevitably a disappointment.&amp;nbsp; The production model is always a compromise.&lt;br /&gt;
&lt;br /&gt;
This is also why personal computers, for the most part, are rubbish.&amp;nbsp; Their realization is the result of giving in to every limitation that has been encountered from vision to production model.&amp;nbsp;&amp;nbsp; One of the key things Jobs did was to be &lt;a href="http://en.wikipedia.org/wiki/IMac_G3"&gt;unaccepting&lt;/a&gt; of this and to turn it upside down.&amp;nbsp; Rather than having current limitations dictate the product he would push to address these limiting factors.&amp;nbsp; In design, in manufacturing and in attitude.&amp;nbsp; This, of course, causes friction, (&lt;a href="http://www.folklore.org/StoryView.py?project=Macintosh&amp;amp;story=Hide_Under_This_Desk.txt"&gt;and occasionally disaster&lt;/a&gt;) but in his case, the end results were hard to argue with.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;(Example: &amp;nbsp;Jobs wanted the original iMac to be silent. &amp;nbsp;In other words it could not have a cooling fan. &amp;nbsp;The engineers said it couldn't be done. &amp;nbsp;Jobs insisted and the engineers had to find a way. &amp;nbsp;And they did. &amp;nbsp;The iMac had no cooling fan. &amp;nbsp;It may be hard to understand why Jobs insisted that this detail be delivered -- until you consider that most computer professionals suffer from hearing loss due to cooling fan noise).&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
If Jobs had been a nice, accepting, more "democratic" leader, Apple would still be making the &lt;a href="http://en.wikipedia.org/wiki/Macintosh_Quadra"&gt;low quality grey boxes&lt;/a&gt; that were made while Jobs was away from Apple -- if they had been in business at all.&amp;nbsp; The workplace might have been "nicer", but Apple would have descended into mediocrity and eventually death.&lt;br /&gt;
&lt;br /&gt;
However I do agree that he is not a suitable role model for most leaders.&amp;nbsp; The reason is that Steve has a strong sense of direction, product, vision, and quality -- and most leaders &lt;b&gt;do not&lt;/b&gt;.&amp;nbsp; Before you can lead you have to know where you are going. &amp;nbsp;And even if you know where you are going, you have to get up and lead every day. &amp;nbsp;And you have got to deal with setbacks without becoming too timid.&lt;br /&gt;
&lt;br /&gt;
Compare this to the management at companies like Sun and Yahoo! -- companies that have had a distinct lack of vision and direction.&amp;nbsp; I hear &lt;a href="http://en.wikipedia.org/wiki/Carol_Bartz"&gt;Carol Ann Bartz&lt;/a&gt; is a tough CEO, but she has been the CEO of Yahoo! since 2009 and I have yet to see any clear direction or philosophy.&amp;nbsp; What is it that Yahoo! is supposed to be good at? &amp;nbsp;I suspect that no amount of "being tough" is going to make Carol Bartz a better leader for Yahoo!. &amp;nbsp; Because she just doesn't have any credible vision. &amp;nbsp;She is treading water. &amp;nbsp;Just like the last 3 CEOs.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/Scott_McNealy"&gt;McNealy&lt;/a&gt; was the CEO of Sun for 22 years. Perhaps one of the most promising computer companies ever -- yet it never seemed to realize its potential.&amp;nbsp; What on earth was McNealy doing?&amp;nbsp; Sun should have been the queen of the prom in the cloud computing era.&amp;nbsp; Instead the company went out with a whimper and was sold to perhaps one of the least innovative tyrants in the industry where what little it had going for it is being torn to shreds. &amp;nbsp;I can not remember having seen McNealy say anything even remotely inspiring or insightful. &amp;nbsp;Can you?&lt;br /&gt;
&lt;br /&gt;
If you are to lead forcefully, then you must have clear direction.&amp;nbsp; Steve Jobs had clear direction.&amp;nbsp; The majority of leaders do not.&amp;nbsp; The majority of leaders aren't even involved in the products their companies make and thus it would be silly to adopt a style that requires you to be involved.&amp;nbsp; Deeply involved.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;I think the aspects of Jobs style that leaders should focus on is the almost fanatical urge to evolve and to invest in the future.&amp;nbsp; It is easy to forget that Steve Jobs spent a lot of time failing.&amp;nbsp; That it took him a long time to find the right balance between short term needs and long term strategy.&amp;nbsp; But he always had a long term strategy.&amp;nbsp; And he always had the guts to be unaccepting of shortcuts that betray bigger goals.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Don't look at where Apple is now and what they are doing now. &amp;nbsp;Look at &lt;u&gt;how Apple got there&lt;/u&gt;.&amp;nbsp; Hate and fear them if you must, but at least understand why they succeeded.&amp;nbsp; Or more precisely, how Steve Jobs made Apple a successful company.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://0.gvt0.com/vi/MICRwo1U38Q/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/MICRwo1U38Q&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/MICRwo1U38Q&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-4913303606719357497?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZvSZTsBzSHJo-l3HJVYE_n2onNg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZvSZTsBzSHJo-l3HJVYE_n2onNg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZvSZTsBzSHJo-l3HJVYE_n2onNg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZvSZTsBzSHJo-l3HJVYE_n2onNg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/4gV_HpZmLvk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/4913303606719357497/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/08/steve.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/4913303606719357497?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/4913303606719357497?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/4gV_HpZmLvk/steve.html" title="Steve" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-hkrbRP6ANtk/Tll0N3Crc2I/AAAAAAAABCU/mAgTMZRrM3M/s72-c/bluecube.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.borud.no/2011/08/steve.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYFQn0_fSp7ImA9WhdQF0g.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-7292409984553177453</id><published>2011-08-19T13:07:00.001+02:00</published><updated>2011-08-19T13:08:33.345+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-19T13:08:33.345+02:00</app:edited><title>Near Field Communications Hype</title><content type="html">Occasionally people ask me what I think about NFC. &amp;nbsp;Or rather, whether the hype around NFC is warranted. &amp;nbsp;In the interest of not having to repeat myself I thought I'd just jot down a couple of thoughts on my blog.&lt;br /&gt;
&lt;br /&gt;
For the most part I tend to be relatively immune to at least some types of hype. &amp;nbsp; This is not an attempt to seem clever or cool, but this is just the way I am. &amp;nbsp;And the reason for this is that I find it very hard to become excited about technologies that are outside our &lt;b&gt;practical&lt;/b&gt; reach. &lt;br /&gt;
&lt;br /&gt;
I'm excited about 3D printers because I know that I could afford buying one, or if I had the time, it is well within my abilities to build one. &amp;nbsp;I also know that some 3D printing technologies work amazingly well and that it is inevitable that prices will come down. &lt;br /&gt;
I am not at all excited about going to Mars -- because we are still very far away from knowing how to do that (despite what the popular science crowd would have you believe). &lt;i&gt;That of course doesn't mean that I don't think we should aim for Mars -- I just fail to be excited about it as long as I don't see how we would get there.&amp;nbsp;&lt;/i&gt;At most I might be excited about sub-problems that need to be solved, but the end goal is too far away for me to feel any excitement.&lt;br /&gt;
&lt;br /&gt;
The hype around NFC never excited me. &amp;nbsp;In fact it annoyed me because there was too much talk and too little action. &amp;nbsp;Yes, there are NFC-enabled gadgets and the technology is now trivially available to manufacturers. &amp;nbsp;However, NFC-enabled devices are not widespread. &amp;nbsp; It is only when the vast majority of new phones coming to the market are NFC enabled that NFC will have the potential to make any impact whatsoever.&lt;br /&gt;
&lt;br /&gt;
This means that the most important thing right now is not what we might be able to do with NFC. &amp;nbsp;Forget about that for now. &amp;nbsp;The most important thing right now is to get manufacturers to take the risk of including NFC in all mobile phones without any clear idea of what it is going to be used for. &amp;nbsp;This is a necessary leap of faith. &amp;nbsp;And it is not without risk. &amp;nbsp;But unless manufacturers are willing to make this leap, NFC has absolutely no future.&lt;br /&gt;
&lt;br /&gt;
Once NFC availability crosses some hitherto unknown tipping point innovation, excitement, and explosive development will happen. &amp;nbsp;And we will have absolutely no way of saying where it may take us. &amp;nbsp;And I am absolutely positive that at that point I will be excited.&lt;br /&gt;
&lt;br /&gt;
Just ship the damn devices already.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-7292409984553177453?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/auLN73a3v1www0CuSpS0abexNrs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/auLN73a3v1www0CuSpS0abexNrs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/auLN73a3v1www0CuSpS0abexNrs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/auLN73a3v1www0CuSpS0abexNrs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/NuoOTPVcxeY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/7292409984553177453/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/08/near-field-communications-hype.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/7292409984553177453?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/7292409984553177453?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/NuoOTPVcxeY/near-field-communications-hype.html" title="Near Field Communications Hype" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2011/08/near-field-communications-hype.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEBRHY-fCp7ImA9WhdQEkk.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-1696515073721689028</id><published>2011-08-13T17:17:00.000+02:00</published><updated>2011-08-13T17:17:35.854+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-13T17:17:35.854+02:00</app:edited><title>Flickr is dead</title><content type="html">In a few days my pro account on Flickr expires.&amp;nbsp; Although the cost of a Flickr Pro account is relatively trivial, I have been giving renewal of my Pro account some thought.&amp;nbsp; The conclusion I have reached is that I am going to renew it,&amp;nbsp; but it isn't because I belive Flickr has much of a future.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Because Flickr really has no future.&lt;br /&gt;
&lt;br /&gt;
Since Yahoo! acquired Flickr in march 2005 nothing much has happened.&amp;nbsp; While some effort was put into making the site scale better initially, Yahoo! hasn't really done anything to improve any observable aspects of Flickr for years.&amp;nbsp; Which is a shame.&amp;nbsp; Because Flickr used to be &lt;i&gt;the&lt;/i&gt; site for photographers.&amp;nbsp; It even launched the careers of a handful of photographers who used to be mere hobbyists.&lt;br /&gt;
&lt;br /&gt;
Today the site, and the brand, is in decline.&amp;nbsp;&amp;nbsp; What used to be a thriving community has increasingly taken on the appearance of a ghost town.&lt;br /&gt;
&lt;br /&gt;
Even from a technical perspective Flickr is failing.&amp;nbsp; When linking images from twitter or from social news sites such as Reddit, people have started noting how there is a reluctance to click on image links hosted by Flickr -- simply because the service is too slow.&amp;nbsp; Users respond to this and instinctively avoid Flickr.&lt;br /&gt;
&lt;br /&gt;
I will be renewing my pro account for another year.&amp;nbsp; But the main reason I am doing that is because I want to buy a bit more time to figure out where I am moving my pictures.&amp;nbsp; I hope that Google+ or whomever I migrate my image galleries to, will provide some tools for migrating my content off Flickr.&lt;br /&gt;
&lt;br /&gt;
As for why Yahoo! are so consistently running their properties into the ground, I don't think there are any simple explanations.&amp;nbsp; But I used to work for Yahoo! and I was never very impressed with the upper echelons of management at Yahoo!.&amp;nbsp; There's a distinctive lack of passion for products and technology.&amp;nbsp; Also I was never able to observe any clear and strong direction.&amp;nbsp; Yahoo! is the master of half-hearted efforts.&lt;br /&gt;
&lt;br /&gt;
Here's an interesting experiment: ask people what Yahoo!, as a company, is really good at?&lt;br /&gt;
&lt;br /&gt;
I can't think of anything.&amp;nbsp; And I used to work there.&lt;br /&gt;
&lt;br /&gt;
Please do not take my renewal of my Flickr Pro account as an endorsement.&amp;nbsp; Because it isn't.&amp;nbsp; If you are shopping around for a photo site I'd keep an eye on Google+ or Facebook.&amp;nbsp; They aren't there yet, but they have more momentum. &lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-1696515073721689028?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NR3YfJOjJbqthzdjvhXfHwtbjmU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NR3YfJOjJbqthzdjvhXfHwtbjmU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NR3YfJOjJbqthzdjvhXfHwtbjmU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NR3YfJOjJbqthzdjvhXfHwtbjmU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/_8XsiX96r0M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/1696515073721689028/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/08/flickr-is-dead.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/1696515073721689028?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/1696515073721689028?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/_8XsiX96r0M/flickr-is-dead.html" title="Flickr is dead" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.borud.no/2011/08/flickr-is-dead.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUDQHg6fip7ImA9WhdQEEs.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-139906722946094112</id><published>2011-08-10T14:44:00.001+02:00</published><updated>2011-08-11T14:54:31.616+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-11T14:54:31.616+02:00</app:edited><title>Reforming Congress</title><content type="html">Having watched american politics from the sidelines, and through the highly polarized lens of dysfunctional media, one has to wonder what the CIA World Factbook means when it says that the US has a "strong democratic tradition". &amp;nbsp;I don't see it. &lt;br /&gt;
&lt;br /&gt;
I don't see a press that is capable of objectively reporting the facts. &amp;nbsp;And I don't understand how you can have a democracy when politicians get elected mainly on the basis of how successful their heavily funded PR campaigns were.&lt;br /&gt;
&lt;br /&gt;
The only obvious way to start fixing the severely dysfunctional political process would be to outright ban campaigns as they exist today. &amp;nbsp;No more political commercials or advertising. &amp;nbsp; No more donations from corporations and private parties. &amp;nbsp;No more special interests keeping politicians as pets. &amp;nbsp;Strict anti-corruption laws and strict enforcement of same laws.&lt;br /&gt;
&lt;br /&gt;
The only campaigning that should be allowed is unscripted debate on public television. &amp;nbsp;With a tight regimen of fact-checking and public exposure of politicians who lie or distort.&lt;br /&gt;
&lt;br /&gt;
If politicians are allowed to lie and misinform the voters and to leverage billions of dollars in elaborate propaganda efforts to gather votes you do not have an election as much as you have an auction -- where the power goes to the highest bidder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-139906722946094112?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zPOUJqAC7NF7lUnz_bRlo_pttg8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zPOUJqAC7NF7lUnz_bRlo_pttg8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zPOUJqAC7NF7lUnz_bRlo_pttg8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zPOUJqAC7NF7lUnz_bRlo_pttg8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/b7h0wpsH3m0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/139906722946094112/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/08/reforming-congress.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/139906722946094112?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/139906722946094112?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/b7h0wpsH3m0/reforming-congress.html" title="Reforming Congress" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.borud.no/2011/08/reforming-congress.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCSHw_fyp7ImA9WhZVEUw.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-5562117784222285395</id><published>2011-05-23T02:40:00.002+02:00</published><updated>2011-05-23T02:44:29.247+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-23T02:44:29.247+02:00</app:edited><title>Free investment tip.</title><content type="html">Do you want an investment tip? &amp;nbsp;If I had a few million dollars lying around I'd start looking for a startup aiming to write software to support the upcoming design, fabrication and manufacturing revolution. &amp;nbsp;The sort of software you need to prototype, test, and yes, machine or 3D print physical objects.&lt;br /&gt;
&lt;br /&gt;
Sure, there is already lots of software for this on the market, but it is extremely complex, expensive and most of it, if not all, is targeted at Windows. &amp;nbsp;Makers don't use Windows. &amp;nbsp;Makers use OSX or Linux. &amp;nbsp;And it is the Makers you have to keep an eye on because they are the people defining what is right now a relatively small niche. &amp;nbsp;Even if you ultimately will sell larger volumes on Windows (though I am not so sure you will).&lt;br /&gt;
&lt;br /&gt;
The reason I think this is going to be a good area to invest is because the software houses in this industry are going to miss this market entirely. &amp;nbsp;They are, after all, professionals with decades of experience and wouldn't even think of licensing even scaled down versions of their ultra expensive CAM software for calculating optimal toolpaths at prices affordable by mere hobbyists. &amp;nbsp;Much less engage with them to externalize innovation and have mere users extend the ecosystem with their own extensions and tools.&lt;br /&gt;
&lt;br /&gt;
As manufacturing becomes available to the masses (both in the shape of cheaper machines, but also in the shape of companies selling access to equipment through the net), in much the same way computers slowly became available to the masses in the late 70s, there will be a need for better, more user-friendly, more portable, and more extensible and adaptable software. &amp;nbsp;Because that is the big hole in the ecosystem right now: &amp;nbsp;the software. &amp;nbsp;There are some cheap packages for doing rudimentary 3D design. &amp;nbsp;There are also some packages to drive mills and 3D printers. &amp;nbsp;But there is a very noticable absence of decent CAM packages to bridge the gap between those two worlds. &amp;nbsp;That is: for the sort of audiences that are just now starting to enter the stage.&lt;br /&gt;
&lt;br /&gt;
I predict that within the next 2 years a startup will emerge from the Bay Area that addresses this gap and makes an affordable CAM package that runs on something other than Windows. &amp;nbsp;In 5-6 years the industry giants are going to be scratching their heads and asking themselves how on earth they could not have seen that coming -- and people will point out to them that history just keeps repeating itself. &amp;nbsp;They will miss the market precisely because they think they know everything there is to know about their particular domain and they will be too heavily invested in the status quo to adapt. &amp;nbsp;This happens in almost every industry from time to time.&lt;br /&gt;
&lt;br /&gt;
There are also going to be a lot of innovation in the type of fabrication processes that are possible and practical. &amp;nbsp;From advanced voxel machines to manufacturing living tissue. &amp;nbsp;This is going to require flexibility and hackability.&lt;br /&gt;
&lt;br /&gt;
So if you have a few million dollars lying around and you want to invest in something that may become a really exciting future market, I suggest you pack your bags, go to the Bay Area and start looking for startups that want to build affordable CAM-software. Of course, you'll have to be in it for the long haul, but I think there are fortunes to be made here.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Through sites like&amp;nbsp;&lt;a href="http://cloudfab.com/"&gt;http://cloudfab.com/&lt;/a&gt;&amp;nbsp;you can already fabricate one-offs at relatively low costs. &amp;nbsp;These types of companies will also be very important in helping you figure out what fabrication processes will be appropriate for you since this area is experiencing very rapid innovation. &amp;nbsp;But you still have to provide them with decent designs and that requires proper tools. &amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;A package like SolidWorks is going to cost you something in the neighborhood of $4.000 to $5.000. &amp;nbsp;It is a niche product for industrial use, though a bit overkill for the hobbyist. &amp;nbsp;Of course, it is also quite obviously too expensive for the $50-$500 price range that a hobbyist might be able to pony up. &amp;nbsp;Judging by the number of hobbyists I've encountered that seem to know SolidWorks and similar packages without having a job where they'd use it, I'd suspect that there are a lot of pirated installations of SolidWorks out there.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Oh and of course, SolidWorks is neither available on MacOS X, nor on Linux. &amp;nbsp;Which is a big handicap even if Dassault Systèmes were to create a "Maker version".&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;i&gt;If you want to go into the business of building these tools I wouldn't worry too much about being undercut by traditional players. &amp;nbsp;By the time they catch on and slash prices they'll have nothing worthwhile to offer to the "amateur" segment anyway. &amp;nbsp;They'll sit on the fence until it is too late&lt;/i&gt;&lt;i&gt;.&lt;/i&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-5562117784222285395?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yOrwxcUlqROtJ5zVrNOJ8StVl5A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yOrwxcUlqROtJ5zVrNOJ8StVl5A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yOrwxcUlqROtJ5zVrNOJ8StVl5A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yOrwxcUlqROtJ5zVrNOJ8StVl5A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/x0UvkEIDueM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/5562117784222285395/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/05/free-investment-tip.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/5562117784222285395?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/5562117784222285395?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/x0UvkEIDueM/free-investment-tip.html" title="Free investment tip." /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.borud.no/2011/05/free-investment-tip.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIHSHY9cSp7ImA9WhZWFE0.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-3142877669282709483</id><published>2011-05-14T12:43:00.014+02:00</published><updated>2011-05-14T22:55:39.869+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-14T22:55:39.869+02:00</app:edited><title>There is no Web 3.0</title><content type="html">People keep talking about Web 3.0 expecting the sort of significant shift that Web 2.0 represented.&amp;nbsp; I don't expect there to be one.&amp;nbsp; I view Web 2.0 as the transition where certain aspects of the web "went hockey-stick".&amp;nbsp; Where certain potentials already inherent in the web were realized -- mainly that it went from being a one-way medium to a many-to-many medium. &amp;nbsp;Also we saw the emergence of businesses that "get" the web. &amp;nbsp;But also small things like Firefox challenging Microsoft and bringing actual progress back into the stagnant world of web browsers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-GoxvX2LjoJ8/Tc5lIXLnExI/AAAAAAAAA94/P8epeo6TlNk/s1600/web20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="http://3.bp.blogspot.com/-GoxvX2LjoJ8/Tc5lIXLnExI/AAAAAAAAA94/P8epeo6TlNk/s400/web20.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;The Next Big Thing.&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
So what is The Next Big Thing? &amp;nbsp;The next significant shift? &amp;nbsp;I think it is about the physical world.&amp;nbsp; About machine to machine communication, about "dumb" devices becoming "smart", or lacking that, connected.&amp;nbsp; About sensor networks, remote control and about everyday devices interacting with each other in useful ways across vendors and types of gadgets.&amp;nbsp; About devices and gadgets becoming addressable in sensible ways.&amp;nbsp; About connectivity coming to devices that we previously thought of as too cheap or too small for it to be cost effective to put communication and processing capabilities into them. &lt;br /&gt;
&lt;br /&gt;
Very little of this is new.&amp;nbsp; Machine to machine communication is already an established art, but it has lacked openness and the right sort of mindset that is needed to fuel explosive growth in the consumer market.&amp;nbsp; It is still a specialty field.&amp;nbsp; And connected devices are still somewhat of a novelty.&lt;br /&gt;
&lt;br /&gt;
If you consider trivial examples such as your pulse monitor.&amp;nbsp; You have a sensor you place on your body and a watch that can accept data for storage and processing.&amp;nbsp; If you work out at a gym they might have a treadmill that can accept the signal from your sensor, but that's about it. &amp;nbsp;Nothing else talks to it. &amp;nbsp;If you want your mobile phone to interact with the sensor you need to do a bit of hacking.&amp;nbsp; And it isn't for everyone to design their own electronics, figure out the protocols and write their own software to do this.&lt;br /&gt;
&lt;br /&gt;
Various makers of home entertainment systems have had systems for  allowing their devices to interact for years.&amp;nbsp; Sony, Bang &amp;amp; Olufsen etc. The TV, DVD player and amplifier  can talk to each other, albeit in crude and limited ways.&amp;nbsp;&amp;nbsp; We've had this for at least 25 years now.&amp;nbsp; But  it hasn't really taken off.&amp;nbsp; Because every manufacturer only offers  interoperability between their own devices.&amp;nbsp;&amp;nbsp; Which isn't terribly useful as you are likely to have a mish-mash of different devices from different manufacturers bought at different points in time.&lt;br /&gt;
&lt;br /&gt;
Most everyday devices capable of interacting wirelessly exist within closed ecosystems.&amp;nbsp; Closed proprietary protocols, and when the protocols are indeed "open" they are usually special purpose or they are designed by committees that produce &lt;b&gt;bum-numbingly boring specs&lt;/b&gt; that most people would rather not play with.&lt;br /&gt;
&lt;br /&gt;
As far as the hardware is concerned, you would be amazed how cheap processing power has become. Texas Instruments have some microcontrollers that cost $0.25 apiece.&amp;nbsp; Low power communication hardware for wireless networking are getting ridiculously cheap as well.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Form matters.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
If I may go off on a tangent here for a while; the qualities of a standard or a spec matter greatly.&amp;nbsp; For it to be useful to a big audience it has to be brief, concise and precise.&amp;nbsp; What it describes also has to be simple.&amp;nbsp; Any excess fat must be trimmed.&amp;nbsp; It is extremely important that the spec is written from the point of view of someone who has actually implemented what is described.&amp;nbsp;&amp;nbsp; SMTP, HTTP and even TCP/IP didn't win because they were the best possible protocols -- they won because it was practical to implement them.&amp;nbsp; Because they were simple enough.&amp;nbsp; X.500 and the OSI stack were not, and quite deservedly starved to death from lack of enthusiasm.&lt;br /&gt;
&lt;br /&gt;
If a spec is not usable as a practical blueprint for someone building or implementing the spec, it is not a useful document.&lt;br /&gt;
&lt;br /&gt;
Also, the format matters.&amp;nbsp; Again, look at the standards that make up the bulk of basic Internet technologies.&amp;nbsp; They are text files.&amp;nbsp; Now compare to some of the more unwieldy standards and specs of today that are maintained as big, fat Word documents.&amp;nbsp; Often horrendously badly formatted Word documents at that.&amp;nbsp;&amp;nbsp; There is a number of reasons why word processing files are not suitable for authoring specs and standards.&amp;nbsp; However the minutiae of this is a topic is beyond the scope of this blog posting.&lt;br /&gt;
&lt;br /&gt;
If you want a good example: compare the SAML specs (&lt;a href="http://saml.xml.org/saml-specifications"&gt;http://saml.xml.org/saml-specifications&lt;/a&gt;) with the OAuth specs (&lt;a href="http://tools.ietf.org/html/rfc5849"&gt;http://tools.ietf.org/html/rfc5849&lt;/a&gt;).&amp;nbsp; No, really, have a look and see which &lt;i&gt;you&lt;/i&gt; would rather work on.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: x-small;"&gt;&lt;i&gt;Clarification: I think SAML is a good idea.&amp;nbsp; But it is a pain in the butt to work with because of the massively big, badly written specs.&lt;/i&gt;&lt;/span&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Hardware.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Still, the main problem seems to have been in the hardware domain.&amp;nbsp; Anyone and their grandmother tinkers with software.&amp;nbsp; Not a lot of people play with hardware.&amp;nbsp; And for good reason.&amp;nbsp; You need to have a fair bit of basic knowledge to play with hardware.&amp;nbsp; And to be honest, the hardware mostly isn't all that great.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://freedatasheets.com/blog/uploaded_images/xbee-793555.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://freedatasheets.com/blog/uploaded_images/xbee-793555.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;For instance, I have been playing a bit with mesh-networking and the XBee devices.&amp;nbsp; They are interesting devices, but to be quite honest, not very easy to work with.&amp;nbsp; The manufacturer does not really understand the potential of their product and have not paid much attention to making it easy to configure them.&amp;nbsp; If you want to configure an XBee device you'll have to set aside a few evenings to study the docs.&amp;nbsp; Then you will need to figure out how to work around their worthless, Windows only configuration program.&amp;nbsp; It takes a lot of trial and error to figure out how to work around the dysfunctional and confusing configuration software and I would assume that it is probably better to write your own software for this if you plan to spend much time working with it.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Arduino.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://arduino.cc/en/uploads/Main/arduino_uno_test.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://arduino.cc/en/uploads/Main/arduino_uno_test.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;However, there is hope.&amp;nbsp; As advanced microcontrollers have become cheap there are some brilliant solutions available.&amp;nbsp; Chief among them is the unassuming, but all-important &lt;a href="http://arduino.cc/"&gt;Arduino&lt;/a&gt;.&amp;nbsp; The Arduino is the first wide-spread prototyping platform that makes hardware truly accessible to the masses.&amp;nbsp; It has three things going for it.&amp;nbsp; First the hardware:&amp;nbsp; it is cheap, offers adequate processing power, lots of I/O and the physical interface is exactly what a tinkerer needs.&lt;br /&gt;
&lt;br /&gt;
Second is the software.&amp;nbsp; While the main IDE used with Arduino is aimed at non-programmers, you can still elect to take a more "traditional" route if you prefer that -- using avr-gcc and traditional C programming tools.&amp;nbsp; To help beginners (and more experienced hardware hackers) along there is also a large library available for the Arduino.&amp;nbsp; For doing anything from driving displays to driving servos.&lt;br /&gt;
&lt;br /&gt;
Third, the Arduino has a vibrant community around it.&amp;nbsp; There is an abundance of forums, howtos and people who are willing to share their knowledge.&amp;nbsp; If you want to hack hardware using an Arduino you can accomplish a lot of fun and interesting things by participating.&lt;br /&gt;
&lt;br /&gt;
The Arduino isn't important for the consumer in much the same manner as Java, PHP, Linux or MySQL is unimportant to the users of the web.&amp;nbsp; It is important for the people who innovate, tinker, build and invent.&amp;nbsp; It significantly lowers the barriers for prototyping hardware solutions and it has adequate I/O and processing capabilities to accomplish interesting things.&lt;br /&gt;
&lt;br /&gt;
Interestingly Google has recognized this and are now using the Arduino as a platform for their &lt;a href="http://developer.android.com/guide/topics/usb/adk.html"&gt;Android Open Accessory Development Kit&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://static.arstechnica.com/05-09-2011/adruino.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://static.arstechnica.com/05-09-2011/adruino.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Right now the Arduino is one of the most important gadgets on the market.&amp;nbsp; Because it significantly lowers some important barriers. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Era of &lt;a href="http://oreilly.com/catalog/9780596510510"&gt;talking hardware&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
As I said earlier, I do not believe there will be a Web 3.0 in the sense that we will see a marked shift.&amp;nbsp; There is perhaps a Web 2.5, which is "more better" and the combined fruits of Big Data and machine learning, but I don't see any distinct shifts for the web as such up ahead.&lt;br /&gt;
&lt;br /&gt;
I think the Next Big Things is having gadgets talk to each other and that this is done using technology that is far more available to the masses than is currently the case.&amp;nbsp;&amp;nbsp; The key to this is simplicity, and in the electronics industry, the winners will be those who realize that to fully exploit this opportunity they have to re-think who their target audience is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-3142877669282709483?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QZ97u2WCS1gEVcQZ4AlHJgkRqAs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QZ97u2WCS1gEVcQZ4AlHJgkRqAs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QZ97u2WCS1gEVcQZ4AlHJgkRqAs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QZ97u2WCS1gEVcQZ4AlHJgkRqAs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/pQIWbzRE7lI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/3142877669282709483/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/05/there-is-no-web-30.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/3142877669282709483?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/3142877669282709483?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/pQIWbzRE7lI/there-is-no-web-30.html" title="There is no Web 3.0" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-GoxvX2LjoJ8/Tc5lIXLnExI/AAAAAAAAA94/P8epeo6TlNk/s72-c/web20.png" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.borud.no/2011/05/there-is-no-web-30.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AFR3o-cCp7ImA9WhZXGEQ.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-1449837322785142111</id><published>2011-05-08T20:32:00.001+02:00</published><updated>2011-05-09T01:01:56.458+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-09T01:01:56.458+02:00</app:edited><title>Why talk of "segmentation" frightens me.</title><content type="html">When I wish to provoke thought I often state that "there is no such thing as segments - only successful or unsuccessful products" or that "I do not believe in segmentation". &lt;br /&gt;
&lt;br /&gt;
The first statement is, at best, a simplification about how I think about customers and users in relation to products, but it is a simplification that is closer to what I believe than just stating that any market can, or should, be thought of in terms of segments. &amp;nbsp;One could say that I am rounding off to the nearest significant decimal.&lt;br /&gt;
&lt;br /&gt;
The second statement is largely true. &amp;nbsp;I think segmentation is counterproductive because it tends to act as a handy excuse for not succeeding in appealing to the user. &amp;nbsp;But more importantly, I think segmentation is counterproductive because the partitioning of the customer base is often not sufficiently knowledge-based. &amp;nbsp;Ask for hard numbers and more often than not, you will get the results from a poll or a focus group. &amp;nbsp;&lt;i&gt;(This is so wrong I cringe at the lack of scientific validity whenever I see the results from polling)&lt;/i&gt;. &amp;nbsp;And even when segmenting is informed by at least some data, &amp;nbsp;people don't always understand what to do with that knowledge.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;By observation, not by decree.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Now, I have already admitted that "there are no segments" is not something I truthfully believe in. &amp;nbsp;But this statement is a useful stand-in for what I really believe. &amp;nbsp; Because what I really believe may be a bit trickier to understand on an intuitive level. &amp;nbsp;What I really believe is that segments can only be derived from recent observation. &amp;nbsp;There are two reasons for this.&lt;br /&gt;
&lt;br /&gt;
The first reason is that merely guessing what segments there are is...well, just guessing.&amp;nbsp; Of course, there are many forms of guessing. &amp;nbsp;Some of them are cleverly disguised as science. &amp;nbsp;You can ask people what segment they are in. &amp;nbsp;You can ask questions that you think will determine what segment they are in (which might work, rarely does) or you can do what a lot of people do: &amp;nbsp;recycle random factoids from books or from the web.&lt;br /&gt;
&lt;br /&gt;
Litmus test: If you have names for the segments even before you have data supporting their existence or describing their size or importance (not always the same), you are not being scientific.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;(A quick comparison.&amp;nbsp; Automated news aggregation sites, like Google News, are all about automatic segmenting of news reporting.&amp;nbsp; Or "clustering" as it is called in search or machine learning nomenclature.&amp;nbsp; I forget which.&amp;nbsp; The software is not really pre-configured to know anything about any topic.&amp;nbsp; It works by ingesting a fair share of the world's newspapers and looks at significant similarities between articles to determine when new themes appear, breaking stories etc. and then clusters these articles together.&amp;nbsp; It knows nothing about, for instance, ice skating -- but if a significant event were to occur in the ice skating world, it would most likely be able to tell that "something" happened and that these articles belong together. &amp;nbsp; Even though the system had no way of knowing or anticipating anything about ice skating. These clusters come and go.&amp;nbsp; Some are short-lived, some are more persistent -- perhaps even permanent.&amp;nbsp; I see this as the same phenomenon.&amp;nbsp; Only:&amp;nbsp; I doubt that most segmentation in market research is done as dilligently)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
The second reason is that segmentation changes. &amp;nbsp;While a given partitioning criterion may remain somewhat stable over shorter periods of time, &amp;nbsp;there may arise new partition criteria that are suddenly more important. &amp;nbsp;For instance, Internet access used to be rare and relevant to a small number of people. &amp;nbsp;In the west today, not having Internet access is more rare than having it used to be. &amp;nbsp;This happened relatively slowly over a decade or so, yet the advertising business and the content industry failed to catch on early enough and as a result, were late in upping their game. &amp;nbsp;There was no segment for "Internet users". &amp;nbsp;Then there was one but it was small. Then it got big. &amp;nbsp;Then it disappeared because everyone was an Internet user and those who were not...well, marketers usually don't care about cave-dwelling hippies off the grid, now do they.&lt;br /&gt;
&lt;br /&gt;
To sum it up: if segmentation is to be useful it must be based on scientifically sound analysis of reality and one has to understand that it is a dynamic phenomenon and that the rate of change is usually accelerating. &amp;nbsp; Also it is important to understand that both quantitative and qualitative changes in partitioning occur. (Segmentation is, when we get down to it, a mathematical concept that has been sufficiently dumbed down to be taught in business schools. &amp;nbsp;But don't tell anyone I said that).&lt;br /&gt;
&lt;br /&gt;
Which brings me to why I willfully mislead people by saying "there are no segments": &amp;nbsp;if saying so leads to people focusing on the product they want to build rather than flimsy data and naíve analysis of same, &amp;nbsp;that outcome preferable.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Besides: build a sufficiently brilliant product and it will cause observable change in segmentation.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;Product first.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The last statement in the previous section also sums up why I don't think paying too much attention to segments is important. &amp;nbsp;It limits you in how you think about products and it does so in big and important ways. &amp;nbsp;Segmentation can be a tool for tweaking existing products, to eke out small incremental gains, &amp;nbsp;but it isn't a tool that is usable to innovate.&amp;nbsp; It isn't like they ran the numbers and figured out in the 1920s that "our market research says there should be a market for watches worn on our wrists".&amp;nbsp; Also there's this old chestnut:&lt;br /&gt;
&lt;blockquote&gt;&lt;i&gt;"If I’d asked people what they wanted, they would have asked for a better horse"&lt;br /&gt;
(attributed to Henry Ford)&lt;/i&gt;&lt;/blockquote&gt;If you &lt;u&gt;pre-constrain&lt;/u&gt; a product to fit within a given mold you may miss big opportunities. &amp;nbsp;You may constrain your creative forces to focus their energy on filling a spec rather than going back and asking fundamental questions. (This is probably why I have yet to find a garlic press that actually works: &amp;nbsp;they are all just bad copies of each other and the fundamental problem has yet to be solved).&lt;br /&gt;
&lt;br /&gt;
The reason Apple revolutionized mobile phones is because they asked fundamental questions. &amp;nbsp;Not because they accepted the mold into which the incumbents hammered their products.&lt;br /&gt;
&lt;br /&gt;
In retrospect most people will giggle when you show them the almost perverse degree of segmentation some mobile handset manufacturers wasted their energy on. &amp;nbsp;But just 5 years ago, the same people would probably think quietly to themselves "wow, they've really covered all the bases here" and be impressed at the&amp;nbsp;diligence&amp;nbsp;with which manufacturers managed to fill every niche and tweak every last bit out of their product.&lt;br /&gt;
&lt;br /&gt;
There are more people thinking about products in more radical ways and with the means to actually act on their ideas at relatively low cost than before.&amp;nbsp; It would be naive to think that this has no impact on how we model and predict. &amp;nbsp;The consumer is exposed to more new ideas every year than ever before.&lt;br /&gt;
&lt;br /&gt;
So when I say I don't believe in segmentation, it is because it evokes&amp;nbsp;thoughts&amp;nbsp;of slow, ill informed models that become irrelevant so quickly that they have limited predictive power. &amp;nbsp;But more importantly, I think they are not a good tool for ensuring nimble strategy.&lt;br /&gt;
&lt;br /&gt;
The when quantitative factors go all hockey-stick it leads to qualitative changes.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;(I would have liked to say something about segment size vs segment importance as well, but this blog entry is already too long and rambling so I'll save it for some other time).&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-1449837322785142111?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VMWlUAHwR5stUXTUm-uXjo7Rfy4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VMWlUAHwR5stUXTUm-uXjo7Rfy4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VMWlUAHwR5stUXTUm-uXjo7Rfy4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VMWlUAHwR5stUXTUm-uXjo7Rfy4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/zdjbLphq7nY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/1449837322785142111/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/05/why-talk-of-segmentation-frightens-me.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/1449837322785142111?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/1449837322785142111?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/zdjbLphq7nY/why-talk-of-segmentation-frightens-me.html" title="Why talk of &quot;segmentation&quot; frightens me." /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2011/05/why-talk-of-segmentation-frightens-me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQDQXczfyp7ImA9WhZXGEQ.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-816906109846884901</id><published>2011-05-08T13:45:00.002+02:00</published><updated>2011-05-09T01:12:50.987+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-09T01:12:50.987+02:00</app:edited><title>Speak, friend, and enter</title><content type="html">Ubiquitous and universal single-sign on is never going to happen. &amp;nbsp;Everyone wants to own the user, or at the very least not relinquish control of the user to possible competitors if they can help it. &amp;nbsp;This just seems to be a fact of life; &amp;nbsp;whether informed by reason or fear. &amp;nbsp;&amp;nbsp;A bit of both I suppose.&lt;br /&gt;
&lt;br /&gt;
This of course means that we need to keep track of gazillions of passwords. &amp;nbsp;Which is a problem. &amp;nbsp;A balancing act between convenience and security. &amp;nbsp;Every so often you are faced with another registration screen that requires you to type in a password. &amp;nbsp;And what on earth should you type in?&lt;br /&gt;
&lt;br /&gt;
You may have a system for choosing passwords -- in itself a security risk, but still a very common way to cope with the massive number of accounts you have without having to write anything down. &amp;nbsp;The risk being that someone will figure out your scheme. &amp;nbsp;The gamble is that a) the scheme won't be self-evident by cursory study of one or a few samples, b) you are not that interesting so why would anyone invest time in cracking your password scheme.&lt;br /&gt;
&lt;br /&gt;
So, you are looking at a form and you need to choose a password. &amp;nbsp;You type in something and the validation scheme of the site says you can't use that as a password. &amp;nbsp;This is annoying. &amp;nbsp;Because it means you have to come up with something that might be harder to remember. &amp;nbsp;Perhaps you'll even have to write it down to ensure you remember it.&lt;br /&gt;
&lt;br /&gt;
I particularly dislike password validation schemes that require you to enter mixed case characters and digits with a minimum length of N characters. &amp;nbsp;I have a theory that this does not enlarge the search space for possible passwords: &amp;nbsp;it is going to severely limit the space. &amp;nbsp;Why? &amp;nbsp;Because we're &lt;b&gt;human&lt;/b&gt; and it is very likely that we are going to pick a memorable password string that has these properties.&lt;br /&gt;
&lt;br /&gt;
Ask yourself: &amp;nbsp;what information has mixed case and a number and will be easy to remember? &amp;nbsp;What are the first 5 password schemes you can think of that uses information you would remember that has these properties? &amp;nbsp;Next, how much of this information exists in some form in the public space?&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;I believe the correct response to this question contains at least one expletive.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Unlike in the movies, where the hacker manually types in passwords until he or she succeeds, in the real world you have web crawlers, you have frequency dictionaries, you have oodles of neat software to look for patterns and you have ways of automatically assembling a dossier on your target. &amp;nbsp;A dossier that can be used to generate password candidates.&amp;nbsp; Password candidates that can be used to mount a brute force attack.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;(Okay, so sometimes it happens like in the movies.&amp;nbsp; Sarah Palin's mail account was broken into because her security question asked for information that was readily available on her wiki page.&amp;nbsp; This is why security questions to enable password reset is a Really Bad Idea).&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
We have to assume that the people who write validation code for websites are not going to be experts in information theory,&amp;nbsp;psychology&amp;nbsp;or cryptography. &amp;nbsp;This is why I wish people who actually know something about this subject would put together a sort of manual of sound practices in designing password validation and helping people choose sensible passwords. &lt;br /&gt;
&lt;br /&gt;
I know nobody wants to stick their neck out for fear of criticism. &amp;nbsp;Especially not people with computer security backgrounds since they have the most to lose if they were to write something that just makes things worse (which is a very real possibility). &amp;nbsp;But I would wish that there at least existed some design guidelines or a brief discussion that programmers could have a look at before adding counterproductive password validation schemes to their websites. &amp;nbsp; A go-to resource that "everyone" knows about.&lt;br /&gt;
&lt;br /&gt;
Before we part I thought I'd point out that possibly the biggest security risk is right in front of you. &amp;nbsp;You're looking at it. &amp;nbsp;Your browser. &amp;nbsp;It most likely has a cache of a considerable number of passwords that you use to access your most important web sites. &lt;br /&gt;
&lt;br /&gt;
How well guarded do you think that password database is?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-816906109846884901?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/t9p1L7R8fimRBaCmFs8nJtWWEvs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t9p1L7R8fimRBaCmFs8nJtWWEvs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/t9p1L7R8fimRBaCmFs8nJtWWEvs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/t9p1L7R8fimRBaCmFs8nJtWWEvs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/q-dSILRSTPU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/816906109846884901/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/05/speak-friend-and-enter.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/816906109846884901?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/816906109846884901?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/q-dSILRSTPU/speak-friend-and-enter.html" title="Speak, friend, and enter" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.borud.no/2011/05/speak-friend-and-enter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cMRH44eyp7ImA9WhZXF0k.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-7783416937804356464</id><published>2011-05-07T08:15:00.002+02:00</published><updated>2011-05-07T08:18:05.033+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-07T08:18:05.033+02:00</app:edited><title>Failed library design</title><content type="html">In the past week I've spent a considerable amount of time being angry and frustrated with what I view as inept API and library design.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The point of having libraries is to make a given problem domain more accessible, by creating meaningful abstractions that insulate the programmer from some of the underlying complexity, to help the programmer produce correct code and to reduce the workload on the programmer. &amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that the latter is more about time and effort than the number of lines of code necessary. &amp;nbsp;It isn't about the amount of typing that has to be done. &amp;nbsp;This also extends to the documentation and whether it is necessary to spend days reading up on something just to use parts of a library. &amp;nbsp;If you have to spend a considerable amount of time to understand the design and implementation of a library just to use it in a simple context, the library designer has failed.&lt;br /&gt;
&lt;br /&gt;
Failed library design is counterproductive and uncool.&lt;br /&gt;
&lt;br /&gt;
In the past couple of weeks I have tried to make use of various SAML-related libraries and I have to say that I am thoroughly unimpressed. &amp;nbsp;In fact, I am angry. &amp;nbsp;I haven't seen such massive amounts of inept library design and sloppy programming since the last time I had to deal with ... well, certain XML technologies.&lt;br /&gt;
&lt;br /&gt;
It is for good reason I become wary when people tell me they have written infrastructure code that deals with XML because it would seem that this particular niche in programming attracts people who simply are no good at what they do. &amp;nbsp;Before hiring people with extensive XML-experience on their CV I need to see two things: &amp;nbsp;I need to see code they have written which they think represents their best effort, and I need to talk to them to understand if they are prone to pointlessly complex library design. &lt;br /&gt;
&lt;br /&gt;
If what I see is along the lines of what you can often find in certain XML libraries, then they can't expect to be hired. &amp;nbsp;I'm sorry, but I firmly believe that the job of a programmer is to shun complexity and create simplicity wherever possible and I have no desire to work with people who are either too lazy or too dumb to at least aspire to usefulness.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;An example.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
So let's have a look at just a single line of code (admittedly with a line break inserted by me to make it fit into the blog) from the sort of library I despise. &amp;nbsp;This is the recommended, idiomatic way you are supposed to create an Assertion. &amp;nbsp;Or rather, create a builder that can eventually be used to create an assertion:&lt;br /&gt;
&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;SAMLObjectBuilder&amp;lt;Assertion&amp;gt;&amp;nbsp;builder&lt;br /&gt;
=&amp;nbsp;(SAMLObjectBuilder&lt;assertion&gt;)&amp;nbsp;builderFactory.getBuilder(Assertion.DEFAULT_ELEMENT_NAME);&lt;/span&gt;&lt;/blockquote&gt;The above code tells you a lot about what's in store for you if you should be so foolish to waste time trying to use the &lt;a href="https://wiki.shibboleth.net/confluence/display/OpenSAML/Home"&gt;OpenSAML&lt;/a&gt;&amp;nbsp;library. &lt;br /&gt;
&lt;br /&gt;
So, the programmer wishes to create an Assertion. &lt;br /&gt;
&lt;br /&gt;
In order to do this he first has to get hold of a builderFactory (not shown in the above code). &amp;nbsp;This in itself is sloppy. &amp;nbsp;Why do we need a builder factory? &amp;nbsp;Under what circumstances would an ordinary user need to even be aware of there existing multiple sets of builders for any given type? &amp;nbsp;This is plumbing sticking out of the walls for no good reason.&lt;br /&gt;
&lt;br /&gt;
Next the programmer has to get a builder for the assertion. &amp;nbsp;The first thing I find interesting is that the designer fails to abstract away the underlying complexity. &amp;nbsp;The programmer has to know the element name of the Assertion. &amp;nbsp;Why? &amp;nbsp;Isn't the point of having a library to help the user deal with the problem domain in a more abstract manner? &amp;nbsp; The fact that the Assertion class defines a &lt;i&gt;handy constant&lt;/i&gt; for this does not excuse this. &amp;nbsp;This is a level of detail that the user should not have to worry about. &amp;nbsp;Besides, you will note that the constant holding the DEFAULT_ELEMENT_NAME has "default" in its name so it isn't like the designer didn't have an intuitive sense that there was an expected default. &amp;nbsp;A good designer would have thought about this and concluded that if the default element name is what will be used in 99% of the circumstances, then the programmer should not have to type this in. &amp;nbsp;Ever.&lt;br /&gt;
&lt;br /&gt;
The second interesting thing is this whole SAMLObjectBuilder affair. &amp;nbsp; To get one you have to hand-crank the creation process with casting and the assigning it to a genericized SAMLObjectBuilder type. &amp;nbsp;Why? &amp;nbsp; Would it not have been better to just have an Assertion.Builder type that you simply instantiate and then use? &amp;nbsp;Why would you first want to have a factory, and then design it so badly you have to cast the results it produces? &amp;nbsp;In fact there is a AssertionBuilder that extends an AbstractSAMLObjectBuilder that extends an AbstractXMLObjectBuilder which is defined god knows where, &amp;nbsp;but instantiating it directly isn't the intended way to do it, and if you start to mess with those types then it is going to take you a while, and a few screenfuls of windows with various Java source files, to make any sense of the whole giant mess. There's a lot of structure for structure's sake.&lt;br /&gt;
&lt;br /&gt;
Also, why would you call something a builder when it is in fact a factory? &amp;nbsp;While some literature may be overly vague about what a builder is, good practice is to use builders as an instantiation helper that ensures the produced object is in the desired state. &amp;nbsp; Often producing an immutable object -- sometimes to insulate the programmer from ardous initialization. &amp;nbsp;Assertion has both getters and setters and the builder, near as I can tell, is just used for object creation with the inane buildObject() method. &amp;nbsp;In other words, the whole builder thing is just another bit of plumbing sticking out of the walls.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;If you want a good example of builders you can have a look at the API of code generated by Google Protobuffer compiler. &amp;nbsp;Here's a typical example of what object construction looks when you use protobuffers:&lt;/i&gt;&lt;br /&gt;
&lt;blockquote&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;Timber.LogEvent logEvent = Timber.LogEvent.newBuilder()&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;             .setTimestamp(rec.getMillis())&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;             .setLevel(rec.getLevel().intValue())&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;             .setHost(hostName)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;             .setServiceName(serviceName)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&lt;br /&gt;
.setTid(rec.getThreadID())&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;             .setType("T")&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;             .addPayload(&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;Timber.Payload.newBuilder()&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;.setContentType("text/plain")&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;.setPayload(ByteString.copyFromUtf8(rec.getMessage())))&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;             .build();&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;i&gt;In the above code snippet we create a log event builder, set some values, add a nested payload and then construct the needed objects. Understanding how to use this is dead simple. &amp;nbsp;All generated types have a newBuilder() that produces a correct builder without any silly fluff. &amp;nbsp;All builders have setters for their values and adders for nested collections. &amp;nbsp;Setters are chainable. &amp;nbsp;The build() method validates and produces a finished instance. &amp;nbsp;Done. &amp;nbsp;All this takes you about 5 minutes to learn and is so simple you won't have to read the source or the javadoc again for months or years.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
It should be noted that we have still only investigated a SINGLE line of idiomatic OpenSAML use, and already we have trodden in a miserable swamp of shoddy design and had to tour the source for answers (which is like peeling an onion: &amp;nbsp;layer upon layer with little or no substance in any one layer and a lot of crying) -- even before actually looking at how you would accomplish anything of use with this library. &lt;br /&gt;
&lt;br /&gt;
Believe me, it gets a lot worse when you do.&lt;br /&gt;
&lt;br /&gt;
You may ask why I am singling out OpenSAML for criticism. &amp;nbsp;Well, why not? &amp;nbsp;I had to pick an example and it might as well be OpenSAML because I have been trying to use it lately -- and have come to the conclusion that it is actually easier, faster and safer to just read the SAML specs and write things from scratch. &amp;nbsp;It is a pain in the ass, but considerably less risky than trusting heaps of code too messy to read. &amp;nbsp;Granted, the SAML specs are a dull read and I still have to deal with heaps of terribly designed XML infrastructure, but it beats wasting even more time on an unhelpful library that fails to hide the details anyway.&lt;br /&gt;
&lt;br /&gt;
Besides, it will mean that I do not force those who come after me to take on the design debt of OpenSAML as well.&lt;br /&gt;
&lt;br /&gt;
I am also using OpenSAML to make a point. &amp;nbsp;It must be okay to point out bad design. &amp;nbsp;It may not be nice, but then again, wasting my time is also not nice. If we avoid naming and shaming bad design, people will not learn.&lt;br /&gt;
&lt;br /&gt;
Now, if you have worked on OpenSAML I would imagine that you are feeling defensive right now. &amp;nbsp;Perhaps a bit angry. &amp;nbsp;You may think that I am unfair because you just did what everyone else did when designing and writing the code. (The idioms found in OpenSAML sure are plentiful in other XML code, though that doesn't make them "good"). &lt;br /&gt;
&lt;br /&gt;
If you feel like responding (please don't. &amp;nbsp;I am not interested in hearing a defense for OpenSAML. &amp;nbsp;There really is no point in even trying to defend it): before you respond, I think you should sit down and ask yourself if you are really sure that OpenSAML is helpful to anyone but those who are prepared to a) spend a lot of time understanding the library, or b) are utterly comfortable with cutting and pasting code they barely understand to put something together that apparently works.&lt;br /&gt;
&lt;br /&gt;
Then you should ask yourself if what OpenSAML does is really so complicated that the complex, unfriendly, messy API is warranted. (I can give you a hint: &amp;nbsp;it isn't).&lt;br /&gt;
&lt;br /&gt;
If you think that people should have to spend a lot of time understanding OpenSAML you are wrong and you should probably never write library code ever again.&lt;br /&gt;
&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/16828289-7783416937804356464?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_T1khgOuN8eW5tcEw8IsVMSiZ9g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_T1khgOuN8eW5tcEw8IsVMSiZ9g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_T1khgOuN8eW5tcEw8IsVMSiZ9g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_T1khgOuN8eW5tcEw8IsVMSiZ9g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/ZqKIRcsnR9E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/7783416937804356464/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/05/failed-library-design.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/7783416937804356464?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/7783416937804356464?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/ZqKIRcsnR9E/failed-library-design.html" title="Failed library design" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2011/05/failed-library-design.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YNQHc_fip7ImA9WhZQGE0.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-81852593758122228</id><published>2011-04-24T16:30:00.005+02:00</published><updated>2011-04-26T10:06:31.946+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T10:06:31.946+02:00</app:edited><title>Hard problems and unreasonable expectations</title><content type="html">After spending a decade in the search engine industry you start to take for granted that people of normal intelligence and above are able to reach their own conclusions on what it means when certain numbers become large enough.&amp;nbsp; This is an occupational hazard;&amp;nbsp; becoming blind to the fact that most people have no way of thinking about large numbers or how hard a particular problem is.&lt;br /&gt;
&lt;br /&gt;
A very common theme in litigation against search engines, or other parties that deal with large corpora of content, is that some party demands or expects that the search engine or service provider curates the content.&amp;nbsp; For instance, that potentially offensive material is filtered out.&lt;br /&gt;
&lt;br /&gt;
There are two main ways to approach this:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Manual curation&lt;/li&gt;
&lt;li&gt;Algorithmic curation&lt;/li&gt;
&lt;/ul&gt;Of course, there are many hybrid solutions between these two extremes, but let's explore the extremes to gain some understanding of the bounds of the solution space. &lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Manual curation.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Manual curation of a large corpus is not impossible per se, but it is unfeasible for very large amounts of data. This seems to be extremely hard for many people to grasp so I am going to provide a handy example in the shape of a very rough estimate.&lt;br /&gt;
&lt;br /&gt;
Imagine that the web indexed by a search engine is 1 billion documents.&amp;nbsp; Now, imagine that it takes, on average, about 10 seconds for a human being to determine if a web page contains offensive content or not (some pages merely need a glance while others require you to actually read the page).&lt;br /&gt;
That means that to evaluate the whole corpus indexed you would need 10 billion seconds of work being performed.&amp;nbsp; That's roughly 2.78 million hours.&amp;nbsp; Assuming a 8 hour work day, that is 347,222 work-days.&amp;nbsp; Assuming you work 5 days per week that's 17,361 months.&amp;nbsp; Again assuming you work 11 months per year, that gives us 1578 years of work.&lt;br /&gt;
&lt;br /&gt;
So if you have 1578 ideal workers who can keep it up 8 hours per day without breaks, are never sick and only take 4 weeks of vacation every year, it will take you one year to chew through 1 billion web pages.&lt;br /&gt;
&lt;br /&gt;
So what would this cost?&amp;nbsp; Well, get out your calculator and run the numbers.&amp;nbsp; Fixed wage?&amp;nbsp; Per page?&amp;nbsp; Whichever way you slice it, it is going to cost a lot.&amp;nbsp; Now, is it &lt;i&gt;reasonable&lt;/i&gt; to impose this cost on, say, search engines?&amp;nbsp; What does this do to the competitive landscape? (As if building a web scale search engine wasn't hard enough and expensive enough as it is). &lt;br /&gt;
&lt;br /&gt;
And these are &lt;b&gt;extremely conservative&lt;/b&gt; numbers.&amp;nbsp; You see, a large scale web index was 1 billion documents 10 years ago.&amp;nbsp; Today the size of a web index is roughly two orders of a magnitude higher and the web never stands still.&amp;nbsp;&amp;nbsp; Not only are new pages added, but older pages are updated. The problem size grows exponentially.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;If you do not understand, instinctively, that problems that grow exponentially cannot be solved efficiently using manual labor you are intellectually unfit to reason about these sort of problems.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Any 10 year old knows all the math needed to reason about these things.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Algorithmic curation.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
An algorithm is a precise recipe for how you solve a problem.&amp;nbsp; In order to write computer programs that solve a given problem you need a precise recipe -- that can be realized as a program.&lt;br /&gt;
&lt;br /&gt;
Quick, can you come up with a precise recipe for figuring out whether a page contains offensive material or not?&lt;br /&gt;
&lt;br /&gt;
For the vast majority of you the answer is "no" even if you dedicated the rest of your life to this problem.&amp;nbsp; In fact, for the vast majority of the worlds smartest people working in this field the answer will still be "no" if you expect the algorithm to be right every single time.&amp;nbsp; You can get some high percentage of the cases right, but it is unlikely that we will ever discover a method that will always produce the correct answer every time. &lt;i&gt;(If you have a liberal arts background or some other non-scientific degree you may think of "unlikely" as "won't happen ever").&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Not least because there is &lt;b&gt;no correct answer&lt;/b&gt; to this problem.&amp;nbsp;&amp;nbsp; What is offensive is in the eye of the beholder as well as subject to social and cultural norms.&amp;nbsp; What you consider offensive may even change over time.&amp;nbsp; It can also change depending on context.&amp;nbsp; We are faced with many problems that have this nature when it comes to large scale information processing -- problems that have no definitive answers.&lt;br /&gt;
&lt;br /&gt;
So to sum it up:&amp;nbsp; it is possible to achieve high success rates for these sorts of problems using an algorithmic approach -- but perfection will not be achievable.&amp;nbsp; So we will just have to live with imperfect results.&lt;br /&gt;
&lt;br /&gt;
That, or just decide that not &lt;a href="http://www.youtube.com/watch?v=cycXuYzmzNg"&gt;being offended&lt;/a&gt; is so important to us that we do not want search engines at all.&amp;nbsp; Or the web.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: large;"&gt;Postscript.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
What is striking when you reason about these things is that you do not need an education in information retrieval, computer science or mathematics to understand that these problems are very hard and that some types of approaches will be completely unfeasible.&amp;nbsp; Yet on a daily basis, ignorant law-makers, judges, lawyers and opinion leaders make statements that seem uninformed by even the most basic understanding of the problem domains they talk about.&lt;br /&gt;
&lt;br /&gt;
And there are a lot of problems that exhibit the same properties as curating a web index in that they have vague problem definitions, involve ultra-large scale, and expectations that can never be met fully.&amp;nbsp; It is going to be a real challenge to educate law-makers, judges, bureaucrats and the public on these issues. &lt;br /&gt;
&lt;br /&gt;
But it is important that it is done.&amp;nbsp; It is important that these things are explained over and over, and in simple terms so that lack of knowledge or a lack in intellectual fortitude can not be used as an excuse for making dimwitted decisions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-81852593758122228?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Q0C9XtVE7F8AtFfuNfE8rhNxHrI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Q0C9XtVE7F8AtFfuNfE8rhNxHrI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Q0C9XtVE7F8AtFfuNfE8rhNxHrI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Q0C9XtVE7F8AtFfuNfE8rhNxHrI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/iyd2NBfD8vQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/81852593758122228/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/04/hard-problems-and-unreasonable.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/81852593758122228?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/81852593758122228?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/iyd2NBfD8vQ/hard-problems-and-unreasonable.html" title="Hard problems and unreasonable expectations" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://blog.borud.no/2011/04/hard-problems-and-unreasonable.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8DQnszeSp7ImA9WhZRFU4.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-3519568832336821174</id><published>2011-04-11T18:21:00.000+02:00</published><updated>2011-04-11T18:21:13.581+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-11T18:21:13.581+02:00</app:edited><title>More pictures</title><content type="html">Lars Magne thinks my blog has too few pictures. &amp;nbsp;Here's a random picture:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-rzf1YwP_K44/TaMqSmbeAZI/AAAAAAAAA9E/FOaJXehTBMU/s1600/potato.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://2.bp.blogspot.com/-rzf1YwP_K44/TaMqSmbeAZI/AAAAAAAAA9E/FOaJXehTBMU/s400/potato.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-3519568832336821174?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aoPjRYqya3dc5of9f9jUo5COwk0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aoPjRYqya3dc5of9f9jUo5COwk0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aoPjRYqya3dc5of9f9jUo5COwk0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aoPjRYqya3dc5of9f9jUo5COwk0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/FOtd2JnXDag" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/3519568832336821174/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/04/more-pictures.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/3519568832336821174?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/3519568832336821174?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/FOtd2JnXDag/more-pictures.html" title="More pictures" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-rzf1YwP_K44/TaMqSmbeAZI/AAAAAAAAA9E/FOaJXehTBMU/s72-c/potato.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.borud.no/2011/04/more-pictures.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYGR3o6cSp7ImA9WhZRFU4.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-7707124729311860292</id><published>2011-04-11T16:45:00.000+02:00</published><updated>2011-04-11T16:45:26.419+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-11T16:45:26.419+02:00</app:edited><title>Free advice for Skype</title><content type="html">&lt;b&gt;Lets make this short and sweet: the user interface of Skype sucks. &amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
It is too dominating on the screen and it does not take into account how people actually use similar products. &amp;nbsp;If you look at the closest relatives of Skype, the aggregating chat clients, you will see what I mean. &amp;nbsp;Small, focused on being unobtrusive and usually centered around how people actually use communication software. &amp;nbsp;By comparison, Skype wastes screen real-estate and doesn't really show you that much of what you are interested in.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;In fact, I was going to include an illustrative screen-capture, but I decided against it. &amp;nbsp;When thinking about why I realized it was because I didn't want a honking big graphic in the middle of my blog posting. &amp;nbsp;That is how badly designed the Skype UI is.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
No, I have no use for a cover-flow-like UI to leaf through my contacts. &amp;nbsp;Copying UI design mistakes by Apple and then, to make matters worse, using them in the wrong context is just stupid. &amp;nbsp;Nor do I have any use for seeing a list of whom I talked to two days ago. &amp;nbsp;No really, &amp;nbsp;I don't.&lt;br /&gt;
&lt;br /&gt;
What I &lt;i&gt;have&lt;/i&gt; some use for is to see which one of my contacts are online. &amp;nbsp;Without having to click around and then reshuffle windows. &amp;nbsp;This should be the default view. &amp;nbsp;Not some oddball, tucked-on&amp;nbsp;auxiliary UI wart like now.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;One more thing...&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
What &lt;i&gt;really&lt;/i&gt; puzzles me is why nobody at Skype cared enough about the product to ensure that people would have a reason to run Skype all the time when logged in. &amp;nbsp;In case you hadn't noticed: most people don't. &amp;nbsp;They fire up Skype when they "need it". &amp;nbsp;Often initiating the conversation out of band via chat, email or (&lt;i&gt;gasp&lt;/i&gt;) phone.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The easiest way to accomplish this would be to make sure Skype is also an IM aggregation client&lt;/b&gt;. &amp;nbsp;A good IM client. &amp;nbsp;One that is on par with, say, &lt;a href="http://adium.im/"&gt;Adium&lt;/a&gt;. &amp;nbsp;With support for all the major chat networks. &amp;nbsp;&lt;i&gt;(If you work for Skype and are not familiar with Adium I suggest you install it now and start using it. &amp;nbsp;It is important you understand why Adium is so popular)&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
You see, a lot of people would like to have Skype support in their IM client. &amp;nbsp;This is no accident. &amp;nbsp;Because they run their IM clients all the time. &amp;nbsp;They do not run Skype all the time. &amp;nbsp;Because it is an annoying piece of single-use software.&lt;br /&gt;
&lt;br /&gt;
By ensuring that Skype is also a great IM aggregation client you would give people real reason to run Skype all the time. &amp;nbsp;Which would boost the usefulness of the application more than any amount of advertising could ever do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-7707124729311860292?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6UuNIHKk8EQKsaKDUoycbj-gQOk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6UuNIHKk8EQKsaKDUoycbj-gQOk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6UuNIHKk8EQKsaKDUoycbj-gQOk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6UuNIHKk8EQKsaKDUoycbj-gQOk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/lf8ojJTFMQU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/7707124729311860292/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/04/free-advice-for-skype.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/7707124729311860292?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/7707124729311860292?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/lf8ojJTFMQU/free-advice-for-skype.html" title="Free advice for Skype" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.borud.no/2011/04/free-advice-for-skype.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MNQ3ozfyp7ImA9WhZTFEg.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-2960210585329073746</id><published>2011-03-18T14:38:00.000+01:00</published><updated>2011-03-18T14:38:12.487+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-18T14:38:12.487+01:00</app:edited><title>Attention to detail.</title><content type="html">We recently moved into a new house, which means that all our kitchen appliances are brand new. &amp;nbsp; We opted for an induction based cooker. &amp;nbsp;Cooking with induction is rather neat since it provides very quick and precise temperature control. &amp;nbsp;There is a lot less lag between varying the power and getting observable result.&lt;br /&gt;
&lt;br /&gt;
However, I am not very pleased with the industrial designer's work when it comes to the user interface. &amp;nbsp;The UI for the cooker is a touch interface. &amp;nbsp; They layout is fairly simple, a master on/off and +/- buttons for each surface. &amp;nbsp;Increasing or decreasing power is done by repeatedly pushing the plus or minus buttons respectively. &amp;nbsp;You can also hold down these buttons to turn the power up or down several steps, but this is a rather slow way of doing it.&lt;br /&gt;
&lt;br /&gt;
I don't like that interface. &amp;nbsp;It is slow and fiddly and lacks tactile feedback. &amp;nbsp;But what is far worse is that the designers were shortsighted and incredibly sloppy in designing this. &amp;nbsp;You see, the interface gets utterly confused if water is splashed onto the surface. &amp;nbsp;If it gets bad enough, you simply have to shut down the cooker and restart it. &amp;nbsp;This happens quite often so it is a fairly tedious design flaw.&lt;br /&gt;
&lt;br /&gt;
I am not sure how this got through testing. &amp;nbsp;Any sensible engineer or designer would conclude that this is a serious design flaw, go back to the drawing board and figure out how to attack the problem.&lt;br /&gt;
&lt;br /&gt;
And in all seriousness, it doesn't really take a lot of effort to come up with alternative designs that would work significantly better. &amp;nbsp;Both technically and with regard to user interface. &amp;nbsp;If your industrial designers do not obsess over such details they have no business designing consumer goods.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;(A cursory glance at the products of various manufacturers of magnetic rotary encoders suggests that it would be neither complicated nor expensive to design and implement a user interface based on removable, surface-mounted rotary encoders. &amp;nbsp;Which makes you wonder whether these manufacturers take any pride whatsoever in their products).&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-2960210585329073746?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JHBU3ZCfkSgskHF8DFbrXcFIkuQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JHBU3ZCfkSgskHF8DFbrXcFIkuQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JHBU3ZCfkSgskHF8DFbrXcFIkuQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JHBU3ZCfkSgskHF8DFbrXcFIkuQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/8gc-hCqWds4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/2960210585329073746/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/03/attention-to-detail.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/2960210585329073746?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/2960210585329073746?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/8gc-hCqWds4/attention-to-detail.html" title="Attention to detail." /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2011/03/attention-to-detail.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcHQngzeSp7ImA9Wx9aFE4.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-764635900857840394</id><published>2011-03-06T18:18:00.002+01:00</published><updated>2011-03-06T18:20:33.681+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-06T18:20:33.681+01:00</app:edited><title>Quo Vadis?</title><content type="html">Someone recently posed me the following question in an email:&lt;br /&gt;
&lt;blockquote&gt;&lt;i&gt;Consider a leading communcation provider in 2014. (Including what is now known as "telcos" if such a thing still exists.) What are the communication functions such a provider will provide? How would you as a user expect the provider to help you with your&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;daily communication needs?&lt;/i&gt;&lt;/blockquote&gt;Rather than attempt to answer it directly, which may or may not be possible, I thought that it might be helpful to understand where we are and what the context of this question really is. &amp;nbsp;The following blog post is a somewhat edited version of the response I gave.&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;The fundamental problems of communication technologies today is fragmentation and low quality.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Fragmentation&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Fragmentation arises from the fact that we have a gazillion services for communicating and there is a rather large space of modalities for communicating (public/private, synchronous/asynchronous, voice/video/text, etc.) &amp;nbsp;Many of these communication facilities are tied to a particular service provider (Skype, Facebook, Google, Twitter) while some are interoperable (telephony, email, Jabber etc).&lt;br /&gt;
&lt;br /&gt;
If you look closely at your social graph you will notice that in order to reach everyone you know effectively, you will most likely have to use half a dozen different communication systems. &amp;nbsp;Some people respond quickly to email, some prefer Twitter, others live on Facebook, some still have land-lines to their house and know nothing of this newfangled intertube stuff.&lt;br /&gt;
&lt;br /&gt;
This is a challenge. &amp;nbsp;Not only because it is inconvenient for the user, but because it is very hard to identify how one can build a one-size-fits-all communication product that reduces the amount of friction and chaos.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Low quality&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The other serious issue today is low quality. &amp;nbsp; When we moved from land-lines to first generation mobile networks, we accepted more sketchy availability and a noticable drop in audio quality. &amp;nbsp;GSM was a bit more consistent in areas with good coverage, but still not great. &amp;nbsp;Skype and other VoiP-offerings can sometimes offer superior audio quality, but at the price of even worse availability: you never know if it'll work. &amp;nbsp;Facebook and Twitter offer no meaningful SLA so your message may or may not be delivered.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Standards&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
A way to address fragmentation is standardization. &amp;nbsp;But standardization is slow, and sometimes contrary to commercial interests. &amp;nbsp;In particular in later years actors in the market are never content with a strategy that makes them a big part of an even bigger ecosystem: &amp;nbsp;they want to own the ecosystem. and since everything is in flux these days, there are a lot of companies jockeying for dominant positions. &lt;i&gt;(Perhaps the most promising may be Facebook since they have 600M users by now (or nearly 1/10 of the world's population). &amp;nbsp;With that kind of reach they have the potential to have an enormous impact in whatever they choose to do, &amp;nbsp;standards be damned: &amp;nbsp;when you are this large you can unilaterally set the standards and force everyone else to follow)&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
Also, there is standardization and then there is standardization. &lt;br /&gt;
&lt;br /&gt;
The telco way of standardizing is dead: &amp;nbsp;a very formally driven process that takes many years to complete, &amp;nbsp;accumulates vast complexity and then leads to different players adopting different interpretations of the "standard" may have worked when we only had to deal with a market partitioned neatly into countries. &amp;nbsp;But that world no longer exists. The market is global.&lt;br /&gt;
&lt;br /&gt;
There is also the "Internet way" of standardization: &amp;nbsp;RFC's ratified by the IETF. &amp;nbsp;In order to create an internet standard you need at least two implementations of which at least one must be openly available. &amp;nbsp;in other words: &amp;nbsp;it is an implementation-driven approach. &amp;nbsp;this cuts down on complexity considerably and tends to favor simpler, more compact and more implementation friendly standard. &amp;nbsp;(It is actually easier to show why this is so by looking at the antithesis of these standards. &amp;nbsp;Things like X.400, X.500 and SGML for which no fully compliant implementations exist because these standards are hopelessly complex and immensely huge).&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Global market&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Any communications player not thinking of everything they do in terms of a global strategy is wasting their money and time and will eventually disappear. This applies to all aspects of what telcos do today. &amp;nbsp;(I start every meeting I have with people by asking them if they have a global strategy for their project. &amp;nbsp;Almost everyone admits that they either have none, or they are "perhaps thinking about expanding to neighboring markets". &amp;nbsp;This is frightening and essentially means that money is being wasted on doing things over and over again with very little impact beyond a single market).&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Pace&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Technology and trends are moving faster every year. &amp;nbsp;The iPhone is about 4 years old now, and we are on the FOURTH generation of iPhone and the third or fourth generation of Android phones (how do count generations on Android?). &amp;nbsp;More has happened in the handset world in the past 4 years than in the entire history leading up to 2007.&lt;br /&gt;
&lt;br /&gt;
Traditional handset vendors are struggling to keep up. &amp;nbsp;Some do a little better than others, but the big winners are not the same companies that were dominant just 4 years ago. &amp;nbsp;In particular Nokia provides a frightening example of how quickly a success can turn into a sob-story.&lt;br /&gt;
&lt;br /&gt;
As for telcos: &amp;nbsp;they were caught out. &amp;nbsp;Telcos have had the privilege of operating in a maturing, then a mature, business. &amp;nbsp;This means that they have been able to optimize away many of their traditional functions. &amp;nbsp;Such as engineering, research and development. &amp;nbsp;This would have served them well if the world had had the decency to stay constant. &amp;nbsp;Unfortunately, this is not the case, and they desperately need engineering muscle.&lt;br /&gt;
&lt;br /&gt;
Telcos need a strong ability to do research and development and to have the ability to &lt;i&gt;make&lt;/i&gt; stuff. &amp;nbsp;This is the antithesis to the core values held in high regard in many telco operations.&lt;br /&gt;
&lt;br /&gt;
The reason for this is quite simple: &amp;nbsp;if you look at the sort of companies that pose the greatest threat to telcos, they are &lt;b&gt;all&lt;/b&gt; technology companies. Facebook is a technology company. &amp;nbsp;Google is a technology company. &amp;nbsp;Amazon is a technology company. &amp;nbsp;Companies that have recognized that it is neither fast nor cost-efficient to be entirely dependent on vendors. &amp;nbsp;Companies that have recognized that they have to &lt;b&gt;own&lt;/b&gt; the key enablers of their services. &amp;nbsp;Companies that have strong internal engineering cultures and where engineering talents go to create and build stuff.&lt;br /&gt;
&lt;br /&gt;
In the time it takes a typical telco to decide that they want to build a particular service, the more nimble and capable among their "new" competitors will already have done it and rolled it out. &amp;nbsp;Globally. And by the time telcos are able to squeeze out a mere baseline product, the competition is already on their third or fourth iteration and the goalposts will have moved further afield.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Postulates&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Reducing percieved (not necessarily actual) fragmentation is an obvious way to approach the communication challenges of users today. &amp;nbsp;However, this is very, very hard to do well. &amp;nbsp;It can't really be done effectively in back-end systems alone, but must primarily be addressed "at the edges". &amp;nbsp;In other words: applications and apps that aggregate -- possibly with some back-end support systems. &amp;nbsp;The problem is: the services you want to aggregate do not necessarily want you to aggregate them. &amp;nbsp;They want to own the user.&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Telcos have a diminishing role in providing infrastructure. &amp;nbsp;In particular service infrastructure. The service infrastructure that is offered by most large Internet players is not based on off-the-shelf systems. &amp;nbsp;Telcos have optimized away their technology capabilities. &amp;nbsp;This made sense in the 90s and early 00s -- but today it puts telcos at a&amp;nbsp;perilous&amp;nbsp;disadvantage. &amp;nbsp;While telcos still provide considerable amounts of low-level connectivity (ie. bit-pipes), this connectivity can easily be replaced by other players. &amp;nbsp;Things are tending towards higher speeds at lower cost so good luck making lots of money there in the future. &amp;nbsp;In my opinion telcos must:&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Cultivate a strong engineering capability&lt;/li&gt;
&lt;li&gt;Accept that it will take years to (re)build engineering capability&lt;/li&gt;
&lt;li&gt;Be willing to accept failures, learn, get up, and try again&lt;/li&gt;
&lt;li&gt;Take ownership of key enablers&lt;/li&gt;
&lt;li&gt;Understand Internet-scale engineering.&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The game is "global or nothing". &amp;nbsp;If you are in the communication business and your product, or its underlying infrastructure, is based on the notion of a local or national market, you are wasting your time and shareholder money. &amp;nbsp;This applies to &lt;b&gt;everything&lt;/b&gt;. &amp;nbsp;From the user-facing services themselves to everything that need to be in place under the hood to make it happen (user management, billing, payment etc) to how the organization operates. Everything.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;In essence, "everyone" knows that the world the traditional telcos address is slowly disappearing. &amp;nbsp;Everyone knows that at the end of an industry maturity cycle, engineering capability becomes vital. &amp;nbsp;The business-school literature exists and there is a plethora of examples of how once dominant players either failed spectacularly or faded away. &amp;nbsp;(&lt;i&gt;I'm not an MBA so it really shouldn't be my job to educate people on these things ;-)&lt;/i&gt;).&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
This piece doesn't offer that many answers, but it provides some pointers to how I&amp;nbsp;perceive&amp;nbsp;the current context.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-764635900857840394?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_WbhstdW1I6TCLfMgqMVzjpTLY4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_WbhstdW1I6TCLfMgqMVzjpTLY4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_WbhstdW1I6TCLfMgqMVzjpTLY4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_WbhstdW1I6TCLfMgqMVzjpTLY4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/HnLAaxzf7bI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/764635900857840394/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/03/quo-vadis.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/764635900857840394?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/764635900857840394?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/HnLAaxzf7bI/quo-vadis.html" title="Quo Vadis?" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.borud.no/2011/03/quo-vadis.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUDRXw5fip7ImA9Wx9bE08.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-7195870597862055965</id><published>2011-02-20T19:25:00.007+01:00</published><updated>2011-02-21T23:11:14.226+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-21T23:11:14.226+01:00</app:edited><title>The loss of a very special place?</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://farm3.static.flickr.com/2196/2497610440_ddf2709c44.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="260" src="http://farm3.static.flickr.com/2196/2497610440_ddf2709c44.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;I've been on quite a few trips to the Nürburgring and to me, the Ring is a very special place. &amp;nbsp;Not only is it perhaps the most exciting race track I have ever visited (or driven on), but it is a historical site. &amp;nbsp;All the greats have done battle on the Ring. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;You don't so much go on a trip there as go on a pilgrimage of sorts.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In addition to the track, there's the people. &amp;nbsp;The guys at &lt;a href="http://www.pinocchio-adenau.de/"&gt;Pinocchio&lt;/a&gt;, who always greet us when we visit and seem genuinely happy to see us again. &amp;nbsp;There's Christa's where we always eat schnitzel on the evening when we arrive. &lt;a href="http://www.am-tiergarten.de/en/restaurant_nuerburgring_pistenklause/"&gt;Die Pistenklause&lt;/a&gt; where we stop by to lie and brag about our driving accomplishments and drink beer.&amp;nbsp; &lt;a href="http://www.sonnenhof-adenau.de/"&gt;Sonnenhof&lt;/a&gt;, where we usually have our briefings or dinner the night before we venture out on the track.&amp;nbsp; There's &lt;a href="http://www.rsrnurburg.com/"&gt;Ron Simons' company RSR Nürburg&lt;/a&gt;, where we rent cars. And of course, there's &lt;a href="http://www.hausmarvin.de/home.php"&gt;Haus Marvin&lt;/a&gt; and &lt;a href="http://www.pension-diana.com/de/main.html"&gt;Pension Diana&lt;/a&gt; where we usually stay. &amp;nbsp;You know people by name, you stay at small places run by families, and you enjoy a personal level of service, and you come back year after year to the same places because it is good to see these people again.&lt;br /&gt;
&lt;br /&gt;
But of course, we would never be there if it wasn't for the Ring.&lt;br /&gt;
&lt;br /&gt;
It would appear that some people have recognized the pull of the Ring and that naive politicians have bought into the idea that the best way to benefit the tax payer is to commercialize the Ring in wichever way possible. &amp;nbsp;To hand it over to private interests to package it and sell it.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Well, I am to a large degree the demographic they want to attract, and I can only say that I do not like what I am seeing. &amp;nbsp;What I have read over the past week about what is going on at the Nürburgring has made me wonder if I will ever go back again. &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I am not interested in a sanitized, packaged, watered down experience. &amp;nbsp;I am interested in two things when I am at the Ring:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Driving&lt;/b&gt; as many laps as I feel like driving around the Nordschleife&lt;/li&gt;
&lt;li&gt;Enjoying myself in various cosy establishments &lt;b&gt;run by people from the area&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;I am not interested in staying at some large hotel. &amp;nbsp;I am not interested in visiting shops. &amp;nbsp;I am not interested in watching static exhibitions of dead objects when just outside the door there is one of the greatest racing tracks of all time. &amp;nbsp;I am not interested in paying lots of money to be ferried around the track one or two laps. &amp;nbsp;I am interested in what is genuine. &amp;nbsp;I'm interested in experiencing the track.&amp;nbsp; And there is only one way to experience it:&amp;nbsp; you have to drive on it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;If they want to turn the whole thing into a theme park: &amp;nbsp;I'm sorry, but I'll just as well stay at home and not visit the Ring. &amp;nbsp;Because watching what was a really nice place, with lots of nice people running small businesses being torn to pieces by greedy businesspeople who have absolutely no understanding of the cultural significance of the Ring, the people who live and work in the area and what it represents to people like me is just too painful. &amp;nbsp;I'd rather not witness that.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;As an aside, just look at F1. &amp;nbsp;I've visited F1 races. &amp;nbsp;Perhaps my most exciting live F1 experience was at the Hungaroring. &amp;nbsp; Not the greatest of race tracks and the facilities are...of a somewhat limited standard. &amp;nbsp;But you know what? &amp;nbsp;It was real! &amp;nbsp;The wooden bleachers without any sort of roof may not have been the most comfortable, but the closeness to the track and the spirit of the people around us elevated the sense of genuine enthusiasm and fun. &amp;nbsp;After the race I was wet, muddy and immensely pleased. &amp;nbsp;We stayed a few days extra to walk around Budapest and spent our evenings in various restaurants. &amp;nbsp;I often think about it and when I get the time: &amp;nbsp;I'll return and hope to have much of the same experience.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;In comparison, I have been to one of the more modern tracks. &amp;nbsp;Large, modern multi-billion dollar facilities designed to cater to ... I don't know who, but definitely not people like me.&amp;nbsp; It sure as hell wasn't racing enthusiasts they were catering to. &amp;nbsp;The whole experience was numb, dull, impersonal, and utterly uninteresting. &amp;nbsp;It felt fake. &amp;nbsp;I wasn't so much taking part in an event as just paying to be in the presence of lots of people who didn't even seem to be paying any attention to the race. &amp;nbsp;I will never go back. &amp;nbsp;I have zero cherished memories from that trip. &amp;nbsp;None.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;If the german politicians want to extract the maximum possible value from the Ring, they must recognize that they can only do so by not screwing with the formula: &amp;nbsp;&lt;b&gt;the accessibility of the Ring is the key. &amp;nbsp;Anything that limits access to the Ring makes it less interesting to prospective tourists. &lt;/b&gt;&amp;nbsp; And if people do not come, &lt;u&gt;nobody&lt;/u&gt; wins.&amp;nbsp; Customers don't win, the people of the surrounding villages don't win, the german taxpayer definitively doesn't win and the whole region is worse off.&lt;br /&gt;
&lt;br /&gt;
Because we'll take our money and go elsewhere. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;As I mentioned before, I don't know if I will return to the Ring if what I used to come for is no longer there. &amp;nbsp;I was going to visit the Ring this spring, but I will have to talk to some people to find out if we really want to. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://farm1.static.flickr.com/51/143397205_4cc17dcb2f.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="http://farm1.static.flickr.com/51/143397205_4cc17dcb2f.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;We've been talking about possibly taking a trip to Spa Francorchamps instead. &amp;nbsp;After 7 years of faithfully visiting the Ring and leaving behind a ton of money at various local establishments, we are considering our options. &amp;nbsp;Spa has a great race track, but I don't know the area well. &amp;nbsp;Perhaps, if we find a nice place to stay and a company to rent track-prepared cars from, we will go there instead.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;But if we go there it will not be to prance about the place like a bunch of tourists. &amp;nbsp;It will be to study the track, drive, and to drive as much as we can possibly afford.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I hope that the Nordschleife is not lost. &amp;nbsp;I hope that the politicians will take charge of the situation and not allow &lt;b&gt;misguided&lt;/b&gt; commercial interests ruin the livelihood of so many locals and ruin a cherished travel destination for even more people all around the world.&lt;br /&gt;
&lt;br /&gt;
Do not forget why people come to the Nordschleife. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-7195870597862055965?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1yD2L-P9G3chn1unhCleYBLtgAQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1yD2L-P9G3chn1unhCleYBLtgAQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1yD2L-P9G3chn1unhCleYBLtgAQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1yD2L-P9G3chn1unhCleYBLtgAQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/r0aTny8ybp8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/7195870597862055965/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/02/loss-of-very-special-place.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/7195870597862055965?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/7195870597862055965?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/r0aTny8ybp8/loss-of-very-special-place.html" title="The loss of a very special place?" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm3.static.flickr.com/2196/2497610440_ddf2709c44_t.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.borud.no/2011/02/loss-of-very-special-place.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQAQn07eCp7ImA9Wx9bEU8.&quot;"><id>tag:blogger.com,1999:blog-16828289.post-36640823725383731</id><published>2011-02-19T13:59:00.000+01:00</published><updated>2011-02-19T13:59:03.300+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-19T13:59:03.300+01:00</app:edited><title>Mythbusters and the lunar X-Prize</title><content type="html">While reading about the &lt;a href="http://www.bbc.co.uk/news/technology-12504323"&gt;Google sponsored Lunar X-Prize&lt;/a&gt; I got an idea: It would be great fun if the Mythbusters dedicated a whole season (or three) to having a go at sending a rover to the moon?&lt;br /&gt;
&lt;br /&gt;
As many education professionals have pointed out, Mythbusters is probably the most important TV show right now. &amp;nbsp;Although much of the show is a lot of fun and games and things being blown to bits, at the core, the show is firmly anchored in the application of scientific method and problem solving. &amp;nbsp; While there have been several TV series that attempt to teach its viewers something about science, this show goes a bit further in that it focuses on actually performing experiments rather than talk about them.&lt;br /&gt;
&lt;br /&gt;
There is also a sort of&amp;nbsp;renaissance&amp;nbsp;these days of people making and building stuff. &amp;nbsp;Lots of people build exciting things in their basement -- from &lt;a href="http://www.facebook.com/album.php?id=817515595&amp;amp;aid=386817"&gt;autonomous vehicles&lt;/a&gt;&amp;nbsp;to &lt;a href="http://reprap.org/wiki/Main_Page"&gt;3D printers&lt;/a&gt;&amp;nbsp;to &lt;a href="http://code.google.com/apis/gdata/articles/radish.html"&gt;clever electronics&lt;/a&gt;&amp;nbsp;gadgets. &lt;br /&gt;
&lt;br /&gt;
The efforts towards private space exploration over the past couple of decades are sort of exciting, but not very engaging. &amp;nbsp;While the results that have been achieved are vaguely interesting to those of us not directly involved in the industry, these efforts do not really engage us as much as they could. &amp;nbsp;If Branson and Rutan manage to perform a sub-orbital flights for rich people, well, that is of course nice for them, but it isn't exactly engaging and inspiring. The really exciting stuff of making it happen takes place behind cosed doors.&lt;br /&gt;
&lt;br /&gt;
I think that if Discovery Channel and M5 Industries were to head up an effort to send a rover to the moon, that would make for absolutely fantastic TV. &amp;nbsp; Of course, I don't expect the producers of Mythbusters to have the sort of cash needed to make it happen, so they would probably need to secure funding for the project from companies and well-off individuals.&lt;br /&gt;
&lt;br /&gt;
Given their high profile, the Mythbusters team might also be able to enlist the help of volunteers with special skills from various engineering disciplines and conduct a large part of the effort as a sort of open source project.&lt;br /&gt;
&lt;br /&gt;
Of course, I don't expect Discovery Channel to pick up the challenge. &amp;nbsp;But it would make for really great TV.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16828289-36640823725383731?l=blog.borud.no' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lHHdZ1GpM0wqJfgjoT0KgiTdo94/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lHHdZ1GpM0wqJfgjoT0KgiTdo94/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lHHdZ1GpM0wqJfgjoT0KgiTdo94/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lHHdZ1GpM0wqJfgjoT0KgiTdo94/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Blogborud/~4/TK1jcVgrHuk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.borud.no/feeds/36640823725383731/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.borud.no/2011/02/mythbusters-and-lunar-x-prize.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/36640823725383731?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/16828289/posts/default/36640823725383731?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Blogborud/~3/TK1jcVgrHuk/mythbusters-and-lunar-x-prize.html" title="Mythbusters and the lunar X-Prize" /><author><name>Borud</name><uri>http://www.blogger.com/profile/09902544851412003572</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://bp1.blogger.com/_UhZVllpYAes/R1OBLxjVFxI/AAAAAAAAAGE/URqRxcOb1NA/S220/borud.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.borud.no/2011/02/mythbusters-and-lunar-x-prize.html</feedburner:origLink></entry></feed>

