• Info

    Mediablogit.com-sivustolla näet yhdellä silmäyksellä mitä media- ja markkinointiblogeissa tänään puhutaan. Tagien avulla löydät kirjoituksia kiinnostavista aiheista pitkältäkin aikaväliltä.

    RSS Twitter Facebook

There may be a bug in FeedWordPress. Please contact the author and paste the following information into your e-mail:

Triggered at line # 624 FeedWordPress version: 2010.0127 MagpieRSS version: 2010.0122 WordPress version: 8641 PHP version: 5.3.10 SyndicatedPost::insert_new::_wp_id: array(3) { ["$this->_wp_id"]=> int(0) ["$dbpost"]=> array(17) { ["post_title"]=> string(26) "★ VR arpoo lähtöaikoja" ["post_content"]=> string(1357) "<p>Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. </p> <p><iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/hnY4tXJnwvk\" frameborder=\"0\" allowfullscreen></iframe></p> <p>Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö.</p> <p>Kyseessä ei ole edes mikään uusi löytö. Ongelma on raportoitu jo kohua herättäneessä <a href=\"http://www.userpoint.fi/reports/vr_verkkokauppa_kaytettavyysarvio.php\">User Pointin käytettävyysarviossa</a> (sivun 40 lopussa).</p> <p>Panee miettimään, että miksi ensimmäisellä sivulla mitään valintaa edes on, jos sitä ei lainkaan kunnioiteta.</p> <p>Panee myös miettimään, kuinka moni on mennyt samaan ansaan. Ainakin minun kahteen kertaan maksetulla matkallani käytävän toisella puolella istui matkustaja, joka oli tehnyt saman virheen.</p> <p>No, <em>jotenkin</em> ne uudistukseen hukatut rahat on saatava takaisin.</p> <img src=\"http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Q9xz9Z-xcM4\" height=\"1\" width=\"1\"/>" ["post_excerpt"]=> string(501) "Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö. Kyseessä ei ole edes mikään uusi löytö. [...]" ["epoch"]=> array(3) { ["issued"]=> int(1331725349) ["created"]=> NULL ["modified"]=> int(1331725349) } ["post_date"]=> string(19) "2012-03-14 14:42:29" ["post_modified"]=> string(19) "2012-03-14 14:42:29" ["post_date_gmt"]=> string(19) "2012-03-14 11:42:29" ["post_modified_gmt"]=> string(19) "2012-03-14 11:42:29" ["post_status"]=> string(7) "publish" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(6) "closed" ["guid"]=> string(31) "http://akibjorklund.com/?p=3266" ["meta"]=> array(7) { ["syndication_source"]=> string(14) "Aki Björklund" ["syndication_source_uri"]=> string(23) "http://akibjorklund.com" ["wfw:commentRSS"]=> string(54) "http://akibjorklund.com/2012/vr-arpoo-lahtoaikoja/feed" ["syndication_feed"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["syndication_feed_id"]=> string(2) "15" ["syndication_permalink"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Q9xz9Z-xcM4/vr-arpoo-lahtoaikoja" ["syndication_item_hash"]=> string(32) "377cbe86e38b773d568e6f0568ba156a" } ["tags_input"]=> array(3) { [0]=> string(0) "" [1]=> string(7) "lang:fi" [2]=> string(14) "käytettävyys" } ["post_author"]=> int(903) ["post_category"]=> array(3) { [0]=> int(816) [1]=> int(238) [2]=> int(68) } ["post_pingback"]=> bool(false) } ["$this"]=> object(SyndicatedPost)#568 (10) { ["item"]=> array(46) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(26) "★ VR arpoo lähtöaikoja" ["link#"]=> int(1) ["link"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Q9xz9Z-xcM4/vr-arpoo-lahtoaikoja" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Q9xz9Z-xcM4/vr-arpoo-lahtoaikoja" ["category#"]=> int(2) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(14) "käytettävyys" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2012-03-14T04:42:29-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3266" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(501) "Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö. Kyseessä ei ole edes mikään uusi löytö. [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1341) "<p>Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. </p> <p><iframe width="420" height="315" src="http://www.youtube.com/embed/hnY4tXJnwvk" frameborder="0" allowfullscreen></iframe></p> <p>Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö.</p> <p>Kyseessä ei ole edes mikään uusi löytö. Ongelma on raportoitu jo kohua herättäneessä <a href="http://www.userpoint.fi/reports/vr_verkkokauppa_kaytettavyysarvio.php">User Pointin käytettävyysarviossa</a> (sivun 40 lopussa).</p> <p>Panee miettimään, että miksi ensimmäisellä sivulla mitään valintaa edes on, jos sitä ei lainkaan kunnioiteta.</p> <p>Panee myös miettimään, kuinka moni on mennyt samaan ansaan. Ainakin minun kahteen kertaan maksetulla matkallani käytävän toisella puolella istui matkustaja, joka oli tehnyt saman virheen.</p> <p>No, <em>jotenkin</em> ne uudistukseen hukatut rahat on saatava takaisin.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Q9xz9Z-xcM4" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(54) "http://akibjorklund.com/2012/vr-arpoo-lahtoaikoja/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(49) "http://akibjorklund.com/2012/vr-arpoo-lahtoaikoja" } ["modified#"]=> int(1) ["modified"]=> string(25) "2012-03-14T04:42:29-07:00" ["dc"]=> array(5) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(2) ["subject"]=> string(7) "lang:fi" ["subject#2"]=> string(14) "käytettävyys" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(501) "Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö. Kyseessä ei ole edes mikään uusi löytö. [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1341) "<p>Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. </p> <p><iframe width="420" height="315" src="http://www.youtube.com/embed/hnY4tXJnwvk" frameborder="0" allowfullscreen></iframe></p> <p>Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö.</p> <p>Kyseessä ei ole edes mikään uusi löytö. Ongelma on raportoitu jo kohua herättäneessä <a href="http://www.userpoint.fi/reports/vr_verkkokauppa_kaytettavyysarvio.php">User Pointin käytettävyysarviossa</a> (sivun 40 lopussa).</p> <p>Panee miettimään, että miksi ensimmäisellä sivulla mitään valintaa edes on, jos sitä ei lainkaan kunnioiteta.</p> <p>Panee myös miettimään, kuinka moni on mennyt samaan ansaan. Ainakin minun kahteen kertaan maksetulla matkallani käytävän toisella puolella istui matkustaja, joka oli tehnyt saman virheen.</p> <p>No, <em>jotenkin</em> ne uudistukseen hukatut rahat on saatava takaisin.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Q9xz9Z-xcM4" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["category#2"]=> string(14) "käytettävyys" ["date_timestamp"]=> int(1331725349) } ["link"]=> object(SyndicatedLink)#706 (4) { ["id"]=> string(2) "15" ["link"]=> object(stdClass)#555 (21) { ["link_id"]=> string(2) "15" ["link_url"]=> string(23) "http://akibjorklund.com" ["link_name"]=> string(14) "Aki Björklund" ["link_image"]=> string(0) "" ["link_target"]=> string(0) "" ["link_description"]=> string(14) "web generalist" ["link_visible"]=> string(1) "Y" ["link_owner"]=> string(1) "1" ["link_rating"]=> string(1) "0" ["link_updated"]=> string(19) "0000-00-00 00:00:00" ["link_rel"]=> string(0) "" ["link_notes"]=> string(3019) "cats: {#816}\n{#238}\n{#68} tags: feed/title#: 1 feed/title@: type,xml:base feed/title@type: text feed/title@xml:base: http://feeds.feedburner.com/satunnainenbjorklund feed/title: Aki Björklund feed/link#: 1 feed/link: http://akibjorklund.com feed/link@: rel,type,href feed/link@rel: alternate feed/link@type: text/html feed/link@href: http://akibjorklund.com feed/subtitle#: 1 feed/subtitle@: type,xml:base feed/subtitle@type: html feed/subtitle@xml:base: http://feeds.feedburner.com/satunnainenbjorklund feed/subtitle: web generalist feed/updated#: 1 feed/updated: 2012-05-01T09:20:24+00:00 feed/generator#: 1 feed/generator: http://wordpress.org/?v=3.3.2 feed/sy/updateperiod#: 1 feed/sy/updateperiod@: xmlns:sy feed/sy/updateperiod@xmlns:sy: http://purl.org/rss/1.0/modules/syndication/ feed/sy/updateperiod: hourly feed/sy/updatefrequency#: 1 feed/sy/updatefrequency@: xmlns:sy feed/sy/updatefrequency@xmlns:sy: http://purl.org/rss/1.0/modules/syndication/ feed/sy/updatefrequency: 1 feed/http://rssnamespace.org/feedburner/ext/1.0/info#: 1 feed/http://rssnamespace.org/feedburner/ext/1.0/info@: uri feed/http://rssnamespace.org/feedburner/ext/1.0/info@uri: satunnainenbjorklund feed/http://rssnamespace.org/feedburner/ext/1.0/emailserviceid#: 1 feed/http://rssnamespace.org/feedburner/ext/1.0/emailserviceid: satunnainenbjorklund feed/http://rssnamespace.org/feedburner/ext/1.0/feedburnerhostname#: 1 feed/http://rssnamespace.org/feedburner/ext/1.0/feedburnerhostname: http://feedburner.google.com feed/http://rssnamespace.org/feedburner/ext/1.0/browserfriendly#: 1 feed/http://rssnamespace.org/feedburner/ext/1.0/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. feed/link_hub#: 1 feed/link_hub: http://pubsubhubbub.appspot.com/ feed/link_hub@: xmlns:atom10,rel,href feed/link_hub@xmlns:atom10: http://www.w3.org/2005/Atom feed/link_hub@rel: hub feed/link_hub@href: http://pubsubhubbub.appspot.com/ feed/link_self#: 1 feed/link_self: http://satunnainenbjorklund.net/feed/ feed/link_self@: xmlns:atom10,rel,type,href feed/link_self@xmlns:atom10: http://www.w3.org/2005/Atom feed/link_self@rel: self feed/link_self@type: application/atom+xml feed/link_self@href: http://satunnainenbjorklund.net/feed/ feed/tagline#: 1 feed/tagline: web generalist feed/modified#: 1 feed/modified: 2012-05-01T09:20:24+00:00 feed/description#: 1 feed/description: web generalist feed/id: http://feeds.feedburner.com/satunnainenbjorklund update/last: 1337804418 update/ttl: 60 update/timed: feed update/hold: scheduled update/unfinished: no map authors: name\naki björklund\n21 update/processed: http://akibjorklund.com/?p=3276\nhttp://akibjorklund.com/?p=3266\nhttp://akibjorklund.com/?p=3175\nhttp://akibjorklund.com/?p=3162\nhttp://akibjorklund.com/?p=3156\nhttp://akibjorklund.com/?p=3121\nhttp://akibjorklund.com/?p=3070\nhttp://akibjorklund.com/?p=2932\nhttp://akibjorklund.com/?p=2969\nhttp://akibjorklund.com/?p=2899 " ["link_rss"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["object_id"]=> string(2) "15" ["term_taxonomy_id"]=> string(2) "15" ["term_order"]=> string(1) "0" ["term_id"]=> string(2) "14" ["taxonomy"]=> string(13) "link_category" ["description"]=> string(0) "" ["parent"]=> string(1) "0" ["count"]=> string(2) "77" } ["settings"]=> array(69) { ["cats"]=> array(3) { [0]=> string(6) "{#816}" [1]=> string(6) "{#238}" [2]=> string(5) "{#68}" } ["tags"]=> array(1) { [0]=> string(0) "" } ["feed/title#"]=> int(1) ["feed/title@"]=> string(13) "type,xml:base" ["feed/title@type"]=> string(4) "text" ["feed/title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["feed/title"]=> string(14) "Aki Björklund" ["feed/link#"]=> int(1) ["feed/link"]=> string(23) "http://akibjorklund.com" ["feed/link@"]=> string(13) "rel,type,href" ["feed/link@rel"]=> string(9) "alternate" ["feed/link@type"]=> string(9) "text/html" ["feed/link@href"]=> string(23) "http://akibjorklund.com" ["feed/subtitle#"]=> int(1) ["feed/subtitle@"]=> string(13) "type,xml:base" ["feed/subtitle@type"]=> string(4) "html" ["feed/subtitle@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["feed/subtitle"]=> string(14) "web generalist" ["feed/updated#"]=> int(1) ["feed/updated"]=> string(25) "2012-05-01T09:20:24+00:00" ["feed/generator#"]=> int(1) ["feed/generator"]=> string(29) "http://wordpress.org/?v=3.3.2" ["feed/sy/updateperiod#"]=> int(1) ["feed/sy/updateperiod@"]=> string(8) "xmlns:sy" ["feed/sy/updateperiod@xmlns:sy"]=> string(44) "http://purl.org/rss/1.0/modules/syndication/" ["feed/sy/updateperiod"]=> string(6) "hourly" ["feed/sy/updatefrequency#"]=> int(1) ["feed/sy/updatefrequency@"]=> string(8) "xmlns:sy" ["feed/sy/updatefrequency@xmlns:sy"]=> string(44) "http://purl.org/rss/1.0/modules/syndication/" ["feed/sy/updatefrequency"]=> string(1) "1" ["feed/http://rssnamespace.org/feedburner/ext/1.0/info#"]=> int(1) ["feed/http://rssnamespace.org/feedburner/ext/1.0/info@"]=> string(3) "uri" ["feed/http://rssnamespace.org/feedburner/ext/1.0/info@uri"]=> string(20) "satunnainenbjorklund" ["feed/http://rssnamespace.org/feedburner/ext/1.0/emailserviceid#"]=> int(1) ["feed/http://rssnamespace.org/feedburner/ext/1.0/emailserviceid"]=> string(20) "satunnainenbjorklund" ["feed/http://rssnamespace.org/feedburner/ext/1.0/feedburnerhostname#"]=> int(1) ["feed/http://rssnamespace.org/feedburner/ext/1.0/feedburnerhostname"]=> string(28) "http://feedburner.google.com" ["feed/http://rssnamespace.org/feedburner/ext/1.0/browserfriendly#"]=> int(1) ["feed/http://rssnamespace.org/feedburner/ext/1.0/browserfriendly"]=> string(138) "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." ["feed/link_hub#"]=> int(1) ["feed/link_hub"]=> string(32) "http://pubsubhubbub.appspot.com/" ["feed/link_hub@"]=> string(21) "xmlns:atom10,rel,href" ["feed/link_hub@xmlns:atom10"]=> string(27) "http://www.w3.org/2005/Atom" ["feed/link_hub@rel"]=> string(3) "hub" ["feed/link_hub@href"]=> string(32) "http://pubsubhubbub.appspot.com/" ["feed/link_self#"]=> int(1) ["feed/link_self"]=> string(37) "http://satunnainenbjorklund.net/feed/" ["feed/link_self@"]=> string(26) "xmlns:atom10,rel,type,href" ["feed/link_self@xmlns:atom10"]=> string(27) "http://www.w3.org/2005/Atom" ["feed/link_self@rel"]=> string(4) "self" ["feed/link_self@type"]=> string(20) "application/atom+xml" ["feed/link_self@href"]=> string(37) "http://satunnainenbjorklund.net/feed/" ["feed/tagline#"]=> int(1) ["feed/tagline"]=> string(14) "web generalist" ["feed/modified#"]=> int(1) ["feed/modified"]=> string(25) "2012-05-01T09:20:24+00:00" ["feed/description#"]=> int(1) ["feed/description"]=> string(14) "web generalist" ["feed/id"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["update/last"]=> int(1337809804) ["update/ttl"]=> int(60) ["update/timed"]=> string(4) "feed" ["update/hold"]=> string(9) "scheduled" ["update/unfinished"]=> string(3) "yes" ["map authors"]=> array(1) { ["name"]=> array(1) { ["aki björklund"]=> int(903) } } ["update/processed"]=> string(319) "http://akibjorklund.com/?p=3276 http://akibjorklund.com/?p=3266 http://akibjorklund.com/?p=3175 http://akibjorklund.com/?p=3162 http://akibjorklund.com/?p=3156 http://akibjorklund.com/?p=3121 http://akibjorklund.com/?p=3070 http://akibjorklund.com/?p=2932 http://akibjorklund.com/?p=2969 http://akibjorklund.com/?p=2899" ["link/uri"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["link/name"]=> string(14) "Aki Björklund" ["link/id"]=> string(2) "15" } ["magpie"]=> object(MagpieRSS)#561 (31) { ["parser"]=> resource(288) of type (Unknown) ["current_item"]=> array(0) { } ["items"]=> array(10) { [0]=> array(43) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(35) "★ Spesialistikoodari hätääntyy" ["link#"]=> int(1) ["link"]=> string(94) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/wxEjiSGUiaE/spesialistkoodari-hataantyy" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(94) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/wxEjiSGUiaE/spesialistkoodari-hataantyy" ["category#"]=> int(1) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2012-05-01T02:19:25-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3276" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(493) "Tuottava alusta on alusta, jolla saa entiseen verrattuna tehtyä asioita halvalla ja nopeasti, mutta kuitenkin riittävän laadukkaasti. Yhden teknologian spesialistikoodari hätääntyy, kun tuottava alusta kasvattaa suosiotaan. Hän haluaa todistaa tarpeellisuutensa. Spesialistikoodarin tehokkain ase tuottavia alustoja vastaan on sana arkkitehtuuri. Esimerkiksi: &#8220;Tuottavan alustan arkkitehtuuri on täysin paska. Tietoturvassa on aukkoja ja koodi on rumaa.&#8221; Hän unohtaa [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1513) "<p>Tuottava alusta on alusta, jolla saa entiseen verrattuna tehtyä asioita halvalla ja nopeasti, mutta kuitenkin riittävän laadukkaasti. Yhden teknologian spesialistikoodari hätääntyy, kun tuottava alusta kasvattaa suosiotaan. Hän haluaa todistaa tarpeellisuutensa.</p> <p>Spesialistikoodarin tehokkain ase tuottavia alustoja vastaan on sana arkkitehtuuri. Esimerkiksi: &#8220;Tuottavan alustan arkkitehtuuri on täysin paska. Tietoturvassa on aukkoja ja koodi on rumaa.&#8221; Hän unohtaa sujuvasti, että kaikessa koodissa on aukkoja ja että rumuus on subjektiivista. Arkkitehtuuri ei sitä paitsi tässä yhteydessä oikeastaan tarkoita mitään muuta kuin että koodarin kapeasta näkökulmasta asiat on tehty väärin. </p> <p>Arkkitehtuuriargumentti toimii, koska se on niin epämääräinen. Ja kuka muka voi tietää asiat paremmin kuin asiantuntija?</p> <p>Tuottavien alustojen sijaan spesialisti suosii alustoja, jossa riittää nysvättävää ja samoja asioita voi koodata yhä uudestaan yhä jännittävimmillä ja vaikeammilla tavoilla. On aivan sama, ratkooko hän oikeita ongelmia.</p> <p>Spesialistikoodari osaa ja tietää paljon yhä vähemmästä. Hän pureutuu syvemmälle esimerkiksi skaalautumisen ja tietoturvan problematiikkaan, vaikka nämä ovat jo ajat sitten lakanneet olemasta useimmille asiakkaille relevantteja ongelmia.</p> <p>Hän koodaa itseään, ei muita varten.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/wxEjiSGUiaE" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(61) "http://akibjorklund.com/2012/spesialistkoodari-hataantyy/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(56) "http://akibjorklund.com/2012/spesialistkoodari-hataantyy" } ["modified#"]=> int(1) ["modified"]=> string(25) "2012-05-01T02:19:25-07:00" ["dc"]=> array(4) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(1) ["subject"]=> string(7) "lang:fi" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(493) "Tuottava alusta on alusta, jolla saa entiseen verrattuna tehtyä asioita halvalla ja nopeasti, mutta kuitenkin riittävän laadukkaasti. Yhden teknologian spesialistikoodari hätääntyy, kun tuottava alusta kasvattaa suosiotaan. Hän haluaa todistaa tarpeellisuutensa. Spesialistikoodarin tehokkain ase tuottavia alustoja vastaan on sana arkkitehtuuri. Esimerkiksi: &#8220;Tuottavan alustan arkkitehtuuri on täysin paska. Tietoturvassa on aukkoja ja koodi on rumaa.&#8221; Hän unohtaa [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1513) "<p>Tuottava alusta on alusta, jolla saa entiseen verrattuna tehtyä asioita halvalla ja nopeasti, mutta kuitenkin riittävän laadukkaasti. Yhden teknologian spesialistikoodari hätääntyy, kun tuottava alusta kasvattaa suosiotaan. Hän haluaa todistaa tarpeellisuutensa.</p> <p>Spesialistikoodarin tehokkain ase tuottavia alustoja vastaan on sana arkkitehtuuri. Esimerkiksi: &#8220;Tuottavan alustan arkkitehtuuri on täysin paska. Tietoturvassa on aukkoja ja koodi on rumaa.&#8221; Hän unohtaa sujuvasti, että kaikessa koodissa on aukkoja ja että rumuus on subjektiivista. Arkkitehtuuri ei sitä paitsi tässä yhteydessä oikeastaan tarkoita mitään muuta kuin että koodarin kapeasta näkökulmasta asiat on tehty väärin. </p> <p>Arkkitehtuuriargumentti toimii, koska se on niin epämääräinen. Ja kuka muka voi tietää asiat paremmin kuin asiantuntija?</p> <p>Tuottavien alustojen sijaan spesialisti suosii alustoja, jossa riittää nysvättävää ja samoja asioita voi koodata yhä uudestaan yhä jännittävimmillä ja vaikeammilla tavoilla. On aivan sama, ratkooko hän oikeita ongelmia.</p> <p>Spesialistikoodari osaa ja tietää paljon yhä vähemmästä. Hän pureutuu syvemmälle esimerkiksi skaalautumisen ja tietoturvan problematiikkaan, vaikka nämä ovat jo ajat sitten lakanneet olemasta useimmille asiakkaille relevantteja ongelmia.</p> <p>Hän koodaa itseään, ei muita varten.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/wxEjiSGUiaE" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["date_timestamp"]=> int(1335863965) } [1]=> array(46) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(26) "★ VR arpoo lähtöaikoja" ["link#"]=> int(1) ["link"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Q9xz9Z-xcM4/vr-arpoo-lahtoaikoja" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Q9xz9Z-xcM4/vr-arpoo-lahtoaikoja" ["category#"]=> int(2) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(14) "käytettävyys" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2012-03-14T04:42:29-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3266" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(501) "Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö. Kyseessä ei ole edes mikään uusi löytö. [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1341) "<p>Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. </p> <p><iframe width="420" height="315" src="http://www.youtube.com/embed/hnY4tXJnwvk" frameborder="0" allowfullscreen></iframe></p> <p>Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö.</p> <p>Kyseessä ei ole edes mikään uusi löytö. Ongelma on raportoitu jo kohua herättäneessä <a href="http://www.userpoint.fi/reports/vr_verkkokauppa_kaytettavyysarvio.php">User Pointin käytettävyysarviossa</a> (sivun 40 lopussa).</p> <p>Panee miettimään, että miksi ensimmäisellä sivulla mitään valintaa edes on, jos sitä ei lainkaan kunnioiteta.</p> <p>Panee myös miettimään, kuinka moni on mennyt samaan ansaan. Ainakin minun kahteen kertaan maksetulla matkallani käytävän toisella puolella istui matkustaja, joka oli tehnyt saman virheen.</p> <p>No, <em>jotenkin</em> ne uudistukseen hukatut rahat on saatava takaisin.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Q9xz9Z-xcM4" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(54) "http://akibjorklund.com/2012/vr-arpoo-lahtoaikoja/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(49) "http://akibjorklund.com/2012/vr-arpoo-lahtoaikoja" } ["modified#"]=> int(1) ["modified"]=> string(25) "2012-03-14T04:42:29-07:00" ["dc"]=> array(5) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(2) ["subject"]=> string(7) "lang:fi" ["subject#2"]=> string(14) "käytettävyys" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(501) "Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö. Kyseessä ei ole edes mikään uusi löytö. [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1341) "<p>Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. </p> <p><iframe width="420" height="315" src="http://www.youtube.com/embed/hnY4tXJnwvk" frameborder="0" allowfullscreen></iframe></p> <p>Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö.</p> <p>Kyseessä ei ole edes mikään uusi löytö. Ongelma on raportoitu jo kohua herättäneessä <a href="http://www.userpoint.fi/reports/vr_verkkokauppa_kaytettavyysarvio.php">User Pointin käytettävyysarviossa</a> (sivun 40 lopussa).</p> <p>Panee miettimään, että miksi ensimmäisellä sivulla mitään valintaa edes on, jos sitä ei lainkaan kunnioiteta.</p> <p>Panee myös miettimään, kuinka moni on mennyt samaan ansaan. Ainakin minun kahteen kertaan maksetulla matkallani käytävän toisella puolella istui matkustaja, joka oli tehnyt saman virheen.</p> <p>No, <em>jotenkin</em> ne uudistukseen hukatut rahat on saatava takaisin.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Q9xz9Z-xcM4" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["category#2"]=> string(14) "käytettävyys" ["date_timestamp"]=> int(1331725349) } [2]=> array(55) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(45) "★ Löydettävyyden vaikutus olemattomuuteen" ["link#"]=> int(1) ["link"]=> string(75) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/OniWfoggfuI/olematon" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(75) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/OniWfoggfuI/olematon" ["category#"]=> int(5) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(6) "Eat.fi" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(7) "mobiili" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(27) "mukautuva verkkosuunnittelu" ["category#5@"]=> string(4) "term" ["category#5@term"]=> string(15) "web-analytiikka" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-07-07T23:38:19-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3175" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(597) "Postilaatikkoon tipahti Eat.fi:n tiedote: Eat.fi:n mobiilisovellukset suosittuja, verkkosivujen käyttö mobiililaitteilla olematonta Eat.fi-palvelua on voinut käyttää mobiililaitteilla, esimerkiksi mobiilioptimoidun verkkosivun kautta osoitteessa m.eat.fi jo vuodesta 2009. Tämän lisäksi palvelua on voinut käyttää myös erillisillä mobiililaitesovelluksilla. Sovellukset ovat tarjolla Applen iPhonelle, Android-puhelimille ja Nokian puhelimille. Tällä hetkellä palvelun mobiililaitteille optimoidun verkkosivun käyttö on erittäin vähäistä. &#8220;Mobiilisovellukset ovat [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(4618) "<p>Postilaatikkoon tipahti Eat.fi:n tiedote:</p> <blockquote cite="http://www.epressi.com/tiedote/lifestyle/eat.fin-mobiilisovellukset-suosittuja-verkkosivujen-kaytto-mobiililaitteilla-olematonta"> <h3>Eat.fi:n mobiilisovellukset suosittuja, verkkosivujen käyttö mobiililaitteilla olematonta</h3> <p>Eat.fi-palvelua on voinut käyttää mobiililaitteilla, esimerkiksi mobiilioptimoidun verkkosivun kautta osoitteessa m.eat.fi jo vuodesta 2009. Tämän lisäksi palvelua on voinut käyttää myös erillisillä mobiililaitesovelluksilla. Sovellukset ovat tarjolla Applen iPhonelle, Android-puhelimille ja Nokian puhelimille. Tällä hetkellä palvelun mobiililaitteille optimoidun verkkosivun käyttö on erittäin vähäistä.</p> <p>&#8220;Mobiilisovellukset ovat nopeasti kasvattaneet suosiotaan. Tällä hetkellä Eat.fi:n mobiililaitteille optimoitujen verkkosivujen käyttö on vähentynyt käytännössä olemattomaksi&#8221;, kertoo Tina Aspiala Eat.fi-palvelusta.</p> <footer><a href="http://www.epressi.com/tiedote/lifestyle/eat.fin-mobiilisovellukset-suosittuja-verkkosivujen-kaytto-mobiililaitteilla-olematonta">Koko lehdistötiedote ePressi.com-palvelussa</a></footer> </blockquote> <p><img src="http://akibjorklund.com/files/2011/07/m.eat_.fi_.jpg" alt="Ravintolanäkymä m.eat.fi:ssä" width="265" height="533" class="right" />Tiedote ei pureudu tämän syvemmälle olemattomuuden syihin. Mutta vierailemalla Eat.fi:ssä mobiililaitteella selviää yksi todennäköinen syy välittömästi. Mitään uudelleenohjausta m.eat.fi:hin ei tapahdu. Edes selkeää linkkiä mobiiliversioon ei ole tarjolla.</p> <p>Satunnaiset käyttäjät – he, jotka eivät (ainakaan vielä) ole nähneet tarpeelliseksi asentaa palvelun sovellusta puhelimeensa – hyötyisivät mobiiliversion löydettävyydestä merkittävästi.</p> <p>Sovelluksia ihastellessa unohtuu usein, että niiden asentaminen on monille edelleen sen verran iso kynnys, että mikäli ei ole täysin sitoutunut käyttäjä, jää se helposti tekemättä. Sitä paitsi sovelluskauppojen selaaminen ei varmasti ole koko kansan iltahuvia. Eat.fi:llä epäilemättä on iso uskollinen käyttäjäkunta, joka sovelluksen on jo asentanut. En silti usko, että kaikkia potentiaalisia käyttäjiä on vielä saatu asentamaan sovellusta.</p> <p>Mobiiliversion välittömän käyttäjäpotentiaalin voi tarkistaa varsin helposti Google Analyticsista mobiililaiteraporteista. Mikäli se on Eat.fi:n mainitseman 40 000 viikkotason eri kävijän massasta yhtään merkittävä osuus, kannattaisi asialle tehdä jotain. Tyypillisesti mobiiliprosentti huitelee jossain viiden prosentin tienoilla ja on kovassa kasvussa.</p> <p>Miten sitten Eat.fi voisi toimia parantaakseen tilannetta? Yksinkertaista:</p> <ol> <li>Toteutetaan Eat.fi:hin yksinkertainen laitetunnistus, joka uudelleenohjaa merkittävimmät mobiililaittet automaattisesti m.eat.fi:hin. <li>Lisätään Eat.fi:hin selkeä linkki mobiiliversioon, aivan sivun alkuun. Näin tunnistamatta jääneiltäkin laitteilta on mahdollista löytää mobiiliversio. <li>Lisätään m.eat.fi:hin selkeä linkki takaisin täysversioon. Koska mobiiliversio on toiminnoiltaan typistetty ja poikkeava, on tarjottava myös täysversiota sitä haluaville. <li>Lisätään m.eat.fi:hin tietoa sovellusten latausmahdollisuuksista (kohdennettuna käyttäjän laitteen mukaan, jos se tunnistetaan). </ol> <p>Uudelleenohjauksissa ja linkityksissä on huomioitava, että viittaukset tehdään suoraan vastaavaan sisältöön toisessa versiossa eikä vain kylmästi etusivulle. Ja kun kyseessä on teknisesti kaksi eri versiota, on myös pidettävä huolta, että karsittukin versio todella osaa näyttää sisällön. Ainakin <a href="http://xposit.org/post/4180798523/hesarin-kaikkia-sivuja-ei-voi-katsella">Hs.fi:llä oli tällaisia ongelmia</a>.</p> <p>(Tätä ongelmaa ei tule <a href="http://danielkoskinen.com/fi/2011/mukautuvaa-verkkosuunnittelua/">mukautuvassa verkkosuunnittelussa</a>, mutta se ei sovellusmaiseen Eat.fi:hin välttämättä ole sovellettavissa eikä varsinkaan ratkaise tätä sinänsä pientä ongelmaa kustannustehokkaasti.)</p> <p>Näillä pienillä toimilla saataisiin mobiiliversiolle isompi käyttäaste, palveltaisiin satunnaisia käyttäjiä paremmin ja ohjattaisiin satunnaisia käyttäjiä säännöllisemmiksi sovellusten käyttäjiksi.</p> <p>Mobiilisaitin käyttöaste saattaa muutosten jälkeenkin säilyä olemattomana, mutta ainakaan se ei ole enää löydettävyydestä kiinni.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/OniWfoggfuI" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(42) "http://akibjorklund.com/2011/olematon/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(37) "http://akibjorklund.com/2011/olematon" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-07-07T23:38:19-07:00" ["dc"]=> array(8) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(5) ["subject"]=> string(7) "lang:fi" ["subject#2"]=> string(6) "Eat.fi" ["subject#3"]=> string(7) "mobiili" ["subject#4"]=> string(27) "mukautuva verkkosuunnittelu" ["subject#5"]=> string(15) "web-analytiikka" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(597) "Postilaatikkoon tipahti Eat.fi:n tiedote: Eat.fi:n mobiilisovellukset suosittuja, verkkosivujen käyttö mobiililaitteilla olematonta Eat.fi-palvelua on voinut käyttää mobiililaitteilla, esimerkiksi mobiilioptimoidun verkkosivun kautta osoitteessa m.eat.fi jo vuodesta 2009. Tämän lisäksi palvelua on voinut käyttää myös erillisillä mobiililaitesovelluksilla. Sovellukset ovat tarjolla Applen iPhonelle, Android-puhelimille ja Nokian puhelimille. Tällä hetkellä palvelun mobiililaitteille optimoidun verkkosivun käyttö on erittäin vähäistä. &#8220;Mobiilisovellukset ovat [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(4618) "<p>Postilaatikkoon tipahti Eat.fi:n tiedote:</p> <blockquote cite="http://www.epressi.com/tiedote/lifestyle/eat.fin-mobiilisovellukset-suosittuja-verkkosivujen-kaytto-mobiililaitteilla-olematonta"> <h3>Eat.fi:n mobiilisovellukset suosittuja, verkkosivujen käyttö mobiililaitteilla olematonta</h3> <p>Eat.fi-palvelua on voinut käyttää mobiililaitteilla, esimerkiksi mobiilioptimoidun verkkosivun kautta osoitteessa m.eat.fi jo vuodesta 2009. Tämän lisäksi palvelua on voinut käyttää myös erillisillä mobiililaitesovelluksilla. Sovellukset ovat tarjolla Applen iPhonelle, Android-puhelimille ja Nokian puhelimille. Tällä hetkellä palvelun mobiililaitteille optimoidun verkkosivun käyttö on erittäin vähäistä.</p> <p>&#8220;Mobiilisovellukset ovat nopeasti kasvattaneet suosiotaan. Tällä hetkellä Eat.fi:n mobiililaitteille optimoitujen verkkosivujen käyttö on vähentynyt käytännössä olemattomaksi&#8221;, kertoo Tina Aspiala Eat.fi-palvelusta.</p> <footer><a href="http://www.epressi.com/tiedote/lifestyle/eat.fin-mobiilisovellukset-suosittuja-verkkosivujen-kaytto-mobiililaitteilla-olematonta">Koko lehdistötiedote ePressi.com-palvelussa</a></footer> </blockquote> <p><img src="http://akibjorklund.com/files/2011/07/m.eat_.fi_.jpg" alt="Ravintolanäkymä m.eat.fi:ssä" width="265" height="533" class="right" />Tiedote ei pureudu tämän syvemmälle olemattomuuden syihin. Mutta vierailemalla Eat.fi:ssä mobiililaitteella selviää yksi todennäköinen syy välittömästi. Mitään uudelleenohjausta m.eat.fi:hin ei tapahdu. Edes selkeää linkkiä mobiiliversioon ei ole tarjolla.</p> <p>Satunnaiset käyttäjät – he, jotka eivät (ainakaan vielä) ole nähneet tarpeelliseksi asentaa palvelun sovellusta puhelimeensa – hyötyisivät mobiiliversion löydettävyydestä merkittävästi.</p> <p>Sovelluksia ihastellessa unohtuu usein, että niiden asentaminen on monille edelleen sen verran iso kynnys, että mikäli ei ole täysin sitoutunut käyttäjä, jää se helposti tekemättä. Sitä paitsi sovelluskauppojen selaaminen ei varmasti ole koko kansan iltahuvia. Eat.fi:llä epäilemättä on iso uskollinen käyttäjäkunta, joka sovelluksen on jo asentanut. En silti usko, että kaikkia potentiaalisia käyttäjiä on vielä saatu asentamaan sovellusta.</p> <p>Mobiiliversion välittömän käyttäjäpotentiaalin voi tarkistaa varsin helposti Google Analyticsista mobiililaiteraporteista. Mikäli se on Eat.fi:n mainitseman 40 000 viikkotason eri kävijän massasta yhtään merkittävä osuus, kannattaisi asialle tehdä jotain. Tyypillisesti mobiiliprosentti huitelee jossain viiden prosentin tienoilla ja on kovassa kasvussa.</p> <p>Miten sitten Eat.fi voisi toimia parantaakseen tilannetta? Yksinkertaista:</p> <ol> <li>Toteutetaan Eat.fi:hin yksinkertainen laitetunnistus, joka uudelleenohjaa merkittävimmät mobiililaittet automaattisesti m.eat.fi:hin. <li>Lisätään Eat.fi:hin selkeä linkki mobiiliversioon, aivan sivun alkuun. Näin tunnistamatta jääneiltäkin laitteilta on mahdollista löytää mobiiliversio. <li>Lisätään m.eat.fi:hin selkeä linkki takaisin täysversioon. Koska mobiiliversio on toiminnoiltaan typistetty ja poikkeava, on tarjottava myös täysversiota sitä haluaville. <li>Lisätään m.eat.fi:hin tietoa sovellusten latausmahdollisuuksista (kohdennettuna käyttäjän laitteen mukaan, jos se tunnistetaan). </ol> <p>Uudelleenohjauksissa ja linkityksissä on huomioitava, että viittaukset tehdään suoraan vastaavaan sisältöön toisessa versiossa eikä vain kylmästi etusivulle. Ja kun kyseessä on teknisesti kaksi eri versiota, on myös pidettävä huolta, että karsittukin versio todella osaa näyttää sisällön. Ainakin <a href="http://xposit.org/post/4180798523/hesarin-kaikkia-sivuja-ei-voi-katsella">Hs.fi:llä oli tällaisia ongelmia</a>.</p> <p>(Tätä ongelmaa ei tule <a href="http://danielkoskinen.com/fi/2011/mukautuvaa-verkkosuunnittelua/">mukautuvassa verkkosuunnittelussa</a>, mutta se ei sovellusmaiseen Eat.fi:hin välttämättä ole sovellettavissa eikä varsinkaan ratkaise tätä sinänsä pientä ongelmaa kustannustehokkaasti.)</p> <p>Näillä pienillä toimilla saataisiin mobiiliversiolle isompi käyttäaste, palveltaisiin satunnaisia käyttäjiä paremmin ja ohjattaisiin satunnaisia käyttäjiä säännöllisemmiksi sovellusten käyttäjiksi.</p> <p>Mobiilisaitin käyttöaste saattaa muutosten jälkeenkin säilyä olemattomana, mutta ainakaan se ei ole enää löydettävyydestä kiinni.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/OniWfoggfuI" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["category#2"]=> string(6) "Eat.fi" ["category#3"]=> string(7) "mobiili" ["category#4"]=> string(27) "mukautuva verkkosuunnittelu" ["category#5"]=> string(15) "web-analytiikka" ["date_timestamp"]=> int(1310107099) } [3]=> array(52) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(34) "★ Luettua: Responsive Web Design" ["link#"]=> int(1) ["link"]=> string(96) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/NkxRG_dZdfE/luettua-responsive-web-design" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(96) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/NkxRG_dZdfE/luettua-responsive-web-design" ["category#"]=> int(4) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(14) "Ethan Marcotte" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(17) "responsive design" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(10) "web design" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-06-20T05:19:42-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3162" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(487) "Responsive Web Design on Ethan Marcotten tuore, lyhyt, mutta asiapitoinen kirja siitä, kuinka rakentaa verkkosivuja, jotka eivät ole sidottuja tiettyyn pikselileveyteen. Kirjassa on viisi lukua: ensimmäisessä perustellaan responsiivisen suunnittelun ajatusta. Seuraavat kolme lukua käsittelevät kukin yhden kolmesta perusrakennuspalikasta: joustavat gridit, joustavat kuvat ja media queryt. Keskimmäisen luvun ydinosat ovat luettavissa A List Apartin artikkelista. Viimeinen [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1742) "<p><a href="http://www.abookapart.com/products/responsive-web-design">Responsive Web Design</a> on <a href="http://unstoppablerobotninja.com/">Ethan Marcotten</a> tuore, lyhyt, mutta asiapitoinen kirja siitä, kuinka rakentaa verkkosivuja, jotka eivät ole sidottuja tiettyyn pikselileveyteen.</p> <p>Kirjassa on viisi lukua: ensimmäisessä perustellaan responsiivisen suunnittelun ajatusta. Seuraavat kolme lukua käsittelevät kukin yhden kolmesta perusrakennuspalikasta: joustavat gridit, joustavat kuvat ja media queryt. Keskimmäisen luvun <a href="http://www.alistapart.com/articles/fluid-images/">ydinosat ovat luettavissa A List Apartin artikkelista</a>. Viimeinen luku käsittelee joitain yksityiskohtia ja työprosessien muutoksia. Yllättävää kyllä mobile first -ajattelu tuodaan mukaan vasta tässä vaiheessa.</p> <p>Kun lähtee tekemään responsiivista suunnittelua, huomaa nopeasti, että tarvitaan myös responsiivinen julkaisujärjestelmä ja responsiivista sisältöäkin. Nämä alueet on pientä mainintaa lukuun ottamatta jätetty kirjan ulkopuolelle, mikä on osaltaan harmi, mutta toisaalta riippuvat hyvin paljon taustateknologista, itse sivustosta ja sen sisällöstä. Ehkä näistä aiheista onkin sitten kirjoitettava teknologiakohtaiset opukset.</p> <p>Noin 150 sivua sisältävä kirja ei ole ainakaan liian raskas paketti, vaan sen kahlaa läpi muutamassa tunnissa. Yhdeksän dollarin hintaan ei kannata jäädä pohtimaan sijoittaako moista summaa sähköiseen versioon. Kirja on teknisestä fokuksestaan huolimatta pakollista luettavaa kaikille verkkopalveluiden suunnittelijoille ja kehittäjille.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/NkxRG_dZdfE" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(63) "http://akibjorklund.com/2011/luettua-responsive-web-design/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "1" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(58) "http://akibjorklund.com/2011/luettua-responsive-web-design" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-06-20T05:19:42-07:00" ["dc"]=> array(7) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(4) ["subject"]=> string(7) "lang:fi" ["subject#2"]=> string(14) "Ethan Marcotte" ["subject#3"]=> string(17) "responsive design" ["subject#4"]=> string(10) "web design" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(487) "Responsive Web Design on Ethan Marcotten tuore, lyhyt, mutta asiapitoinen kirja siitä, kuinka rakentaa verkkosivuja, jotka eivät ole sidottuja tiettyyn pikselileveyteen. Kirjassa on viisi lukua: ensimmäisessä perustellaan responsiivisen suunnittelun ajatusta. Seuraavat kolme lukua käsittelevät kukin yhden kolmesta perusrakennuspalikasta: joustavat gridit, joustavat kuvat ja media queryt. Keskimmäisen luvun ydinosat ovat luettavissa A List Apartin artikkelista. Viimeinen [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1742) "<p><a href="http://www.abookapart.com/products/responsive-web-design">Responsive Web Design</a> on <a href="http://unstoppablerobotninja.com/">Ethan Marcotten</a> tuore, lyhyt, mutta asiapitoinen kirja siitä, kuinka rakentaa verkkosivuja, jotka eivät ole sidottuja tiettyyn pikselileveyteen.</p> <p>Kirjassa on viisi lukua: ensimmäisessä perustellaan responsiivisen suunnittelun ajatusta. Seuraavat kolme lukua käsittelevät kukin yhden kolmesta perusrakennuspalikasta: joustavat gridit, joustavat kuvat ja media queryt. Keskimmäisen luvun <a href="http://www.alistapart.com/articles/fluid-images/">ydinosat ovat luettavissa A List Apartin artikkelista</a>. Viimeinen luku käsittelee joitain yksityiskohtia ja työprosessien muutoksia. Yllättävää kyllä mobile first -ajattelu tuodaan mukaan vasta tässä vaiheessa.</p> <p>Kun lähtee tekemään responsiivista suunnittelua, huomaa nopeasti, että tarvitaan myös responsiivinen julkaisujärjestelmä ja responsiivista sisältöäkin. Nämä alueet on pientä mainintaa lukuun ottamatta jätetty kirjan ulkopuolelle, mikä on osaltaan harmi, mutta toisaalta riippuvat hyvin paljon taustateknologista, itse sivustosta ja sen sisällöstä. Ehkä näistä aiheista onkin sitten kirjoitettava teknologiakohtaiset opukset.</p> <p>Noin 150 sivua sisältävä kirja ei ole ainakaan liian raskas paketti, vaan sen kahlaa läpi muutamassa tunnissa. Yhdeksän dollarin hintaan ei kannata jäädä pohtimaan sijoittaako moista summaa sähköiseen versioon. Kirja on teknisestä fokuksestaan huolimatta pakollista luettavaa kaikille verkkopalveluiden suunnittelijoille ja kehittäjille.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/NkxRG_dZdfE" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["category#2"]=> string(14) "Ethan Marcotte" ["category#3"]=> string(17) "responsive design" ["category#4"]=> string(10) "web design" ["date_timestamp"]=> int(1308572382) } [4]=> array(55) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(48) "Reusing the fastest TCP connections on Firefox 5" ["link#"]=> int(1) ["link"]=> string(67) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/gHc48QfLpAg/" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(67) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/gHc48QfLpAg/" ["category#"]=> int(5) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:en" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(7) "Firefox" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(11) "hreflang:en" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(9) "HttpWatch" ["category#5@"]=> string(4) "term" ["category#5@term"]=> string(11) "performance" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-06-11T00:10:01-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3156" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(532) "HttpWatch blog: One of the major performance related changes in Firefox 5 is an improvement in the way that keep-alive HTTP connections are re-used. Previously, there was a simple FIFO queue. So if Firefox ever tried to reuse a TCP connection it would simply use the connection that had been idle for the longest period [...]<p><a href="http://akibjorklund.com/2011/reusing-the-fastest-tcp-connetions-on-firefox-5" rel="bookmark" title="Permanent link to 'Reusing the fastest TCP connections on Firefox 5'" class="glyph">★</a></p>" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(920) "<p>HttpWatch blog:</p> <blockquote><p>One of the major performance related changes in Firefox 5 is an improvement in the way that keep-alive HTTP connections are re-used. Previously, there was a simple FIFO queue. So if Firefox ever tried to reuse a TCP connection it would simply use the connection that had been idle for the longest period of time.</p> <p>However, not all connections are equal. Connections that have transmitted the most data are likely to be faster than those that have only received a small amount of data. This effect is caused by the congestion window mechanism in TCP.</p> </blockquote> <p><a href="http://akibjorklund.com/2011/reusing-the-fastest-tcp-connetions-on-firefox-5" rel="bookmark" title="Permanent link to 'Reusing the fastest TCP connections on Firefox 5'" class="glyph">★</a></p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/gHc48QfLpAg" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(81) "http://akibjorklund.com/2011/reusing-the-fastest-tcp-connetions-on-firefox-5/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(88) "http://blog.httpwatch.com/2011/06/10/investigating-the-network-performance-of-firefox-5/" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-06-11T00:10:01-07:00" ["dc"]=> array(8) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(5) ["subject"]=> string(7) "lang:en" ["subject#2"]=> string(7) "Firefox" ["subject#3"]=> string(11) "hreflang:en" ["subject#4"]=> string(9) "HttpWatch" ["subject#5"]=> string(11) "performance" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(532) "HttpWatch blog: One of the major performance related changes in Firefox 5 is an improvement in the way that keep-alive HTTP connections are re-used. Previously, there was a simple FIFO queue. So if Firefox ever tried to reuse a TCP connection it would simply use the connection that had been idle for the longest period [...]<p><a href="http://akibjorklund.com/2011/reusing-the-fastest-tcp-connetions-on-firefox-5" rel="bookmark" title="Permanent link to 'Reusing the fastest TCP connections on Firefox 5'" class="glyph">★</a></p>" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(920) "<p>HttpWatch blog:</p> <blockquote><p>One of the major performance related changes in Firefox 5 is an improvement in the way that keep-alive HTTP connections are re-used. Previously, there was a simple FIFO queue. So if Firefox ever tried to reuse a TCP connection it would simply use the connection that had been idle for the longest period of time.</p> <p>However, not all connections are equal. Connections that have transmitted the most data are likely to be faster than those that have only received a small amount of data. This effect is caused by the congestion window mechanism in TCP.</p> </blockquote> <p><a href="http://akibjorklund.com/2011/reusing-the-fastest-tcp-connetions-on-firefox-5" rel="bookmark" title="Permanent link to 'Reusing the fastest TCP connections on Firefox 5'" class="glyph">★</a></p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/gHc48QfLpAg" height="1" width="1"/>" } ["category"]=> string(7) "lang:en" ["category#2"]=> string(7) "Firefox" ["category#3"]=> string(11) "hreflang:en" ["category#4"]=> string(9) "HttpWatch" ["category#5"]=> string(11) "performance" ["date_timestamp"]=> int(1307776201) } [5]=> array(49) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(44) "It’s not just a shell, because it’s fast" ["link#"]=> int(1) ["link"]=> string(123) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Uz_W0_uXbFQ/windows-8-preview-analysis-computex-announcements-136358" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(123) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Uz_W0_uXbFQ/windows-8-preview-analysis-computex-announcements-136358" ["category#"]=> int(3) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:en" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(11) "hreflang:en" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(9) "Windows 8" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-06-04T00:42:26-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3121" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(510) "Paul Thurrott, trying to convince himself why the new Windows 8 touch UI is not just a shell: Answering the BS complaints about the new Windows 8 Start screen being &#8220;just a shell&#8221; on top of Windows, he [Microsoft corporate vice president Mike Angiulo] notes how quickly you can move back and forth between this [...]<p><a href="http://akibjorklund.com/2011/windows-8-shell-compromise" rel="bookmark" title="Permanent link to 'It’s not just a shell, because it’s fast'" class="glyph">★</a></p>" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1668) "<p>Paul Thurrott, trying to convince himself why the new Windows 8 touch UI is not just a shell:</p> <blockquote><p>Answering the BS complaints about the new Windows 8 Start screen being &#8220;just a shell&#8221; on top of Windows, he [Microsoft corporate vice president Mike Angiulo] notes how quickly you can move back and forth between this screen and the traditional Windows desktop. &#8220;You see how fast that switches?&#8221; he asks as he goes back and forth between the two UIs in a decidedly non-jarring manner. &#8220;It&#8217;s not a different mode. Launching this is like launching the Start Menu. It&#8217;s just instant.&#8221;</p> </blockquote> <p>Please explain to me why the speed of a shell somehow makes it not be a shell or a mode.</p> <p>The real problem with Windows 8 is of course nothing to do with the new UI being a shell or not. It is the fact that dealing with the complexity of traditional Windows UI is not enough anymore, users now have to deal with yet another layer of UI. It is an ugly compromise.</p> <p>Another sign of a compromise is that, at least for now, Windows 8 looks like it is designed to be only used in landscape more, like traditional desktop/laptop computers are. For tablets, landscape primarily only makes sense in games and watching video. In my experience, portrait is generally much more effective for other types of tasks.</p> <p><a href="http://akibjorklund.com/2011/windows-8-shell-compromise" rel="bookmark" title="Permanent link to 'It’s not just a shell, because it’s fast'" class="glyph">★</a></p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Uz_W0_uXbFQ" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(60) "http://akibjorklund.com/2011/windows-8-shell-compromise/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(101) "http://www.winsupersite.com/article/windows8/windows-8-preview-analysis-computex-announcements-136358" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-06-04T00:42:26-07:00" ["dc"]=> array(6) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(3) ["subject"]=> string(7) "lang:en" ["subject#2"]=> string(11) "hreflang:en" ["subject#3"]=> string(9) "Windows 8" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(510) "Paul Thurrott, trying to convince himself why the new Windows 8 touch UI is not just a shell: Answering the BS complaints about the new Windows 8 Start screen being &#8220;just a shell&#8221; on top of Windows, he [Microsoft corporate vice president Mike Angiulo] notes how quickly you can move back and forth between this [...]<p><a href="http://akibjorklund.com/2011/windows-8-shell-compromise" rel="bookmark" title="Permanent link to 'It’s not just a shell, because it’s fast'" class="glyph">★</a></p>" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1668) "<p>Paul Thurrott, trying to convince himself why the new Windows 8 touch UI is not just a shell:</p> <blockquote><p>Answering the BS complaints about the new Windows 8 Start screen being &#8220;just a shell&#8221; on top of Windows, he [Microsoft corporate vice president Mike Angiulo] notes how quickly you can move back and forth between this screen and the traditional Windows desktop. &#8220;You see how fast that switches?&#8221; he asks as he goes back and forth between the two UIs in a decidedly non-jarring manner. &#8220;It&#8217;s not a different mode. Launching this is like launching the Start Menu. It&#8217;s just instant.&#8221;</p> </blockquote> <p>Please explain to me why the speed of a shell somehow makes it not be a shell or a mode.</p> <p>The real problem with Windows 8 is of course nothing to do with the new UI being a shell or not. It is the fact that dealing with the complexity of traditional Windows UI is not enough anymore, users now have to deal with yet another layer of UI. It is an ugly compromise.</p> <p>Another sign of a compromise is that, at least for now, Windows 8 looks like it is designed to be only used in landscape more, like traditional desktop/laptop computers are. For tablets, landscape primarily only makes sense in games and watching video. In my experience, portrait is generally much more effective for other types of tasks.</p> <p><a href="http://akibjorklund.com/2011/windows-8-shell-compromise" rel="bookmark" title="Permanent link to 'It’s not just a shell, because it’s fast'" class="glyph">★</a></p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Uz_W0_uXbFQ" height="1" width="1"/>" } ["category"]=> string(7) "lang:en" ["category#2"]=> string(11) "hreflang:en" ["category#3"]=> string(9) "Windows 8" ["date_timestamp"]=> int(1307173346) } [6]=> array(58) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(45) "★ Make your call to action call some action" ["link#"]=> int(1) ["link"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/mCqL3wBZw1I/call-to-action-email" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/mCqL3wBZw1I/call-to-action-email" ["category#"]=> int(6) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:en" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(3) "CTA" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(9) "Delicious" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(6) "design" ["category#5@"]=> string(4) "term" ["category#5@term"]=> string(5) "email" ["category#6@"]=> string(4) "term" ["category#6@term"]=> string(9) "usability" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-04-29T01:21:36-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3070" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(322) "Don&#8217;t put your call to action on an image when emailing your customers. Most people won&#8217;t see it. If an action is required, mention it in the subject – or at least in the first paragraph. (This applies to not only mass email but also to private messaging.) The case in point: This important email does [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1372) "<p>Don&#8217;t put your call to action on an image when emailing your customers. Most people won&#8217;t see it. If an action is required, mention it in the subject – or at least in the first paragraph. (This applies to not only mass email but also to private messaging.) The case in point:</p> <figure class="screenshot"><img src="/files/2011/04/delicious.png" width="696" height="599" alt="" /><br /> <figcaption><span>This important email does not look so important when images are not downloaded. The subject line or the first paragraph mention no action required.</span></figcaption> </figure> <p>Look at it again, this time with images displayed:</p> <figure class="screenshot"><img src="/files/2011/04/delicious-2.png" width="698" height="590" alt="" /><br /> <figcaption><span>Now it is pretty clear I need to do something. Too bad by default most people will not see the button.</span></figcaption> </figure> <p>It is quite telling that I had already deleted this email but happened to see on Twitter someone mentioning something about agreeing to something related to Delicious. So I went back and noticed this.</p> <p>Always test your email in most popular clients. Don&#8217;t focus on visual perfection – as it is impossible today – but usability.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/mCqL3wBZw1I" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(54) "http://akibjorklund.com/2011/call-to-action-email/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "1" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(49) "http://akibjorklund.com/2011/call-to-action-email" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-04-29T01:21:36-07:00" ["dc"]=> array(9) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(6) ["subject"]=> string(7) "lang:en" ["subject#2"]=> string(3) "CTA" ["subject#3"]=> string(9) "Delicious" ["subject#4"]=> string(6) "design" ["subject#5"]=> string(5) "email" ["subject#6"]=> string(9) "usability" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(322) "Don&#8217;t put your call to action on an image when emailing your customers. Most people won&#8217;t see it. If an action is required, mention it in the subject – or at least in the first paragraph. (This applies to not only mass email but also to private messaging.) The case in point: This important email does [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1372) "<p>Don&#8217;t put your call to action on an image when emailing your customers. Most people won&#8217;t see it. If an action is required, mention it in the subject – or at least in the first paragraph. (This applies to not only mass email but also to private messaging.) The case in point:</p> <figure class="screenshot"><img src="/files/2011/04/delicious.png" width="696" height="599" alt="" /><br /> <figcaption><span>This important email does not look so important when images are not downloaded. The subject line or the first paragraph mention no action required.</span></figcaption> </figure> <p>Look at it again, this time with images displayed:</p> <figure class="screenshot"><img src="/files/2011/04/delicious-2.png" width="698" height="590" alt="" /><br /> <figcaption><span>Now it is pretty clear I need to do something. Too bad by default most people will not see the button.</span></figcaption> </figure> <p>It is quite telling that I had already deleted this email but happened to see on Twitter someone mentioning something about agreeing to something related to Delicious. So I went back and noticed this.</p> <p>Always test your email in most popular clients. Don&#8217;t focus on visual perfection – as it is impossible today – but usability.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/mCqL3wBZw1I" height="1" width="1"/>" } ["category"]=> string(7) "lang:en" ["category#2"]=> string(3) "CTA" ["category#3"]=> string(9) "Delicious" ["category#4"]=> string(6) "design" ["category#5"]=> string(5) "email" ["category#6"]=> string(9) "usability" ["date_timestamp"]=> int(1304065296) } [7]=> array(46) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(25) "★ Redefining web design" ["link#"]=> int(1) ["link"]=> string(88) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/VtDxUIDMqSE/redefining-web-design" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(88) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/VtDxUIDMqSE/redefining-web-design" ["category#"]=> int(2) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:en" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(10) "web design" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-04-26T02:54:52-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=2932" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(346) "I&#8217;ve been a big fan of Yiibu&#8217;s Rethinking the Mobile Web presentation and the whole approach for some time now. That is basically what I&#8217;ve been recommending my clients implement as their mobile strategy. You should really see the slides of the presentation, if you have not already. But as I&#8217;m not only a consultant [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(5566) "<p>I&#8217;ve been a big fan of <a href="http://yiibu.com/">Yiibu&#8217;s</a> Rethinking the Mobile Web presentation and the whole approach for some time now. That is basically what I&#8217;ve been recommending my clients implement as their mobile strategy. You should really see <a href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu">the slides of the presentation</a>, if you have not already.</p> <p><iframe src="http://www.slideshare.net/slideshow/embed_code/5172436" width="700" height="562"></iframe></p> <p>But as I&#8217;m not only a consultant and – more importantly – to practice what I preach, I&#8217;ve been doing something like this on my development projects. The first one is <a href="http://www.sulava.com/">the blog and website of Sulava</a>. (More about the implementation details in another post later.)</p> <p><a href="/files/2011/04/mq.jpg"><img src="/files/2011/04/mq700.jpg" width="700" height="278" alt="Sulava.com side adapts to window size from about 300 pixels to 1000 pixels" class="borderless" style="margin-left:-14px" /></a></p> <p>Actually working with this stuff made me convinced this is the future.</p> <p>I asked Bryan Rieger of Yiiby if they had any brand name for their approach, because I felt it would make it much easier to communicate these ideas if we had a name for them.</p> <p><a href="https://twitter.com/bryanrieger/status/39272917221117952"><img src="/files/2011/04/rieger.png" width="580" height="285" alt="@bryanrieger Bryan Rieger: @akibjorklund hmm, not one for brand names myself, but we've simply been referring to it as 'adaptive' via progressive enhancement. – 20 Feb via Twitterrific" /></a></p> <p>&#8220;Adaptive design via progressive enhancement&#8221; doesn&#8217;t quite roll of the tongue now, does it?</p> <p>I was proposing &#8220;one web&#8221; – but found out later that term is <a href="http://adactio.com/journal/1716/">already been suggested</a> but had not catched on. Plus those words are too generic.</p> <p>Last week Rieger was touching the same subject:</p> <p><a href="https://twitter.com/bryanrieger/status/62139145342025728"><img src="/files/2011/04/rieger2.png" width="556" height="256" alt="@bryanrieger Bryan Rieger: Honestly, what is wrong with 'web design'? We should have been designing 'adaptive' and 'responsive' web experiences all along... :/ – 24 Apr via web" /></a></p> <p>That&#8217;s a real good question. So instead of me proposing a new term (although it <em>is</em> tempting) I&#8217;m going with that – web design. It just needs to be redefined.</p> <p>Here are some of the main characteristics of modern web design:</p> <ol> <li><strong>Mobile first</strong> – Design and build websites first for the least capable device.</li> <li><strong>Single adaptive, responsive website</strong> – We don&#8217;t need a different mobile website in most cases. It is just more work in the long run.</li> <li><strong>Functional, usable design</strong> – Don&#8217;t just &#8220;make it pretty&#8221;. Make it beautiful by making it obvious and easy.</li> <li><strong>Progressively enhanced</strong> – Using cutting edge technologies in a way that does not prevent older/inferior browsers to also work.</li> <li><strong>Semantic markup</strong> – We cannot always know beforehand all the uses of our design. By making the markup as semantic as possible we maximize its reuse possibilities.</li> <li><strong>Designed to fail</strong> – On an environment that is constantly chancing, failure is inevitable. By assuming everything can fail the design will be more future-proof. Part of design to fail is making sure the website is periodically evaluated for defects and improvement possibilities</li> <li><strong>Performance-optimized</strong> – Performance optimization is not just for unreliable mobile connections – the society keeps moving faster (people actually walk faster). Websites need to load faster too.</li> </ol> <p>This is not to say the list is complete or that every item on it is even mandatory. The list <em>will never be</em> complete, since the web is constantly evolving.</p> <p>Web design is in a way in crisis. It has become a commodity. Many designers do not appreciate their own work enough and are getting away from the actual implementation to do more high-level stuff or sometimes getting out of the business entirely.</p> <p>We need to be more enthusiastic of what we do. Our work has more meaning than the message it delivers. It is about the people the message serves. We cannot serve the people well by detaching ourselves from the actual output of our work.</p> <p>We also need more challenges. Mindlessly converting PSD files into CSS layouts or acting as an email-controlled Photoshop is not what I call web design. There are after all many outsourcing services that can do that kind of work for us.</p> <p>By making our work meaningful we make sure we and others appreciate our work in the future too. Luckily web design has gotten a lot of new toys lately to play with from the browsers manufacturers. And not only toys but actual stuff we <a href="http://caniuse.com/">can use</a>.</p> <p>But still, web design is not about pretty pixels or latest tricks in CSS. It is about a craft. A great craftsman will always find ways to be more knowledgeable and mindful about what he or she does.</p> <p>Web needs to keep moving forward and I for one would like to be part of the movement.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/VtDxUIDMqSE" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(55) "http://akibjorklund.com/2011/redefining-web-design/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(50) "http://akibjorklund.com/2011/redefining-web-design" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-04-26T02:54:52-07:00" ["dc"]=> array(5) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(2) ["subject"]=> string(7) "lang:en" ["subject#2"]=> string(10) "web design" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(346) "I&#8217;ve been a big fan of Yiibu&#8217;s Rethinking the Mobile Web presentation and the whole approach for some time now. That is basically what I&#8217;ve been recommending my clients implement as their mobile strategy. You should really see the slides of the presentation, if you have not already. But as I&#8217;m not only a consultant [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(5566) "<p>I&#8217;ve been a big fan of <a href="http://yiibu.com/">Yiibu&#8217;s</a> Rethinking the Mobile Web presentation and the whole approach for some time now. That is basically what I&#8217;ve been recommending my clients implement as their mobile strategy. You should really see <a href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu">the slides of the presentation</a>, if you have not already.</p> <p><iframe src="http://www.slideshare.net/slideshow/embed_code/5172436" width="700" height="562"></iframe></p> <p>But as I&#8217;m not only a consultant and – more importantly – to practice what I preach, I&#8217;ve been doing something like this on my development projects. The first one is <a href="http://www.sulava.com/">the blog and website of Sulava</a>. (More about the implementation details in another post later.)</p> <p><a href="/files/2011/04/mq.jpg"><img src="/files/2011/04/mq700.jpg" width="700" height="278" alt="Sulava.com side adapts to window size from about 300 pixels to 1000 pixels" class="borderless" style="margin-left:-14px" /></a></p> <p>Actually working with this stuff made me convinced this is the future.</p> <p>I asked Bryan Rieger of Yiiby if they had any brand name for their approach, because I felt it would make it much easier to communicate these ideas if we had a name for them.</p> <p><a href="https://twitter.com/bryanrieger/status/39272917221117952"><img src="/files/2011/04/rieger.png" width="580" height="285" alt="@bryanrieger Bryan Rieger: @akibjorklund hmm, not one for brand names myself, but we've simply been referring to it as 'adaptive' via progressive enhancement. – 20 Feb via Twitterrific" /></a></p> <p>&#8220;Adaptive design via progressive enhancement&#8221; doesn&#8217;t quite roll of the tongue now, does it?</p> <p>I was proposing &#8220;one web&#8221; – but found out later that term is <a href="http://adactio.com/journal/1716/">already been suggested</a> but had not catched on. Plus those words are too generic.</p> <p>Last week Rieger was touching the same subject:</p> <p><a href="https://twitter.com/bryanrieger/status/62139145342025728"><img src="/files/2011/04/rieger2.png" width="556" height="256" alt="@bryanrieger Bryan Rieger: Honestly, what is wrong with 'web design'? We should have been designing 'adaptive' and 'responsive' web experiences all along... :/ – 24 Apr via web" /></a></p> <p>That&#8217;s a real good question. So instead of me proposing a new term (although it <em>is</em> tempting) I&#8217;m going with that – web design. It just needs to be redefined.</p> <p>Here are some of the main characteristics of modern web design:</p> <ol> <li><strong>Mobile first</strong> – Design and build websites first for the least capable device.</li> <li><strong>Single adaptive, responsive website</strong> – We don&#8217;t need a different mobile website in most cases. It is just more work in the long run.</li> <li><strong>Functional, usable design</strong> – Don&#8217;t just &#8220;make it pretty&#8221;. Make it beautiful by making it obvious and easy.</li> <li><strong>Progressively enhanced</strong> – Using cutting edge technologies in a way that does not prevent older/inferior browsers to also work.</li> <li><strong>Semantic markup</strong> – We cannot always know beforehand all the uses of our design. By making the markup as semantic as possible we maximize its reuse possibilities.</li> <li><strong>Designed to fail</strong> – On an environment that is constantly chancing, failure is inevitable. By assuming everything can fail the design will be more future-proof. Part of design to fail is making sure the website is periodically evaluated for defects and improvement possibilities</li> <li><strong>Performance-optimized</strong> – Performance optimization is not just for unreliable mobile connections – the society keeps moving faster (people actually walk faster). Websites need to load faster too.</li> </ol> <p>This is not to say the list is complete or that every item on it is even mandatory. The list <em>will never be</em> complete, since the web is constantly evolving.</p> <p>Web design is in a way in crisis. It has become a commodity. Many designers do not appreciate their own work enough and are getting away from the actual implementation to do more high-level stuff or sometimes getting out of the business entirely.</p> <p>We need to be more enthusiastic of what we do. Our work has more meaning than the message it delivers. It is about the people the message serves. We cannot serve the people well by detaching ourselves from the actual output of our work.</p> <p>We also need more challenges. Mindlessly converting PSD files into CSS layouts or acting as an email-controlled Photoshop is not what I call web design. There are after all many outsourcing services that can do that kind of work for us.</p> <p>By making our work meaningful we make sure we and others appreciate our work in the future too. Luckily web design has gotten a lot of new toys lately to play with from the browsers manufacturers. And not only toys but actual stuff we <a href="http://caniuse.com/">can use</a>.</p> <p>But still, web design is not about pretty pixels or latest tricks in CSS. It is about a craft. A great craftsman will always find ways to be more knowledgeable and mindful about what he or she does.</p> <p>Web needs to keep moving forward and I for one would like to be part of the movement.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/VtDxUIDMqSE" height="1" width="1"/>" } ["category"]=> string(7) "lang:en" ["category#2"]=> string(10) "web design" ["date_timestamp"]=> int(1303811692) } [8]=> array(55) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(72) "★ Notes on using HTML5 input type=search and the placeholder attribute" ["link#"]=> int(1) ["link"]=> string(96) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/48tZaUo5908/input-type-search-placeholder" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(96) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/48tZaUo5908/input-type-search-placeholder" ["category#"]=> int(5) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:en" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(3) "CSS" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(5) "HTML5" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(6) "jQuery" ["category#5@"]=> string(4) "term" ["category#5@term"]=> string(9) "Modernizr" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-04-24T11:51:55-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=2969" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(328) "&#60;input type=search&#62; is one of the HTML5 additions to form input types. In theory you can just replace the old &#60;input type=text&#62; with the new type and browsers continue to work and the site is now more semantic. In practice working with type=search is not that simple. First thing you probably want to do is [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(3673) "<p><code class="prettyprint lang-html">&lt;input type=search&gt;</code> is one of the HTML5 additions to form input types. In theory you can just replace the old <code class="prettyprint lang-html">&lt;input type=text&gt;</code> with the new type and browsers continue to work and the site is now more semantic. In practice working with <code class="prettyprint lang-html">type=search</code> is not that simple.</p> <p>First thing you probably want to do is to remove Webkit&#8217;s default, heavy styling. You do that by these CSS commands:</p> <pre><code class="prettyprint lang-css">-webkit-appearance:textfield; -webkit-box-sizing:content-box;</code></pre> <p>I initially used the former, but after some odd width calculation issues I found out that latter is also needed to actually fully restore familiar type=text behavior.</p> <p>Placeholder text is another wonderful addition to input elements (not just type=search). This replicates the common behavior of having the search field label within the field itself (until the user focuses the field). You add placeholder text by adding an attribute to the input element like this: placeholder=&#8221;search this site&#8221;.</p> <p>To gracefully degrade, use <a href="http://www.modernizr.com/">Modernizr</a> to detect a browsers with no support:</p> <pre><code class="prettyprint lang-js">jQuery(function($) { if (!Modernizr.input.placeholder || navigator.userAgent.match(/opera/i)) { $('input[placeholder]').hint(); } });</code></pre> <p>Here I decided to replace native placeholder support on Opera, since there are no styling options for it, yet. The text is always in <code>#7f7f7f</code>, which was not an option, since the background was exactly that color.</p> <p>To style placeholder text you need these rules:</p> <pre><code class="prettyprint lang-css">input[type=search].blur{color:#ddd} input[type=search]::-webkit-input-placeholder{color:#ddd} input[type=search]:-moz-placeholder{color:#ddd}</code></pre> <p>You cannot combine those selectors, since the rule will stop working as expected. .blur is for browsers that do not support native placeholder behavior.</p> <p>And here is the modified version of the plugin that adds placeholder behavior. To make it more HTML5 friendly, I basically just replaced the use of title attribute with placeholder attribute.</p> <pre><code class="prettyprint lang-js">/** * @author Remy Sharp * @url http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/ * Modified to use placeholder attribute by Aki Björklund, http://akibjorklund.com/ */ (function ($) { $.fn.hint = function (blurClass) { if (!blurClass) { blurClass = 'blur'; } return this.each(function () { // get jQuery version of 'this' var $input = $(this), // capture the rest of the variable to allow for reuse placeholder = $input.attr('placeholder'), $form = $(this.form), $win = $(window); function remove() { if ($input.val() === placeholder &#038;&#038; $input.hasClass(blurClass)) { $input.val('').removeClass(blurClass); } } // only apply logic if the element has the attribute if (placeholder) { // on blur, set value to placeholder attr if text is blank $input.blur(function () { if (this.value === '') { $input.val(placeholder).addClass(blurClass); } }).focus(remove).blur(); // now change all inputs to placeholder // clear the pre-defined text when form is submitted $form.submit(remove); $win.unload(remove); // handles Firefox's autocomplete } }); }; })(jQuery);</code></pre> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/48tZaUo5908" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(63) "http://akibjorklund.com/2011/input-type-search-placeholder/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(58) "http://akibjorklund.com/2011/input-type-search-placeholder" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-04-24T11:51:55-07:00" ["dc"]=> array(8) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(5) ["subject"]=> string(7) "lang:en" ["subject#2"]=> string(3) "CSS" ["subject#3"]=> string(5) "HTML5" ["subject#4"]=> string(6) "jQuery" ["subject#5"]=> string(9) "Modernizr" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(328) "&#60;input type=search&#62; is one of the HTML5 additions to form input types. In theory you can just replace the old &#60;input type=text&#62; with the new type and browsers continue to work and the site is now more semantic. In practice working with type=search is not that simple. First thing you probably want to do is [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(3673) "<p><code class="prettyprint lang-html">&lt;input type=search&gt;</code> is one of the HTML5 additions to form input types. In theory you can just replace the old <code class="prettyprint lang-html">&lt;input type=text&gt;</code> with the new type and browsers continue to work and the site is now more semantic. In practice working with <code class="prettyprint lang-html">type=search</code> is not that simple.</p> <p>First thing you probably want to do is to remove Webkit&#8217;s default, heavy styling. You do that by these CSS commands:</p> <pre><code class="prettyprint lang-css">-webkit-appearance:textfield; -webkit-box-sizing:content-box;</code></pre> <p>I initially used the former, but after some odd width calculation issues I found out that latter is also needed to actually fully restore familiar type=text behavior.</p> <p>Placeholder text is another wonderful addition to input elements (not just type=search). This replicates the common behavior of having the search field label within the field itself (until the user focuses the field). You add placeholder text by adding an attribute to the input element like this: placeholder=&#8221;search this site&#8221;.</p> <p>To gracefully degrade, use <a href="http://www.modernizr.com/">Modernizr</a> to detect a browsers with no support:</p> <pre><code class="prettyprint lang-js">jQuery(function($) { if (!Modernizr.input.placeholder || navigator.userAgent.match(/opera/i)) { $('input[placeholder]').hint(); } });</code></pre> <p>Here I decided to replace native placeholder support on Opera, since there are no styling options for it, yet. The text is always in <code>#7f7f7f</code>, which was not an option, since the background was exactly that color.</p> <p>To style placeholder text you need these rules:</p> <pre><code class="prettyprint lang-css">input[type=search].blur{color:#ddd} input[type=search]::-webkit-input-placeholder{color:#ddd} input[type=search]:-moz-placeholder{color:#ddd}</code></pre> <p>You cannot combine those selectors, since the rule will stop working as expected. .blur is for browsers that do not support native placeholder behavior.</p> <p>And here is the modified version of the plugin that adds placeholder behavior. To make it more HTML5 friendly, I basically just replaced the use of title attribute with placeholder attribute.</p> <pre><code class="prettyprint lang-js">/** * @author Remy Sharp * @url http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/ * Modified to use placeholder attribute by Aki Björklund, http://akibjorklund.com/ */ (function ($) { $.fn.hint = function (blurClass) { if (!blurClass) { blurClass = 'blur'; } return this.each(function () { // get jQuery version of 'this' var $input = $(this), // capture the rest of the variable to allow for reuse placeholder = $input.attr('placeholder'), $form = $(this.form), $win = $(window); function remove() { if ($input.val() === placeholder &#038;&#038; $input.hasClass(blurClass)) { $input.val('').removeClass(blurClass); } } // only apply logic if the element has the attribute if (placeholder) { // on blur, set value to placeholder attr if text is blank $input.blur(function () { if (this.value === '') { $input.val(placeholder).addClass(blurClass); } }).focus(remove).blur(); // now change all inputs to placeholder // clear the pre-defined text when form is submitted $form.submit(remove); $win.unload(remove); // handles Firefox's autocomplete } }); }; })(jQuery);</code></pre> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/48tZaUo5908" height="1" width="1"/>" } ["category"]=> string(7) "lang:en" ["category#2"]=> string(3) "CSS" ["category#3"]=> string(5) "HTML5" ["category#4"]=> string(6) "jQuery" ["category#5"]=> string(9) "Modernizr" ["date_timestamp"]=> int(1303671115) } [9]=> array(55) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(45) "★ W3C brändäsi HTML5:n, puristit itkivät" ["link#"]=> int(1) ["link"]=> string(85) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/peRxuAgr-X8/w3c-html5-puristit" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(85) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/peRxuAgr-X8/w3c-html5-puristit" ["category#"]=> int(5) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(15) "brändääminen" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(5) "HTML5" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(3) "W3C" ["category#5@"]=> string(4) "term" ["category#5@term"]=> string(14) "web-standardit" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-01-19T05:02:33-08:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=2899" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(447) "HTML5:stä oli muodostunut kansan suussa jotain muuta kuin mitä tiukkaan luettuna HTML5-speksi käsittää. Puristien mielipiteillä ei ole väliä. W3C teki oikein tarttuessaan tilaisuuteen vahvistaa tuota brändiä, joka joka tapauksessa oli jo olemassa. Kun haluaa korostaa eroa, ei ole kovin vaikeaa puhua HTML5-speksistä silloin kun sitä tarkoittaa ja jatkaa puhumista web-teknologioiden toisesta tulemisesta HTML5:na. Tämän hullun [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(948) "<p><object data="http://akibjorklund.com/files/2011/01/html5.svg" width="256" height="256" class="right borderless"><img src="http://akibjorklund.com/files/2011/01/html5.png" width="256" height="256" alt="HTML5" /></object>HTML5:stä oli muodostunut kansan suussa jotain muuta kuin mitä tiukkaan luettuna HTML5-speksi käsittää. Puristien mielipiteillä ei ole väliä. W3C teki oikein <a href="http://www.w3.org/html/logo/">tarttuessaan tilaisuuteen vahvistaa tuota brändiä</a>, joka joka tapauksessa oli jo olemassa. Kun haluaa korostaa eroa, ei ole kovin vaikeaa puhua HTML5-speksistä silloin kun sitä tarkoittaa ja jatkaa puhumista web-teknologioiden toisesta tulemisesta HTML5:na.</p> <p>Tämän hullun applikaatiohypen aikana maailma tarvitsee yksinäisiä sankareita, jotka pelastavat meidät kaikki pahoilta megakorporaatioilta.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/peRxuAgr-X8" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(52) "http://akibjorklund.com/2011/w3c-html5-puristit/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "3" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(47) "http://akibjorklund.com/2011/w3c-html5-puristit" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-01-19T05:02:33-08:00" ["dc"]=> array(8) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(5) ["subject"]=> string(7) "lang:fi" ["subject#2"]=> string(15) "brändääminen" ["subject#3"]=> string(5) "HTML5" ["subject#4"]=> string(3) "W3C" ["subject#5"]=> string(14) "web-standardit" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(447) "HTML5:stä oli muodostunut kansan suussa jotain muuta kuin mitä tiukkaan luettuna HTML5-speksi käsittää. Puristien mielipiteillä ei ole väliä. W3C teki oikein tarttuessaan tilaisuuteen vahvistaa tuota brändiä, joka joka tapauksessa oli jo olemassa. Kun haluaa korostaa eroa, ei ole kovin vaikeaa puhua HTML5-speksistä silloin kun sitä tarkoittaa ja jatkaa puhumista web-teknologioiden toisesta tulemisesta HTML5:na. Tämän hullun [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(948) "<p><object data="http://akibjorklund.com/files/2011/01/html5.svg" width="256" height="256" class="right borderless"><img src="http://akibjorklund.com/files/2011/01/html5.png" width="256" height="256" alt="HTML5" /></object>HTML5:stä oli muodostunut kansan suussa jotain muuta kuin mitä tiukkaan luettuna HTML5-speksi käsittää. Puristien mielipiteillä ei ole väliä. W3C teki oikein <a href="http://www.w3.org/html/logo/">tarttuessaan tilaisuuteen vahvistaa tuota brändiä</a>, joka joka tapauksessa oli jo olemassa. Kun haluaa korostaa eroa, ei ole kovin vaikeaa puhua HTML5-speksistä silloin kun sitä tarkoittaa ja jatkaa puhumista web-teknologioiden toisesta tulemisesta HTML5:na.</p> <p>Tämän hullun applikaatiohypen aikana maailma tarvitsee yksinäisiä sankareita, jotka pelastavat meidät kaikki pahoilta megakorporaatioilta.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/peRxuAgr-X8" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["category#2"]=> string(15) "brändääminen" ["category#3"]=> string(5) "HTML5" ["category#4"]=> string(3) "W3C" ["category#5"]=> string(14) "web-standardit" ["date_timestamp"]=> int(1295442153) } } ["channel"]=> array(42) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(14) "Aki Björklund" ["link#"]=> int(1) ["link"]=> string(23) "http://akibjorklund.com" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(23) "http://akibjorklund.com" ["subtitle#"]=> int(1) ["subtitle@"]=> string(13) "type,xml:base" ["subtitle@type"]=> string(4) "html" ["subtitle@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["subtitle"]=> string(14) "web generalist" ["updated#"]=> int(1) ["updated"]=> string(25) "2012-05-01T09:20:24+00:00" ["generator#"]=> int(1) ["generator"]=> string(29) "http://wordpress.org/?v=3.3.2" ["sy"]=> array(8) { ["updateperiod#"]=> int(1) ["updateperiod@"]=> string(8) "xmlns:sy" ["updateperiod@xmlns:sy"]=> string(44) "http://purl.org/rss/1.0/modules/syndication/" ["updateperiod"]=> string(6) "hourly" ["updatefrequency#"]=> int(1) ["updatefrequency@"]=> string(8) "xmlns:sy" ["updatefrequency@xmlns:sy"]=> string(44) "http://purl.org/rss/1.0/modules/syndication/" ["updatefrequency"]=> string(1) "1" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(9) { ["info#"]=> int(1) ["info@"]=> string(3) "uri" ["info@uri"]=> string(20) "satunnainenbjorklund" ["emailserviceid#"]=> int(1) ["emailserviceid"]=> string(20) "satunnainenbjorklund" ["feedburnerhostname#"]=> int(1) ["feedburnerhostname"]=> string(28) "http://feedburner.google.com" ["browserfriendly#"]=> int(1) ["browserfriendly"]=> string(138) "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." } ["link_hub#"]=> int(1) ["link_hub"]=> string(32) "http://pubsubhubbub.appspot.com/" ["link_hub@"]=> string(21) "xmlns:atom10,rel,href" ["link_hub@xmlns:atom10"]=> string(27) "http://www.w3.org/2005/Atom" ["link_hub@rel"]=> string(3) "hub" ["link_hub@href"]=> string(32) "http://pubsubhubbub.appspot.com/" ["link_self#"]=> int(1) ["link_self"]=> string(37) "http://satunnainenbjorklund.net/feed/" ["link_self@"]=> string(26) "xmlns:atom10,rel,type,href" ["link_self@xmlns:atom10"]=> string(27) "http://www.w3.org/2005/Atom" ["link_self@rel"]=> string(4) "self" ["link_self@type"]=> string(20) "application/atom+xml" ["link_self@href"]=> string(37) "http://satunnainenbjorklund.net/feed/" ["tagline#"]=> int(1) ["tagline"]=> string(14) "web generalist" ["modified#"]=> int(1) ["modified"]=> string(25) "2012-05-01T09:20:24+00:00" ["dc"]=> NULL ["description#"]=> int(1) ["description"]=> string(14) "web generalist" } ["textinput"]=> array(0) { } ["image"]=> array(0) { } ["feed_type"]=> string(4) "Atom" ["feed_version"]=> string(3) "1.0" ["encoding"]=> string(5) "UTF-8" ["_source_encoding"]=> string(0) "" ["ERROR"]=> string(0) "" ["WARNING"]=> string(0) "" ["_XMLNS_FAMILIAR"]=> array(22) { ["http://www.w3.org/2005/Atom"]=> string(4) "atom" ["http://purl.org/atom/ns#"]=> string(4) "atom" ["http://purl.org/rss/1.0/"]=> string(3) "rss" ["http://backend.userland.com/RSS2"]=> string(3) "rss" ["http://www.w3.org/1999/02/22-rdf-syntax-ns#"]=> string(3) "rdf" ["http://www.w3.org/1999/xhtml"]=> string(5) "xhtml" ["http://purl.org/dc/elements/1.1/"]=> string(2) "dc" ["http://purl.org/dc/terms/"]=> string(7) "dcterms" ["http://purl.org/rss/1.0/modules/content/"]=> string(7) "content" ["http://purl.org/rss/1.0/modules/syndication/"]=> string(2) "sy" ["http://purl.org/rss/1.0/modules/taxonomy/"]=> string(4) "taxo" ["http://purl.org/rss/1.0/modules/dc/"]=> string(2) "dc" ["http://wellformedweb.org/CommentAPI/"]=> string(3) "wfw" ["http://webns.net/mvcb/"]=> string(5) "admin" ["http://purl.org/rss/1.0/modules/annotate/"]=> string(8) "annotate" ["http://xmlns.com/foaf/0.1/"]=> string(4) "foaf" ["http://madskills.com/public/xml/rss/module/trackback/"]=> string(9) "trackback" ["http://web.resource.org/cc/"]=> string(2) "cc" ["http://search.yahoo.com/mrss"]=> string(5) "media" ["http://search.yahoo.com/mrss/"]=> string(5) "media" ["http://video.search.yahoo.com/mrss"]=> string(5) "media" ["http://video.search.yahoo.com/mrss/"]=> string(5) "media" } ["_XMLBASE_RESOLVE"]=> array(2) { ["atom"]=> array(14) { ["link"]=> array(1) { ["href"]=> bool(true) } ["content"]=> array(3) { ["src"]=> bool(true) ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["summary"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["title"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["rights"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["subtitle"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["info"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["tagline"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["copyright"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["generator"]=> array(2) { ["uri"]=> bool(true) ["url"]=> bool(true) } ["uri"]=> array(1) { ["*content"]=> bool(true) } ["url"]=> array(1) { ["*content"]=> bool(true) } ["icon"]=> array(1) { ["*content"]=> bool(true) } ["logo"]=> array(1) { ["*content"]=> bool(true) } } ["xhtml"]=> array(17) { ["a"]=> array(1) { ["href"]=> bool(true) } ["applet"]=> array(1) { ["codebase"]=> bool(true) } ["area"]=> array(1) { ["href"]=> bool(true) } ["blockquote"]=> array(1) { ["cite"]=> bool(true) } ["body"]=> array(1) { ["background"]=> bool(true) } ["del"]=> array(1) { ["cite"]=> bool(true) } ["form"]=> array(1) { ["action"]=> bool(true) } ["frame"]=> array(2) { ["longdesc"]=> bool(true) ["src"]=> bool(true) } ["iframe"]=> array(3) { ["longdesc"]=> bool(true) ["iframe"]=> bool(true) ["src"]=> bool(true) } ["head"]=> array(1) { ["profile"]=> bool(true) } ["img"]=> array(3) { ["longdesc"]=> bool(true) ["src"]=> bool(true) ["usemap"]=> bool(true) } ["input"]=> array(2) { ["src"]=> bool(true) ["usemap"]=> bool(true) } ["ins"]=> array(1) { ["cite"]=> bool(true) } ["link"]=> array(1) { ["href"]=> bool(true) } ["object"]=> array(4) { ["classid"]=> bool(true) ["codebase"]=> bool(true) ["data"]=> bool(true) ["usemap"]=> bool(true) } ["q"]=> array(1) { ["cite"]=> bool(true) } ["script"]=> array(1) { ["src"]=> bool(true) } } } ["_ATOM_CONTENT_CONSTRUCTS"]=> array(8) { [0]=> string(7) "content" [1]=> string(7) "summary" [2]=> string(5) "title" [3]=> string(4) "info" [4]=> string(7) "tagline" [5]=> string(9) "copyright" [6]=> string(6) "rights" [7]=> string(8) "subtitle" } ["_XHTML_CONTENT_CONSTRUCTS"]=> array(2) { [0]=> string(4) "body" [1]=> string(3) "div" } ["_KNOWN_ENCODINGS"]=> array(3) { [0]=> string(5) "UTF-8" [1]=> string(8) "US-ASCII" [2]=> string(10) "ISO-8859-1" } ["stack"]=> array(4) { ["element"]=> array(0) { } ["ns"]=> array(0) { } ["xmlns"]=> array(0) { } ["xml:base"]=> array(1) { [0]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" } } ["inchannel"]=> bool(false) ["initem"]=> bool(false) ["incontent"]=> array(0) { } ["xml_escape"]=> bool(false) ["exclude_top"]=> bool(false) ["intextinput"]=> bool(false) ["inimage"]=> bool(false) ["root_namespaces"]=> array(1) { [0]=> string(4) "atom" } ["current_namespace"]=> string(4) "atom" ["working_namespace_table"]=> array(0) { } ["current_category"]=> int(0) ["http_status"]=> int(200) ["header"]=> array(9) { ["last-modified"]=> string(29) "Wed, 23 May 2012 21:50:04 GMT" ["etag"]=> string(27) "0nJS0T4TJfiJbSfeLWceVApa7S8" ["content-type"]=> string(23) "text/xml; charset=UTF-8" ["date"]=> string(29) "Wed, 23 May 2012 21:50:04 GMT" ["expires"]=> string(29) "Wed, 23 May 2012 21:50:04 GMT" ["cache-control"]=> string(18) "private, max-age=0" ["x-content-type-options"]=> string(7) "nosniff" ["x-xss-protection"]=> string(13) "1; mode=block" ["server"]=> string(3) "GSE" } } } ["feed"]=> object(MagpieRSS)#561 (31) { ["parser"]=> resource(288) of type (Unknown) ["current_item"]=> array(0) { } ["items"]=> array(10) { [0]=> array(43) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(35) "★ Spesialistikoodari hätääntyy" ["link#"]=> int(1) ["link"]=> string(94) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/wxEjiSGUiaE/spesialistkoodari-hataantyy" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(94) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/wxEjiSGUiaE/spesialistkoodari-hataantyy" ["category#"]=> int(1) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2012-05-01T02:19:25-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3276" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(493) "Tuottava alusta on alusta, jolla saa entiseen verrattuna tehtyä asioita halvalla ja nopeasti, mutta kuitenkin riittävän laadukkaasti. Yhden teknologian spesialistikoodari hätääntyy, kun tuottava alusta kasvattaa suosiotaan. Hän haluaa todistaa tarpeellisuutensa. Spesialistikoodarin tehokkain ase tuottavia alustoja vastaan on sana arkkitehtuuri. Esimerkiksi: &#8220;Tuottavan alustan arkkitehtuuri on täysin paska. Tietoturvassa on aukkoja ja koodi on rumaa.&#8221; Hän unohtaa [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1513) "<p>Tuottava alusta on alusta, jolla saa entiseen verrattuna tehtyä asioita halvalla ja nopeasti, mutta kuitenkin riittävän laadukkaasti. Yhden teknologian spesialistikoodari hätääntyy, kun tuottava alusta kasvattaa suosiotaan. Hän haluaa todistaa tarpeellisuutensa.</p> <p>Spesialistikoodarin tehokkain ase tuottavia alustoja vastaan on sana arkkitehtuuri. Esimerkiksi: &#8220;Tuottavan alustan arkkitehtuuri on täysin paska. Tietoturvassa on aukkoja ja koodi on rumaa.&#8221; Hän unohtaa sujuvasti, että kaikessa koodissa on aukkoja ja että rumuus on subjektiivista. Arkkitehtuuri ei sitä paitsi tässä yhteydessä oikeastaan tarkoita mitään muuta kuin että koodarin kapeasta näkökulmasta asiat on tehty väärin. </p> <p>Arkkitehtuuriargumentti toimii, koska se on niin epämääräinen. Ja kuka muka voi tietää asiat paremmin kuin asiantuntija?</p> <p>Tuottavien alustojen sijaan spesialisti suosii alustoja, jossa riittää nysvättävää ja samoja asioita voi koodata yhä uudestaan yhä jännittävimmillä ja vaikeammilla tavoilla. On aivan sama, ratkooko hän oikeita ongelmia.</p> <p>Spesialistikoodari osaa ja tietää paljon yhä vähemmästä. Hän pureutuu syvemmälle esimerkiksi skaalautumisen ja tietoturvan problematiikkaan, vaikka nämä ovat jo ajat sitten lakanneet olemasta useimmille asiakkaille relevantteja ongelmia.</p> <p>Hän koodaa itseään, ei muita varten.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/wxEjiSGUiaE" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(61) "http://akibjorklund.com/2012/spesialistkoodari-hataantyy/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(56) "http://akibjorklund.com/2012/spesialistkoodari-hataantyy" } ["modified#"]=> int(1) ["modified"]=> string(25) "2012-05-01T02:19:25-07:00" ["dc"]=> array(4) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(1) ["subject"]=> string(7) "lang:fi" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(493) "Tuottava alusta on alusta, jolla saa entiseen verrattuna tehtyä asioita halvalla ja nopeasti, mutta kuitenkin riittävän laadukkaasti. Yhden teknologian spesialistikoodari hätääntyy, kun tuottava alusta kasvattaa suosiotaan. Hän haluaa todistaa tarpeellisuutensa. Spesialistikoodarin tehokkain ase tuottavia alustoja vastaan on sana arkkitehtuuri. Esimerkiksi: &#8220;Tuottavan alustan arkkitehtuuri on täysin paska. Tietoturvassa on aukkoja ja koodi on rumaa.&#8221; Hän unohtaa [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1513) "<p>Tuottava alusta on alusta, jolla saa entiseen verrattuna tehtyä asioita halvalla ja nopeasti, mutta kuitenkin riittävän laadukkaasti. Yhden teknologian spesialistikoodari hätääntyy, kun tuottava alusta kasvattaa suosiotaan. Hän haluaa todistaa tarpeellisuutensa.</p> <p>Spesialistikoodarin tehokkain ase tuottavia alustoja vastaan on sana arkkitehtuuri. Esimerkiksi: &#8220;Tuottavan alustan arkkitehtuuri on täysin paska. Tietoturvassa on aukkoja ja koodi on rumaa.&#8221; Hän unohtaa sujuvasti, että kaikessa koodissa on aukkoja ja että rumuus on subjektiivista. Arkkitehtuuri ei sitä paitsi tässä yhteydessä oikeastaan tarkoita mitään muuta kuin että koodarin kapeasta näkökulmasta asiat on tehty väärin. </p> <p>Arkkitehtuuriargumentti toimii, koska se on niin epämääräinen. Ja kuka muka voi tietää asiat paremmin kuin asiantuntija?</p> <p>Tuottavien alustojen sijaan spesialisti suosii alustoja, jossa riittää nysvättävää ja samoja asioita voi koodata yhä uudestaan yhä jännittävimmillä ja vaikeammilla tavoilla. On aivan sama, ratkooko hän oikeita ongelmia.</p> <p>Spesialistikoodari osaa ja tietää paljon yhä vähemmästä. Hän pureutuu syvemmälle esimerkiksi skaalautumisen ja tietoturvan problematiikkaan, vaikka nämä ovat jo ajat sitten lakanneet olemasta useimmille asiakkaille relevantteja ongelmia.</p> <p>Hän koodaa itseään, ei muita varten.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/wxEjiSGUiaE" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["date_timestamp"]=> int(1335863965) } [1]=> array(46) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(26) "★ VR arpoo lähtöaikoja" ["link#"]=> int(1) ["link"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Q9xz9Z-xcM4/vr-arpoo-lahtoaikoja" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Q9xz9Z-xcM4/vr-arpoo-lahtoaikoja" ["category#"]=> int(2) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(14) "käytettävyys" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2012-03-14T04:42:29-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3266" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(501) "Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö. Kyseessä ei ole edes mikään uusi löytö. [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1341) "<p>Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. </p> <p><iframe width="420" height="315" src="http://www.youtube.com/embed/hnY4tXJnwvk" frameborder="0" allowfullscreen></iframe></p> <p>Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö.</p> <p>Kyseessä ei ole edes mikään uusi löytö. Ongelma on raportoitu jo kohua herättäneessä <a href="http://www.userpoint.fi/reports/vr_verkkokauppa_kaytettavyysarvio.php">User Pointin käytettävyysarviossa</a> (sivun 40 lopussa).</p> <p>Panee miettimään, että miksi ensimmäisellä sivulla mitään valintaa edes on, jos sitä ei lainkaan kunnioiteta.</p> <p>Panee myös miettimään, kuinka moni on mennyt samaan ansaan. Ainakin minun kahteen kertaan maksetulla matkallani käytävän toisella puolella istui matkustaja, joka oli tehnyt saman virheen.</p> <p>No, <em>jotenkin</em> ne uudistukseen hukatut rahat on saatava takaisin.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Q9xz9Z-xcM4" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(54) "http://akibjorklund.com/2012/vr-arpoo-lahtoaikoja/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(49) "http://akibjorklund.com/2012/vr-arpoo-lahtoaikoja" } ["modified#"]=> int(1) ["modified"]=> string(25) "2012-03-14T04:42:29-07:00" ["dc"]=> array(5) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(2) ["subject"]=> string(7) "lang:fi" ["subject#2"]=> string(14) "käytettävyys" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(501) "Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö. Kyseessä ei ole edes mikään uusi löytö. [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1341) "<p>Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. </p> <p><iframe width="420" height="315" src="http://www.youtube.com/embed/hnY4tXJnwvk" frameborder="0" allowfullscreen></iframe></p> <p>Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö.</p> <p>Kyseessä ei ole edes mikään uusi löytö. Ongelma on raportoitu jo kohua herättäneessä <a href="http://www.userpoint.fi/reports/vr_verkkokauppa_kaytettavyysarvio.php">User Pointin käytettävyysarviossa</a> (sivun 40 lopussa).</p> <p>Panee miettimään, että miksi ensimmäisellä sivulla mitään valintaa edes on, jos sitä ei lainkaan kunnioiteta.</p> <p>Panee myös miettimään, kuinka moni on mennyt samaan ansaan. Ainakin minun kahteen kertaan maksetulla matkallani käytävän toisella puolella istui matkustaja, joka oli tehnyt saman virheen.</p> <p>No, <em>jotenkin</em> ne uudistukseen hukatut rahat on saatava takaisin.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Q9xz9Z-xcM4" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["category#2"]=> string(14) "käytettävyys" ["date_timestamp"]=> int(1331725349) } [2]=> array(55) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(45) "★ Löydettävyyden vaikutus olemattomuuteen" ["link#"]=> int(1) ["link"]=> string(75) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/OniWfoggfuI/olematon" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(75) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/OniWfoggfuI/olematon" ["category#"]=> int(5) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(6) "Eat.fi" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(7) "mobiili" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(27) "mukautuva verkkosuunnittelu" ["category#5@"]=> string(4) "term" ["category#5@term"]=> string(15) "web-analytiikka" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-07-07T23:38:19-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3175" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(597) "Postilaatikkoon tipahti Eat.fi:n tiedote: Eat.fi:n mobiilisovellukset suosittuja, verkkosivujen käyttö mobiililaitteilla olematonta Eat.fi-palvelua on voinut käyttää mobiililaitteilla, esimerkiksi mobiilioptimoidun verkkosivun kautta osoitteessa m.eat.fi jo vuodesta 2009. Tämän lisäksi palvelua on voinut käyttää myös erillisillä mobiililaitesovelluksilla. Sovellukset ovat tarjolla Applen iPhonelle, Android-puhelimille ja Nokian puhelimille. Tällä hetkellä palvelun mobiililaitteille optimoidun verkkosivun käyttö on erittäin vähäistä. &#8220;Mobiilisovellukset ovat [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(4618) "<p>Postilaatikkoon tipahti Eat.fi:n tiedote:</p> <blockquote cite="http://www.epressi.com/tiedote/lifestyle/eat.fin-mobiilisovellukset-suosittuja-verkkosivujen-kaytto-mobiililaitteilla-olematonta"> <h3>Eat.fi:n mobiilisovellukset suosittuja, verkkosivujen käyttö mobiililaitteilla olematonta</h3> <p>Eat.fi-palvelua on voinut käyttää mobiililaitteilla, esimerkiksi mobiilioptimoidun verkkosivun kautta osoitteessa m.eat.fi jo vuodesta 2009. Tämän lisäksi palvelua on voinut käyttää myös erillisillä mobiililaitesovelluksilla. Sovellukset ovat tarjolla Applen iPhonelle, Android-puhelimille ja Nokian puhelimille. Tällä hetkellä palvelun mobiililaitteille optimoidun verkkosivun käyttö on erittäin vähäistä.</p> <p>&#8220;Mobiilisovellukset ovat nopeasti kasvattaneet suosiotaan. Tällä hetkellä Eat.fi:n mobiililaitteille optimoitujen verkkosivujen käyttö on vähentynyt käytännössä olemattomaksi&#8221;, kertoo Tina Aspiala Eat.fi-palvelusta.</p> <footer><a href="http://www.epressi.com/tiedote/lifestyle/eat.fin-mobiilisovellukset-suosittuja-verkkosivujen-kaytto-mobiililaitteilla-olematonta">Koko lehdistötiedote ePressi.com-palvelussa</a></footer> </blockquote> <p><img src="http://akibjorklund.com/files/2011/07/m.eat_.fi_.jpg" alt="Ravintolanäkymä m.eat.fi:ssä" width="265" height="533" class="right" />Tiedote ei pureudu tämän syvemmälle olemattomuuden syihin. Mutta vierailemalla Eat.fi:ssä mobiililaitteella selviää yksi todennäköinen syy välittömästi. Mitään uudelleenohjausta m.eat.fi:hin ei tapahdu. Edes selkeää linkkiä mobiiliversioon ei ole tarjolla.</p> <p>Satunnaiset käyttäjät – he, jotka eivät (ainakaan vielä) ole nähneet tarpeelliseksi asentaa palvelun sovellusta puhelimeensa – hyötyisivät mobiiliversion löydettävyydestä merkittävästi.</p> <p>Sovelluksia ihastellessa unohtuu usein, että niiden asentaminen on monille edelleen sen verran iso kynnys, että mikäli ei ole täysin sitoutunut käyttäjä, jää se helposti tekemättä. Sitä paitsi sovelluskauppojen selaaminen ei varmasti ole koko kansan iltahuvia. Eat.fi:llä epäilemättä on iso uskollinen käyttäjäkunta, joka sovelluksen on jo asentanut. En silti usko, että kaikkia potentiaalisia käyttäjiä on vielä saatu asentamaan sovellusta.</p> <p>Mobiiliversion välittömän käyttäjäpotentiaalin voi tarkistaa varsin helposti Google Analyticsista mobiililaiteraporteista. Mikäli se on Eat.fi:n mainitseman 40 000 viikkotason eri kävijän massasta yhtään merkittävä osuus, kannattaisi asialle tehdä jotain. Tyypillisesti mobiiliprosentti huitelee jossain viiden prosentin tienoilla ja on kovassa kasvussa.</p> <p>Miten sitten Eat.fi voisi toimia parantaakseen tilannetta? Yksinkertaista:</p> <ol> <li>Toteutetaan Eat.fi:hin yksinkertainen laitetunnistus, joka uudelleenohjaa merkittävimmät mobiililaittet automaattisesti m.eat.fi:hin. <li>Lisätään Eat.fi:hin selkeä linkki mobiiliversioon, aivan sivun alkuun. Näin tunnistamatta jääneiltäkin laitteilta on mahdollista löytää mobiiliversio. <li>Lisätään m.eat.fi:hin selkeä linkki takaisin täysversioon. Koska mobiiliversio on toiminnoiltaan typistetty ja poikkeava, on tarjottava myös täysversiota sitä haluaville. <li>Lisätään m.eat.fi:hin tietoa sovellusten latausmahdollisuuksista (kohdennettuna käyttäjän laitteen mukaan, jos se tunnistetaan). </ol> <p>Uudelleenohjauksissa ja linkityksissä on huomioitava, että viittaukset tehdään suoraan vastaavaan sisältöön toisessa versiossa eikä vain kylmästi etusivulle. Ja kun kyseessä on teknisesti kaksi eri versiota, on myös pidettävä huolta, että karsittukin versio todella osaa näyttää sisällön. Ainakin <a href="http://xposit.org/post/4180798523/hesarin-kaikkia-sivuja-ei-voi-katsella">Hs.fi:llä oli tällaisia ongelmia</a>.</p> <p>(Tätä ongelmaa ei tule <a href="http://danielkoskinen.com/fi/2011/mukautuvaa-verkkosuunnittelua/">mukautuvassa verkkosuunnittelussa</a>, mutta se ei sovellusmaiseen Eat.fi:hin välttämättä ole sovellettavissa eikä varsinkaan ratkaise tätä sinänsä pientä ongelmaa kustannustehokkaasti.)</p> <p>Näillä pienillä toimilla saataisiin mobiiliversiolle isompi käyttäaste, palveltaisiin satunnaisia käyttäjiä paremmin ja ohjattaisiin satunnaisia käyttäjiä säännöllisemmiksi sovellusten käyttäjiksi.</p> <p>Mobiilisaitin käyttöaste saattaa muutosten jälkeenkin säilyä olemattomana, mutta ainakaan se ei ole enää löydettävyydestä kiinni.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/OniWfoggfuI" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(42) "http://akibjorklund.com/2011/olematon/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(37) "http://akibjorklund.com/2011/olematon" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-07-07T23:38:19-07:00" ["dc"]=> array(8) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(5) ["subject"]=> string(7) "lang:fi" ["subject#2"]=> string(6) "Eat.fi" ["subject#3"]=> string(7) "mobiili" ["subject#4"]=> string(27) "mukautuva verkkosuunnittelu" ["subject#5"]=> string(15) "web-analytiikka" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(597) "Postilaatikkoon tipahti Eat.fi:n tiedote: Eat.fi:n mobiilisovellukset suosittuja, verkkosivujen käyttö mobiililaitteilla olematonta Eat.fi-palvelua on voinut käyttää mobiililaitteilla, esimerkiksi mobiilioptimoidun verkkosivun kautta osoitteessa m.eat.fi jo vuodesta 2009. Tämän lisäksi palvelua on voinut käyttää myös erillisillä mobiililaitesovelluksilla. Sovellukset ovat tarjolla Applen iPhonelle, Android-puhelimille ja Nokian puhelimille. Tällä hetkellä palvelun mobiililaitteille optimoidun verkkosivun käyttö on erittäin vähäistä. &#8220;Mobiilisovellukset ovat [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(4618) "<p>Postilaatikkoon tipahti Eat.fi:n tiedote:</p> <blockquote cite="http://www.epressi.com/tiedote/lifestyle/eat.fin-mobiilisovellukset-suosittuja-verkkosivujen-kaytto-mobiililaitteilla-olematonta"> <h3>Eat.fi:n mobiilisovellukset suosittuja, verkkosivujen käyttö mobiililaitteilla olematonta</h3> <p>Eat.fi-palvelua on voinut käyttää mobiililaitteilla, esimerkiksi mobiilioptimoidun verkkosivun kautta osoitteessa m.eat.fi jo vuodesta 2009. Tämän lisäksi palvelua on voinut käyttää myös erillisillä mobiililaitesovelluksilla. Sovellukset ovat tarjolla Applen iPhonelle, Android-puhelimille ja Nokian puhelimille. Tällä hetkellä palvelun mobiililaitteille optimoidun verkkosivun käyttö on erittäin vähäistä.</p> <p>&#8220;Mobiilisovellukset ovat nopeasti kasvattaneet suosiotaan. Tällä hetkellä Eat.fi:n mobiililaitteille optimoitujen verkkosivujen käyttö on vähentynyt käytännössä olemattomaksi&#8221;, kertoo Tina Aspiala Eat.fi-palvelusta.</p> <footer><a href="http://www.epressi.com/tiedote/lifestyle/eat.fin-mobiilisovellukset-suosittuja-verkkosivujen-kaytto-mobiililaitteilla-olematonta">Koko lehdistötiedote ePressi.com-palvelussa</a></footer> </blockquote> <p><img src="http://akibjorklund.com/files/2011/07/m.eat_.fi_.jpg" alt="Ravintolanäkymä m.eat.fi:ssä" width="265" height="533" class="right" />Tiedote ei pureudu tämän syvemmälle olemattomuuden syihin. Mutta vierailemalla Eat.fi:ssä mobiililaitteella selviää yksi todennäköinen syy välittömästi. Mitään uudelleenohjausta m.eat.fi:hin ei tapahdu. Edes selkeää linkkiä mobiiliversioon ei ole tarjolla.</p> <p>Satunnaiset käyttäjät – he, jotka eivät (ainakaan vielä) ole nähneet tarpeelliseksi asentaa palvelun sovellusta puhelimeensa – hyötyisivät mobiiliversion löydettävyydestä merkittävästi.</p> <p>Sovelluksia ihastellessa unohtuu usein, että niiden asentaminen on monille edelleen sen verran iso kynnys, että mikäli ei ole täysin sitoutunut käyttäjä, jää se helposti tekemättä. Sitä paitsi sovelluskauppojen selaaminen ei varmasti ole koko kansan iltahuvia. Eat.fi:llä epäilemättä on iso uskollinen käyttäjäkunta, joka sovelluksen on jo asentanut. En silti usko, että kaikkia potentiaalisia käyttäjiä on vielä saatu asentamaan sovellusta.</p> <p>Mobiiliversion välittömän käyttäjäpotentiaalin voi tarkistaa varsin helposti Google Analyticsista mobiililaiteraporteista. Mikäli se on Eat.fi:n mainitseman 40 000 viikkotason eri kävijän massasta yhtään merkittävä osuus, kannattaisi asialle tehdä jotain. Tyypillisesti mobiiliprosentti huitelee jossain viiden prosentin tienoilla ja on kovassa kasvussa.</p> <p>Miten sitten Eat.fi voisi toimia parantaakseen tilannetta? Yksinkertaista:</p> <ol> <li>Toteutetaan Eat.fi:hin yksinkertainen laitetunnistus, joka uudelleenohjaa merkittävimmät mobiililaittet automaattisesti m.eat.fi:hin. <li>Lisätään Eat.fi:hin selkeä linkki mobiiliversioon, aivan sivun alkuun. Näin tunnistamatta jääneiltäkin laitteilta on mahdollista löytää mobiiliversio. <li>Lisätään m.eat.fi:hin selkeä linkki takaisin täysversioon. Koska mobiiliversio on toiminnoiltaan typistetty ja poikkeava, on tarjottava myös täysversiota sitä haluaville. <li>Lisätään m.eat.fi:hin tietoa sovellusten latausmahdollisuuksista (kohdennettuna käyttäjän laitteen mukaan, jos se tunnistetaan). </ol> <p>Uudelleenohjauksissa ja linkityksissä on huomioitava, että viittaukset tehdään suoraan vastaavaan sisältöön toisessa versiossa eikä vain kylmästi etusivulle. Ja kun kyseessä on teknisesti kaksi eri versiota, on myös pidettävä huolta, että karsittukin versio todella osaa näyttää sisällön. Ainakin <a href="http://xposit.org/post/4180798523/hesarin-kaikkia-sivuja-ei-voi-katsella">Hs.fi:llä oli tällaisia ongelmia</a>.</p> <p>(Tätä ongelmaa ei tule <a href="http://danielkoskinen.com/fi/2011/mukautuvaa-verkkosuunnittelua/">mukautuvassa verkkosuunnittelussa</a>, mutta se ei sovellusmaiseen Eat.fi:hin välttämättä ole sovellettavissa eikä varsinkaan ratkaise tätä sinänsä pientä ongelmaa kustannustehokkaasti.)</p> <p>Näillä pienillä toimilla saataisiin mobiiliversiolle isompi käyttäaste, palveltaisiin satunnaisia käyttäjiä paremmin ja ohjattaisiin satunnaisia käyttäjiä säännöllisemmiksi sovellusten käyttäjiksi.</p> <p>Mobiilisaitin käyttöaste saattaa muutosten jälkeenkin säilyä olemattomana, mutta ainakaan se ei ole enää löydettävyydestä kiinni.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/OniWfoggfuI" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["category#2"]=> string(6) "Eat.fi" ["category#3"]=> string(7) "mobiili" ["category#4"]=> string(27) "mukautuva verkkosuunnittelu" ["category#5"]=> string(15) "web-analytiikka" ["date_timestamp"]=> int(1310107099) } [3]=> array(52) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(34) "★ Luettua: Responsive Web Design" ["link#"]=> int(1) ["link"]=> string(96) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/NkxRG_dZdfE/luettua-responsive-web-design" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(96) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/NkxRG_dZdfE/luettua-responsive-web-design" ["category#"]=> int(4) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(14) "Ethan Marcotte" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(17) "responsive design" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(10) "web design" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-06-20T05:19:42-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3162" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(487) "Responsive Web Design on Ethan Marcotten tuore, lyhyt, mutta asiapitoinen kirja siitä, kuinka rakentaa verkkosivuja, jotka eivät ole sidottuja tiettyyn pikselileveyteen. Kirjassa on viisi lukua: ensimmäisessä perustellaan responsiivisen suunnittelun ajatusta. Seuraavat kolme lukua käsittelevät kukin yhden kolmesta perusrakennuspalikasta: joustavat gridit, joustavat kuvat ja media queryt. Keskimmäisen luvun ydinosat ovat luettavissa A List Apartin artikkelista. Viimeinen [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1742) "<p><a href="http://www.abookapart.com/products/responsive-web-design">Responsive Web Design</a> on <a href="http://unstoppablerobotninja.com/">Ethan Marcotten</a> tuore, lyhyt, mutta asiapitoinen kirja siitä, kuinka rakentaa verkkosivuja, jotka eivät ole sidottuja tiettyyn pikselileveyteen.</p> <p>Kirjassa on viisi lukua: ensimmäisessä perustellaan responsiivisen suunnittelun ajatusta. Seuraavat kolme lukua käsittelevät kukin yhden kolmesta perusrakennuspalikasta: joustavat gridit, joustavat kuvat ja media queryt. Keskimmäisen luvun <a href="http://www.alistapart.com/articles/fluid-images/">ydinosat ovat luettavissa A List Apartin artikkelista</a>. Viimeinen luku käsittelee joitain yksityiskohtia ja työprosessien muutoksia. Yllättävää kyllä mobile first -ajattelu tuodaan mukaan vasta tässä vaiheessa.</p> <p>Kun lähtee tekemään responsiivista suunnittelua, huomaa nopeasti, että tarvitaan myös responsiivinen julkaisujärjestelmä ja responsiivista sisältöäkin. Nämä alueet on pientä mainintaa lukuun ottamatta jätetty kirjan ulkopuolelle, mikä on osaltaan harmi, mutta toisaalta riippuvat hyvin paljon taustateknologista, itse sivustosta ja sen sisällöstä. Ehkä näistä aiheista onkin sitten kirjoitettava teknologiakohtaiset opukset.</p> <p>Noin 150 sivua sisältävä kirja ei ole ainakaan liian raskas paketti, vaan sen kahlaa läpi muutamassa tunnissa. Yhdeksän dollarin hintaan ei kannata jäädä pohtimaan sijoittaako moista summaa sähköiseen versioon. Kirja on teknisestä fokuksestaan huolimatta pakollista luettavaa kaikille verkkopalveluiden suunnittelijoille ja kehittäjille.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/NkxRG_dZdfE" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(63) "http://akibjorklund.com/2011/luettua-responsive-web-design/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "1" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(58) "http://akibjorklund.com/2011/luettua-responsive-web-design" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-06-20T05:19:42-07:00" ["dc"]=> array(7) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(4) ["subject"]=> string(7) "lang:fi" ["subject#2"]=> string(14) "Ethan Marcotte" ["subject#3"]=> string(17) "responsive design" ["subject#4"]=> string(10) "web design" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(487) "Responsive Web Design on Ethan Marcotten tuore, lyhyt, mutta asiapitoinen kirja siitä, kuinka rakentaa verkkosivuja, jotka eivät ole sidottuja tiettyyn pikselileveyteen. Kirjassa on viisi lukua: ensimmäisessä perustellaan responsiivisen suunnittelun ajatusta. Seuraavat kolme lukua käsittelevät kukin yhden kolmesta perusrakennuspalikasta: joustavat gridit, joustavat kuvat ja media queryt. Keskimmäisen luvun ydinosat ovat luettavissa A List Apartin artikkelista. Viimeinen [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1742) "<p><a href="http://www.abookapart.com/products/responsive-web-design">Responsive Web Design</a> on <a href="http://unstoppablerobotninja.com/">Ethan Marcotten</a> tuore, lyhyt, mutta asiapitoinen kirja siitä, kuinka rakentaa verkkosivuja, jotka eivät ole sidottuja tiettyyn pikselileveyteen.</p> <p>Kirjassa on viisi lukua: ensimmäisessä perustellaan responsiivisen suunnittelun ajatusta. Seuraavat kolme lukua käsittelevät kukin yhden kolmesta perusrakennuspalikasta: joustavat gridit, joustavat kuvat ja media queryt. Keskimmäisen luvun <a href="http://www.alistapart.com/articles/fluid-images/">ydinosat ovat luettavissa A List Apartin artikkelista</a>. Viimeinen luku käsittelee joitain yksityiskohtia ja työprosessien muutoksia. Yllättävää kyllä mobile first -ajattelu tuodaan mukaan vasta tässä vaiheessa.</p> <p>Kun lähtee tekemään responsiivista suunnittelua, huomaa nopeasti, että tarvitaan myös responsiivinen julkaisujärjestelmä ja responsiivista sisältöäkin. Nämä alueet on pientä mainintaa lukuun ottamatta jätetty kirjan ulkopuolelle, mikä on osaltaan harmi, mutta toisaalta riippuvat hyvin paljon taustateknologista, itse sivustosta ja sen sisällöstä. Ehkä näistä aiheista onkin sitten kirjoitettava teknologiakohtaiset opukset.</p> <p>Noin 150 sivua sisältävä kirja ei ole ainakaan liian raskas paketti, vaan sen kahlaa läpi muutamassa tunnissa. Yhdeksän dollarin hintaan ei kannata jäädä pohtimaan sijoittaako moista summaa sähköiseen versioon. Kirja on teknisestä fokuksestaan huolimatta pakollista luettavaa kaikille verkkopalveluiden suunnittelijoille ja kehittäjille.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/NkxRG_dZdfE" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["category#2"]=> string(14) "Ethan Marcotte" ["category#3"]=> string(17) "responsive design" ["category#4"]=> string(10) "web design" ["date_timestamp"]=> int(1308572382) } [4]=> array(55) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(48) "Reusing the fastest TCP connections on Firefox 5" ["link#"]=> int(1) ["link"]=> string(67) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/gHc48QfLpAg/" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(67) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/gHc48QfLpAg/" ["category#"]=> int(5) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:en" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(7) "Firefox" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(11) "hreflang:en" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(9) "HttpWatch" ["category#5@"]=> string(4) "term" ["category#5@term"]=> string(11) "performance" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-06-11T00:10:01-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3156" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(532) "HttpWatch blog: One of the major performance related changes in Firefox 5 is an improvement in the way that keep-alive HTTP connections are re-used. Previously, there was a simple FIFO queue. So if Firefox ever tried to reuse a TCP connection it would simply use the connection that had been idle for the longest period [...]<p><a href="http://akibjorklund.com/2011/reusing-the-fastest-tcp-connetions-on-firefox-5" rel="bookmark" title="Permanent link to 'Reusing the fastest TCP connections on Firefox 5'" class="glyph">★</a></p>" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(920) "<p>HttpWatch blog:</p> <blockquote><p>One of the major performance related changes in Firefox 5 is an improvement in the way that keep-alive HTTP connections are re-used. Previously, there was a simple FIFO queue. So if Firefox ever tried to reuse a TCP connection it would simply use the connection that had been idle for the longest period of time.</p> <p>However, not all connections are equal. Connections that have transmitted the most data are likely to be faster than those that have only received a small amount of data. This effect is caused by the congestion window mechanism in TCP.</p> </blockquote> <p><a href="http://akibjorklund.com/2011/reusing-the-fastest-tcp-connetions-on-firefox-5" rel="bookmark" title="Permanent link to 'Reusing the fastest TCP connections on Firefox 5'" class="glyph">★</a></p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/gHc48QfLpAg" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(81) "http://akibjorklund.com/2011/reusing-the-fastest-tcp-connetions-on-firefox-5/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(88) "http://blog.httpwatch.com/2011/06/10/investigating-the-network-performance-of-firefox-5/" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-06-11T00:10:01-07:00" ["dc"]=> array(8) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(5) ["subject"]=> string(7) "lang:en" ["subject#2"]=> string(7) "Firefox" ["subject#3"]=> string(11) "hreflang:en" ["subject#4"]=> string(9) "HttpWatch" ["subject#5"]=> string(11) "performance" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(532) "HttpWatch blog: One of the major performance related changes in Firefox 5 is an improvement in the way that keep-alive HTTP connections are re-used. Previously, there was a simple FIFO queue. So if Firefox ever tried to reuse a TCP connection it would simply use the connection that had been idle for the longest period [...]<p><a href="http://akibjorklund.com/2011/reusing-the-fastest-tcp-connetions-on-firefox-5" rel="bookmark" title="Permanent link to 'Reusing the fastest TCP connections on Firefox 5'" class="glyph">★</a></p>" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(920) "<p>HttpWatch blog:</p> <blockquote><p>One of the major performance related changes in Firefox 5 is an improvement in the way that keep-alive HTTP connections are re-used. Previously, there was a simple FIFO queue. So if Firefox ever tried to reuse a TCP connection it would simply use the connection that had been idle for the longest period of time.</p> <p>However, not all connections are equal. Connections that have transmitted the most data are likely to be faster than those that have only received a small amount of data. This effect is caused by the congestion window mechanism in TCP.</p> </blockquote> <p><a href="http://akibjorklund.com/2011/reusing-the-fastest-tcp-connetions-on-firefox-5" rel="bookmark" title="Permanent link to 'Reusing the fastest TCP connections on Firefox 5'" class="glyph">★</a></p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/gHc48QfLpAg" height="1" width="1"/>" } ["category"]=> string(7) "lang:en" ["category#2"]=> string(7) "Firefox" ["category#3"]=> string(11) "hreflang:en" ["category#4"]=> string(9) "HttpWatch" ["category#5"]=> string(11) "performance" ["date_timestamp"]=> int(1307776201) } [5]=> array(49) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(44) "It’s not just a shell, because it’s fast" ["link#"]=> int(1) ["link"]=> string(123) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Uz_W0_uXbFQ/windows-8-preview-analysis-computex-announcements-136358" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(123) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Uz_W0_uXbFQ/windows-8-preview-analysis-computex-announcements-136358" ["category#"]=> int(3) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:en" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(11) "hreflang:en" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(9) "Windows 8" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-06-04T00:42:26-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3121" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(510) "Paul Thurrott, trying to convince himself why the new Windows 8 touch UI is not just a shell: Answering the BS complaints about the new Windows 8 Start screen being &#8220;just a shell&#8221; on top of Windows, he [Microsoft corporate vice president Mike Angiulo] notes how quickly you can move back and forth between this [...]<p><a href="http://akibjorklund.com/2011/windows-8-shell-compromise" rel="bookmark" title="Permanent link to 'It’s not just a shell, because it’s fast'" class="glyph">★</a></p>" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1668) "<p>Paul Thurrott, trying to convince himself why the new Windows 8 touch UI is not just a shell:</p> <blockquote><p>Answering the BS complaints about the new Windows 8 Start screen being &#8220;just a shell&#8221; on top of Windows, he [Microsoft corporate vice president Mike Angiulo] notes how quickly you can move back and forth between this screen and the traditional Windows desktop. &#8220;You see how fast that switches?&#8221; he asks as he goes back and forth between the two UIs in a decidedly non-jarring manner. &#8220;It&#8217;s not a different mode. Launching this is like launching the Start Menu. It&#8217;s just instant.&#8221;</p> </blockquote> <p>Please explain to me why the speed of a shell somehow makes it not be a shell or a mode.</p> <p>The real problem with Windows 8 is of course nothing to do with the new UI being a shell or not. It is the fact that dealing with the complexity of traditional Windows UI is not enough anymore, users now have to deal with yet another layer of UI. It is an ugly compromise.</p> <p>Another sign of a compromise is that, at least for now, Windows 8 looks like it is designed to be only used in landscape more, like traditional desktop/laptop computers are. For tablets, landscape primarily only makes sense in games and watching video. In my experience, portrait is generally much more effective for other types of tasks.</p> <p><a href="http://akibjorklund.com/2011/windows-8-shell-compromise" rel="bookmark" title="Permanent link to 'It’s not just a shell, because it’s fast'" class="glyph">★</a></p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Uz_W0_uXbFQ" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(60) "http://akibjorklund.com/2011/windows-8-shell-compromise/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(101) "http://www.winsupersite.com/article/windows8/windows-8-preview-analysis-computex-announcements-136358" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-06-04T00:42:26-07:00" ["dc"]=> array(6) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(3) ["subject"]=> string(7) "lang:en" ["subject#2"]=> string(11) "hreflang:en" ["subject#3"]=> string(9) "Windows 8" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(510) "Paul Thurrott, trying to convince himself why the new Windows 8 touch UI is not just a shell: Answering the BS complaints about the new Windows 8 Start screen being &#8220;just a shell&#8221; on top of Windows, he [Microsoft corporate vice president Mike Angiulo] notes how quickly you can move back and forth between this [...]<p><a href="http://akibjorklund.com/2011/windows-8-shell-compromise" rel="bookmark" title="Permanent link to 'It’s not just a shell, because it’s fast'" class="glyph">★</a></p>" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1668) "<p>Paul Thurrott, trying to convince himself why the new Windows 8 touch UI is not just a shell:</p> <blockquote><p>Answering the BS complaints about the new Windows 8 Start screen being &#8220;just a shell&#8221; on top of Windows, he [Microsoft corporate vice president Mike Angiulo] notes how quickly you can move back and forth between this screen and the traditional Windows desktop. &#8220;You see how fast that switches?&#8221; he asks as he goes back and forth between the two UIs in a decidedly non-jarring manner. &#8220;It&#8217;s not a different mode. Launching this is like launching the Start Menu. It&#8217;s just instant.&#8221;</p> </blockquote> <p>Please explain to me why the speed of a shell somehow makes it not be a shell or a mode.</p> <p>The real problem with Windows 8 is of course nothing to do with the new UI being a shell or not. It is the fact that dealing with the complexity of traditional Windows UI is not enough anymore, users now have to deal with yet another layer of UI. It is an ugly compromise.</p> <p>Another sign of a compromise is that, at least for now, Windows 8 looks like it is designed to be only used in landscape more, like traditional desktop/laptop computers are. For tablets, landscape primarily only makes sense in games and watching video. In my experience, portrait is generally much more effective for other types of tasks.</p> <p><a href="http://akibjorklund.com/2011/windows-8-shell-compromise" rel="bookmark" title="Permanent link to 'It’s not just a shell, because it’s fast'" class="glyph">★</a></p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Uz_W0_uXbFQ" height="1" width="1"/>" } ["category"]=> string(7) "lang:en" ["category#2"]=> string(11) "hreflang:en" ["category#3"]=> string(9) "Windows 8" ["date_timestamp"]=> int(1307173346) } [6]=> array(58) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(45) "★ Make your call to action call some action" ["link#"]=> int(1) ["link"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/mCqL3wBZw1I/call-to-action-email" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/mCqL3wBZw1I/call-to-action-email" ["category#"]=> int(6) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:en" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(3) "CTA" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(9) "Delicious" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(6) "design" ["category#5@"]=> string(4) "term" ["category#5@term"]=> string(5) "email" ["category#6@"]=> string(4) "term" ["category#6@term"]=> string(9) "usability" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-04-29T01:21:36-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=3070" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(322) "Don&#8217;t put your call to action on an image when emailing your customers. Most people won&#8217;t see it. If an action is required, mention it in the subject – or at least in the first paragraph. (This applies to not only mass email but also to private messaging.) The case in point: This important email does [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(1372) "<p>Don&#8217;t put your call to action on an image when emailing your customers. Most people won&#8217;t see it. If an action is required, mention it in the subject – or at least in the first paragraph. (This applies to not only mass email but also to private messaging.) The case in point:</p> <figure class="screenshot"><img src="/files/2011/04/delicious.png" width="696" height="599" alt="" /><br /> <figcaption><span>This important email does not look so important when images are not downloaded. The subject line or the first paragraph mention no action required.</span></figcaption> </figure> <p>Look at it again, this time with images displayed:</p> <figure class="screenshot"><img src="/files/2011/04/delicious-2.png" width="698" height="590" alt="" /><br /> <figcaption><span>Now it is pretty clear I need to do something. Too bad by default most people will not see the button.</span></figcaption> </figure> <p>It is quite telling that I had already deleted this email but happened to see on Twitter someone mentioning something about agreeing to something related to Delicious. So I went back and noticed this.</p> <p>Always test your email in most popular clients. Don&#8217;t focus on visual perfection – as it is impossible today – but usability.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/mCqL3wBZw1I" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(54) "http://akibjorklund.com/2011/call-to-action-email/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "1" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(49) "http://akibjorklund.com/2011/call-to-action-email" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-04-29T01:21:36-07:00" ["dc"]=> array(9) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(6) ["subject"]=> string(7) "lang:en" ["subject#2"]=> string(3) "CTA" ["subject#3"]=> string(9) "Delicious" ["subject#4"]=> string(6) "design" ["subject#5"]=> string(5) "email" ["subject#6"]=> string(9) "usability" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(322) "Don&#8217;t put your call to action on an image when emailing your customers. Most people won&#8217;t see it. If an action is required, mention it in the subject – or at least in the first paragraph. (This applies to not only mass email but also to private messaging.) The case in point: This important email does [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(1372) "<p>Don&#8217;t put your call to action on an image when emailing your customers. Most people won&#8217;t see it. If an action is required, mention it in the subject – or at least in the first paragraph. (This applies to not only mass email but also to private messaging.) The case in point:</p> <figure class="screenshot"><img src="/files/2011/04/delicious.png" width="696" height="599" alt="" /><br /> <figcaption><span>This important email does not look so important when images are not downloaded. The subject line or the first paragraph mention no action required.</span></figcaption> </figure> <p>Look at it again, this time with images displayed:</p> <figure class="screenshot"><img src="/files/2011/04/delicious-2.png" width="698" height="590" alt="" /><br /> <figcaption><span>Now it is pretty clear I need to do something. Too bad by default most people will not see the button.</span></figcaption> </figure> <p>It is quite telling that I had already deleted this email but happened to see on Twitter someone mentioning something about agreeing to something related to Delicious. So I went back and noticed this.</p> <p>Always test your email in most popular clients. Don&#8217;t focus on visual perfection – as it is impossible today – but usability.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/mCqL3wBZw1I" height="1" width="1"/>" } ["category"]=> string(7) "lang:en" ["category#2"]=> string(3) "CTA" ["category#3"]=> string(9) "Delicious" ["category#4"]=> string(6) "design" ["category#5"]=> string(5) "email" ["category#6"]=> string(9) "usability" ["date_timestamp"]=> int(1304065296) } [7]=> array(46) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(25) "★ Redefining web design" ["link#"]=> int(1) ["link"]=> string(88) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/VtDxUIDMqSE/redefining-web-design" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(88) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/VtDxUIDMqSE/redefining-web-design" ["category#"]=> int(2) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:en" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(10) "web design" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-04-26T02:54:52-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=2932" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(346) "I&#8217;ve been a big fan of Yiibu&#8217;s Rethinking the Mobile Web presentation and the whole approach for some time now. That is basically what I&#8217;ve been recommending my clients implement as their mobile strategy. You should really see the slides of the presentation, if you have not already. But as I&#8217;m not only a consultant [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(5566) "<p>I&#8217;ve been a big fan of <a href="http://yiibu.com/">Yiibu&#8217;s</a> Rethinking the Mobile Web presentation and the whole approach for some time now. That is basically what I&#8217;ve been recommending my clients implement as their mobile strategy. You should really see <a href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu">the slides of the presentation</a>, if you have not already.</p> <p><iframe src="http://www.slideshare.net/slideshow/embed_code/5172436" width="700" height="562"></iframe></p> <p>But as I&#8217;m not only a consultant and – more importantly – to practice what I preach, I&#8217;ve been doing something like this on my development projects. The first one is <a href="http://www.sulava.com/">the blog and website of Sulava</a>. (More about the implementation details in another post later.)</p> <p><a href="/files/2011/04/mq.jpg"><img src="/files/2011/04/mq700.jpg" width="700" height="278" alt="Sulava.com side adapts to window size from about 300 pixels to 1000 pixels" class="borderless" style="margin-left:-14px" /></a></p> <p>Actually working with this stuff made me convinced this is the future.</p> <p>I asked Bryan Rieger of Yiiby if they had any brand name for their approach, because I felt it would make it much easier to communicate these ideas if we had a name for them.</p> <p><a href="https://twitter.com/bryanrieger/status/39272917221117952"><img src="/files/2011/04/rieger.png" width="580" height="285" alt="@bryanrieger Bryan Rieger: @akibjorklund hmm, not one for brand names myself, but we've simply been referring to it as 'adaptive' via progressive enhancement. – 20 Feb via Twitterrific" /></a></p> <p>&#8220;Adaptive design via progressive enhancement&#8221; doesn&#8217;t quite roll of the tongue now, does it?</p> <p>I was proposing &#8220;one web&#8221; – but found out later that term is <a href="http://adactio.com/journal/1716/">already been suggested</a> but had not catched on. Plus those words are too generic.</p> <p>Last week Rieger was touching the same subject:</p> <p><a href="https://twitter.com/bryanrieger/status/62139145342025728"><img src="/files/2011/04/rieger2.png" width="556" height="256" alt="@bryanrieger Bryan Rieger: Honestly, what is wrong with 'web design'? We should have been designing 'adaptive' and 'responsive' web experiences all along... :/ – 24 Apr via web" /></a></p> <p>That&#8217;s a real good question. So instead of me proposing a new term (although it <em>is</em> tempting) I&#8217;m going with that – web design. It just needs to be redefined.</p> <p>Here are some of the main characteristics of modern web design:</p> <ol> <li><strong>Mobile first</strong> – Design and build websites first for the least capable device.</li> <li><strong>Single adaptive, responsive website</strong> – We don&#8217;t need a different mobile website in most cases. It is just more work in the long run.</li> <li><strong>Functional, usable design</strong> – Don&#8217;t just &#8220;make it pretty&#8221;. Make it beautiful by making it obvious and easy.</li> <li><strong>Progressively enhanced</strong> – Using cutting edge technologies in a way that does not prevent older/inferior browsers to also work.</li> <li><strong>Semantic markup</strong> – We cannot always know beforehand all the uses of our design. By making the markup as semantic as possible we maximize its reuse possibilities.</li> <li><strong>Designed to fail</strong> – On an environment that is constantly chancing, failure is inevitable. By assuming everything can fail the design will be more future-proof. Part of design to fail is making sure the website is periodically evaluated for defects and improvement possibilities</li> <li><strong>Performance-optimized</strong> – Performance optimization is not just for unreliable mobile connections – the society keeps moving faster (people actually walk faster). Websites need to load faster too.</li> </ol> <p>This is not to say the list is complete or that every item on it is even mandatory. The list <em>will never be</em> complete, since the web is constantly evolving.</p> <p>Web design is in a way in crisis. It has become a commodity. Many designers do not appreciate their own work enough and are getting away from the actual implementation to do more high-level stuff or sometimes getting out of the business entirely.</p> <p>We need to be more enthusiastic of what we do. Our work has more meaning than the message it delivers. It is about the people the message serves. We cannot serve the people well by detaching ourselves from the actual output of our work.</p> <p>We also need more challenges. Mindlessly converting PSD files into CSS layouts or acting as an email-controlled Photoshop is not what I call web design. There are after all many outsourcing services that can do that kind of work for us.</p> <p>By making our work meaningful we make sure we and others appreciate our work in the future too. Luckily web design has gotten a lot of new toys lately to play with from the browsers manufacturers. And not only toys but actual stuff we <a href="http://caniuse.com/">can use</a>.</p> <p>But still, web design is not about pretty pixels or latest tricks in CSS. It is about a craft. A great craftsman will always find ways to be more knowledgeable and mindful about what he or she does.</p> <p>Web needs to keep moving forward and I for one would like to be part of the movement.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/VtDxUIDMqSE" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(55) "http://akibjorklund.com/2011/redefining-web-design/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(50) "http://akibjorklund.com/2011/redefining-web-design" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-04-26T02:54:52-07:00" ["dc"]=> array(5) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(2) ["subject"]=> string(7) "lang:en" ["subject#2"]=> string(10) "web design" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(346) "I&#8217;ve been a big fan of Yiibu&#8217;s Rethinking the Mobile Web presentation and the whole approach for some time now. That is basically what I&#8217;ve been recommending my clients implement as their mobile strategy. You should really see the slides of the presentation, if you have not already. But as I&#8217;m not only a consultant [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(5566) "<p>I&#8217;ve been a big fan of <a href="http://yiibu.com/">Yiibu&#8217;s</a> Rethinking the Mobile Web presentation and the whole approach for some time now. That is basically what I&#8217;ve been recommending my clients implement as their mobile strategy. You should really see <a href="http://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu">the slides of the presentation</a>, if you have not already.</p> <p><iframe src="http://www.slideshare.net/slideshow/embed_code/5172436" width="700" height="562"></iframe></p> <p>But as I&#8217;m not only a consultant and – more importantly – to practice what I preach, I&#8217;ve been doing something like this on my development projects. The first one is <a href="http://www.sulava.com/">the blog and website of Sulava</a>. (More about the implementation details in another post later.)</p> <p><a href="/files/2011/04/mq.jpg"><img src="/files/2011/04/mq700.jpg" width="700" height="278" alt="Sulava.com side adapts to window size from about 300 pixels to 1000 pixels" class="borderless" style="margin-left:-14px" /></a></p> <p>Actually working with this stuff made me convinced this is the future.</p> <p>I asked Bryan Rieger of Yiiby if they had any brand name for their approach, because I felt it would make it much easier to communicate these ideas if we had a name for them.</p> <p><a href="https://twitter.com/bryanrieger/status/39272917221117952"><img src="/files/2011/04/rieger.png" width="580" height="285" alt="@bryanrieger Bryan Rieger: @akibjorklund hmm, not one for brand names myself, but we've simply been referring to it as 'adaptive' via progressive enhancement. – 20 Feb via Twitterrific" /></a></p> <p>&#8220;Adaptive design via progressive enhancement&#8221; doesn&#8217;t quite roll of the tongue now, does it?</p> <p>I was proposing &#8220;one web&#8221; – but found out later that term is <a href="http://adactio.com/journal/1716/">already been suggested</a> but had not catched on. Plus those words are too generic.</p> <p>Last week Rieger was touching the same subject:</p> <p><a href="https://twitter.com/bryanrieger/status/62139145342025728"><img src="/files/2011/04/rieger2.png" width="556" height="256" alt="@bryanrieger Bryan Rieger: Honestly, what is wrong with 'web design'? We should have been designing 'adaptive' and 'responsive' web experiences all along... :/ – 24 Apr via web" /></a></p> <p>That&#8217;s a real good question. So instead of me proposing a new term (although it <em>is</em> tempting) I&#8217;m going with that – web design. It just needs to be redefined.</p> <p>Here are some of the main characteristics of modern web design:</p> <ol> <li><strong>Mobile first</strong> – Design and build websites first for the least capable device.</li> <li><strong>Single adaptive, responsive website</strong> – We don&#8217;t need a different mobile website in most cases. It is just more work in the long run.</li> <li><strong>Functional, usable design</strong> – Don&#8217;t just &#8220;make it pretty&#8221;. Make it beautiful by making it obvious and easy.</li> <li><strong>Progressively enhanced</strong> – Using cutting edge technologies in a way that does not prevent older/inferior browsers to also work.</li> <li><strong>Semantic markup</strong> – We cannot always know beforehand all the uses of our design. By making the markup as semantic as possible we maximize its reuse possibilities.</li> <li><strong>Designed to fail</strong> – On an environment that is constantly chancing, failure is inevitable. By assuming everything can fail the design will be more future-proof. Part of design to fail is making sure the website is periodically evaluated for defects and improvement possibilities</li> <li><strong>Performance-optimized</strong> – Performance optimization is not just for unreliable mobile connections – the society keeps moving faster (people actually walk faster). Websites need to load faster too.</li> </ol> <p>This is not to say the list is complete or that every item on it is even mandatory. The list <em>will never be</em> complete, since the web is constantly evolving.</p> <p>Web design is in a way in crisis. It has become a commodity. Many designers do not appreciate their own work enough and are getting away from the actual implementation to do more high-level stuff or sometimes getting out of the business entirely.</p> <p>We need to be more enthusiastic of what we do. Our work has more meaning than the message it delivers. It is about the people the message serves. We cannot serve the people well by detaching ourselves from the actual output of our work.</p> <p>We also need more challenges. Mindlessly converting PSD files into CSS layouts or acting as an email-controlled Photoshop is not what I call web design. There are after all many outsourcing services that can do that kind of work for us.</p> <p>By making our work meaningful we make sure we and others appreciate our work in the future too. Luckily web design has gotten a lot of new toys lately to play with from the browsers manufacturers. And not only toys but actual stuff we <a href="http://caniuse.com/">can use</a>.</p> <p>But still, web design is not about pretty pixels or latest tricks in CSS. It is about a craft. A great craftsman will always find ways to be more knowledgeable and mindful about what he or she does.</p> <p>Web needs to keep moving forward and I for one would like to be part of the movement.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/VtDxUIDMqSE" height="1" width="1"/>" } ["category"]=> string(7) "lang:en" ["category#2"]=> string(10) "web design" ["date_timestamp"]=> int(1303811692) } [8]=> array(55) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(72) "★ Notes on using HTML5 input type=search and the placeholder attribute" ["link#"]=> int(1) ["link"]=> string(96) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/48tZaUo5908/input-type-search-placeholder" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(96) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/48tZaUo5908/input-type-search-placeholder" ["category#"]=> int(5) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:en" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(3) "CSS" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(5) "HTML5" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(6) "jQuery" ["category#5@"]=> string(4) "term" ["category#5@term"]=> string(9) "Modernizr" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-04-24T11:51:55-07:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=2969" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(328) "&#60;input type=search&#62; is one of the HTML5 additions to form input types. In theory you can just replace the old &#60;input type=text&#62; with the new type and browsers continue to work and the site is now more semantic. In practice working with type=search is not that simple. First thing you probably want to do is [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(3673) "<p><code class="prettyprint lang-html">&lt;input type=search&gt;</code> is one of the HTML5 additions to form input types. In theory you can just replace the old <code class="prettyprint lang-html">&lt;input type=text&gt;</code> with the new type and browsers continue to work and the site is now more semantic. In practice working with <code class="prettyprint lang-html">type=search</code> is not that simple.</p> <p>First thing you probably want to do is to remove Webkit&#8217;s default, heavy styling. You do that by these CSS commands:</p> <pre><code class="prettyprint lang-css">-webkit-appearance:textfield; -webkit-box-sizing:content-box;</code></pre> <p>I initially used the former, but after some odd width calculation issues I found out that latter is also needed to actually fully restore familiar type=text behavior.</p> <p>Placeholder text is another wonderful addition to input elements (not just type=search). This replicates the common behavior of having the search field label within the field itself (until the user focuses the field). You add placeholder text by adding an attribute to the input element like this: placeholder=&#8221;search this site&#8221;.</p> <p>To gracefully degrade, use <a href="http://www.modernizr.com/">Modernizr</a> to detect a browsers with no support:</p> <pre><code class="prettyprint lang-js">jQuery(function($) { if (!Modernizr.input.placeholder || navigator.userAgent.match(/opera/i)) { $('input[placeholder]').hint(); } });</code></pre> <p>Here I decided to replace native placeholder support on Opera, since there are no styling options for it, yet. The text is always in <code>#7f7f7f</code>, which was not an option, since the background was exactly that color.</p> <p>To style placeholder text you need these rules:</p> <pre><code class="prettyprint lang-css">input[type=search].blur{color:#ddd} input[type=search]::-webkit-input-placeholder{color:#ddd} input[type=search]:-moz-placeholder{color:#ddd}</code></pre> <p>You cannot combine those selectors, since the rule will stop working as expected. .blur is for browsers that do not support native placeholder behavior.</p> <p>And here is the modified version of the plugin that adds placeholder behavior. To make it more HTML5 friendly, I basically just replaced the use of title attribute with placeholder attribute.</p> <pre><code class="prettyprint lang-js">/** * @author Remy Sharp * @url http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/ * Modified to use placeholder attribute by Aki Björklund, http://akibjorklund.com/ */ (function ($) { $.fn.hint = function (blurClass) { if (!blurClass) { blurClass = 'blur'; } return this.each(function () { // get jQuery version of 'this' var $input = $(this), // capture the rest of the variable to allow for reuse placeholder = $input.attr('placeholder'), $form = $(this.form), $win = $(window); function remove() { if ($input.val() === placeholder &#038;&#038; $input.hasClass(blurClass)) { $input.val('').removeClass(blurClass); } } // only apply logic if the element has the attribute if (placeholder) { // on blur, set value to placeholder attr if text is blank $input.blur(function () { if (this.value === '') { $input.val(placeholder).addClass(blurClass); } }).focus(remove).blur(); // now change all inputs to placeholder // clear the pre-defined text when form is submitted $form.submit(remove); $win.unload(remove); // handles Firefox's autocomplete } }); }; })(jQuery);</code></pre> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/48tZaUo5908" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(63) "http://akibjorklund.com/2011/input-type-search-placeholder/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "0" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(58) "http://akibjorklund.com/2011/input-type-search-placeholder" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-04-24T11:51:55-07:00" ["dc"]=> array(8) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(5) ["subject"]=> string(7) "lang:en" ["subject#2"]=> string(3) "CSS" ["subject#3"]=> string(5) "HTML5" ["subject#4"]=> string(6) "jQuery" ["subject#5"]=> string(9) "Modernizr" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(328) "&#60;input type=search&#62; is one of the HTML5 additions to form input types. In theory you can just replace the old &#60;input type=text&#62; with the new type and browsers continue to work and the site is now more semantic. In practice working with type=search is not that simple. First thing you probably want to do is [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(3673) "<p><code class="prettyprint lang-html">&lt;input type=search&gt;</code> is one of the HTML5 additions to form input types. In theory you can just replace the old <code class="prettyprint lang-html">&lt;input type=text&gt;</code> with the new type and browsers continue to work and the site is now more semantic. In practice working with <code class="prettyprint lang-html">type=search</code> is not that simple.</p> <p>First thing you probably want to do is to remove Webkit&#8217;s default, heavy styling. You do that by these CSS commands:</p> <pre><code class="prettyprint lang-css">-webkit-appearance:textfield; -webkit-box-sizing:content-box;</code></pre> <p>I initially used the former, but after some odd width calculation issues I found out that latter is also needed to actually fully restore familiar type=text behavior.</p> <p>Placeholder text is another wonderful addition to input elements (not just type=search). This replicates the common behavior of having the search field label within the field itself (until the user focuses the field). You add placeholder text by adding an attribute to the input element like this: placeholder=&#8221;search this site&#8221;.</p> <p>To gracefully degrade, use <a href="http://www.modernizr.com/">Modernizr</a> to detect a browsers with no support:</p> <pre><code class="prettyprint lang-js">jQuery(function($) { if (!Modernizr.input.placeholder || navigator.userAgent.match(/opera/i)) { $('input[placeholder]').hint(); } });</code></pre> <p>Here I decided to replace native placeholder support on Opera, since there are no styling options for it, yet. The text is always in <code>#7f7f7f</code>, which was not an option, since the background was exactly that color.</p> <p>To style placeholder text you need these rules:</p> <pre><code class="prettyprint lang-css">input[type=search].blur{color:#ddd} input[type=search]::-webkit-input-placeholder{color:#ddd} input[type=search]:-moz-placeholder{color:#ddd}</code></pre> <p>You cannot combine those selectors, since the rule will stop working as expected. .blur is for browsers that do not support native placeholder behavior.</p> <p>And here is the modified version of the plugin that adds placeholder behavior. To make it more HTML5 friendly, I basically just replaced the use of title attribute with placeholder attribute.</p> <pre><code class="prettyprint lang-js">/** * @author Remy Sharp * @url http://remysharp.com/2007/01/25/jquery-tutorial-text-box-hints/ * Modified to use placeholder attribute by Aki Björklund, http://akibjorklund.com/ */ (function ($) { $.fn.hint = function (blurClass) { if (!blurClass) { blurClass = 'blur'; } return this.each(function () { // get jQuery version of 'this' var $input = $(this), // capture the rest of the variable to allow for reuse placeholder = $input.attr('placeholder'), $form = $(this.form), $win = $(window); function remove() { if ($input.val() === placeholder &#038;&#038; $input.hasClass(blurClass)) { $input.val('').removeClass(blurClass); } } // only apply logic if the element has the attribute if (placeholder) { // on blur, set value to placeholder attr if text is blank $input.blur(function () { if (this.value === '') { $input.val(placeholder).addClass(blurClass); } }).focus(remove).blur(); // now change all inputs to placeholder // clear the pre-defined text when form is submitted $form.submit(remove); $win.unload(remove); // handles Firefox's autocomplete } }); }; })(jQuery);</code></pre> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/48tZaUo5908" height="1" width="1"/>" } ["category"]=> string(7) "lang:en" ["category#2"]=> string(3) "CSS" ["category#3"]=> string(5) "HTML5" ["category#4"]=> string(6) "jQuery" ["category#5"]=> string(9) "Modernizr" ["date_timestamp"]=> int(1303671115) } [9]=> array(55) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(45) "★ W3C brändäsi HTML5:n, puristit itkivät" ["link#"]=> int(1) ["link"]=> string(85) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/peRxuAgr-X8/w3c-html5-puristit" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(85) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/peRxuAgr-X8/w3c-html5-puristit" ["category#"]=> int(5) ["category@"]=> string(4) "term" ["category@term"]=> string(7) "lang:fi" ["category#2@"]=> string(4) "term" ["category#2@term"]=> string(15) "brändääminen" ["category#3@"]=> string(4) "term" ["category#3@term"]=> string(5) "HTML5" ["category#4@"]=> string(4) "term" ["category#4@term"]=> string(3) "W3C" ["category#5@"]=> string(4) "term" ["category#5@term"]=> string(14) "web-standardit" ["author#"]=> int(1) ["author_name#"]=> int(1) ["author_name"]=> string(14) "Aki Björklund" ["updated#"]=> int(1) ["updated"]=> string(25) "2011-01-19T05:02:33-08:00" ["id#"]=> int(1) ["id"]=> string(31) "http://akibjorklund.com/?p=2899" ["summary#"]=> int(1) ["summary@"]=> string(13) "type,xml:base" ["summary@type"]=> string(4) "html" ["summary@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["summary"]=> string(447) "HTML5:stä oli muodostunut kansan suussa jotain muuta kuin mitä tiukkaan luettuna HTML5-speksi käsittää. Puristien mielipiteillä ei ole väliä. W3C teki oikein tarttuessaan tilaisuuteen vahvistaa tuota brändiä, joka joka tapauksessa oli jo olemassa. Kun haluaa korostaa eroa, ei ole kovin vaikeaa puhua HTML5-speksistä silloin kun sitä tarkoittaa ja jatkaa puhumista web-teknologioiden toisesta tulemisesta HTML5:na. Tämän hullun [...]" ["atom_content#"]=> int(1) ["atom_content@"]=> string(13) "type,xml:base" ["atom_content@type"]=> string(4) "html" ["atom_content@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["atom_content"]=> string(948) "<p><object data="http://akibjorklund.com/files/2011/01/html5.svg" width="256" height="256" class="right borderless"><img src="http://akibjorklund.com/files/2011/01/html5.png" width="256" height="256" alt="HTML5" /></object>HTML5:stä oli muodostunut kansan suussa jotain muuta kuin mitä tiukkaan luettuna HTML5-speksi käsittää. Puristien mielipiteillä ei ole väliä. W3C teki oikein <a href="http://www.w3.org/html/logo/">tarttuessaan tilaisuuteen vahvistaa tuota brändiä</a>, joka joka tapauksessa oli jo olemassa. Kun haluaa korostaa eroa, ei ole kovin vaikeaa puhua HTML5-speksistä silloin kun sitä tarkoittaa ja jatkaa puhumista web-teknologioiden toisesta tulemisesta HTML5:na.</p> <p>Tämän hullun applikaatiohypen aikana maailma tarvitsee yksinäisiä sankareita, jotka pelastavat meidät kaikki pahoilta megakorporaatioilta.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/peRxuAgr-X8" height="1" width="1"/>" ["wfw"]=> array(4) { ["commentrss#"]=> int(1) ["commentrss@"]=> string(9) "xmlns:wfw" ["commentrss@xmlns:wfw"]=> string(36) "http://wellformedweb.org/CommentAPI/" ["commentrss"]=> string(52) "http://akibjorklund.com/2011/w3c-html5-puristit/feed" } ["http://purl.org/rss/1.0/modules/slash/"]=> array(4) { ["comments#"]=> int(1) ["comments@"]=> string(11) "xmlns:slash" ["comments@xmlns:slash"]=> string(38) "http://purl.org/rss/1.0/modules/slash/" ["comments"]=> string(1) "3" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(2) { ["origlink#"]=> int(1) ["origlink"]=> string(47) "http://akibjorklund.com/2011/w3c-html5-puristit" } ["modified#"]=> int(1) ["modified"]=> string(25) "2011-01-19T05:02:33-08:00" ["dc"]=> array(8) { ["creator#"]=> int(1) ["creator"]=> string(14) "Aki Björklund" ["subject#"]=> int(5) ["subject"]=> string(7) "lang:fi" ["subject#2"]=> string(15) "brändääminen" ["subject#3"]=> string(5) "HTML5" ["subject#4"]=> string(3) "W3C" ["subject#5"]=> string(14) "web-standardit" } ["author"]=> string(14) "Aki Björklund" ["description#"]=> int(1) ["description"]=> string(447) "HTML5:stä oli muodostunut kansan suussa jotain muuta kuin mitä tiukkaan luettuna HTML5-speksi käsittää. Puristien mielipiteillä ei ole väliä. W3C teki oikein tarttuessaan tilaisuuteen vahvistaa tuota brändiä, joka joka tapauksessa oli jo olemassa. Kun haluaa korostaa eroa, ei ole kovin vaikeaa puhua HTML5-speksistä silloin kun sitä tarkoittaa ja jatkaa puhumista web-teknologioiden toisesta tulemisesta HTML5:na. Tämän hullun [...]" ["content"]=> array(2) { ["encoded#"]=> int(1) ["encoded"]=> string(948) "<p><object data="http://akibjorklund.com/files/2011/01/html5.svg" width="256" height="256" class="right borderless"><img src="http://akibjorklund.com/files/2011/01/html5.png" width="256" height="256" alt="HTML5" /></object>HTML5:stä oli muodostunut kansan suussa jotain muuta kuin mitä tiukkaan luettuna HTML5-speksi käsittää. Puristien mielipiteillä ei ole väliä. W3C teki oikein <a href="http://www.w3.org/html/logo/">tarttuessaan tilaisuuteen vahvistaa tuota brändiä</a>, joka joka tapauksessa oli jo olemassa. Kun haluaa korostaa eroa, ei ole kovin vaikeaa puhua HTML5-speksistä silloin kun sitä tarkoittaa ja jatkaa puhumista web-teknologioiden toisesta tulemisesta HTML5:na.</p> <p>Tämän hullun applikaatiohypen aikana maailma tarvitsee yksinäisiä sankareita, jotka pelastavat meidät kaikki pahoilta megakorporaatioilta.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/peRxuAgr-X8" height="1" width="1"/>" } ["category"]=> string(7) "lang:fi" ["category#2"]=> string(15) "brändääminen" ["category#3"]=> string(5) "HTML5" ["category#4"]=> string(3) "W3C" ["category#5"]=> string(14) "web-standardit" ["date_timestamp"]=> int(1295442153) } } ["channel"]=> array(42) { ["title#"]=> int(1) ["title@"]=> string(13) "type,xml:base" ["title@type"]=> string(4) "text" ["title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["title"]=> string(14) "Aki Björklund" ["link#"]=> int(1) ["link"]=> string(23) "http://akibjorklund.com" ["link@"]=> string(13) "rel,type,href" ["link@rel"]=> string(9) "alternate" ["link@type"]=> string(9) "text/html" ["link@href"]=> string(23) "http://akibjorklund.com" ["subtitle#"]=> int(1) ["subtitle@"]=> string(13) "type,xml:base" ["subtitle@type"]=> string(4) "html" ["subtitle@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["subtitle"]=> string(14) "web generalist" ["updated#"]=> int(1) ["updated"]=> string(25) "2012-05-01T09:20:24+00:00" ["generator#"]=> int(1) ["generator"]=> string(29) "http://wordpress.org/?v=3.3.2" ["sy"]=> array(8) { ["updateperiod#"]=> int(1) ["updateperiod@"]=> string(8) "xmlns:sy" ["updateperiod@xmlns:sy"]=> string(44) "http://purl.org/rss/1.0/modules/syndication/" ["updateperiod"]=> string(6) "hourly" ["updatefrequency#"]=> int(1) ["updatefrequency@"]=> string(8) "xmlns:sy" ["updatefrequency@xmlns:sy"]=> string(44) "http://purl.org/rss/1.0/modules/syndication/" ["updatefrequency"]=> string(1) "1" } ["http://rssnamespace.org/feedburner/ext/1.0"]=> array(9) { ["info#"]=> int(1) ["info@"]=> string(3) "uri" ["info@uri"]=> string(20) "satunnainenbjorklund" ["emailserviceid#"]=> int(1) ["emailserviceid"]=> string(20) "satunnainenbjorklund" ["feedburnerhostname#"]=> int(1) ["feedburnerhostname"]=> string(28) "http://feedburner.google.com" ["browserfriendly#"]=> int(1) ["browserfriendly"]=> string(138) "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." } ["link_hub#"]=> int(1) ["link_hub"]=> string(32) "http://pubsubhubbub.appspot.com/" ["link_hub@"]=> string(21) "xmlns:atom10,rel,href" ["link_hub@xmlns:atom10"]=> string(27) "http://www.w3.org/2005/Atom" ["link_hub@rel"]=> string(3) "hub" ["link_hub@href"]=> string(32) "http://pubsubhubbub.appspot.com/" ["link_self#"]=> int(1) ["link_self"]=> string(37) "http://satunnainenbjorklund.net/feed/" ["link_self@"]=> string(26) "xmlns:atom10,rel,type,href" ["link_self@xmlns:atom10"]=> string(27) "http://www.w3.org/2005/Atom" ["link_self@rel"]=> string(4) "self" ["link_self@type"]=> string(20) "application/atom+xml" ["link_self@href"]=> string(37) "http://satunnainenbjorklund.net/feed/" ["tagline#"]=> int(1) ["tagline"]=> string(14) "web generalist" ["modified#"]=> int(1) ["modified"]=> string(25) "2012-05-01T09:20:24+00:00" ["dc"]=> NULL ["description#"]=> int(1) ["description"]=> string(14) "web generalist" } ["textinput"]=> array(0) { } ["image"]=> array(0) { } ["feed_type"]=> string(4) "Atom" ["feed_version"]=> string(3) "1.0" ["encoding"]=> string(5) "UTF-8" ["_source_encoding"]=> string(0) "" ["ERROR"]=> string(0) "" ["WARNING"]=> string(0) "" ["_XMLNS_FAMILIAR"]=> array(22) { ["http://www.w3.org/2005/Atom"]=> string(4) "atom" ["http://purl.org/atom/ns#"]=> string(4) "atom" ["http://purl.org/rss/1.0/"]=> string(3) "rss" ["http://backend.userland.com/RSS2"]=> string(3) "rss" ["http://www.w3.org/1999/02/22-rdf-syntax-ns#"]=> string(3) "rdf" ["http://www.w3.org/1999/xhtml"]=> string(5) "xhtml" ["http://purl.org/dc/elements/1.1/"]=> string(2) "dc" ["http://purl.org/dc/terms/"]=> string(7) "dcterms" ["http://purl.org/rss/1.0/modules/content/"]=> string(7) "content" ["http://purl.org/rss/1.0/modules/syndication/"]=> string(2) "sy" ["http://purl.org/rss/1.0/modules/taxonomy/"]=> string(4) "taxo" ["http://purl.org/rss/1.0/modules/dc/"]=> string(2) "dc" ["http://wellformedweb.org/CommentAPI/"]=> string(3) "wfw" ["http://webns.net/mvcb/"]=> string(5) "admin" ["http://purl.org/rss/1.0/modules/annotate/"]=> string(8) "annotate" ["http://xmlns.com/foaf/0.1/"]=> string(4) "foaf" ["http://madskills.com/public/xml/rss/module/trackback/"]=> string(9) "trackback" ["http://web.resource.org/cc/"]=> string(2) "cc" ["http://search.yahoo.com/mrss"]=> string(5) "media" ["http://search.yahoo.com/mrss/"]=> string(5) "media" ["http://video.search.yahoo.com/mrss"]=> string(5) "media" ["http://video.search.yahoo.com/mrss/"]=> string(5) "media" } ["_XMLBASE_RESOLVE"]=> array(2) { ["atom"]=> array(14) { ["link"]=> array(1) { ["href"]=> bool(true) } ["content"]=> array(3) { ["src"]=> bool(true) ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["summary"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["title"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["rights"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["subtitle"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["info"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["tagline"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["copyright"]=> array(2) { ["*xml"]=> bool(true) ["*html"]=> bool(true) } ["generator"]=> array(2) { ["uri"]=> bool(true) ["url"]=> bool(true) } ["uri"]=> array(1) { ["*content"]=> bool(true) } ["url"]=> array(1) { ["*content"]=> bool(true) } ["icon"]=> array(1) { ["*content"]=> bool(true) } ["logo"]=> array(1) { ["*content"]=> bool(true) } } ["xhtml"]=> array(17) { ["a"]=> array(1) { ["href"]=> bool(true) } ["applet"]=> array(1) { ["codebase"]=> bool(true) } ["area"]=> array(1) { ["href"]=> bool(true) } ["blockquote"]=> array(1) { ["cite"]=> bool(true) } ["body"]=> array(1) { ["background"]=> bool(true) } ["del"]=> array(1) { ["cite"]=> bool(true) } ["form"]=> array(1) { ["action"]=> bool(true) } ["frame"]=> array(2) { ["longdesc"]=> bool(true) ["src"]=> bool(true) } ["iframe"]=> array(3) { ["longdesc"]=> bool(true) ["iframe"]=> bool(true) ["src"]=> bool(true) } ["head"]=> array(1) { ["profile"]=> bool(true) } ["img"]=> array(3) { ["longdesc"]=> bool(true) ["src"]=> bool(true) ["usemap"]=> bool(true) } ["input"]=> array(2) { ["src"]=> bool(true) ["usemap"]=> bool(true) } ["ins"]=> array(1) { ["cite"]=> bool(true) } ["link"]=> array(1) { ["href"]=> bool(true) } ["object"]=> array(4) { ["classid"]=> bool(true) ["codebase"]=> bool(true) ["data"]=> bool(true) ["usemap"]=> bool(true) } ["q"]=> array(1) { ["cite"]=> bool(true) } ["script"]=> array(1) { ["src"]=> bool(true) } } } ["_ATOM_CONTENT_CONSTRUCTS"]=> array(8) { [0]=> string(7) "content" [1]=> string(7) "summary" [2]=> string(5) "title" [3]=> string(4) "info" [4]=> string(7) "tagline" [5]=> string(9) "copyright" [6]=> string(6) "rights" [7]=> string(8) "subtitle" } ["_XHTML_CONTENT_CONSTRUCTS"]=> array(2) { [0]=> string(4) "body" [1]=> string(3) "div" } ["_KNOWN_ENCODINGS"]=> array(3) { [0]=> string(5) "UTF-8" [1]=> string(8) "US-ASCII" [2]=> string(10) "ISO-8859-1" } ["stack"]=> array(4) { ["element"]=> array(0) { } ["ns"]=> array(0) { } ["xmlns"]=> array(0) { } ["xml:base"]=> array(1) { [0]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" } } ["inchannel"]=> bool(false) ["initem"]=> bool(false) ["incontent"]=> array(0) { } ["xml_escape"]=> bool(false) ["exclude_top"]=> bool(false) ["intextinput"]=> bool(false) ["inimage"]=> bool(false) ["root_namespaces"]=> array(1) { [0]=> string(4) "atom" } ["current_namespace"]=> string(4) "atom" ["working_namespace_table"]=> array(0) { } ["current_category"]=> int(0) ["http_status"]=> int(200) ["header"]=> array(9) { ["last-modified"]=> string(29) "Wed, 23 May 2012 21:50:04 GMT" ["etag"]=> string(27) "0nJS0T4TJfiJbSfeLWceVApa7S8" ["content-type"]=> string(23) "text/xml; charset=UTF-8" ["date"]=> string(29) "Wed, 23 May 2012 21:50:04 GMT" ["expires"]=> string(29) "Wed, 23 May 2012 21:50:04 GMT" ["cache-control"]=> string(18) "private, max-age=0" ["x-content-type-options"]=> string(7) "nosniff" ["x-xss-protection"]=> string(13) "1; mode=block" ["server"]=> string(3) "GSE" } } ["feedmeta"]=> array(69) { ["cats"]=> array(3) { [0]=> string(6) "{#816}" [1]=> string(6) "{#238}" [2]=> string(5) "{#68}" } ["tags"]=> array(1) { [0]=> string(0) "" } ["feed/title#"]=> int(1) ["feed/title@"]=> string(13) "type,xml:base" ["feed/title@type"]=> string(4) "text" ["feed/title@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["feed/title"]=> string(14) "Aki Björklund" ["feed/link#"]=> int(1) ["feed/link"]=> string(23) "http://akibjorklund.com" ["feed/link@"]=> string(13) "rel,type,href" ["feed/link@rel"]=> string(9) "alternate" ["feed/link@type"]=> string(9) "text/html" ["feed/link@href"]=> string(23) "http://akibjorklund.com" ["feed/subtitle#"]=> int(1) ["feed/subtitle@"]=> string(13) "type,xml:base" ["feed/subtitle@type"]=> string(4) "html" ["feed/subtitle@xml:base"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["feed/subtitle"]=> string(14) "web generalist" ["feed/updated#"]=> int(1) ["feed/updated"]=> string(25) "2012-05-01T09:20:24+00:00" ["feed/generator#"]=> int(1) ["feed/generator"]=> string(29) "http://wordpress.org/?v=3.3.2" ["feed/sy/updateperiod#"]=> int(1) ["feed/sy/updateperiod@"]=> string(8) "xmlns:sy" ["feed/sy/updateperiod@xmlns:sy"]=> string(44) "http://purl.org/rss/1.0/modules/syndication/" ["feed/sy/updateperiod"]=> string(6) "hourly" ["feed/sy/updatefrequency#"]=> int(1) ["feed/sy/updatefrequency@"]=> string(8) "xmlns:sy" ["feed/sy/updatefrequency@xmlns:sy"]=> string(44) "http://purl.org/rss/1.0/modules/syndication/" ["feed/sy/updatefrequency"]=> string(1) "1" ["feed/http://rssnamespace.org/feedburner/ext/1.0/info#"]=> int(1) ["feed/http://rssnamespace.org/feedburner/ext/1.0/info@"]=> string(3) "uri" ["feed/http://rssnamespace.org/feedburner/ext/1.0/info@uri"]=> string(20) "satunnainenbjorklund" ["feed/http://rssnamespace.org/feedburner/ext/1.0/emailserviceid#"]=> int(1) ["feed/http://rssnamespace.org/feedburner/ext/1.0/emailserviceid"]=> string(20) "satunnainenbjorklund" ["feed/http://rssnamespace.org/feedburner/ext/1.0/feedburnerhostname#"]=> int(1) ["feed/http://rssnamespace.org/feedburner/ext/1.0/feedburnerhostname"]=> string(28) "http://feedburner.google.com" ["feed/http://rssnamespace.org/feedburner/ext/1.0/browserfriendly#"]=> int(1) ["feed/http://rssnamespace.org/feedburner/ext/1.0/browserfriendly"]=> string(138) "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." ["feed/link_hub#"]=> int(1) ["feed/link_hub"]=> string(32) "http://pubsubhubbub.appspot.com/" ["feed/link_hub@"]=> string(21) "xmlns:atom10,rel,href" ["feed/link_hub@xmlns:atom10"]=> string(27) "http://www.w3.org/2005/Atom" ["feed/link_hub@rel"]=> string(3) "hub" ["feed/link_hub@href"]=> string(32) "http://pubsubhubbub.appspot.com/" ["feed/link_self#"]=> int(1) ["feed/link_self"]=> string(37) "http://satunnainenbjorklund.net/feed/" ["feed/link_self@"]=> string(26) "xmlns:atom10,rel,type,href" ["feed/link_self@xmlns:atom10"]=> string(27) "http://www.w3.org/2005/Atom" ["feed/link_self@rel"]=> string(4) "self" ["feed/link_self@type"]=> string(20) "application/atom+xml" ["feed/link_self@href"]=> string(37) "http://satunnainenbjorklund.net/feed/" ["feed/tagline#"]=> int(1) ["feed/tagline"]=> string(14) "web generalist" ["feed/modified#"]=> int(1) ["feed/modified"]=> string(25) "2012-05-01T09:20:24+00:00" ["feed/description#"]=> int(1) ["feed/description"]=> string(14) "web generalist" ["feed/id"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["update/last"]=> int(1337809804) ["update/ttl"]=> int(60) ["update/timed"]=> string(4) "feed" ["update/hold"]=> string(9) "scheduled" ["update/unfinished"]=> string(3) "yes" ["map authors"]=> array(1) { ["name"]=> array(1) { ["aki björklund"]=> string(2) "21" } } ["update/processed"]=> string(319) "http://akibjorklund.com/?p=3276 http://akibjorklund.com/?p=3266 http://akibjorklund.com/?p=3175 http://akibjorklund.com/?p=3162 http://akibjorklund.com/?p=3156 http://akibjorklund.com/?p=3121 http://akibjorklund.com/?p=3070 http://akibjorklund.com/?p=2932 http://akibjorklund.com/?p=2969 http://akibjorklund.com/?p=2899" ["link/uri"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["link/name"]=> string(14) "Aki Björklund" ["link/id"]=> string(2) "15" } ["post"]=> array(16) { ["post_title"]=> string(26) "★ VR arpoo lähtöaikoja" ["post_content"]=> string(1341) "<p>Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. </p> <p><iframe width="420" height="315" src="http://www.youtube.com/embed/hnY4tXJnwvk" frameborder="0" allowfullscreen></iframe></p> <p>Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö.</p> <p>Kyseessä ei ole edes mikään uusi löytö. Ongelma on raportoitu jo kohua herättäneessä <a href="http://www.userpoint.fi/reports/vr_verkkokauppa_kaytettavyysarvio.php">User Pointin käytettävyysarviossa</a> (sivun 40 lopussa).</p> <p>Panee miettimään, että miksi ensimmäisellä sivulla mitään valintaa edes on, jos sitä ei lainkaan kunnioiteta.</p> <p>Panee myös miettimään, kuinka moni on mennyt samaan ansaan. Ainakin minun kahteen kertaan maksetulla matkallani käytävän toisella puolella istui matkustaja, joka oli tehnyt saman virheen.</p> <p>No, <em>jotenkin</em> ne uudistukseen hukatut rahat on saatava takaisin.</p> <img src="http://feeds.feedburner.com/~r/satunnainenbjorklund/~4/Q9xz9Z-xcM4" height="1" width="1"/>" ["post_excerpt"]=> string(501) "Viime viikolla tein virheostoksen VR:n verkkokaupassa. Ensimmäisellä ruudulla kysytty junavalinta vaihtuikin kolmannella aikaisemmaksi, enkä ollut tarkkana maksamisvaiheessa. Vaadin palautetoiminnon kautta rahojani takaisin, mutta en saanut tähän päivään mennessä vastausta. Yllä oleva video havainnollistaa, kuinka ostoprosessissa edestakaisin liikkuessa valinta ei pysy, vaan tilalle ilmeisen sattumanvaraisesti arvotaan joku muu lähtö. Kyseessä ei ole edes mikään uusi löytö. [...]" ["epoch"]=> array(3) { ["issued"]=> int(1331725349) ["created"]=> NULL ["modified"]=> int(1331725349) } ["post_date"]=> string(19) "2012-03-14 14:42:29" ["post_modified"]=> string(19) "2012-03-14 14:42:29" ["post_date_gmt"]=> string(19) "2012-03-14 11:42:29" ["post_modified_gmt"]=> string(19) "2012-03-14 11:42:29" ["post_status"]=> string(7) "publish" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(6) "closed" ["guid"]=> string(31) "http://akibjorklund.com/?p=3266" ["meta"]=> array(7) { ["syndication_source"]=> string(14) "Aki Björklund" ["syndication_source_uri"]=> string(23) "http://akibjorklund.com" ["wfw:commentRSS"]=> string(54) "http://akibjorklund.com/2012/vr-arpoo-lahtoaikoja/feed" ["syndication_feed"]=> string(48) "http://feeds.feedburner.com/satunnainenbjorklund" ["syndication_feed_id"]=> string(2) "15" ["syndication_permalink"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Q9xz9Z-xcM4/vr-arpoo-lahtoaikoja" ["syndication_item_hash"]=> string(32) "377cbe86e38b773d568e6f0568ba156a" } ["tags_input"]=> array(3) { [0]=> string(0) "" [1]=> string(7) "lang:fi" [2]=> string(14) "käytettävyys" } ["post_author"]=> int(903) ["post_category"]=> array(3) { [0]=> int(816) [1]=> int(238) [2]=> int(68) } } ["_freshness"]=> int(2) ["_wp_id"]=> int(0) ["uri_attrs"]=> array(25) { [0]=> array(2) { [0]=> string(1) "a" [1]=> string(4) "href" } [1]=> array(2) { [0]=> string(6) "applet" [1]=> string(8) "codebase" } [2]=> array(2) { [0]=> string(4) "area" [1]=> string(4) "href" } [3]=> array(2) { [0]=> string(10) "blockquote" [1]=> string(4) "cite" } [4]=> array(2) { [0]=> string(4) "body" [1]=> string(10) "background" } [5]=> array(2) { [0]=> string(3) "del" [1]=> string(4) "cite" } [6]=> array(2) { [0]=> string(4) "form" [1]=> string(6) "action" } [7]=> array(2) { [0]=> string(5) "frame" [1]=> string(8) "longdesc" } [8]=> array(2) { [0]=> string(5) "frame" [1]=> string(3) "src" } [9]=> array(2) { [0]=> string(6) "iframe" [1]=> string(8) "longdesc" } [10]=> array(2) { [0]=> string(6) "iframe" [1]=> string(3) "src" } [11]=> array(2) { [0]=> string(4) "head" [1]=> string(7) "profile" } [12]=> array(2) { [0]=> string(3) "img" [1]=> string(8) "longdesc" } [13]=> array(2) { [0]=> string(3) "img" [1]=> string(3) "src" } [14]=> array(2) { [0]=> string(3) "img" [1]=> string(6) "usemap" } [15]=> array(2) { [0]=> string(5) "input" [1]=> string(3) "src" } [16]=> array(2) { [0]=> string(5) "input" [1]=> string(6) "usemap" } [17]=> array(2) { [0]=> string(3) "ins" [1]=> string(4) "cite" } [18]=> array(2) { [0]=> string(4) "link" [1]=> string(4) "href" } [19]=> array(2) { [0]=> string(6) "object" [1]=> string(7) "classid" } [20]=> array(2) { [0]=> string(6) "object" [1]=> string(8) "codebase" } [21]=> array(2) { [0]=> string(6) "object" [1]=> string(4) "data" } [22]=> array(2) { [0]=> string(6) "object" [1]=> string(6) "usemap" } [23]=> array(2) { [0]=> string(1) "q" [1]=> string(4) "cite" } [24]=> array(2) { [0]=> string(6) "script" [1]=> string(3) "src" } } ["_base"]=> string(87) "http://feedproxy.google.com/~r/satunnainenbjorklund/~3/Q9xz9Z-xcM4/vr-arpoo-lahtoaikoja" ["strip_attrs"]=> array(1) { [0]=> array(2) { [0]=> string(6) "[a-z]+" [1]=> string(6) "target" } } } }