<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en"><title type="text">Aki Björklund</title><link rel="alternate" type="text/html" href="http://akibjorklund.com" /><subtitle type="html">a blog about web development</subtitle><updated>2009-12-02T13:03:39+00:00</updated><generator>http://wordpress.org/?v=2.9.1</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><feedburner:info uri="satunnainenbjorklund" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://satunnainenbjorklund.net/feed/" /><feedburner:emailServiceId>satunnainenbjorklund</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><entry><title type="text">Position on an Axis: my new blog</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/satunnainenbjorklund/~3/uf4dmOcD_BU/position-on-an-axis-my-new-blog" /><category term="lang:en" /><author><name>Aki Björklund</name></author><updated>2009-11-17T12:50:50-08:00</updated><id>http://akibjorklund.com/?p=2185</id><summary type="html">This blog is not dead, yet. I am trying to agree with myself on a schedule that I can realistically follow. I will write some posts in the buffer before I can begin with that.
While I do that however, you might also like my new sideblog titled Position on an Axis (feed) at an address [...]</summary><content type="html">&lt;p&gt;This blog is not dead, yet. I am trying to agree with myself on a schedule that I can realistically follow. I will write some posts in the buffer before I can begin with that.&lt;/p&gt;
&lt;p&gt;While I do that however, you might also like &lt;a href="http://xposit.org"&gt;my new sideblog titled Position on an Axis&lt;/a&gt; (&lt;a href="http://feeds.feedburner.com/PositionOnAnAxis"&gt;feed&lt;/a&gt;) at an address that my longest-time readers probably remember. That blog is about a lot of things among the familiar web development related ones, but with a more personal touch. One might say it has a lot lower threshold for publish. I hope that makes it more interesting and entertaining.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/uf4dmOcD_BU" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://akibjorklund.com/2009/position-on-an-axis-my-new-blog/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://akibjorklund.com/2009/position-on-an-axis-my-new-blog</feedburner:origLink></entry><entry><title type="text">Best books on web development?</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/satunnainenbjorklund/~3/C0D-B8i31Dc/best-books-on-web-development" /><category term="lang:en" /><category term="agile" /><category term="analytics" /><category term="books" /><category term="Designing With Web Standards" /><category term="development" /><category term="learning" /><category term="object-oriented programming" /><category term="performance" /><category term="productivity" /><category term="REST" /><category term="RESTful Web Services" /><category term="usability" /><category term="web design" /><category term="web development" /><category term="web standards" /><category term="writing for the web" /><author><name>Aki Björklund</name></author><updated>2009-10-18T12:15:30-07:00</updated><id>http://akibjorklund.com/?p=2143</id><summary type="html">I&amp;#8217;m thinking of building a definitive list of books on web development. Software development in general should not be forgotten, but the focus of the list would be in great web software development.
Only the best books would be listed so that the list could serve as an educational tool. This is why I am asking your [...]</summary><content type="html">&lt;p&gt;I&amp;#8217;m thinking of building a definitive list of books on web development. Software development in general should not be forgotten, but the focus of the list would be in great &lt;em&gt;web&lt;/em&gt; software development.&lt;/p&gt;
&lt;p&gt;Only the best books would be listed so that the list could serve as an educational tool. This is why I am asking your help.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What are your favorites?&lt;/strong&gt; Let me know in the comments! Books on specific server-side technologies are fine too, the list will be categorized.&lt;/p&gt;
&lt;p&gt;Without too much thought, here is a short list of 20 books to get you started:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0596529260/akibjor-20"&gt;RESTful Web Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0735619670/akibjor-20"&gt;Code Complete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0789723107/akibjor-20"&gt;Don&amp;#8217;t Make Me Think!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0321616952/akibjor-20"&gt;Designing with Web Standards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0123694868/akibjor-20"&gt;Letting Go of the Words&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0470130652/akibjor-20"&gt;Web Analytics: An Hour a Day&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0596529309/akibjor-20"&gt;High Performance Web Sites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/020161622X/akibjor-20"&gt;The Pragmatic Programmer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0321346939/akibjor-20"&gt;Bulletproof Web Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0321350316/akibjor-20"&gt;Prioritizing Web Usability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0596519788/akibjor-20"&gt;The Productive Programmer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/1934356050/akibjor-20"&gt;Pragmatic Thinking and Learning: Refactor Your Wetware&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/097451408X/akibjor-20"&gt;Practices of an Agile Developer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0132350882/akibjor-20"&gt;Clean Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0130676349/akibjor-20"&gt;Agile Software Development with Scrum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0321278658/akibjor-20"&gt;Extreme Programming Explained&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0201485672/akibjor-20"&gt;Refactoring: Improving the Design of Existing Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0321413091/akibjor-20"&gt;Implementation Patterns&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0131479415/akibjor-20"&gt;Agile Estimating and Planning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.amazon.com/exec/obidos/ASIN/0735619654/akibjor-20"&gt;Object Thinking&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The last 10 books suggested by &lt;a href="http://samipoimala.com/it/"&gt;Sami Poimala&lt;/a&gt;, thanks! (I now have to actually read all those.)&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/C0D-B8i31Dc" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://akibjorklund.com/2009/best-books-on-web-development/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">12</slash:comments><feedburner:origLink>http://akibjorklund.com/2009/best-books-on-web-development</feedburner:origLink></entry><entry><title type="text">A website is never done</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/satunnainenbjorklund/~3/cZ2-pdUV-Lk/never-done" /><category term="lang:en" /><category term="business" /><category term="learning" /><category term="project management" /><category term="web development" /><author><name>Aki Björklund</name></author><updated>2009-09-02T04:35:08-07:00</updated><id>http://akibjorklund.com/?p=1817</id><summary type="html">On a recent post in that I warned against multi-vendor web projects. I ended with a claim:
A website is never done. It should be constantly analyzed and developed further. Perfection is a forever moving target. Don’t try to nail everything at once.

This is a serious issue. Even more serious is that it is generally very [...]</summary><content type="html">&lt;p&gt;On a recent post in that &lt;a href="http://akibjorklund.com/2009/trap"&gt;I warned against multi-vendor web projects&lt;/a&gt;. I ended with a claim:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;A website is never done.&lt;/strong&gt; It should be constantly analyzed and developed further. Perfection is a forever moving target. Don’t try to nail everything at once.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is a serious issue. Even more serious is that it is generally very hard to find a vendor that can actually deliver something like that.&lt;/p&gt;
&lt;p&gt;Why?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Consultancies are organized around delivering projects.&lt;/strong&gt; They have little or no organization to actually continuously develop websites with high quality. Sure, there is maintenance people, but that is often an afterthought and only activated if the client is asking for changes. When selling more to an existing client, sales people unsurprisingly put their effort into selling big projects, not small incremental upgrades.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Web development must not be done in two to four year cycles when everything gets ripped down periodically. That is just insane use of money and in most cases PageRank.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;There should be a symbiosis where technical people feed the client with new ideas&lt;/strong&gt; concerning content (organization of, new types of, better cross-linking etc.) and techies get challenged daily by the continuously changing environment.&lt;/p&gt;
&lt;p&gt;One reason for this kind of behavior is that good developers demand to build cool new things and that is what the company then sells.&lt;/p&gt;
&lt;p&gt;Even more alarming is that continuous development is generally considered being something lowly. Sure, many of the tasks are not that challenging or sexy.&lt;/p&gt;
&lt;p&gt;But.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I spent years on my previous job practically developing a single site.&lt;/strong&gt; Not once I felt it was something unworthy of me. Not once I felt bored.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It taught me unbelievable amount things that now make me respected at my current job.&lt;/strong&gt; Why? &lt;strong&gt;I had to solve real-life problems, not just problems that aroused during the requirements or the design phase.&lt;/strong&gt; To solve those kind of problems cleanly, I &lt;em&gt;really&lt;/em&gt; had to know the domain.&lt;/p&gt;
&lt;h3&gt;Developers should sell small improvements directly&lt;/h3&gt;
&lt;p&gt;Keeping it small requires that no sales people and preferably no project managers are involved.&lt;/p&gt;
&lt;p&gt;Developer makes a well argued proposal with an estimated amount of hours of work and the client accepts or abandons it. Client gets billed on actual hours worked, not by the estimation.&lt;/p&gt;
&lt;p&gt;This of course requires a contract of some kind. But after that is done, &lt;strong&gt;selling costs are rapidly approaching zero&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This kind of arrangement must be based on a mutual trust or otherwise it will not work. I believe this could work with all but the smallest sites and clients, not just with the biggest.&lt;/p&gt;
&lt;p&gt;Clients should reserve a budget beforehand for these kind of small incremental improvements. Maybe build a little less features in the initial phase and add more as there is real-life understanding of how the site is actually used?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Developers will be happier when they have their own child to look after and more influence over their work.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This results into better websites for sure.&lt;/strong&gt; Maybe it costs a little more, but the site should bring in more money too. If not, you are probably not basing your decision making on measurable metrics.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/cZ2-pdUV-Lk" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://akibjorklund.com/2009/never-done/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">6</slash:comments><feedburner:origLink>http://akibjorklund.com/2009/never-done</feedburner:origLink></entry><entry><title type="text">Web developers’ areas of expertise</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/satunnainenbjorklund/~3/twDvMau3jog/areas-of-expertise" /><category term="lang:en" /><category term="learning" /><category term="skills" /><category term="web development" /><category term="web standards" /><author><name>Aki Björklund</name></author><updated>2009-08-08T12:30:37-07:00</updated><id>http://akibjorklund.com/?p=1013</id><summary type="html">What should a web developer know? More about web or plain programming? I believe it is often far more valuable to know the domain really, really well than it is to be highly skilled in programming.
Web developer&amp;#8217;s development skills can be divided into three categories:

Open web technologies and practices
Server side web technologies
Generic technologies and development [...]</summary><content type="html">&lt;p&gt;What should a web developer know? More about web or plain programming? I believe it is often far more valuable to know the domain really, really well than it is to be highly skilled in programming.&lt;/p&gt;
&lt;p&gt;Web developer&amp;#8217;s development skills can be divided into three categories:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open web technologies and practices&lt;/li&gt;
&lt;li&gt;Server side web technologies&lt;/li&gt;
&lt;li&gt;Generic technologies and development techniques&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is my incomplete list of things that every web developer should know about the web:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;HTML&lt;/dt&gt;
&lt;dd&gt;What is the purpose of HTML&lt;/dd&gt;
&lt;dd&gt;What is semantic HTML&lt;/dd&gt;
&lt;dd&gt;All the common elements and their attributes&lt;/dd&gt;
&lt;dd&gt;What is the Doctype and what does it do&lt;/dd&gt;
&lt;dd&gt;HTML vs. XHTML, what are the practical differences&lt;/dd&gt;
&lt;dd&gt;HTML5 philosophy and major new additions&lt;/dd&gt;
&lt;dt&gt;CSS&lt;/dt&gt;
&lt;dd&gt;Selectors and their browser implementation statuses&lt;/dd&gt;
&lt;dd&gt;Basics: &lt;code&gt;margin&lt;/code&gt;, &lt;code&gt;padding&lt;/code&gt;, &lt;code&gt;border&lt;/code&gt;: the box model&lt;/dd&gt;
&lt;dd&gt;Positioning with &lt;code&gt;float&lt;/code&gt;, &lt;code&gt;position&lt;/code&gt;&lt;/dd&gt;
&lt;dd&gt;Some experience in building a simple layout in pure CSS&lt;/dd&gt;
&lt;dd&gt;The difference between quirksmode and the standards mode&lt;/dd&gt;
&lt;dd&gt;General understanding of CSS levels 1–3 and their implementation status in browsers&lt;/dd&gt;
&lt;dt&gt;JavaScript&lt;/dt&gt;
&lt;dd&gt;Deep understanding of the language&lt;/dd&gt;
&lt;dd&gt;Progressive enhancement&lt;/dd&gt;
&lt;dd&gt;jQuery experience&lt;/dd&gt;
&lt;dd&gt;Ajax and JSON basics&lt;/dd&gt;
&lt;dd&gt;Browser manipulation: URL, cookies, etc.&lt;/dd&gt;
&lt;dt&gt;HTTP&lt;/dt&gt;
&lt;dd&gt;What does a HTTP request consists of&lt;/dd&gt;
&lt;dd&gt;Common response codes and their proper use&lt;/dd&gt;
&lt;dd&gt;How cookies work, what are their limitations?&lt;/dd&gt;
&lt;dd&gt;How to read and debug HTTP traffic&lt;/dd&gt;
&lt;dd&gt;Cache control&lt;/dd&gt;
&lt;dd&gt;Statelessness and how to fake it (and why not to fake it)&lt;/dd&gt;
&lt;dt&gt;URI&lt;/dt&gt;
&lt;dd&gt;What is the difference between URL, URI, and IRI&lt;/dd&gt;
&lt;dd&gt;How is URI structured&lt;/dd&gt;
&lt;dd&gt;How and when to use the query string&lt;/dd&gt;
&lt;dd&gt;How does the hash (fragment) work&lt;/dd&gt;
&lt;dd&gt;Cool URIs don&amp;#8217;t change&lt;/dd&gt;
&lt;dt&gt;Browsers&lt;/dt&gt;
&lt;dd&gt;Browsers current market share&lt;/dd&gt;
&lt;dd&gt;Browser differences&lt;/dd&gt;
&lt;dd&gt;Browser quirks (IE)&lt;/dd&gt;
&lt;dd&gt;Browsers current and future standards&amp;#8217; implementations and other features&lt;/dd&gt;
&lt;dt&gt;DOM&lt;/dt&gt;
&lt;dd&gt;What is DOM and why does it exits&lt;/dd&gt;
&lt;dd&gt;How to view DOM&lt;/dd&gt;
&lt;dd&gt;Standard API to modify with JavaScript&lt;/dd&gt;
&lt;dt&gt;DNS&lt;/dt&gt;
&lt;dd&gt;How does it work and how browsers use it&lt;/dd&gt;
&lt;dd&gt;How to use the hosts file&lt;/dd&gt;
&lt;dt&gt;Usability&lt;/dt&gt;
&lt;dd&gt;Focus on simplicity&lt;/dd&gt;
&lt;dd&gt;Usable forms&lt;/dd&gt;
&lt;dd&gt;Writing for the web&lt;/dd&gt;
&lt;dt&gt;Accessibility&lt;/dt&gt;
&lt;dd&gt;What is it and why is it important?&lt;/dd&gt;
&lt;dd&gt;Accessible forms&lt;/dd&gt;
&lt;dd&gt;Accessible navigation&lt;/dd&gt;
&lt;dd&gt;WCAG&lt;/dd&gt;
&lt;dt&gt;SEO&lt;/dt&gt;
&lt;dd&gt;Why title is an important element&lt;/dd&gt;
&lt;dd&gt;Link economy&lt;/dd&gt;
&lt;dd&gt;Canonical URLs&lt;/dd&gt;
&lt;dd&gt;Every page is linked to with normal links&lt;/dd&gt;
&lt;dt&gt;Security&lt;/dt&gt;
&lt;dd&gt;XSS&lt;/dd&gt;
&lt;dd&gt;CSRF&lt;/dd&gt;
&lt;dt&gt;Miscellaneous&lt;/dt&gt;
&lt;dd&gt;Web feeds (RSS and Atom)&lt;/dd&gt;
&lt;dd&gt;RESTful web development&lt;/dd&gt;
&lt;dd&gt;XML&lt;/dd&gt;
&lt;dd&gt;XSL, XPath&lt;/dd&gt;
&lt;dd&gt;Overview of W3C standards and other web standards&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;I probably did not think of everything, so feel free to add your suggestions in the comments.&lt;/p&gt;
&lt;p&gt;In addition to that list, you should of course know enough about the server side technologies too. Know thoroughly at least the programming language, web framework, your database of choice, SQL as a language, something about scalability and performance, security basics and so on. Learning will not end on this side either.&lt;/p&gt;
&lt;p&gt;Useful generic technologies and development techniques include writing readable code, designing highly reusable object-oriented software, agile methodologies… I won&amp;#8217;t try to make a comprehensive list here.&lt;/p&gt;
&lt;h3&gt;Where to&amp;#160;focus?&lt;/h3&gt;
&lt;p&gt;More often than not a programmer focuses on programming only. That often results into unusable or otherwise bad websites. Web is a domain like no other. Of course, developing in any other platform will be much more effective if you know the domain.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Focusing your learning efforts on open web technologies gives you several benefits:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first benefit of focusing on the open web technologies is your &lt;strong&gt;agility to switch platforms&lt;/strong&gt;. The more you know about the web, the easier and faster it is to start developing in a new web development platform, from switching CMS&amp;#8217;s to a massive leap of one technology stack to another. There is also less of a vendor lock-in, which gives more options for your career.&lt;/p&gt;
&lt;p&gt;Second, your &lt;strong&gt;ability to work efficiently with web designers grows&lt;/strong&gt;. You are able to deliver solutions that make their work easier.&lt;/p&gt;
&lt;p&gt;Third, &lt;strong&gt;the complete solution is likely to be much more web oriented&lt;/strong&gt; and thus a better one.&lt;/p&gt;
&lt;p&gt;Fourth, you learn something that tends to be &lt;strong&gt;more long-lived knowledge than typical vendor-specific technologies&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;It never&amp;#160;ends&lt;/h3&gt;
&lt;p&gt;No wonder most of us feel sometimes a bit anxious about all the things we have to learn. And when we do learn, it is mostly rendered useless after a couple of years.&lt;/p&gt;
&lt;p&gt;A developer is never out of school.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/twDvMau3jog" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://akibjorklund.com/2009/areas-of-expertise/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">5</slash:comments><feedburner:origLink>http://akibjorklund.com/2009/areas-of-expertise</feedburner:origLink></entry><entry><title type="text">Recommended reading</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/satunnainenbjorklund/~3/nrNiR74CgQI/recommended-reading" /><category term="lang:en" /><category term="meta" /><author><name>Aki Björklund</name></author><updated>2009-07-24T02:40:27-07:00</updated><id>http://akibjorklund.com/?p=1732</id><summary type="html">I made a list of blog posts I have written over the years that I think are still worth reading. For now, the list is pretty short on posts in English, but if you speak Finnish, it is worth visiting.
Check it out, if you think you might have missed something.</summary><content type="html">&lt;p&gt;I made a &lt;a href="/recommended-reading"&gt;list of blog posts&lt;/a&gt; I have written over the years that I think are still worth reading. For now, the list is pretty short on posts in English, but if you speak Finnish, it is worth visiting.&lt;/p&gt;
&lt;p&gt;Check it out, if you think you might have missed something.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/nrNiR74CgQI" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://akibjorklund.com/2009/recommended-reading/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://akibjorklund.com/2009/recommended-reading</feedburner:origLink></entry><entry><title type="text">The trap of multiple vendors in website design and development</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/satunnainenbjorklund/~3/zcqzughc1wU/trap" /><category term="lang:en" /><category term="advertising agencies" /><category term="business" /><category term="web development" /><author><name>Aki Björklund</name></author><updated>2009-07-23T07:51:11-07:00</updated><id>http://akibjorklund.com/?p=1739</id><summary type="html">Summary: If you have a big or important website to build, do not – under any circumstances – built it using multiple vendors.
Problem: Your company needs a website of some kind and you have not enough resources or expertise to build it yourself.
So you want to hire a company that does that sort of things. [...]</summary><content type="html">&lt;p&gt;&lt;strong&gt;Summary: If you have a big or important website to build, do not – under any circumstances – built it using multiple vendors.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Problem: Your company needs a website of some kind and you have not enough resources or expertise to build it yourself.&lt;/p&gt;
&lt;p&gt;So you want to hire a company that does that sort of things. What general options are there and what are their strengths and weaknesses?&lt;/p&gt;
&lt;p&gt;The three general types of companies that could help are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Advertising agency
&lt;li&gt;Web consulting company
&lt;li&gt;General technology consulting company
&lt;/ol&gt;
&lt;p&gt;Here is a little table that tries to capture their pros and cons:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;Competence&lt;/th&gt;
&lt;th scope="col"&gt;Advertising agency&lt;/th&gt;
&lt;th scope="col"&gt;Web consultant&lt;/th&gt;
&lt;th scope="col"&gt;Technology consultant&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th scope="row"&gt;General technology&lt;/th&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th scope="row"&gt;Web technology&lt;/th&gt;
&lt;td&gt;Medium/low&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Medium/low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th scope="row"&gt;Web domain&lt;/th&gt;
&lt;td&gt;Medium/low&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th scope="row"&gt;Web strategy&lt;/th&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th scope="row"&gt;General marketing&lt;/th&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th scope="row"&gt;Visual design&lt;/th&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Medium/high&lt;/td&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This is of course a very simplistic and subjective table. There are always exceptions and individual differences. Many companies cannot be put into these categories.&lt;/p&gt;
&lt;p&gt;The choice is pretty easy if you need a simple website and can make compromises.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It gets harder if you need, say, a visually stunning website with a scalable back-end.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What do companies usually do in these situations (and sadly, often when they do not actually need to)? They buy the specification work from one company, visual design from another, and the actual implementation from a third company. In the specification or the visual design phase there usually is not yet an understanding what the technology platform will be.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This leads to multiple problems&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Communicating design decisions becomes extremely time-consuming and error-prone.&lt;/li&gt;
&lt;li&gt;The implementation will cost a lot because the limits of the platform cannot be taken into consideration beforehand.&lt;/li&gt;
&lt;li&gt;Developers and designers get unhappy because their chances of making a difference is lower.&lt;/li&gt;
&lt;li&gt;The probability of success is lower – the forced waterfall model does not easily allow correction of mistakes made in the beginning of the project.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So basically: you will have a website that has some weaknesses (from a single vendor) – or you will own a generally bad website that cannot be fixed easily (from multiple vendors).&lt;/p&gt;
&lt;p&gt;So what do I suggest?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You find a single company that has the best record of delivering great websites in all areas that matter to you.&lt;/strong&gt; Usually that is a company, that specializes to web development and design. Remember that a lot can be fixed afterward, but it is harder, if the basic design decisions were wrong. Money should be reserved for that too. The more players there were in the development for the website, the more the corrective measures will probably cost.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A website is never done.&lt;/strong&gt; It should be constantly analyzed and developed further. Perfection is a forever moving target. Don&amp;#8217;t try to nail everything at once.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/zcqzughc1wU" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://akibjorklund.com/2009/trap/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">3</slash:comments><feedburner:origLink>http://akibjorklund.com/2009/trap</feedburner:origLink></entry><entry><title type="text">From this post on: only in English</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/satunnainenbjorklund/~3/7DFlcFuWIbg/in-english" /><category term="lang:en" /><category term="language" /><category term="meta" /><author><name>Aki Björklund</name></author><updated>2009-07-17T00:49:04-07:00</updated><id>http://akibjorklund.com/?p=1511</id><summary type="html">I have been blogging for about 6 years now. In that time, I have only blogged in English a couple of times.
It is time for that to change.
I have no other motivation behind the change than to practice my written English. I certainly don&amp;#8217;t hope to get a much wider audience. Even thou I would [...]</summary><content type="html">&lt;p&gt;I have been blogging for about 6 years now. In that time, I have only blogged in English a couple of times.&lt;/p&gt;
&lt;p&gt;It is time for that to change.&lt;/p&gt;
&lt;p&gt;I have no other motivation behind the change than to practice my written English. I certainly don&amp;#8217;t hope to get a much wider audience. Even thou I would have no objections, should that ever happen.&lt;/p&gt;
&lt;p&gt;I would also ask you to comment in English from now on. I know, that will at first seem like a bit stupid, mostly Finns discussing in English. But, after a short period, that feeling went away in Twitter too.&lt;/p&gt;
&lt;p&gt;I obviously will not be translating the older posts, but the tags I will (&lt;a href="/2009/530-tagia-greasemonkey" hreflang="fi"&gt;again&lt;/a&gt;). The UI is mostly translated into English by now. Anything else I should be considering?&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/7DFlcFuWIbg" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://akibjorklund.com/2009/in-english/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://akibjorklund.com/2009/in-english</feedburner:origLink></entry><entry><title type="text">SuperGenPass is not that secure</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/satunnainenbjorklund/~3/vIbGT_0F6vo/supergenpass-is-not-that-secure" /><category term="lang:en" /><category term="passwords" /><category term="security" /><category term="SuperGenPass" /><author><name>Aki Björklund</name></author><updated>2009-07-16T12:38:55-07:00</updated><id>http://akibjorklund.com/?p=1497</id><summary type="html">Update: SuperGenPass vulnerability demo for people that don&amp;#8217;t believe me. 
I know, I have recommended that you use SuperGenPass for several times. It took a long time, but I finally realized there is a serious security flaw in the root of the implementation.
The SuperGenPass UI is rendered within the DOM of the current page when [...]</summary><content type="html">&lt;p&gt;&lt;ins&gt;Update: &lt;a href="/files/2009/10/supergenpass-vulnerability-demo.html"&gt;SuperGenPass vulnerability demo&lt;/a&gt; for people that don&amp;#8217;t believe me.&lt;/ins&gt; &lt;/p&gt;
&lt;p&gt;I know, I have recommended that you use &lt;a href="http://supergenpass.com/"&gt;SuperGenPass&lt;/a&gt; for &lt;a hreflang="fi" href="/2008/yksi-salasana"&gt;several&lt;/a&gt; &lt;a hreflang="fi" href="/2009/supergenpass-a-free-bookmarklet-password-generator"&gt;times&lt;/a&gt;. It took a long time, but I finally realized there is a serious security flaw in the root of the implementation.&lt;/p&gt;
&lt;p&gt;The SuperGenPass UI is rendered within the DOM of the current page when you click the bookmarklet. The UI is where you enter your master password. And because the UI is part of the current page, any script running in the page can read your master password. Remember that script can be external too, as in advertisements or widgets of some kind.&lt;/p&gt;
&lt;p&gt;It if safe to say that using SuperGenPass is not that different from using the same password for every site. It just has a little bit different issues.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you use the same password everywhere&lt;/strong&gt;: When a site gets compromised in a way that the attacker can read the user account information, your account in every site can be compromised – depending on how the site stores their passwords.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you use SuperGenPass on a site that is compromised&lt;/strong&gt;: Your master password can get stolen and thus, your account in every site &lt;em&gt;is&lt;/em&gt; compromised.&lt;/p&gt;
&lt;p&gt;The difference is in the way site gets compromised. Something as common as a cross-site scripting attack will get your master password in jeopardy.&lt;/p&gt;
&lt;p&gt;Fortunately, &lt;strong&gt;there is a safe way&lt;/strong&gt; to use SuperGenPass. Just visit a page you absolutely trust not to have any unauthorized script running. Generate your password within that page by manually entering the domain name that you are trying to log in to. Then copy &amp;amp; paste it into the login form. Cumbersome, but it works.&lt;/p&gt;
&lt;p&gt;At this point, &lt;strong&gt;I would not recommend SGP to anyone but security experts&lt;/strong&gt;.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/vIbGT_0F6vo" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://akibjorklund.com/2009/supergenpass-is-not-that-secure/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">30</slash:comments><feedburner:origLink>http://akibjorklund.com/2009/supergenpass-is-not-that-secure</feedburner:origLink></entry><entry><title type="text">“Free” as in “free beer,” not as in “free speech”</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/satunnainenbjorklund/~3/ExxWtEvROkg/free-as-in-free-beer-not-as-in-free-speech" /><category term="lang:en" /><category term="Apple" /><category term="books" /><category term="Chris Anderson" /><category term="Free" /><category term="ilmainen" /><category term="iPhone" /><category term="iPod touch" /><category term="iTunes Store" /><category term="Kindle" /><author><name>Aki Björklund</name></author><updated>2009-07-16T10:29:34-07:00</updated><id>http://akibjorklund.com/?p=1486</id><summary type="html">Chris Anderson&amp;#8217;s latest book, &amp;#8220;Free&amp;#8221; is free on Amazon to download for the Kindle or the Kindle app on the iPhone or iPod touch.
Or is it? No, sorry, to access it you need the Kindle (not available outside United States) or the Kindle app. If you try to download the app from the iTunes Store [...]</summary><content type="html">&lt;p&gt;Chris Anderson&amp;#8217;s latest book, &lt;a href="http://www.amazon.com/Free-ebook/dp/B002DYJR4G/ref=sr_1_1?ie=UTF8&amp;amp;s=digital-text&amp;amp;qid=1247689100&amp;amp;sr=1-1"&gt;&amp;#8220;Free&amp;#8221; is free on Amazon&lt;/a&gt; to download for the Kindle or the Kindle app on the iPhone or iPod touch.&lt;/p&gt;
&lt;p&gt;Or is it? No, sorry, to access it you need the Kindle (not available outside United States) or the Kindle app. If you try to download the app from the iTunes Store without an appropriate account, it says:&lt;/p&gt;
&lt;p&gt;&lt;img src="/files/2008/08/valid-account1.png" alt="iTunes dialog: Your account is only valid for purchases in the Finnish iTunes Store. Clicking OK will take you to this store." width="570" height="242" class="aligncenter size-full wp-image-1466 osxscreenshot" /&gt;&lt;/p&gt;
&lt;p&gt;But I am not purchasing anything! I am simply trying to download a free piece of software! To access a free piece of content. And I am not allowed to do that in a disrespectful way.&lt;/p&gt;
&lt;p&gt;Way to go, Amazon, Apple and Chris Anderson!&lt;/p&gt;
&lt;p&gt;Free is also an ideology. Don&amp;#8217;t forget that.&lt;/p&gt;
&lt;img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/ExxWtEvROkg" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://akibjorklund.com/2009/free-as-in-free-beer-not-as-in-free-speech/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">6</slash:comments><feedburner:origLink>http://akibjorklund.com/2009/free-as-in-free-beer-not-as-in-free-speech</feedburner:origLink></entry><entry><title type="text">Mitä Digg aikoo ja ei aio tehdä IE6-käyttäjille</title><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Sxh5etfZ1vo/mita-digg-aikoo-ja-ei-aio-tehda-ie6-kayttajille" /><category term="Syndicated" /><category term="lang:en" /><category term="hreflang:en" /><author><name>Aki Björklund</name></author><updated>2009-07-13T06:44:20-07:00</updated><id>http://delicious.com/url/d21638ae33a480b153b0c25e07f9c4b3#canuse</id><summary type="html">Diggin blogi toteaa tutkimuksensa perusteella, ettei kaksi kolmesta IE6-käyttäjistä yksinkertaisesti voi päivittää. &amp;#34;Giving them a message saying, “Hey! Upgrade!” in this case is not only pointless; it’s sadistic.&amp;#34;</summary><content type="html">&lt;p&gt;Diggin blogi toteaa tutkimuksensa perusteella, ettei kaksi kolmesta IE6-käyttäjistä yksinkertaisesti voi päivittää.&lt;/p&gt;
&lt;blockquote lang="en"&gt;&lt;p&gt;Giving them a message saying, “Hey! Upgrade!” in this case is not only pointless; it’s sadistic.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Sxh5etfZ1vo" height="1" width="1"/&gt;</content><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://akibjorklund.com/2009/mita-digg-aikoo-ja-ei-aio-tehda-ie6-kayttajille/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://akibjorklund.com/2009/mita-digg-aikoo-ja-ei-aio-tehda-ie6-kayttajille</feedburner:origLink></entry></feed>
