<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Jökull Sólberg</title><link href="http://www.solberg.is" rel="alternate"></link><link href="http://www.solberg.is/feeds/all.atom.xml" rel="self"></link><id>http://www.solberg.is</id><updated>2011-11-15T00:00:00Z</updated><entry><title>Disk Space</title><link href="http://www.solberg.is/disk-space.html" rel="alternate"></link><updated>2011-11-15T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-11-15:/disk-space.html/</id><summary type="html">&lt;p&gt;The problem with computers today is disk space. Good computers today are reasonable specs combined with SSD drive technology. My hardware advice is basically; just get a MacBook Air on your budget and resist the MacBook Pro unless you want to store a lot of photos and songs, in which case you remove the superdrive and load it with the biggest HDD you can afford. Never let the budget move you off of SSD, instead drop the secondary HDD and go with the cheapest 128GB Air. But of course people would like to potentially store all their photos and songs in one place and 128GB isn't enough after 3 years of photo archival. Just because you don't currently have a huge iPhoto library, everyone aspires to become a domestic documentarian and hates the idea of running out of disk space. &lt;/p&gt;
&lt;p&gt;The way to solve this is to turn filesystems, or at least program file management into the problem domain of databases. Make the filesystem eventually and discriminatingly consistent. Apple is taking steps in this direction with iTunes Match, turning your collection into an iCloud enabled and legalized semi-streaming service. The first time you play a song in your iCloud library it gets downloaded, but the bulk stays in the cloud. I imagine you could then push things in and out of "offline mode", or make iTunes manage it. Apple needs to do the same with iCloud. &lt;/p&gt;
&lt;p&gt;This also solves the other problem with hard drives, their unreliability.&lt;/p&gt;
&lt;p&gt;Let's do this at a lower level. iCloud could continually scan your SSD drive for files you only rarely seek. I would not be surprised if Apple were working on an iCloud solution that jumps in when you run out of disk space and pushes things to "online" mode. Algorithms can easily detect files that do not need fast access. OS X apps with could access an API to correct false positives. Merge Spotlight, Disk Utilities and Time Machine into one interface to manage this.&lt;/p&gt;</summary></entry><entry><title>Feminism</title><link href="http://www.solberg.is/feminism.html" rel="alternate"></link><updated>2011-11-14T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-11-14:/feminism.html/</id><summary type="html">&lt;p&gt;Speaking about tech conferences:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I do some public speaking from time to time. Hopefully I haven’t been casually sexist in those appearances, but posts like Brittany’s are a useful reminder that when you’re on stage, it’s easy to incorrectly assume that everyone in the room agrees with you. More to the point though, women are sadly underrepresented in the tech industry, and bad experiences like these aren’t going to help that situation. I’m not just talking about it from a bleeding heart liberal perspective, either. I fully believe we’re under-performing in innovation because we don’t have sufficiently diverse voices involved in the products we’re building.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="credit" align="right"&gt;&lt;small&gt;Source:
&lt;cite&gt;&lt;a href="http://www.splatf.com/2011/11/khoi-vinh/"&gt;Khoi Vinh @ splatf.com&lt;/a&gt;&lt;/cite&gt;.&lt;/small&gt;&lt;/div&gt;

&lt;p&gt;It’s not &lt;em&gt;just&lt;/em&gt; about ideals. If I were an angel investor I’d be interviewing women 7 days a week. If I were a politician I’d be arguing for the healthiest possible environment for female entrepreneurs. If I were a globocorp with a community fund I’d focus on women and take the heat for it. If I were a woman I’d be frustrated trying to express these ideas, because pushing things forward is frequently perceived as militant by both women and men. &lt;/p&gt;
&lt;p&gt;Framing the problem as a lost opportunity helps the discussion and creates empathy towards the arguments, where otherwise you’d meet frustration, even anger. If you are a product creator, I encourage you to think hard about the other half. Working in advertising I have seen the success first hand. Proactively pushing feminism and women’s ideas into the discussion can start to sound condescending, especially in marketing. But you must trust me this is precisely not the case with established pretext.&lt;/p&gt;</summary></entry><entry><title>More Thoughts on Frameworks</title><link href="http://www.solberg.is/more-thoughts-on-frameworks.html" rel="alternate"></link><updated>2011-11-10T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-11-10:/more-thoughts-on-frameworks.html/</id><summary type="html">&lt;p&gt;As long as node.js earned its share of fans and hacker accolades one of the benefits was touted to be one runtime for both environments (browser and clients). That is, JavaScript in the front, JavaScript in the back. Up until now this did not seem like a real benefit to me, and indeed few frameworks actually delivered on this promise, or even tried. However structured and clever your code, you'd always need to think about "front" and "back". Backbone.js blurs the line by reducing your backend to an API without any HTML output. But what line exactly? Where is the trend stopping? What trend?&lt;/p&gt;
&lt;p&gt;Templating is an awkward beast in web development. Most template engines start with a loader of ANY text file of ANY structure and replace tags with code, at the end of which placeholder text is injected. The DOM kind of &lt;em&gt;is&lt;/em&gt; a template engine when you think about it. It starts with a tree and has methods to juggle that tree about, a scripting engine for the logic and methods to modify and inject values. We're in this in-between phase where we love the power and expressiveness of normal template engines, but rarely reach for its power because the looping and value injecting is all done by JavaScript now-days. What I'm suggesting; if what you're dealing with is almost always a DOM, why not express your output in a programmable DOM? And what better tool to juggle the DOM tree then JavaScript and a library like jQuery?&lt;/p&gt;
&lt;p&gt;Forward thinking site authors are going this way, but as usual problems present themselves because the rest of the world hasn't adapted to this mode of development. Thing is, making a website play well with important services like Google crawlers and Facebook "Like" buttons requires your site to play by the rules of REST, serving content stuffed HTML. It's probably just a question of time until these services catch up with modern web development and start "pretending" to be JavaScript enabled, but until they do they're a pretty good excuse to ignore the exciting development of new, mostly node.js happy frameworks. Indeed, Google has started indexing DISQUS comments, usually not part of the initial DOM.&lt;/p&gt;
&lt;p&gt;What I'm hoping for is a framework that extends the components necessary for a true frameworkial merge of the browser and backend, to both sides of the development model. Web servers are then simply public repositories for interface recipes and URL modeled stateful communication (static files and REST APIs respectfully). We'll need a URL router that works as well when deployed client side as it does when delivering fresh requests. The datastore wraps methods in a thin AJAX crust when in the browser, but in all other aspects behaves the same. The backend runs jQuery for what we used to call the template layer, but is now, prophetically speaking now, simply called: &lt;code&gt;Tree&lt;/code&gt;.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;tree&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;HTML5DocumentTree&lt;/span&gt; 
    &lt;span class="n"&gt;styles:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s"&gt;&amp;#39;static/base.css&amp;#39;&lt;/span&gt;
        &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Stylus&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;styles.stylus&amp;#39;&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;scripts:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s"&gt;&amp;#39;static/jquery.js&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;TreeScript&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;ready.coffee&amp;#39;&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="c1"&gt;# layout: new LayoutTree&lt;/span&gt;

&lt;span class="n"&gt;class&lt;/span&gt; &lt;span class="n"&gt;Animal&lt;/span&gt; &lt;span class="n"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;Resource&lt;/span&gt;

&lt;span class="n"&gt;class&lt;/span&gt; &lt;span class="n"&gt;AnimalTree&lt;/span&gt; &lt;span class="n"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;Tree&lt;/span&gt; 
    &lt;span class="n"&gt;dom:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s"&gt;&amp;#39;div&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;className:&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;animal&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;I am a @name&amp;#39;&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nb"&gt;index&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;
    &lt;span class="n"&gt;dog&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Animal&lt;/span&gt; &lt;span class="n"&gt;name:&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;dog&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;dog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tree&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;AnimalTree&lt;/span&gt; &lt;span class="n"&gt;model:&lt;/span&gt; &lt;span class="n"&gt;dog&lt;/span&gt;
    &lt;span class="n"&gt;tree&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;body&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt; &lt;span class="n"&gt;dog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tree&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;tree&lt;/span&gt;

&lt;span class="n"&gt;routes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;index&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;router&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Router&lt;/span&gt; &lt;span class="n"&gt;routes&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Route callbacks always return DocumentTree instances. If the routes are triggered server side a &lt;code&gt;tree.ready()&lt;/code&gt; is called and &lt;code&gt;tree.render()&lt;/code&gt; written to the HTTP response object. That's the bit I'm not sure just how magical must be. &lt;/p&gt;
&lt;p&gt;Tree is a superset server side DOM object. DocumentTree is a subclass of Tree that is smart about structuring itself as an HTML5 document. The &lt;code&gt;app&lt;/code&gt; object is automatically attached to the &lt;code&gt;window&lt;/code&gt; DOM object on render. &lt;code&gt;scripts&lt;/code&gt; is a list of executables or URLs to wrap in &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tags. &lt;code&gt;ready()&lt;/code&gt; triggers all the $(document).ready callbacks. &lt;/p&gt;
&lt;p&gt;I hope this got you thinking about the evolution of web frameworks. I'm not trying to be political about it, just recognizing that node.js people have a fucking good point about having the same runtime as that of the browser. And an inventive and creative community around it that's thinking much more about this stuff than I am. Check out the freshly released &lt;a href="flatironjs.org"&gt;flatiron&lt;/a&gt; framework for some hints at the future.&lt;/p&gt;</summary></entry><entry><title>Lying</title><link href="http://www.solberg.is/lying.html" rel="alternate"></link><updated>2011-11-03T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-11-03:/lying.html/</id><summary type="html">&lt;blockquote&gt;
&lt;p&gt;The future of social media is lying. As more and more services close their grip upon who we know, where we are, and what we're doing, we'll come to the sobering realization that we're just not that interesting. We'll create personas to travel the world, meet interesting people, solve crimes and rescue kittens from burning houses. 'Who you are' has never been as interesting as 'who you pretend to be'. The future of social media is the frontier of a new fiction, and one that we can be an active, and sometimes unwilling participant in. We don't want real identities, we want really good identities.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://www.businessinsider.com/future-of-social-media-2011-11#mike-monteiro-hilarious-twitter-persona-mikeftw-and-design-director-at-mule-design-studio-4#ixzz1cfoC04EJ"&gt;Mike_FTW on BusinessInsider&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Great insight. I love that people in advertising are obsessively observant just to see half a step further into the future. &lt;/p&gt;</summary></entry><entry><title>The Web Framework Evolution</title><link href="http://www.solberg.is/the-web-framework-evolution.html" rel="alternate"></link><updated>2011-11-01T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-11-01:/the-web-framework-evolution.html/</id><summary type="html">&lt;p&gt;Finally getting some not unwelcome free time at work, I did research around the node.js web frameworks and tools. I've been trying out &lt;a href="http://brunch.io/"&gt;Brunch&lt;/a&gt;, which is a great scaffolding and compiler tool built on top of &lt;a href="https://github.com/sstephenson/eco"&gt;Eco&lt;/a&gt; templates, &lt;a href="http://learnboost.github.com/stylus/"&gt;Stylus&lt;/a&gt; stylesheets, &lt;a href="http://documentcloud.github.com/backbone/"&gt;Backbone&lt;/a&gt; and the now indispensable alternative syntax for JavaScript; &lt;a href="http://jashkenas.github.com/coffee-script/"&gt;CoffeeScript&lt;/a&gt;. Its purpose is to become a de-facto environment to build HTML5 application front-ends. &lt;/p&gt;
&lt;p&gt;Working with Brunch for a real project now, it strikes me is just how much time in development gets spent in Brunch (CoffeeScript, Backbone, Stylus etc.), and how little time gets spent on the backend. I don't have such a strong preference for Python frameworks anymore. I'd pick Flask because Armin Ronacher is a damned genius, but the time it takes to knock together a Django or Flask app is closing in to very little indeed. Backbone just wants some RESTful JSON endpoints, and is happy to sort, edit and display data, but also communicate with &lt;a href="http://www.solberg.is/the-api-culture.html"&gt;JSONP enabled API's&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;What if Brunch, currently a client side framework for harnessing all the new browser technology, slowly took over what current server side frameworks are good for? CRUD interfaces, form/model validation and a model persistence layer (ORM?). We'd have something like the Django admin module, but DOM and therefor &lt;em&gt;design&lt;/em&gt; aware. The questionable WYSIWYG ethos but responsive and truly in-browser, in-DOM even. &lt;/p&gt;
&lt;p&gt;One-off editables would be defined easily with data-* attributes like so:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Phone number: &lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;data-key=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;mysite:phone&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;data-type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;data-empty-value=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;No phone number&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;+354 616 1339&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;data-key=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;mysite:logo&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;data-type=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;image&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;120&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;logo.png&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The idea being that authors can easily provide default values, but make them editable with no extra effort. Different &lt;code&gt;data-type&lt;/code&gt; values call their respective admin widgets. Single-line text, Markdown text, image uploads, and more. Each widget knows how to update the element and child nodes thereof. Widgets have error and success awareness and can report user or server errors. For lists-of-things or anything more complex and tailored you would define those elements as Backbone models and views with your own widgets, or perhaps classes of multiple fields like a Django &lt;code&gt;Form&lt;/code&gt; class.&lt;/p&gt;
&lt;p&gt;The base classes are tuned towards persistance in Redis, but community extensions can be more document or relational centric.&lt;/p&gt;
&lt;p&gt;But the framework needs to solve more problems.&lt;/p&gt;
&lt;h4&gt;The Empty HTML Trend&lt;/h4&gt;
&lt;p&gt;The web is moving to serving empty HTML sans data then populating the DOM with JSON. This is a problem for Google and such crawlers as all the data is invisible unless it's part of the content provided by the server on the initial HTTP GET. The Backbone.js documentation encourages authors to ship the initial data with the HTML, for quicker loading, but this still doesn't solve anything for SEO and indexation. &lt;/p&gt;
&lt;p&gt;The stars of web development had a debate when Twitter launched with empty HTTP GET pages, populated by AJAX. I won't speak of Twitter's deployment of the technology, but I'm certainly a spokesman of the web being more about URL's than HTTP REST sinners and saints. Joe Hewitt has some excellent writing on this very topic.&lt;/p&gt;
&lt;p&gt;The next generation web framework solves this problem by rendering the output in a headless WebKit process and then serving a string presentation of that document object. Testing frameworks like &lt;a href="http://zombie.labnotes.org/"&gt;Zombie.js&lt;/a&gt; already do this. I wonder if this is fast enough to do on a per request basis, at least in a development environment. &lt;/p&gt;</summary></entry><entry><title>Good Curry That to Me Looks and Tastes Authentic And Reminds One of a Proper LAHORE Curry House</title><link href="http://www.solberg.is/good-curry-that-to-me-looks-and-tastes-authentic-and-reminds-one-of-a-proper-lahore-curry-house.html" rel="alternate"></link><updated>2011-10-31T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-10-31:/good-curry-that-to-me-looks-and-tastes-authentic-and-reminds-one-of-a-proper-lahore-curry-house.html/</id><summary type="html">&lt;p&gt;Serves 5&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 tsp fennel seeds&lt;/li&gt;
&lt;li&gt;1 tsp cumin seeds&lt;/li&gt;
&lt;li&gt;1 tsp coriander seeds&lt;/li&gt;
&lt;li&gt;1/2 tsp ground cinnamon&lt;/li&gt;
&lt;li&gt;1 cardamom pod&lt;/li&gt;
&lt;li&gt;1 thumb-sized piece of ginger, peeled&lt;/li&gt;
&lt;li&gt;3 red onions, chopped&lt;/li&gt;
&lt;li&gt;5 garlic cloves, smashed and peeled&lt;/li&gt;
&lt;li&gt;2 red chillies chopped&lt;/li&gt;
&lt;li&gt;1 tbsp olive oil&lt;/li&gt;
&lt;li&gt;1.5 kg lamb shanks (somewhere around 4 shanks)&lt;/li&gt;
&lt;li&gt;75g butter&lt;/li&gt;
&lt;li&gt;1x 400g tin chopped tomatoes&lt;/li&gt;
&lt;li&gt;2 tbsp tomato purée&lt;/li&gt;
&lt;li&gt;350ml vegetable stock&lt;/li&gt;
&lt;li&gt;Rice, mint and yoghurt to serve with&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Warm up the spices on a pan to release the oils. Mmm. Throw in a mortar and pestle and crush, or spread on a cutting board and whack the spices with a pan. Point is to break all the kernels apart.&lt;/p&gt;
&lt;p&gt;Prepare meat by cutting away unwanted bits. Make sure to keep all the fat around though. Just debone and cut meat into finger sized pieces.&lt;/p&gt;
&lt;p&gt;In a blender or with a magic wand thing, blend onions, garlic, spices and chilli until you get a smooth paste. Heat a pan with butter and combine, on the pan, with the curry paste. When whole kitchen smells with curry aromas, move pan off heat and prepare a new one to brown meat in oil. &lt;/p&gt;
&lt;p&gt;While browning prepare stock if you don't have it at hand. Dissolve a vegetable cube in warm water. &lt;/p&gt;
&lt;p&gt;In a casserole combine meat, curry paste, tomatoes and purée. Whack in the oven at 180° for 2.5 hours. If you have a pressure cooker you can get away with less.&lt;/p&gt;
&lt;p&gt;Serve with rice, mint and yoghurt.&lt;/p&gt;</summary></entry><entry><title>The Opportunity of Google Reader</title><link href="http://www.solberg.is/the-opportunity-of-google-reader.html" rel="alternate"></link><updated>2011-10-26T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-10-26:/the-opportunity-of-google-reader.html/</id><summary type="html">&lt;p&gt;Google have really messed up with Reader. Instead of simplifying it and integrating it into Chrome, they chose to bloat it with features. Thankfully it has a decent API for client authors. Reeder for iPad, a Google Reader frontend or &lt;em&gt;client&lt;/em&gt; is a beautiful experience. But its long term value is only as good as the feeds you put into it. And that's where it kind of falls apart, since you still have to deal with google.com/reader at some point. At least 90% of people have no idea what the benefits of a feed reader are. And a hard to underestimate sized portion of those would appreciate an aggregator of their favorite sites and a way to manage their content flow. Twitter proved that. People like their heroes of prose arranged in a continually updated stream of content. &lt;/p&gt;
&lt;p&gt;It makes no business sense to treat feed reading like a "prosumer" hobby either. A collection of feeds are an incredibly good source of data for target advertising. Partly because the feeds reflect people aspirationally. The things people follow and spend time to get inspired and informed could be better indicators of what advertising they would want to see, then for example their personal correspondence in Gmail. Publishers small and large should get a piece of that pie too. It has the potential to become, at last, a marketplace of internet publishing. Something along the lines of what Readability is trying to do. &lt;/p&gt;
&lt;p&gt;If Google could pull it off, we'd reach an incredible tipping point where solo publishing could finally flourish. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt; Google recently introduced some changes to Reader which I was unaware of. Nothing earth-shattering; more or less just Google+ integration. One could assume that this post was a riff on those recent developments, but that's not the case. &lt;a href="http://inessential.com/2011/10/24/google_reader_and_mac_ios_rss_readers_th"&gt;Read Brent Simmons' take on things&lt;/a&gt;.&lt;/p&gt;</summary></entry><entry><title>Making an Ad vs. Owning the Channel</title><link href="http://www.solberg.is/making-an-ad-vs-owning-the-channel.html" rel="alternate"></link><updated>2011-10-24T19:58:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-10-24:/making-an-ad-vs-owning-the-channel.html/</id><summary type="html">&lt;p&gt;Plain advertising constructs a message, produces it eyecatchingly and buys the real estate to display it. The message is guesswork - as in; part of a doubtless imperfect strategy, with a target group and product usage in mind. This set of promotion of products, values and ideas is not going away. We need to start somewhere and that's more or less what we're going to do, conceptualize the message and deliver in a compelling, possibly entertaining way. But as soon as the lifecycle of a product or, perhaps the emotional connection to a brand begins, we need to be on our feet.&lt;/p&gt;
&lt;p&gt;There is already a desire of brands to control and own the new channels. Facebook Pages and Twitter hashtags are good examples. A little piece of the interactive social pie. I'm not necessarily talking about Nike owning a social network. Well if successfully pulled off that wouldn't be so bad. But we can be more creative than that. Think of the frequently referenced Old Spice campaign. The spontaneousness of that campaign transferred into a proximity to consumers. A beautiful example of creating the channel with traditional advertising and then capitalizing on the reactions and emotions that rippled. We should have a long term strategy in place too. The sought after "brand fans" are little promotional engines and deserve to be praised and promoted themselves. &lt;/p&gt;</summary></entry><entry><title>Books</title><link href="http://www.solberg.is/books.html" rel="alternate"></link><updated>2011-10-24T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-10-24:/books.html/</id><summary type="html">&lt;p&gt;The reading experience on Kindle for iPad is surprisingly pleasant. You can point and hold your finger over a word to get its dictionary definition. Only a second away, displayed at the bottom of the screen. An especially clever sentence can be highlighted and shared on Twitter or Facebook. Instantly. It's like that impulse you get when your reading a book on a sunday afternoon with your girlfriend somewhere around and you pause to share something enlightening or relevant. But this time it's archived too so your Amazon Highlights Page accumulates these places and highlights from the book.&lt;/p&gt;
&lt;p&gt;I think I prefer it this way, over printed books or the e-ink Kindle. Also, excited to see if these features are all in the new Kindle Fire.&lt;/p&gt;
&lt;p&gt;This brings up an exciting idea. What if authors could choose to charge a little extra for the book, but readers can redeem up to a certain value percentage of the book by sharing sentences with their social networks? This way authors of good books can get rewarded, presumably, by bigger sales numbers as the reading experience turns into target advertising. I think it could work out quite nicely.&lt;/p&gt;</summary></entry><entry><title>Genius</title><link href="http://www.solberg.is/genius.html" rel="alternate"></link><updated>2011-10-07T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-10-07:/genius.html/</id><summary type="html">&lt;blockquote&gt;
&lt;p&gt;I once heard George Melly, on a programme about Louis Armstrong, do that dangerous thing and give his own definition of a genius. “A genius,” he said, “is someone who enters a field and works in it and when they leave it, it is different. By that token, Satchmo was a genius.” I don’t think any reasonable person could deny that Steve Jobs, by that same token, was a genius too.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://www.stephenfry.com/2011/10/06/steve-jobs/single-page/"&gt;Stephen Fry&lt;/a&gt;&lt;/p&gt;</summary></entry><entry><title>Value of Openness</title><link href="http://www.solberg.is/value-of-openness.html" rel="alternate"></link><updated>2011-10-07T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-10-07:/value-of-openness.html/</id><summary type="html">&lt;p&gt;I keep hearing people, mostly programmers or at least people working in the computer industry, criticize Apple for being a closed company. Apple reserve rights to remove whole applications from the App Store, and have a very top down iron fist control of their products and the ecosystem in which they live. Keep in mind that a single application can be a whole team of highly skilled workers, investing a year of their life to produce an application. Apple recognize certain areas where openness is crucial, like creating good internet apps and architecting an OS on top of an open platform. &lt;/p&gt;
&lt;p&gt;The discussion is becoming more and more uninteresting. In my mind Apple has proven that on the whole it is much better to have an ecosystem of products, content and applications that works seamlessly, then having a place where every application and external interest has a rightfully equal place. A coordinator party that controls the whole experience wins, because the task of delivering something usable and seamless is near, possibly completely impossible by way of open standards and committee procedure. &lt;/p&gt;
&lt;p&gt;Just look at the web. It has taken ten years to progress at glacial speed to coordinate, draft and accept open standards. Only now is the web becoming a viable platform for anything like a high fidelity desktop application. Many argue that the open process is so crippled that proprietary platforms like iOS will &lt;a href="http://joehewitt.com/2011/09/26/what-the-web-is-and-is-not"&gt;always win out in user experience&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Consider that all open source projects have been started by a tightly controlled group in a closed environment, usually just one person. Later the source code is opened up to scrutiny and code submissions are discussed, rejected or accepted. But the vision is either lost or control is kept by the original team. I have a hunch some open source software might be better off closed or semi-closed. Many hardcore free software geeks are too sympathetic towards the religious goals of Richard M. Stallman. Consumers don't care about openness, they just want usability. That's the business Apple is in.&lt;/p&gt;
&lt;p&gt;I don't have high hopes for The Wisdom of Crowds. I believe in leadership and vision. I'm sorry if your application got rejected or removed by Apple, but like so many things in life it's a gamble. I would actually be more worried about consumers rejecting your startup idea then Apple. In the end, Apple has brought more consumers and purchases to the table then any other force. Journalists are struggling to get paid for their work, while App Store developers are in the middle of a 21st century gold rush.&lt;/p&gt;</summary></entry><entry><title>Tools We Use at Work</title><link href="http://www.solberg.is/tools-we-use-at-work.html" rel="alternate"></link><updated>2011-09-28T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-09-28:/tools-we-use-at-work.html/</id><summary type="html">&lt;p&gt;Here are some of the tools we use every day at work, at Jónsson &amp;amp; Le'macks.&lt;/p&gt;
&lt;h4&gt;Google Apps&lt;/h4&gt;
&lt;p&gt;We migrated our calendar and email from an in house OS X Server about four months ago, to Google Apps. The file-share is still in-house. The AFP server is just too flawless, fast and reliable to switch to any cloud based solution. We're moving everyone off iCal to the web based Google Calendar to use the advanced features. iPhone integration is really nice as Google Apps can masquerade as an Exchange server. Most everyone has an iPhone at work.&lt;/p&gt;
&lt;h4&gt;File storage and sharing&lt;/h4&gt;
&lt;p&gt;Our video department works off their own SAN. The digital department uses an S3 compatible account on &lt;a href="http://www.greenqloud.com/"&gt;GreenQloud&lt;/a&gt; to serve video for Flash banners and highly available assets. Basically a poor man's CDN. &lt;/p&gt;
&lt;p&gt;I'm currently developing an in-house auto-index type site for password protected file delivery. Email attachments suck, and again, cloud based sharing is too much of a pain currently. We like to mount AFP shares and upload &lt;em&gt;fast&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Dropbox is a big letdown lately. I sort of expected them to lower their prices and streamline the UI and sharing process. Lots of businesses are looking for a better solution here. We'd love to have an improved Dropbox interface with transparent pricing and auto-archiving features.&lt;/p&gt;
&lt;h4&gt;&lt;a href="http://www.github.com/"&gt;GitHub&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;All our code is hosted on GitHub. It's very intuitive to administer the organization accounts for things like bringing in freelance developers and later revoking their access. If your commits are frequent and good it can become a poor man's time tracker too. GitHub is about so much more than code, it's the social layer of code too. I'm more of a Mercurial guy, finding the git command line tool absurd in comparison. It's a shame Bitbucket didn't win out. I'm looking into using hg-git.&lt;/p&gt;
&lt;h4&gt;&lt;a href="http://www.getflow.com/"&gt;Flow&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Streamlined project management web app with clients for Mac and iPhone. I've tried a dozen different GTD apps, but this one wins out. It's like a friendly GitHub issues app. Very social and connected. The usage is intuitive, especially considering it's depth. The advanced features present themselves as you learn. We're still evaluating this for use with the whole studio. The optional complexity is a brilliant touch, sort of how Gmail's star feature works. Everyone has their own rules for what a star really signifies. Flow has that touch. In fact we should be using it for way more stuff.&lt;/p&gt;
&lt;h4&gt;&lt;a href="http://www.sohnar.com/"&gt;Traffic&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;An agency time tracking, billing and invoicing application (or platform I should say). Developed in FileMaker, seemingly in the age of Macintosh Color Classic. Evaluated &lt;a href="http://www.getharvest.com/"&gt;Harvest&lt;/a&gt; as a replacement but wasn't up to scratch. Harvest looks to be attracting smaller studios with a few clients, uninterested in making it more complicated to serve bigger agencies I guess. I don't blame them. Apparently the guys behind Traffic are working on a super awesome modern version of Traffic that's built on Adobe Air. Nice move from one shitty platform to the next. Recording your times at the end of the month is as painful as slamming your privates on a George Forman. &lt;/p&gt;
&lt;h4&gt;&lt;a href="http://www.hipchat.com/"&gt;HipChat&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;This one has potential, but it'll be hard getting the whole studio onboard. HipChat is IRC for businesses, with history and a bunch of friendly features. It's got that &lt;code&gt;@mention&lt;/code&gt; thing like Twitter, guest invites, image link preview and more. I suspect this might work out for geekier workplaces, probably not ours. Ideally you could split the office into client groups and get everyone to join a room for each group. If you catch up with discussions in your room a couple of times a day people will be more aware of related projects around them, and could pitch in a comment or two to help out. That's the up side at least, having casual back-and-forth's you would not otherwise have. The big bonus is working with headphones or in completely different location. GitHub does Campfire, a very similar tool, to allow the flexibility of working from any place at any time.&lt;/p&gt;
&lt;p&gt;In my sysadmin wet dream, all inhouse systems would be integrated into a HipChat bot. A sort of hub for all activity. The amount of noise that goes on in a chat room can go quite high while remaining non-frustrating, unlike other more demanding mediums.&lt;/p&gt;
&lt;h4&gt;iChat&lt;/h4&gt;
&lt;p&gt;iChat get's a lot of mileage within the office. Bonjour chat is cool and dummyproof.&lt;/p&gt;
&lt;h4&gt;Keynote&lt;/h4&gt;
&lt;p&gt;Occasionally we'll turn to InDesign for things with shelve-life. Great tool. We even do wireframes in Keynote. For a great wireframe package get the &lt;a href="http://pictos.drewwilson.com/"&gt;Pictos&lt;/a&gt; iconography and use them sparingly but cleverly in Keynote.&lt;/p&gt;
&lt;h3&gt;BONUS / Nerdy stuff I use&lt;/h3&gt;
&lt;h4&gt;&lt;a href="www.sublimetext.com/2"&gt;Sublime Text 2&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;After years of waiting for TextMate 2, I decided to give Sublime Text 2 out for a week. Three weeks have passed since then, the TextMate author finally coughs up promise to deliver an Alpha by Christmas. Sublime Text 2 has a lot of momentum by now and I suggest you give it a try if you're a TextMate user.&lt;/p&gt;
&lt;h4&gt;&lt;a href="http://notational.net/"&gt;Notation Velocity&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;A frontend to &lt;a href="http://www.simplenoteapp.com/"&gt;SimpleNote&lt;/a&gt; that syncs RTF style notes and makes them searchable. iPhone and iPad clients available too. Great, secure notes setup.&lt;/p&gt;
&lt;h4&gt;&lt;a href="https://github.com/rsms/scrup"&gt;Scrup&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;An impressive little tool. It wraps the Command+Shift+4 OS X screenshot utility in a configurable file uploader. You'll need to host your own receiver. The moneyshot is the automatic "URL in clipboard" feature. I use this utility at least once a day.&lt;/p&gt;
&lt;h4&gt;Alfred&lt;/h4&gt;
&lt;p&gt;A just-works launcher for OS X.&lt;/p&gt;
&lt;h3&gt;BONUS / Some Notes on Word Processing&lt;/h3&gt;
&lt;p&gt;I don't use typical word processors like Pages or Microsoft Word. I go straight to Markdown for authoring, or lately more and more to &lt;a href="http://substance.io"&gt;Substance.io&lt;/a&gt; which shows great potential and is defining a new niche for document structuring, collaboration and sharing. Like a GitHub for documents. &lt;/p&gt;
&lt;p&gt;I tend to spend a lot of time formatting and rewriting emails in Mail.app. I'm a proponent of email etiquette, brevity and clarity. &lt;/p&gt;
&lt;p&gt;I bought byWord, a Markdown aware focus editor which I'm using right now. It has all the new OS X Lion features, a word count and beautiful interface.&lt;/p&gt;</summary></entry><entry><title>Ad Agents of Change</title><link href="http://www.solberg.is/ad-agents-of-change.html" rel="alternate"></link><updated>2011-09-13T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-09-13:/ad-agents-of-change.html/</id><summary type="html">&lt;p&gt;&lt;strong&gt;UPDATE 2001/09/21&lt;/strong&gt; Oh wow. Look what industry leader W+K is doing. &lt;a href="http://www.fastcompany.com/1781598/wieden-kennedy-tech-incubator-picks-its-start-up-class-of-2011"&gt;Wieden + Kennedy Tech Incubator Picks Its Startup Class of 2011&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 2011/09/19&lt;/strong&gt; There's been some discussion on this exact topic elsewhere apparently. Check out articles on &lt;a href="http://www.mobileinc.co.uk/2011/08/can-the-next-instagramhipstamatickloutangry-birds-be-born-within-a-agency/"&gt;Mobile Inc&lt;/a&gt; and a followup on a former &lt;a href="http://no-mans-blog.com/2011/09/18/before-we-make-instagram-lets-make-housebite-first/"&gt;colleague's blog&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Businesses putting software development into their core skills are &lt;a href="http://online.wsj.com/article/SB10001424053111903480904576512250915629460.html?mod=wsj_share_tweet"&gt;winning&lt;/a&gt;, small and big. Every day I see a new way in which software adds value to our lives by enabling us to do more, better or quicker. Businesses have known this for a long time now, but their relationship with this idea is one defined by fear and uncertainty. Adding software and innovation to the core competency of a business is a change so big, that many simply don't take the steps necessary, and eventually stop being part of the discussion. Add to that the drought of skill, explained in part by high demand of software developers and related expertise. An old business with old management is not an exciting environment for technically skilled entrepreneurs, even when you add the willingness of said company to morph and adapt.&lt;/p&gt;
&lt;p&gt;I think we've accumulated enough examples of death-by-technology that most companies realize the need by now are urged, and the ways in which they may become irrelevant keep them awake at night. They may not have a plan of action, but everyone and their grandmother seems to be looking for more technical and internet-savvy staff to run and adapt their business. &lt;/p&gt;
&lt;p&gt;Supply and demand for developers will even out in the next twenty years or so, as the software ecosystem evolves and attacks the long tail of problems to solve. But in the meantime there is a great opportunity for digital advertisement agencies to help businesses in some key areas. Online strategy is no longer a statement of intended marketing, but an action plan to evolve and adapt. Treat the client's online strategy like a survival guide for the software age. Agencies should bring up the questions, point the way and in these strange transition times, &lt;em&gt;yes&lt;/em&gt;, bring the technical knowhow, insofar as they are prepared and willing to take the risks associated, supply the manpower, get fairly rewarded for their efforts etc.&lt;/p&gt;
&lt;p&gt;Naysayers will point out that agencies should not adopt the DNA of product developers. Advertising has its roots in a very different place as that of inventors and innovators. To them I point to Apple, a company restored on principles of taste, design and the confidence to say "no" — all traits of effective advertisement. This is not a natural transition, but the &lt;em&gt;event&lt;/em&gt; that is the software revolution is exactly the kind of defining event that moulds an industry.&lt;/p&gt;</summary></entry><entry><title>Wordsmith</title><link href="http://www.solberg.is/wordsmith.html" rel="alternate"></link><updated>2011-09-13T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-09-13:/wordsmith.html/</id><summary type="html">&lt;blockquote&gt;
&lt;p&gt;"If you are trying to decide between a few people to fill a position, always hire the better writer. It doesn't matter if that person is a designer, programmer, marketer, salesperson, or whatever, the writing skills will pay off. Effective, concise writing and editing leads to effective, concise code, design, emails, instant messages, and more."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;via &lt;a href="http://gettingreal.37signals.com/ch08_Wordsmiths.php"&gt;Getting Real, 37 Signals&lt;/a&gt;&lt;/p&gt;</summary></entry><entry><title>OSX Lion Pro Settings</title><link href="http://www.solberg.is/osx-lion-pro-settings.html" rel="alternate"></link><updated>2011-09-09T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-09-09:/osx-lion-pro-settings.html/</id><summary type="html">&lt;p&gt;To configure these settings open up Terminal.app (found in Applications/Utilities/Terminal.app) and paste the lines starting with &lt;code&gt;default&lt;/code&gt; into the prompt, followed by the enter key. You may be asked for a password, this is you OSX account password.&lt;/p&gt;
&lt;h3&gt;Settings that make OSX snappier&lt;/h3&gt;
&lt;p&gt;2D Dock&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://ss.solberg.is/3b72931f9f.png" /&gt;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;defaults&lt;/span&gt; &lt;span class="nb"&gt;write&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;apple&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dock&lt;/span&gt; &lt;span class="nb"&gt;no&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;glass&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;true&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Disable Safari's thumbnail cache for History and Top Sites&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;defaults&lt;/span&gt; &lt;span class="nb"&gt;write&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;apple&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Safari&lt;/span&gt; &lt;span class="n"&gt;DebugSnapshotsUpdatePolicy&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Disable window animations&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;defaults&lt;/span&gt; &lt;span class="nb"&gt;write&lt;/span&gt; &lt;span class="n"&gt;NSGlobalDomain&lt;/span&gt; &lt;span class="n"&gt;NSAutomaticWindowAnimationsEnabled&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;false&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Disable send and reply animations in Mail.app&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;defaults&lt;/span&gt; &lt;span class="nb"&gt;write&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;apple&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Mail&lt;/span&gt; &lt;span class="n"&gt;DisableReplyAnimations&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;true&lt;/span&gt;
&lt;span class="n"&gt;defaults&lt;/span&gt; &lt;span class="nb"&gt;write&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;apple&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Mail&lt;/span&gt; &lt;span class="n"&gt;DisableSendAnimations&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;true&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h3&gt;Annoyances&lt;/h3&gt;
&lt;p&gt;Expanded save panel&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;defaults&lt;/span&gt; &lt;span class="nb"&gt;write&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="n"&gt;NSNavPanelExpandedStateForSaveMode&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;true&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Disable auto-correct&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;defaults&lt;/span&gt; &lt;span class="nb"&gt;write&lt;/span&gt; &lt;span class="n"&gt;NSGlobalDomain&lt;/span&gt; &lt;span class="n"&gt;NSAutomaticSpellingCorrectionEnabled&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;false&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</summary></entry><entry><title>Nutrition pt. 1</title><link href="http://www.solberg.is/nutrition-pt-1.html" rel="alternate"></link><updated>2011-09-08T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-09-08:/nutrition-pt-1.html/</id><summary type="html">&lt;p&gt;I have a moderately good track record of keeping fit, did gymnastics and football among other things as a kid, had my slacker years as a teen but now practice CrossFit non-religiously two to three times a week. I did a couple of months of jiu-jitsu earlier this year and now I'm doing a course in MovNat. During my 30 day champion challenge last year I moved into near-overtraining mode with 5 WOD's a week. CrossFit 5 times a week for 30 days was a great way to move my technique and conditioning to a new level, but not something to maintain.&lt;/p&gt;
&lt;p&gt;Training sets some mental food cog into motion. Fitness is a pursuit that relies and benefits from good nutrition. So you could say my interest in nutrition was ignited and initially driven by CrossFit. I quickly picked up &lt;a href="http://www.amazon.co.uk/Paleo-Solution-Robb-Wolf/dp/0982565844/ref=as_li_tf_mfw?&amp;amp;camp=2486&amp;amp;linkCode=wey&amp;amp;tag=wo0e1-21&amp;amp;creative=8878"&gt;The Paleo Solution&lt;/a&gt; and immediately started preaching the ways of a caveman lifestyle and diet. The 30 day paleo challenge had these notable results:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No blood sugar crashes, even energy and focus throughout the day&lt;/li&gt;
&lt;li&gt;No &lt;a href="http://chriskresser.com/heartburn"&gt;heartburn&lt;/a&gt;, something I'd experienced with slight discomfort&lt;/li&gt;
&lt;li&gt;Always hungry&lt;/li&gt;
&lt;li&gt;I confirmed my suspicion, I have gluten intolerance&lt;/li&gt;
&lt;li&gt;Good skin, good food&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I quickly added dairy, and referred to it as &lt;em&gt;lacto-paleo&lt;/em&gt;&lt;sup&gt;1&lt;/sup&gt;. I love dairy and it helped with satiety and cooking. Dairy in Iceland is cheap and tasty too, so it's a no brainer for Scandinavians unless you have problems with dairy. If you suspect it may be problematic, wait out the 30 days and then add it back in.&lt;/p&gt;
&lt;p&gt;At the end of the month I switched gears a bit, introducing occasional cheats at good moments, potatoes and rice. But generally, armed with new knowledge about my responses I adopted the 80/20 rule&lt;sup&gt;2&lt;/sup&gt;. I try to optimize my food choices for long term happiness, but knowing what those choices are requires that you experiment and actually know something about food toxins and nutrition, in the same way someone decides to give up smoking based on the long term negative effects. &lt;/p&gt;
&lt;p&gt;A new 30 day champ challenge is coming up. I don't know what changes to look out for, as I'm pretty happy as I am now. There is no hypothesis, if so to speak. &lt;/p&gt;
&lt;h3&gt;Ban list (a.k.a. food toxins)&lt;/h3&gt;
&lt;p&gt;For the lowdown on food toxins see Chris Kresser's &lt;a href="http://chriskresser.com/9-steps-to-perfect-health-1-dont-eat-toxins"&gt;9 Steps to Perfect Health - #1: Don’t Eat Toxins&lt;/a&gt;. This is the rough cut of my ban list.&lt;/p&gt;
&lt;h4&gt;Sugar&lt;/h4&gt;
&lt;p&gt;Except in whole fruit or occasional honey for cooking or very dark chocolate. &lt;strong&gt;No fruit juice&lt;/strong&gt;, cakes or sweets. &lt;/p&gt;
&lt;h4&gt;Grains&lt;/h4&gt;
&lt;p&gt;Cutting out grains was a great move for me last year. I've added it slowly back in. I seem to handle small amounts of very buttery bread quite well, but some types of bread and larger amounts are especially inflammatory. For the 30 day Champ Challenge I may have a croissant on weekends. &lt;/p&gt;
&lt;h4&gt;Processed Soy, Industrial Oils&lt;/h4&gt;
&lt;p&gt;Omega-6 rich oils are out in favor of healthier oils. I might set some butter eating record. Read &lt;a href="http://chriskresser.com/9-steps-to-perfect-health-2-nourish-your-body"&gt;Chris Kresser's guide&lt;/a&gt; for the lowdown on oils.&lt;/p&gt;
&lt;h4&gt;Coffee&lt;/h4&gt;
&lt;p&gt;Not a toxin, but for me a big mood and energy imbalancer. I experience crashes and mood swings I don't care for. I'll have a burst of productivity, but then crash into &lt;a href="http://blissbat.net/balzac.html"&gt;anxiousness and impatience&lt;/a&gt;. PG tips tea will be my go-to hand-warmer, with 20% heavy cream or unpasteurized milk.&lt;/p&gt;
&lt;h3&gt;Natural Foods&lt;/h3&gt;
&lt;p&gt;For the 30 days I will prefer and seek out cultural and nutritionally dense foods. Icelanders have a heritage of super-foods that have been ignored, industrialized and ruined. Cod liver oil, liver sausage from lamb, delicious pastured butter and cream, cheese, skyr, lamb, fowl, wild salmon, horse meat, eggs and a variety of shellfish and fish. Thankfully there are markets in and around my city Reykjavík focusing on such produce. On the first day of the challenge I will make a trip to a farm to buy grass fed beef for the freezer along with cream and milk.&lt;/p&gt;
&lt;p&gt;Potatoes and white rice are in. These are well tolerated by the gut, tasty and a lot of fun to cook with. They are cheap and help with satiety, which was a big problem in last years challenge.&lt;/p&gt;
&lt;h3&gt;Conclusions&lt;/h3&gt;
&lt;p&gt;I have only been studying nutrition for a year now, and only as a hobby. I'm not an expert by any measure in this field, but applying common sense and keeping an open mind has led me towards a much more balanced diet. I'm also more aware of my responses to particular foods, and it has surprised me how directly I've been able to relate them. The responses are my cues to decrease consumption of a particular offender. I guess that's what people mean by listening to your own body. I just never realized it was a skill you had to work on. &lt;/p&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;small&gt;Lacto-Paleo never caught on, as recent iterations of the paleo diet definition have embraced cultural foods as "good". &lt;em&gt;Paleo&lt;/em&gt; is a heavily disputed term. Right as key persons are removing themselves from the term, they seem to be realizing its marketing potential, and cognitive stickiness. &lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;small&gt;20% effort gets you 80% of the results. Relies on actually knowing what you are doing. The flip side is that the last 20% requires 80% of the effort.&lt;/small&gt;&lt;/li&gt;
&lt;/ol&gt;</summary></entry><entry><title>30 Day Challenge - The Global Champion Month</title><link href="http://www.solberg.is/30-day-challenge-the-global-champion-month.html" rel="alternate"></link><updated>2011-09-04T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-09-04:/30-day-challenge-the-global-champion-month.html/</id><summary type="html">&lt;p&gt;Just short of a year ago I partook in a quasi-global movement nicknamed The Global Champion Month. This year I am helping out by designing and building the official website. Last year the event was coordinated by some friends of mine and I was one of many who attempted to live by the ways of a true champion. No alcohol, waking up early, eating 90% paleo and training the hardest I've ever done. Most people presented their progress in a blog diary of some sort. It was a true community effort that inspired many more people to try a similar challenge.&lt;/p&gt;
&lt;p&gt;Every weekday I woke up at 6:30, grabbed a fruit and showed up at a local CrossFit gym. The mornings became a routine that defined the rest of the day. Doing a crushing workout and devouring a healthy breakfast before sunrise seems to secrete some sort of champion hormone to the rest of your body. Ones mind and body is ready for challenges. It was a completely new experience for me.&lt;/p&gt;
&lt;p&gt;Eating the way you've evolved to eat had many surprising side effects. The most notable was an even blood sugar. The blood sugar crashes I was accustomed to went away. Heartburn was gone as well, but best of all, when the month finished I knew a ton about nutrition and my own responses. Cleaning up a diet and adding foods back in slowly should be the first order of business if you haven't done so.&lt;/p&gt;
&lt;p&gt;22 November we're launching the next Champion Month challenge and everyone's invited. It's still an Icelandic affair, but hit us with a mention on &lt;a href="http://twitter.com/meistaramanudur"&gt;Twitter&lt;/a&gt; to let us know if you're interested.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URL: &lt;a href="http://www.globalchampionmonth.com/"&gt;globalchampionmonth.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Twitter: &lt;a href="http://twitter.com/meistaramanudur"&gt;@meistaramanudur&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</summary></entry><entry><title>The API Culture</title><link href="http://www.solberg.is/the-api-culture.html" rel="alternate"></link><updated>2011-09-03T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-09-03:/the-api-culture.html/</id><summary type="html">&lt;p&gt;Modern publishing platforms have great API's these days. Some are in their second incarnation, which in internet terms is "we've learned a lot from previous mistakes". Tumblr, Instagram, Twitter and even niche apps like &lt;a href="http://substance.io/"&gt;Substance.io&lt;/a&gt; have similarly powerful programmable interfaces. The community building and consuming these API's has agreed on some rules in design and implementation. It's not unlike the formation of a culture with fau pax, rules, breaking of rules, good citizens etc. I'm tempted to think "ecosystem" is a more apt term.&lt;/p&gt;
&lt;p&gt;I'm frequently on the consumption side of these relationships and I can appreciate the new standards. Switching between API's focuses my cognitive load towards the business differences of each service, as opposed to the awkwardness of the API. We're slowly but surely moving towards an age where API's are transparent layers&lt;sup&gt;1&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;The Web 2.0 promise was always to be able to mash together different services into a whole. Sort of like the Unix philosophy of having small and sturdy specialized units, and other "meta" tools to string them together to create more specialized functions. I believe we are finally entering that age online, and it means the death of the generic site CMS. &lt;/p&gt;
&lt;p&gt;For a recent site build I pulled together these services on one HTML page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5 photos from a hashtag on &lt;strong&gt;Instagram&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;5 posts from a &lt;strong&gt;Tumblr&lt;/strong&gt; blog&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Facebook&lt;/strong&gt; login to see participants&lt;sup&gt;2&lt;/sup&gt; from your social network&lt;/li&gt;
&lt;li&gt;A tweet from the respective &lt;strong&gt;Twitter&lt;/strong&gt; account&lt;/li&gt;
&lt;li&gt;2 fonts from &lt;strong&gt;TypeKit&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;.. and an &lt;strong&gt;Analytics&lt;/strong&gt; tracking code for good measure&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The only API that relied on backend code was the Facebook login, but that's only because I wanted to log all registrants in a database. Everything else was achieved with asynchronous API calls and none of it feels rickety. And amazingly the page load is fine because I've managed to load most of my assets and API calls asynchronously.&lt;/p&gt;
&lt;p&gt;What's funny is that some of these API's have been around for client side consumption for a long time. But none of this had me interested until I moved to Backbone and CoffeeScript. These two are pretty much essential when writing JavaScript at this level IMHO. Before I discovered them I could not bring myself to write this logic in jQuery spaghetti, instead relying on backend Python code with all the caching and duplication it needed. &lt;sup&gt;3&lt;/sup&gt;&lt;/p&gt;
&lt;h3&gt;A Note on Content Strategy&lt;/h3&gt;
&lt;p&gt;Fetching the human authored content from the browser side is a dramatic shift in web application architecture. Not only do you get the full power of specialized publishing platforms along with the social networking features, but the programming is less tedious with the right tools at hand. It also encourages developers to adapt to modern interface design, being so close to the interaction layer. Not knowing JavaScript could no longer be an option for web developers.&lt;/p&gt;
&lt;h3&gt;The Future of Web Development&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://twitter.com/joehewitt/status/108341258602299395"&gt;joehewitt&lt;/a&gt;: 
The new way I'm making web apps is you don't get to 
author an HTML file. The "page" is just a JS file. 
Static markup is pointless now.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We should narrow the distinction between &lt;em&gt;apps&lt;/em&gt; and &lt;em&gt;sites&lt;/em&gt; to nothing. But I'm with you Joe. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE 12/9/2011&lt;/strong&gt; &lt;a href="http://rsms.me/2011/09/10/dropular-net-tech.html"&gt;Check out Rasmus' take on the API culture, and rolling his own for client side consumption&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;small&gt;The REST architecture, while not being the one and only transport standard, has become an industry standard. This is fortunate, because the tools are ubiquitous and probably the most well understood spec around. &lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;small&gt;The site referenced here, for the curious is &lt;a href="http://www.globalchampionmonth.com/"&gt;Global Champion Month&lt;/a&gt;&lt;/small&gt;&lt;/li&gt;
&lt;li&gt;&lt;small&gt;Just see how &lt;a href="https://gist.github.com/1191695"&gt;simple it is&lt;/a&gt; to pull in a Tumblr blog.&lt;/small&gt;&lt;/li&gt;
&lt;/ol&gt;</summary></entry><entry><title>A welcome addition to the feed reader</title><link href="http://www.solberg.is/a-welcome-addition-to-the-feed-reader.html" rel="alternate"></link><updated>2011-08-17T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-08-17:/a-welcome-addition-to-the-feed-reader.html/</id><summary type="html">&lt;p&gt;SplatF is making a big splash in the tech journalism blogosphere. &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Microsoft’s Windows Phone 7, for example, isn’t much of an alternative. It’s a decent operating system, but it isn’t much of a platform ecosystem at all."&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;via &lt;a href="http://www.splatf.com/2011/08/google-motorola-android/?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+splatf+%28SplatF%29"&gt;SplatF&lt;/a&gt;&lt;/p&gt;</summary></entry><entry><title>Designing the corporate website pt. II</title><link href="http://www.solberg.is/designing-the-corporate-website-pt-ii.html" rel="alternate"></link><updated>2011-08-17T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-08-17:/designing-the-corporate-website-pt-ii.html/</id><summary type="html">&lt;p&gt;For a recent design we decided to purposely ignore two out of three customer groups for the front page design. I will keep this trick in mind for future jobs. The message was clearer, and the groups left out were not ignored totally. Sometimes it is better to perceive a message not directed and tailored to you.&lt;/p&gt;
&lt;p&gt;When you haven't identified your goal your message isn't going to be clear. Even worse, if you don't know who you are talking to the message will be seriously mangled and confusing. Just like in real life in fact. A segmented customer base can't all be addressed at the same time. Dell.com's front page still has links for "Small &amp;amp; Medium Business", "Home" and something they've decided to call "Outlet". I can't think of a reason to differentiate a computer products lineup like this. The overall message has further negative connotations because it suggests that Dell really doesn't understand "me". Maybe I'm a developer working from home and my computer needs to be smack in between small business and home. Where's my place in the site hierarchy?&lt;/p&gt;</summary></entry><entry><title>Designing the corporate website</title><link href="http://www.solberg.is/designing-the-corporate-website.html" rel="alternate"></link><updated>2011-08-13T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-08-13:/designing-the-corporate-website.html/</id><summary type="html">&lt;p&gt;Today I saw a great example of web design at &lt;a href="http://feefighters.com/"&gt;FeeFighters.com&lt;/a&gt;. Fee Fighters is a startup with a very focused product. Some of the pros: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Their site can afford putting that one solution in the spotlight. &lt;/li&gt;
&lt;li&gt;They've got clear CTA's (call to action). &lt;/li&gt;
&lt;li&gt;The screenshots are carefully picked so you know what to expect if you buy in. &lt;/li&gt;
&lt;li&gt;Testemonials are from people that have a voice in the industry. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Startups have it easy when it comes to web design. Make a pretty web version of the elevator speech. Larger companies with a portfolio of solutions have a harder time presenting themselves online. Here are some common reasons I can think of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They don't make a conversion online (their sales are offline, possibly business to business), hence the CTA's are unclear or unexciting. &lt;/li&gt;
&lt;li&gt;The customer segmentation is so great that the tone of voice and language is all over the place.&lt;/li&gt;
&lt;li&gt;Their marketing budget is big. Big marketing budgets have a tendency to create lofty messages. The "create a better world" campaign gets the spotlight and doesn't do anyone any favors.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Unlike a typical startup there is no competent internal tech team to manage the site. They're probably running one of those crappy CMS's too, and the e-commerce part is hosted as a seperate solution making it even harder to integrate the right elements at the right places in the design.&lt;/p&gt;</summary></entry><entry><title>Your medium sized business' website</title><link href="http://www.solberg.is/your-medium-sized-business-website.html" rel="alternate"></link><updated>2011-07-22T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-07-22:/your-medium-sized-business-website.html/</id><summary type="html">&lt;p&gt;As the technical lead for a creative agency I oversee many corporate website designs. We are often asked which CMS to pick. I believe the tools we currently know as CMS's are faulty and prohibit good practices and aesthetics.&lt;/p&gt;
&lt;h3&gt;"We must be able to update everything"&lt;/h3&gt;
&lt;p&gt;Clients have varying requirements. Part of our job is to realize what requirements make sense. We have to balance out technical obstacles, billings and the clients' priorities. From the design angle, we are responsible for delivering a design that does not require the client to commit time and resources to updates, unless it's worthwhile. Some news sections are updated every few months. The design of a website governs it's content strategy. Most clients ask us for a CMS that can update everything. We must explain at what cost that would come, short term and long term.&lt;/p&gt;
&lt;h3&gt;First time visitors vs. Returning visitors&lt;/h3&gt;
&lt;p&gt;In order to get returning visitors, you must give them a reason to come back. People only come back if they believe there is something new and attractive going on. Even then they would probably prefer to be &lt;strong&gt;notified&lt;/strong&gt; of updates instead of estimating the frequency of updates and making a mental note to return at a suitable moment in time. Hence we have the success of newsletters, Twitter and Facebook fan pages. &lt;/p&gt;
&lt;p&gt;I suggest the general guideline to make the best possible &lt;em&gt;first impression&lt;/em&gt;. For most clients putting this on top will produce a web site that has the longest lifetime. If your message and content strategy has a realistic chance at building a base of repeat visitors use a platform that is suited for such content. This could be a product development blog, some cheeky Tweets or a newsletter for your most loyal fans. In any case, a CMS is not going to cover your needs. The current breed of blogging platforms allow you to customize templates and host on a domain of your choice. Tumblr and Posterous both offer these features free of charge. They're almost certain to have a better interface then your CMS blog module. Stick your blog on blog.yourbrand.com, ask your agency to provide a custom look and theme. Voila. No training required, and a medium the visitor &lt;strong&gt;gets&lt;/strong&gt; right away.&lt;/p&gt;
&lt;h3&gt;Only update your website manually once a year ...&lt;/h3&gt;
&lt;p&gt;... and do it through an agency. Let your pages be crafted presentations with just the right tone and a lifetime. Your website is too important to let the CMS butcher it.&lt;/p&gt;
&lt;h3&gt;But a CMS can't hurt can it?&lt;/h3&gt;
&lt;p&gt;It constrains the design. Any time a designer has to ask "why can't the breakfast menu be split into columns" or "why can't the illustration cover the top section" it calls for a compromise. Pick the choice that leaves the best first impression.&lt;/p&gt;</summary></entry><entry><title>Introduction</title><link href="http://www.solberg.is/introduction.html" rel="alternate"></link><updated>2011-07-14T00:00:00Z</updated><author><name>Jökull Sólberg Auðunsson</name></author><id>tag:www.solberg.is,2011-07-14:/introduction.html/</id><summary type="html">&lt;p&gt;I have enjoyed Tweeting for some time, and more frequently I find myself wanting to express myself beyond the character limit. My fear is that in the future I will look back at these posts and shake my head in disbelief at how stupid my ideas were and how poorly I communicated them. Then I am reminded of Ira Glass' thoughts on &lt;strong&gt;taste&lt;/strong&gt; and not quite getting to where you want to be artistically and professionally at first. His point was that, just this fact, that the creator frustrates over the imperfections and revealing flaws, shows that the creator knows where he &lt;em&gt;wants&lt;/em&gt; to be. &lt;/p&gt;
&lt;p&gt;I am going to be choosing my words too carefully, then not carefully enough. I am going to be too brief, then too wordy. I am going for grandiose when I should be going for humor and wit. I am going to repeat myself when the point has already been made all too well.&lt;/p&gt;</summary></entry></feed>
