tag:blogger.com,1999:blog-83782771976152576072024-03-05T16:07:16.069+00:00Chris JayThe internet: business and technologyChris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.comBlogger143125tag:blogger.com,1999:blog-8378277197615257607.post-8601521421909833582014-03-02T21:09:00.001+00:002014-03-02T21:21:55.072+00:00The iOS Pro market<div>
Since the iPad was released in 2010 the tablet market has grown so quickly that it is now almost as big as the PC market. Meanwhile the PC market is collapsing as people in developed markets sweat their existing devices longer, while those in developing markets skip straight to tablets. </div>
<div>
</div>
<div>
<br /></div>
<div>
</div>
<div>
The natural question is, just how far into PC territory can tablets extend? Initially they were seen as for content consumption only, not for creation, and as for secondary work devices not primary ones. I don't believe either of these conditions will hold. </div>
<div>
</div>
<div>
<br /></div>
<div>
</div>
<div>
However there is one problem that current tablets can't overcome - the screens are simply too small for much work. The type of detailed office-based work involving comparing multiple documents side by side, or editing masses of data, simply doesn't work on a 10 inch screen. This may be a smaller proportion of work that people would have guessed five years ago but there are tens of millions of people globally employed in jobs involving work like this - software developers, architects, accountants, and so on. </div>
<div>
<br /></div>
<div>
I'm sure that Apple realise this, which makes their recent huge investment in iOS features for enterprise fascinating. If Apple are really targeting the enterprise, do they have plans for larger screen iOS devices?</div>
<div>
<br /></div>
<div>
There have been rumours for several months that Apple will release a 12-13 inch 'iPad Pro'. Such a device would surely help close the gap and extend the iOS ecosystem and applications further into enterprise territory for a few years. But I still don't think that this will be enough to take the enterprise market. </div>
<div>
<br /></div>
<div>
Which brings me to 4k monitors. This year's CES tech fair introduced us to the first reasonably priced (sub $800) large screen monitors with quadruple HD resolution. </div>
<div>
<br /></div>
<div>
Place this horizontally (or slightly banked) onto a desk, add a touchscreen and you have a much stronger contender for an office-based device. These desk tablets could range from 24 inches all the way up to 60 inches, which is about how far you can comfortably reach when sitting. </div>
<div>
<br /></div>
<div>
These desk tablets would run a version of iOS, since that is Apple's operating system for touch screens. It would come with the same iOS App Store as iPads but would clearly need a revised user interface including window tiling. And it would be the first challenger to the PC with mouse/keyboard for 'real work'.</div>
<div>
<br /></div>
<div>
A true 'Pro' strategy for Apple has to consider bringing the benefits of touch screens to office based, not just mobile work. And to work by bringing more professionals and app developers to iOS with the iPad.</div>
Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com70tag:blogger.com,1999:blog-8378277197615257607.post-42389790238001106392014-01-25T15:49:00.000+00:002014-01-25T15:50:47.551+00:00iPad ProFor several months now rumours have spread that a new type of iPad will be released this year - the iPad Pro. Variously sized at 12 or 13 inches, compared to the iPad Air's 10 inches, it would extend the iPad lineup further into larger dimensions. <br />
<br />
All the rumours have focused on size, but Apple integrates both hardware, software and services, and to me the really interesting areas are the latter. What software and services should a 'Pro' device come with?<br />
<br />
Clearly Apple could tailor existing iOS apps such as the iWork and iLife suites to larger screen sizes. But other apps could be ported from MacOS too - most notably, software development tools such as XCode or a sandboxed, stripped back Terminal with tools for scripting apps. After all developers are one of the largest groups of 'Pros'. I'm not suggesting that Apple will open up root permissions directly to the iPad - instead each app is likely to be a containerized and perhaps only have access to other data via iCloud. <br />
<br />
iCloud itself could play a much larger role in a Pro device. It would enable each app to access a common document store, synced from iCloud. That enables a text document, image or video saved in one app to be opened up again in another one. <br />
<br />
iOS itself could see some changes. A 13 inch device has 70% more screen space than the iPad Air - so could we see a window manager, enabling apps to be worked side by side? Lack of tiling apps has to be one of the major outstanding barriers to productivity on iOS. One way to do this might be to require applications to work in both full screen and iPad mini sizes. <br />
<br />
An iPad Pro with the features above would be a great tool for professional use and a massive competitor to traditional PCs. It would also open up App Store to a new market and new possibilities. Much worthier of the Pro label than just a bigger iPad Air. Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-9664043157122012332010-07-25T17:40:00.004+00:002010-07-25T17:53:21.129+00:00Purchasing in the browserOne of the real benefits of App Stores versus the web is that purchases are so much easier - all you have to do is click on a link (and type your password to validate). Contrast that with the web, where every site has a detailed form to fill out - and sometimes you have to fill it out all over again, if "Verified by Visa" has anything to do with it.
<p>Would it be possible to streamline procurement on the web? I think it could, using a browser-based "account store":
<ul>
<li>Browser stores account details and exposes API for giving them to web page
<li>When web page calls API, the user is asked for confirmation (and can select which account to use). E.g. "This site wants to know your account details for a purchase - give them? If so, which account? Type your password to confirm"
<li>Account details are sent to page in standard format and used to automatically fill out form
</ul>
<p>This approach is simple and would work easily with existing sites, automatically populating all the fields. What's more, it allows the browser to help the user out - for example, listing all sites that have been granted access to their account details.
<p>Unfortunately, once account details have been given out, it's difficult to control what the site does with it - they could be passed on to a bad guy, whether intentionally or not.
<p>Here's a better approach:
<ul>
<li>Banks could generate a new unique account number with each purchase. This account number would only work once and also has a brief expiry time, e.g. 1 hour.
<li>When a site requests your account details, the browser automatically requests your bank for a new account number, which is then given to the vendor. The vendor cannot then re-use the details or leak them to anyone else.
</ul>Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com72tag:blogger.com,1999:blog-8378277197615257607.post-63560600481772652062010-07-24T09:15:00.000+00:002010-07-24T09:16:43.506+00:00Mobile operating systemsWe’ve gone from mobile operating systems not mattering, to everyone wanting one of their own: Google – Android; Samsung – Bada; Microsoft – Windows Phone; Nokia – Symbian, Meego; Intel – Meego; HP / Palm – WebOS; Apple – iOS. Compare that with the number of desktop operating systems!
<p>This is a gold rush into the new markets opened up by the iPhone. There are two reasons to have your own mobile OS:
<ul>
<li>Differentiation from other manufacturers – providing a unique interface and features to go with your hardware
<li>App Stores – make money by establishing your own App Store, selling apps along with the phones
</ul>
<p>So what happens next? Obviously, consolidation. In fact this is already happening in some areas – for example, Linux and Webkit are the foudation of many of the above operating systems.
<p>Manufacturers will always have a need for software differentiation; they’ve learnt this through years of having to using Windows. But I don’t think they can all have App Stores with different development environments. Developers will simply not learn more than two or three.
<p>The most obvious way to overcome this problem is to make the development platform be web standards (HTML, JS and CSS), which developers already know. This tactic is likely to be deployed by the weaker platforms, both to gain a foot up and also to undermine their more successful rivals with a common standard. It’s already been pursued by Palm with WebOS, and now Nokia are also using it with Symbian. I would expect only two or three development environments to survive that are not primarily focused on web standards: Apple’s iOS, Google’s Android (ironically, given that companies’ supposed focus on HTML5), and maybe one more.
<p>This is likely to lead to even faster development of browser engines in the next couple of years, as mobile investment pours in. The net effect will be that the browser becomes as powerful as any native app – and, ironically, app stores will simply become websites that cost money.
<p>One more prediction – Firefox on Mobile will be surprisingly successful. It’s had a very slow start; in fact it’s been written off in favour of webkit by almost everyone. What’s more, it will only be available on Android and Meego for the next year or two. But it’s got one major advantage: it’s not just a browser engine, it’s the chrome as well.
<p>The current state of mobile browser chrome is terrible – features that are standard on the desktop (such as automatically remembering passwords, or auto-completing the address bar as you type based on browser history, or blocking adverts, or allowing add-ons) are completely missing on mobile, even though they should be even more important in that environment to help manage limited screen size. So I expect Firefox to take advantage of other’s complacency and inexperience and make a real impression, just as it did initially against Internet Explorer. This will likely happen over a period of two or more years as native browsers lag, then finally notice they must invest to catch up.
<p>In a few years, then, the mobile market will have evolved substantially. Common standards based on the web will unite the weaker players against the top two or three platforms. App stores will become more like websites that cost money. And, after a hiatus, browser design will re-establish it’s importance.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com17tag:blogger.com,1999:blog-8378277197615257607.post-61213901531977740152010-05-17T12:23:00.003+00:002010-05-17T13:54:17.291+00:00Open source systems in government<p>In 2009 the UK government announced a <a href="http://www.cabinetoffice.gov.uk/government_it/open_source.aspx">new approach</a> to open source. It ensures that open source is treated on a level playing field with proprietary solutions. But I think the government should go much further and use open source as the foundation for its core systems.
<p>It's clear that our current approach to government IT is badly broken. Taxpayers have suffered <a href="http://www.independent.co.uk/news/uk/politics/labours-computer-blunders-cost-16326bn-1871967.html">£26bn of losses</a> as a result of a string of computing disasters involving massively late, over-budget, and broken systems.
<p>We must move to a new model that avoids the reasons behind this catastrophe: reliance on massive system revolutions rather than incremental improvement, <a href="http://www.computerworlduk.com/community/blogs/index.cfm?entryid=2812&blogid=14">lock-in</a> to vendors, a <a href="http://www.nao.org.uk/publications/0506/the_delays_in_administering_th.aspx?alreadysearchfor=yes">lack of government understanding</a> and control of IT, and the dominance of large suppliers at the expense of small and medium sized businesses.
<p>Contrast this approach with open source groups such as the <a href="http://www.linuxfoundation.org/">Linux Foundation</a> or <a href="http://www.mozilla.org/">Mozilla</a>. They also develop complex software used by millions of people around the world, following these principles:
<ul>
<li>An army of developers, from huge corporates to individual developers in their spare time
<li>A community of developers, carefully cultivated and encouraged by the foundation, with shared values
<li>Total freedom from lock-in, using open source licenses
<li>Focus on steady evolution rather then complete revolution
</ul>
<p>In this approach, the major government departments should set up their own IT foundations, with carefully written missions and a budget to encourage community participation (via public prizes, conferences, and total openness in the technical approach). Individual workers, or small, medium and large businesses alike could volunteer to develop the code, as a charity or in the hope of being hired full time.
<p>There would be two additional benefits to developing open source government systems. Firstly, governments around the world could share development costs by contributing together. This could save the UK government huge amounts in the long term. Secondly, building a community of government IT developers in the UK would provide a huge benefit to the economy - building the skills and experience of volunteers (including students) in just the areas likely to require staffing.
<p>So I believe it's time to get much more ambitious about open source in government. We should be using it not just to purchase cheap infrastructure, but to actually lead the development of core systems. Doing so would help free us from many of the issues plaguing government IT, but also provide a real public benefit to the citizens of this country.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com1tag:blogger.com,1999:blog-8378277197615257607.post-85091307463998536052010-05-03T11:04:00.008+00:002010-05-03T21:44:31.197+00:00SVG can't be part of the web<p>Microsoft's <a href="http://blogs.msdn.com/ie/archive/2010/03/18/svg-in-ie9-roadmap.aspx">announcement</a> that IE9 will be supporting SVG brought rejoice to many web standards aficionados. SVG 1.1 was finalised in January 2003 but Internet Explorer's previous lack of support meant that it has never really taken off on the web, despite years of patient enhancement by <a href="http://www.codedread.com/svg-support.php">open source advocates</a>.
<p>But although I'm also an open source and web standards advocate, I still don't think SVG can ever be part of the web, because it just doesn't fit. We need a better solution.
<p>Consider the following points:
<ul>
<li>SVG has a totally different coordinate system to HTML - you can translate SVG coordinates but not HTML ones, and vice versa. So SVG and HTML won't sit well in the same document
<li>SVG has a totally different layout model to HTML. It's incompatible with CSS floats, which are fundamental to laying out HTML web pages.
<li>SVG has a totally different version of CSS which overlaps at best with HTML. For example, it has a "fill" property (rather than "background-color"), and it can't be positioned using CSS.
<li>SVG introduces duplicates of many HTML features - most notably, the hyperlink!
<li>SVG has a different DOM to HTML.
</ul>
<p>If you only want a vector format for image files, SVG is ok (though HTML Canvas can do everything SVG can). But if you want to use SVG to layout and style web pages, it's a terrible kludge.
<p>I believe there's a better way. Going through the SVG <a href="http://www.w3.org/TR/SVG#minitoc">table of contents</a>:
<dl>
<dt>Coordinate systems, Transformations and Units
<dd>Already covered by <a href="http://www.w3.org/TR/css3-values/">CSS3 Units</a> and <a href="http://www.w3.org/TR/css3-2d-transforms/">CSS Transformations</a>
<dt>Paths
<dd>Not possible in HTML
<dt>Basic Shapes
<dd>Rect, Oblong and Circle are possible in HTML using CSS <a href="http://www.w3.org/TR/2005/WD-css3-background-20050216/#the-border-radius">border radius</a>. Polylines and Polygons are not.
<dt>Text
<dd>HTML already does text better than SVG
<dt>Painting: Filling, Stroking and Marker Symbols
<dd>Filling and Stroking are possible in HTML using CSS <a href="http://www.w3.org/TR/2005/WD-css3-background-20050216/#the-background-color">background-color</a> and <a href="http://www.w3.org/TR/css3-color/">color</a>. Marker symbols are not.
<dt>Color
<dd>Already covered by <a href="http://www.w3.org/TR/css3-color/">CSS color</a>
<dt>Gradients and Patterns
<dd>Covered by <a href="http://dev.w3.org/csswg/css3-images/">CSS3 gradients</a> and <a href="http://www.w3.org/TR/css3-background/">CSS3 backgrounds</a>
<dt>Clipping, Masking and Compositing
<dd>HTML allows <a href="http://www.w3.org/TR/CSS2/visufx.html">clipping</a> and <a href="http://www.w3.org/TR/css3-color/">opacity</a>, but not masking or compositing.
<dt>Filter effects
<dd>Not possible using HTML
<dt>Animation
<dd>Covered by <a href="http://www.w3.org/TR/css3-transitions/">CSS3 transitions</a> and <a href="http://www.w3.org/TR/css3-animations/">CSS3 animations</a>
<dt>Fonts
<dd>Covered by <a href="http://en.wikipedia.org/wiki/Web_Open_Font_Format">WOFF</a>
</dl>
<p>So, much of what SVG does is actually already possible using advanced CSS and HTML. So why not just extend CSS a bit more and you'd get all the power of SVG inside HTML, but without needing a whole new markup language? What's more, you'd then be able to apply all these techniques to existing HTML elements, not just SVG ones.
<p>For example, imagine a set of CSS properties which allowed you to modify the shape of any HTML element - not just rectangles, but any shape you could think of. That would be better than introducing new SVG markup for shapes, because you could modify existing HTML semantic elements such as headings.
<p>That's why supporters of the open web should not put their hopes into SVG. To be frank, it doesn't do what you want it to do. A much better approach would be to continue to extend CSS so that it doesn't take new markup to achieve better presentational effects.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-87553234500327187002009-12-06T17:26:00.006+00:002010-05-03T21:39:55.185+00:00App Stores and iTunes versus the web<p>The app store or catalog (such as Apple's iTunes) is an alternative model to web apps. It's a closed platform where all the options are controlled by a central provider. However it's getting massively popular, to the extent that every mobile phone provider has to have one, and it's even seen as the saviour to several industries such as music (iTunes) and news (e-Readers or tablets).
<p>I dislike this model. It's a way for corporations to increase their profits by creating artificial limits on what users can see and do. Even those app stores built with HTML and CSS (such as WebOS or Symbian3) remove the great power of the real web: the ability to hyperlink, search, aggregate, and mash-up.
<p>So, why is the app store becoming so successful? A number of reasons:
<ul>
<li>Higher performance apps, using the device's native hardware. Browsers are still slower in many cases than native software
<li>Access to the phone's full features such as camera, accelerometer, etc. Browsers still can't do much of this
<li>Great development and design tools that the web still can't match
<li>An easy way to get paid - compare the user experience of paying for an app versus registering on a new website and then typing in your credit card details
</ul>
<p>The only way the web can respond is to build on its strengths, and fix its weaknesses. In fact, some of this is already under way. Browser performance <a href="http://www.google.com/chrome/intl/en-GB/more/speed.html">has</a> <a href="http://blogs.msdn.com/ie/archive/2010/03/16/html5-hardware-accelerated-first-ie9-platform-preview-available-for-developers.aspx">improved</a> <a href="http://www.ghacks.net/2010/02/28/upcoming-firefox-performance-improvements/">hugely</a> in the last few years, HTML5 is bringing new APIs including <a href="http://dev.w3.org/geo/api/spec-source.html">geolocation</a>, <a href="http://en.wikipedia.org/wiki/HTML5_video">native video</a> and <a href="http://en.wikipedia.org/wiki/WebGL">3G graphics</a>, and new developer frameworks such as <a href="http://rubyonrails.org/">Ruby on Rails</a> are improving development practices.
<p>There's a long way to go before the web can completely beat proprietary developer frameworks. Perhaps the most important gap is the bottom line: sorting out payments on the web, which are currently so frustratingly difficult.
<p>Only with concerted effort among all parties - browser makers, web developers and service providers - can the web win against the app store.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-49849472001375904892009-11-22T22:19:00.002+00:002009-11-22T22:23:34.090+00:00Identity and the browser<p>Identity is a big problem on the web. People have to set up endless usernames and passwords for each website, type the same basic information (name, address etc) into each one, remember passwords and change them regularly, and a hundred other tasks.
<p>Recently there have been some improvements. <a href="http://openid.net/">OpenID</a> has emerged as a standard way to assert identity, and <a href="http://oauth.net/">oAuth</a> a secure way to share personal data from one website to another. <a href="http://www.google.com/friendconnect">Google Friend Connect</a> and <a href="http://developers.facebook.com/connect.php">Facebook Connect</a> have emerged as identity hubs to enable users to share basic information.
<p>Despite these breakthroughs, the problems remain. In fact, Google Friend Connect and Facebook Connect raise the spectre of monolithic corporate control over people’s identities.
<p>Instead, I think much of identity should belong in the browser itself. After all, the technical term for a browser is “user agent”. It knows exactly which websites you are logging on to, and how. It should be able to negotiate account details and passwords on the user’s behalf.
<p>Here are some of the aspects of identity I think browsers should handle:
<ul>
<li>Log on to websites automatically for you, managing passwords and automatically changing them regularly
<li>Managing basic account data e.g. name, address, bank details, etc, and which websites have access to it
<li>Presence & syndicating it to websites chosen by the user
<li>Incoming notifications & managing who can trigger them
</ul>
<p>Mozilla have recently <a href="http://mozillalabs.com/blog/2009/05/identity-in-the-browser/">begun work</a> on several of these areas. I think that’s a great move; as a non-profit dedicated to improving the web, they have the right attitude and trust. This could go in two directions; either corporate control over people’s identities, or enabling users to get better control themselves over their online identity. I sincerely hope it’s the latter!Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-71082912881488777132009-11-14T16:47:00.003+00:002009-11-14T17:49:22.323+00:00Chrome OS and Android<p>I was surprised when Android was announced, because it didn't seem to fit with Google's principles. Not only was it client software, not cloud software to which Google had previously confined themselves, but it also created a new platform, separate to the web.
<p>Google's search and ads have tied its fortunes to the web, and their management knows it. They dominate their industry so much that the only way to increase their revenues is to get more people using the web all the time. To achieve this, they they need not only to innovate themselves with web apps such as Google Maps or Gmail, but to nurture an ecosystem of Silicon Valley startups to work on web applications rather than on any other platform. They do this using a combination of Google Ads (providing revenues to startups), funding browser developers such as Mozilla, web developer evangelisation (such as spreading the word about Ajax) and careful purchases of the best startups.
<p>Since Android was announced, this focus on the web has increased. Recently Google announced it is <a href="http://radar.oreilly.com/2009/05/google-bets-big-on-html-5.html">putting</a> all its energies behind HTML5, to bring new capabilities to the platform such as video, geolocation and graphics. They have created a new browser, Chrome, and promoted it hugely on the Google homepage.
<p>So why on earth create a new mobile operating system? Now they have to build a new developer ecosystem using the Android Marketplace. These aren't web apps, therefore Google doesn't get the same search or ad revenue. And it takes the focus in Silicon Valley away from the web.
<p>Of course, there were good reasons for Android at the time - fixing the lack of good competition for Apple, persuading the network operators to invest in data networks, and attempting to fix the broken industry structure especially in the US. And Android is increasingly successful. But I still believe that it's the wrong solution for Google to the original problem.
<p>Now <a href="http://en.wikipedia.org/wiki/Google_Chrome_OS">Chrome OS</a> is about to be released. It's another client OS, but this time the operating system is simply a web browser. No distractions from the web, no separate platforms, but still a way to shakeup the computing industry in Google's favour.
<p>For once, I think Steve Ballmer was <a href="http://seekingalpha.com/article/163898-microsoft-s-ballmer-chrome-and-safari-are-rounding-errors">correct</a> about Chrome OS - "It’s incompatible with the one operating system they have shipped. To me, still, I don’t understand why they needed another one. They must have gotten the first one wrong."
<p>Despite it's current success, I think they did get Android wrong. There must be some huge arguments within Google about the correct model, but Chrome OS is the one that fits with the rest of the company. Time only will tell how the two operating systems sit together, but I wouldn't bet on Android surviving for longer than it takes to get Chrome OS powerful enough to drive a phone.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-91381298709981357902009-03-14T19:48:00.002+00:002009-03-14T19:50:29.584+00:00Telephony and the web<p>In the last few weeks, the web has finally started to encroach on the last holdout communications medium: the telephone. One day soon, most telephone calls will take place via Facebook, Twitter and Gmail, instead of your phone's inbuilt address book.
<p>Internet telephony has already been through one massive hype cycle without great results:
<ul><li>Skype is only real global success with consumers. Not web-based. Proprietary.
<li>Back-end infrastructure has been converted to IP, especially for business use and internally in telcos. But from the consumer's perspective it's still a separate network.
<li>Endless Voice over IP start-ups have now failed. There was clearly a missing ingredient - they focused on back-end technology e.g. SIP, not the consumer side, and they couldn't take advantage of network effects. Also, what advantages did they provide from a consumer perspective except reduced cost?
</ul>
<p>Most revealing for me is the phrase 'unified communications' in the telephony industry - it's been a mirage because they never unified with the web, surely the most important communications medium of all!
<p>A new wave of innovation has started in Silicon Valley and this time I think they're on the right lines. Recent news includes:
<ul>
<li>Native browser support for <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html">audio and video</a>, in Safari 4.0, Firefox 3.5 and Chrome 2.0 is coming very soon. This enables browser-based conversations without plugins such as Flash.
<li><a href="http://phweet.com/">Phweet</a> - integrates phone calls with Twitter
<li><a href="http://www.mikz.com/">Mikz</a> - web-based access to your mobile phone call data
<li><a href="http://www.twilio.com/">Twilio</a> - web platform for making & receiving calls, suitable for integrating into websites.
<li><a href="https://www.google.com/voice/about">Google Voice</a> - web-based call management tool, due to be integrated with Gmail
</ul>
<p>You can see where this is going. The web is taking over most other communications mediums (TV, newspapers, letters, email) and telephony is up next. Telcos were never able to deliver the vision of a unified suite, centered on the address book, where customers could communicate with each other. It's now the turn of the web and its social networks.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-32733359993688583352009-02-28T10:56:00.002+00:002009-02-28T12:27:14.134+00:00Browser competition<p>Of all applications, the browser is now by far the most competitively fought over. Four major organisations are each spending around $50-100 million annually on a free product, with regular upgrades due in the next few months:
<ul>
<li>Microsoft: Internet Explorer 8 with a totally re-written browser engine
<li>Mozilla: Firefox 3.1 with fast performance and new functionality like native audio and video, plus the release of Firefox for Mobile.
<li>Apple: Safari 4 with new standards support such as a native database and fast performance
<li>Google: Chrome 2.0 with a streamlined interface and fast performance
</ul>
<p>Somehow the browser market has avoided the featuritis that burdened office applications with endless menu options. In fact, browsers have got much simpler; three of the those above don't even have menus. Instead the focus has been on turning the browser into a great platform for developers: javascript performance may soon approach Java in speed, and support for new developer features such as advanced CSS styling and APIs such as geo-location enable new applications.
<p>Most of the browsers above are open source - the only exceptions are Internet Explorer and the user interface of Safari. Browser vendors have cooperated over the HTML5 and CSS3 standards. They also have common test suites and performance tests such as SunSpider. But they haven't cooperated as much as they could.
<p>For example, Firefox and Safari have produced competing web developer tools (starting with Firebug for Firefox, and Web Inspector for Safari). They are writing competing javascript engines and debuggers.
<p>Perhaps a bit more cooperation would help them both move forward faster. Why not agree on a standard tool for developer help (perhaps based on Mozilla's documentation), or a standard text editor (based on Mozilla's Bespin)? Perhaps Google could take the lead with process separation, and Apple with profiling tools. None of this would prevent further competition in the main browser engine, but it would ensure rapid progression for everyone.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-86425669412587793452009-02-15T23:36:00.000+00:002009-02-15T23:37:36.375+00:00Mozilla's web developer tools<p>Mozilla are best known for their browser Firefox but they're creating a steady stream of great web development tools, the latest of which was unveiled last week. <a id="plev" href="http://bespin.mozilla.com/" title="Bespin">Bespin</a> is a new web-based extensible code editor with integrated command line. Although it's a very early version and lots of kinks remain (including too much inaccessible HTML5 Canvas usage), the team have already accomplished one of their first objectives, which is to prove how capable browsers now are. Could web development tools one day provide the second 'arm' of Mozilla?
<p>Other development tools managed by Mozilla include:
<ul><li><a id="avjj" href="http://getfirebug.com/" title="Firebug">Firebug</a>, for inspecting and editing CSS, javascript and HTML</li><li><a id="c7bd" href="http://www.bugzilla.org/" title="Bugzilla">Bugzilla</a>, for release planning and maintaining issues lists</li><li><a id="s8vw" href="https://developer.mozilla.org/En" title="Mozilla Developer Center">Mozilla Developer Center</a>, for documenting web standards such as HTML and the DOM</li><li><a id="c4bb" href="http://jquery.com/" title="jQuery">jQuery</a>, a javascript library for cross-browser web development</li></ul>
<p>Tools for web development fit naturally into Mozilla's goals for extending the reach of the open web. In fact it seems strange that Mozilla don't have more competition in this area - there is a surprising lack of offerings from Yahoo, Microsoft, Amazon and even Google, especially considering how tools can be used to bind developers towards vendors.
<p>I hope that Mozilla's plans for Bespin are ambitious, because I see it as the centrepiece for all their development tools. Imagine if you while editing your code you could click once to find help in Mozilla Developer Center, again to visualise the results via Firebug, another time to track your bugs in Bugzilla and finally to resolve DOM issues using jQuery. In this way, Bespin can integrate all Mozilla's tools together.
<p>I would also add additional tools to the slate, all of which should integrate back with Bespin. For example:<ul><li>Version Control System (e.g. hg, git) integration - create a fork or merge at the click of a hyperlink</li><li>Validation / Best Practices - automatically check all your code against standards or best practices such as <a id="x5tt" href="http://jslint.com/" title="jslint">jslint</a></li><li>Web design - online tool for visualising and editing site design</li><li>Security - automatic checks for common flaws such as XSS</li></ul>
<p>Such a suite would constitute a second 'arm' of Mozilla. It would perhaps also provide a second source of funding for the organisation, with the support of web companies that use the tools. It could certainly improve the productivity of hundreds of thousands of web developers, while spreading standards and best practices. It's a very ambitious goal, but Mozilla has already proven capable of delivering great tools like jQuery and Firebug that now dominate their markets.
<p>I believe it's time for Mozilla to take a step up and treat development tools as a priority alongside Firefox itself.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-76053024076750186212009-01-31T12:08:00.006+00:002009-02-01T11:25:15.973+00:00Dell and smartphonesThe latest <a href="http://news.cnet.com/8301-17938_105-10153106-1.html?tag=mncol;txt">rumours</a> indicate that Dell are about to introduce a line of smartphones. Despite the incredible competition in this area, Dell's move makes great sense.
<p>That's because of the convergence of computing to common standards. Smartphones are now mini computers, capable of running the same platform as desktops. Vendors should gain economies of scale by copying Apple, who use Mac OS across its product portfolio, from the iPhone to the iMac.
<p>Dell has two choices for platform. It could choose the one it's worked on for the last twenty years - Windows. Or, as rumoured, it could choose Android.
<p>If Dell chooses Android, this would be a reflection of Microsoft's weakness in the mobile space. But it could also be a harbinger of more to come; why couldn't Dell also use Android for netbooks, even eventually PCs?
<p>I've already <a href="http://chrisfjay.blogspot.com/2008/11/nokia.html">predicted</a> further consolidation between the smartphone manufacturers and laptop manufacturers. Now the industries are converging, there are far too many companies around. Dell will struggle to achieve smartphone market share on its own before the market consolidates around it. If Dell is serious about becoming a major provider of smartphones, it should acquire to gain scale and expertise.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-24219831202761495192009-01-29T22:24:00.004+00:002009-01-29T22:49:51.496+00:00Firefox 3.2Well, I know that <a href="https://wiki.mozilla.org/Firefox3.1">Firefox 3.1</a> is still a month or two from shipping, but I've already got a wishlist for the next version.
<p>Since last summer, Mozilla has been on a hiring spree and momentum has really picked up. So I've been ambitious and included some big improvements.
<p>Firstly, user interface enhancements:
<ul>
<li><a href="http://labs.mozilla.com/2008/08/new-tab-concepts/">Speed dial</a> for the new tab page.
<li>Cleaning up history and bookmarks. There's the history sidebar, the bookmarks sidebar, the history menu, the bookmarks menu, the bookmarks toolbar, and places. And none of it integrates with Delicious or Digg.
<li>Get rid of the "file / edit / view ..." menu. Chrome did it, IE7 did it, surely Firefox can do it too.
</ul>
Second, additional standards support:
<ul>
<li>Support for OS-provided codecs in HTML5 video and audio (e.g. <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=435298">Quicktime</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=435339">DirectShow</a>) A great way to bring video closer to the web.
<li>HTML5 <a href="http://webkit.org/blog/126/webkit-does-html5-client-side-database-storage/">client database</a> support. Another great tool for web application developers.
<li>Browser access to <a href="http://blog.mozilla.com/blassey/2008/09/23/camera-input-tag/">webcams and microphones.</a> Extending the web to sensors.
<li>CSS <a href="http://webkit.org/specs/CSSVisualEffects/CSSTransitions.html">transitions</a> and <a href="http://webkit.org/specs/CSSVisualEffects/CSSAnimation.html">animations</a>.
<li>SVG Fonts, plus SVG via img tags and CSS
<li>Further support for the developing <a href="https://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html">ECMAscript 3.1</a> standard, a.k.a. Javascript Harmony.
</ul>
Finally, improvements to the browser:
<ul>
<li>DOM & regexp speed improvements. Further extending the new-found speed of javascript.
<li>Native support for <a href="http://labs.mozilla.com/projects/weave/">Weave</a>, allowing us to share our history and preferences between computers and trusted websites.
<li>Native <a href="http://radar.oreilly.com/2008/12/getting-openid-into-the-browse.html">support for OpenID</a>. What a great way to improve and simplify everyone's online lives.
<li>Process separation between tabs. Chrome and IE have reaped the benefits, including speed and security.
</ul>
<p>I told you it was ambitious!Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com2tag:blogger.com,1999:blog-8378277197615257607.post-5501794414677973862009-01-13T19:55:00.010+00:002009-01-14T23:24:04.477+00:00Announcing about:historyRecently I've become convinced that desktop browser interfaces are too complex. Menus, options, tabs and sidebars are a legacy of browser wars, with each side adding many new features; it's also a reminder of how recently we've really started to understand the web. Now, with smartphones with tiny screens and fiddly keyboards finally gaining proper internet access, simplicity is even more important.
<p>So I've developed a Firefox extension to remedy the situation - about:history <a href="http://feedsoft.co.uk/about-history/about-history-1.1.xpi">(download).</a>
<p>It's the first of a series of extensions to fit a new set of principles I've come to believe in:
<p><ul>
<li>
<h4>Shrink the chrome</h4>
<p>The browser chrome - the menus, options, address bar and buttons around the actual content - should be as small as possible. After all, what users really want to see is their webpage.
<li>
<h4>The browser as a website</h4>
<p>People are used to navigating websites. Clunky browser dialog boxes, sidebars and menus just don't work in the same way. We should replace all of them with webpages. For example, there shouldn't be a history sidebar - instead, there should be a history webpage that opens in a new tab, with a URI, built from HTML, CSS and javascript, and following normal web interfaces like Google search. In this view, the browser chrome is a website.
</ul>
<p>So, about:history replaces the current history sidebar in Firefox with a browser tab that works similar to a web search engine:
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkwudWE3-y9DIH5wShGeBGKYf-T1EbxIiTLEhk3J5gcQjkd8eDjDnxbA-fTueoHFeMEyC0L6oz34oH1UQ7fBK83PrjoyVeXgnmDGAHQJru6m_PucjBAhN26arqapR0zJH_ZH5F2_w5LqGH/s1600-h/about-history-main.jpg"><img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 282px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkwudWE3-y9DIH5wShGeBGKYf-T1EbxIiTLEhk3J5gcQjkd8eDjDnxbA-fTueoHFeMEyC0L6oz34oH1UQ7fBK83PrjoyVeXgnmDGAHQJru6m_PucjBAhN26arqapR0zJH_ZH5F2_w5LqGH/s320/about-history-main.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5291289978712259618" /></a>
<p>It's actually quite similar to Google Chrome's history page, with a few important differences. Most notably, it's got a URI (about:history). If the web has taught us anything, it should be the power of the URI. Also, of course, it enables you to selectively delete pages from your browser history.
<p>There's an advanced search option too - see the screenshot:
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLw9j_2tkSgGwuuJ2afTeduYlz2r6YP2XeIZ-SNK5IAD05f4rX6qo0ef1WURmXUF22a9tOHCzElnrZTr9_GTtOp2W4Yt_ozni2jw7P1IHbNUy9SIWkwetnCZryt5OQk_DE8vZ4ba6AG6jg/s1600-h/about-history-advanced.jpg"><img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 282px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLw9j_2tkSgGwuuJ2afTeduYlz2r6YP2XeIZ-SNK5IAD05f4rX6qo0ef1WURmXUF22a9tOHCzElnrZTr9_GTtOp2W4Yt_ozni2jw7P1IHbNUy9SIWkwetnCZryt5OQk_DE8vZ4ba6AG6jg/s320/about-history-advanced.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5291291029300998130" /></a>
<p>All you need to do to open up this page is click on the history link on the bookmarks bar, or press Ctrl-H. Of course, since there is a URI, other sites can also link back to it.
<p>Personally I think this interface is much better. It doesn't introduce any new visual features like the sidebar - instead, it works just like a normal page. It follows normal visual metaphors like web search pages. It's linkable, clickable, you can put it in your favourites or view the source or screenscrape it. And it doesn't require any space in the chrome!
<p>Let me know what you think. If all goes well, I'm going to apply the same principles to other parts of the browser, all in the aim of reducing clutter.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com2tag:blogger.com,1999:blog-8378277197615257607.post-48914205774389528392009-01-13T19:51:00.000+00:002009-01-13T19:52:20.441+00:00Unexpected convergence: smartphones and TVs<a href="www.cesweb.org/ ">CES</a> this year was fascinating. The <a href="http://www.palm.com/us/products/phones/pre/index.html">Palm Pre</a> is the perfect example of where I see consumer devices heading. The whole phone is basically a browser; it's built using web standards (HTML, CSS and javascript) from top to bottom. As <a href="http://www.tbray.org/ongoing/When/200x/2009/01/12/Golden-Age-of-Cellphones">Tim Bray states</a>, "Speaking personally, as a person who'd never thought I needed the Internet in my pocket, I find myself using my G1 to approve comments and check the weather and fetch maps and so on <i>all the time</i>." To create the Pre, Palm (like Apple and Google), has focused on creating a browser for small screens. They've had to get rid of all the menus, options and buttons that desktop browsers are infested with, while also removing much of the need for fiddly keyboard entry.
<p>Which brings me to the <a href="http://www.nytimes.com/2009/01/12/technology/personaltech/12cesexec.html?_r=2&partner=rss&emc=rss">following quote</a> last week from the CEO of Netflix, commenting on <a href="http://www.readwriteweb.com/archives/the_rebirth_of_web_tv.php">new internet-enabled TVs</a>: "Think of Internet on the TV like the Web browser. One view is that the Web, a browser like Firefox, Chrome or I.E., will be right on the television in the next couple years. Another view is, no, a PC-based Web is just too complex. The second one is the phase that we're in now."
<p>I agree that the PC-based browser is just too complex to use while standing metres away with a remote control. But the smartphone-based browser might work perfectly on your TV!
<p>After all, stripping out the menus, options, buttons and keyboard navigation is the first step to getting a working browser on the TV, too. And though you can't touch your TV from the sofa, you can imagine using a control like the Wii to navigate a pointer round the screen in much the same way. Download the <a href="http://en.wikipedia.org/wiki/Internet_Channel">Wii Opera browser</a> to see what I mean. Or just imagine the Palm Pre interface on your TV!
<p>It seems odd that smartphones and 50" TVs could share the same interface. But that's the lesson of this year's CES for me.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-16459957735082240522008-12-10T22:27:00.002+00:002008-12-10T22:30:09.310+00:00Mozilla futures<p>A great quote recently from Tristan Nitot, head of Mozilla Europe:
<blockquote>
For years, the Mozilla goal was simple:
<div align="center">promote choice and innovation on the Internet</div>
and the biggest lever we had to achieve this was Firefox. In 2003, there was a monopoly (which leads to lack of choice) and total lack of innovation (why would Microsoft invest in something that did not generate revenue and could threaten its business?). Making a modern, safer, easier to use, cross-platform and extensible browser made sense.
<p>Fast forward 5 years or so. We're in a totally different place. The browser market is in much better shape than before. 2009 seems very promising with Safari 4, Chrome 1.0, IE8 and Firefox 3.1. There is absolutely no doubt that keeping on improving Firefox is the right thing to do, but in this new era, the old Mozilla goal sounds less relevant.
</blockquote>
<p>Tristan is right. Against all odds, Firefox has achieved their initial goal. Congratulations!
<p>So, what's next for Mozilla and Firefox? Well, I believe they have to extend the web itself:
<ul>
<li>Mobile: Create a full-power browser for mobile phones, even better than Apple's iPhone browser
<li>Sensors: Enable the browser to allow websites control over device hardware such as cameras, microphones, accelerometers, etc.
<li>Graphics: Enhance the browser to give it native control over video, vector graphics, plus 2D and 3D rendering.
<li>Security: Work to eliminate security issues from the web
<li>Performance: Make javascript as fast as C. Use hardware acceleration to speed up graphics until canvas is fast enough to enable modern video games. Take advantage of multi-core machines.
<li>Process: Mozilla has proved that a radically open development model works. All their development software, bugs, internal issues, team meeting notes and working designs are on the web for everyone to see and discuss publicly. That includes working very closely with standards bodies so the web doesn't dissolve into rival models. Their challenge is to ensure this approach beats the closed proprietary model. That means they need more market share!
</ul>
<p>Perhaps the last point is the most important ... Mozilla have set an example to us all by building a huge community for good around the world. Their task will be to expand it further and use it to influence the development of the web.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-57915999082996833432008-11-26T21:43:00.004+00:002008-11-26T23:46:56.661+00:00NokiaNokia is at a turning point. Long the dominant supplier of mobile phones worldwide, it faces new deep-pocketed competitors in Google & Apple, plus structural changes in the industry. Nokia is losing market share and needs a clear strategy.
<p>The mobile phone industry has matured rapidly. Until very recently, companies competed by offering features - a better camera phone, more storage for music, a more colourful screen. The big manufacturers created vast portfolios of phones tailored to different market segments and geographies - camera phones, music phones, children's phones, smartphones, and economy phones.
<p>Smartphones have now converged on a standard set of these features. The next battlefield is the software platform that ties it all together. Apple and Google have turned their phones into general purpose digital devices - in other words, personal computers. They are competing by attracting third party application developers to take advantage of the computing power in their phones. The Apple store, for example, is one of the key selling points behind the iPhone, with more than 5,000 applications already created.
<p>To attract this kind of ecosystem, you need to develop a strong platform. Apple have done this by porting Mac OS to the phone. Google have developed Android. Various other vendors have combined forces to develop LiMo, using Linux. Unfortunately for Nokia, their operating system Symbian is not popular and needs significant investment. Nokia have taken control and will open source the OS. But by the time it's complete, it may be too late.
<p>Nokia have pushed into software and services. "Comes with Music" is an innovative attempt to establish a new business model for digital music, but it's losing money. The purchase of Navteq enabled Nokia to move into location-based services. Neither has yet attracted much interest by the consumer. This is an uphill battle.
<h4>A new approach</h4>
Nokia is still a profitable company, and it still has marketshare dominance. It just needs to follow the principles below:
<dl>
<dt>Device Convergence</dt>
<dd>Now the platform is all-important, simplify the device portfolio. Nokia should be offering no more then 3-5 phones in each country, each based off the same platform. After all, Apple have only got one phone, but they're still the second biggest smartphone manufacturer in the world!
<p>Also, now phones are becoming general purpose computers, why not merge with a PC company such as Acer or Dell? The platform should work across all shapes and sizes, perhaps extending upwards from mobile through the Netbook format.</dd>
<dt>The web is your platform</dt>
<dd>Fighting against Windows, Mac OS <i>and</i> Linux is a fool's game. Instead, Nokia should align themselves to the biggest platform of all ... the web. Nokia should become a platinum sponsor of Firefox, who are writing an amazing-looking mobile browser, and make it the whole front end to their phones. Creating code for a Nokia phone would then be easy - any web designer could do it.
<p>Nokia could create Firefox extensions to give the browser power over local features such as the microphone, camera and accelerometer. Nokia would instantly have the biggest group of developers and the most third-party innovation of any mobile platform, and they would have the future on their side.</dd>
<dt>Partner with Silicon Valley</dt>
<dd>The hotbed of software innovation is Silicon Valley. Writing applications is a totally different business to selling hardware, and Nokia is going to struggle with its services strategy. Nokia should partner, not compete, with Silicon Valley. Why create your own email application if you can just recommend GMail? Why create your own photo application if you can just recommend Flickr? Why not partner with Facebook and Twitter to provide the next level of communications?
<p>Remember, the web is your platform, not the operating system. So please, no more do-it-yourself services after music and maps.</dd>
</dl>
<p>Each of these principles could be easily achieved in a year or so. But they would establish Nokia on the right side of the changes taking place in the mobile industry.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-42755574252708956332008-11-08T10:56:00.001+00:002008-11-08T10:58:29.240+00:00Web sensorsOne of the big topics nowadays in client computing is sensors - from touch screens to GPS devices, webcams, microphones, proximity sensors, accelerometers, temperature sensors, etc. Now they are coming to the browser, which could radically change the web.
<p>Sensors provide information about the environment around the computer, and can make the user experience more natural (e.g. "pinching" a touch screen) or open up new features such as GPS navigation.
<p>Recently <a href="http://blogs.zdnet.com/microsoft/?p=1447">Microsoft</a>, <a href="http://code.google.com/p/gears/wiki/CameraAPI">Google</a> and of course <a href="http://support.apple.com/kb/HT1636">Apple</a> have improved their core support for sensors.
<p>But consider the progress made recently by browsers:
<ul>
<li>Apple create a <a href="http://www.apple.com/iphone/features/safari.html">multi-touch browser</a>. Touch events can be handled by Safari automatically or <a href="http://www.sitepen.com/blog/2008/07/10/touching-and-gesturing-on-the-iphone/">handled</a> by the web developer. <a href="http://wiki.mozilla.org/Mobile">Firefox</a> is not far behind.
<li>A new W3C <a href="http://dev.w3.org/geo/api/spec-source.html">standard for geolocation</a> with initial support by Apple Safari, Google Gears and Mozilla Firefox.
<li><a href="http://blog.mozilla.com/blassey/2008/09/23/camera-input-tag/">Firefox</a> and <a href="http://code.google.com/p/gears/wiki/CameraAPI">Google</a> start work on camera and microphone support inside the browser.
</ul>
<p>Even without an overarching <a href="http://chrisfjay.blogspot.com/2007/05/sensors.html">sensor framework</a>, support for geolocation, audio and video should have an incredible effect on the web:
<ul>
<li>Accessibility: dictate your search to Google, via a microphone
<li>Games: Play human pacman by watching on a map where your friends are in the city
<li>Communication: Make phone calls using your browser
<li>Market share: yet more reasons to use the web stack, rather than a client stack
<li>Security: We'll need strong security to prevent people from hacking in to your microphone
</ul>Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-92047029785775223732008-10-30T12:51:00.004+00:002008-11-08T11:44:47.943+00:00Web servicesTim O'Reilly has written another great <a href="http://radar.oreilly.com/2008/10/web-20-and-cloud-computing.html">essay</a> explaining the three types of cloud computing: Utility Computing, Platform as a Service, and cloud-based end-user applications.
<p>For now let's focus on just one consequence: "Web Services" finally get real. Let's go through the various services that are already emerging. Remember, these are not only services for consumers, but also a platform for developers.
<p>Most obviously, identity. This includes authorisation, authentication, presence, and basic user data e.g. email address. OpenID and OAuth are the emerging standards in this space, with support already from Google, MySpace, Microsoft, and Yahoo.
<p>Secondly, social networking basics : Friends & the Activity Stream. OpenSocial is the emerging standard here.
<p>Third, basic content: Images, Videos, Audio, Blogs. The emerging standard here is Atom. However services will likely get enhancements; for example, the ability to manipulate the underlying files e.g. removing red-eye on photos or enhancing audio treble.
<p>Fourth, various additional services:
<ul>
<li>Location-based services e.g. Maps / GPS
<li>Time-based services e.g. calendars / tasklists / clocks
<li>Messaging (email, instant messaging, phone)
<li>Financial services (payments, credit checking, etc)
</ul>
<p>Finally, professional content:
<ul>
<li>News
<li>Sport
<li>Financial
</ul>
<p>All of these services already exist on the web, but they are in silos and can't easily be accessed by developers. Finally now, web application providers are rushing to become platforms for developers, opening up their data using standard patterns like REST and OAuth.
<p>For example, Paypal could offer to track your payments in Google Calendar. Or you could ask the BBC to enter any news items within 20 miles of your house into your Myspace Activity stream. Or you could put your phonecall history there. Or your project management system at work could put events into your personal calendar or task list.
<p>From the consumer perspective, the web will become a lot more connected and personalised. From the developer perspective, there will be a huge number of web services making user data available securely (photos, videos, friend list). Writing a web application will involve plugging in to these standard services. Finally, the vision of web services will become real.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-63154630804855652742008-10-30T11:58:00.004+00:002008-10-30T12:49:29.148+00:00Web Office suites are a dead endSo, Microsoft have <a href="http://www.microsoft.com/Presspass/Features/2008/oct08/10-28PDCOffice.mspx">finally confirmed</a> that a web-based version of Office is due soon.
<p>That's good news. It means that Microsoft are responding to competition from Google and Zoho; hopefully in turn Google and Zoho will improve their products, which can only benefit the end consumer. It also means that the web has finally broached the biggest consumer software market in the world, the office suite. Web 2.0 has won!
<p>However, while Web 2.0 might have won, I don't think the office suite will survive much longer. Microsoft, Google and Zoho may have faithfully reproduced the troika (word processor, spreadsheet, presentation) on the web, but its time has passed.
<p>We've been stuck with these three applications for so long that it's difficult to see past them. But they've only survived due to network effects: everyone has them, because everyone else has them. It's time to re-examine their purpose.
<p>First, the rise of the long tail. Because the browser is a general purpose platform, all sorts of special-purpose applications can be used instead of an office suite. Why use Microsoft Word to manage your CV, if you can use jobsite.co.uk instead, which gives you CV advice and links you to employers? Why use Excel to manage your personal finances, if you can use Mint.com, which automatically downloads, categorises and charts your bank accounts for you? Why use Powerpoint to explain your business, if you have a business website that does the same and is accessible to millions?
<p>Second, the rise of the widget. Ever seen a video embedded in a spreadsheet, or an interactive calendar embedded in a presentation? I thought not! But because the browser is a general purpose platform, it's possible on the web. Many widgets like these that defy categorisation will spring up. Is it really a spreadsheet if you use it to post photos? Is it really a word processor if there is a table with formulas embedded? The spreadsheet, word processor and presentation will merge together into a single platform with many different widgets.
<p>Finally, of course, the rise of collaboration. To an elder generation, something you did with the Nazis. To the younger generation, the whole point of content. If you can't see your friends, and make your content available to them, then they won't want it. That applies at work even more than outside work. The web office will be embedded inside a social network. It'll look more like Facebook than Powerpoint.
<p>Microsoft's screenshots of the web version of Office look like they've faithfully reproduced Office in the browser. I think this approach will lead to a dead end. The all-powerful office suite is fading fast, and even the web can't save it.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com2tag:blogger.com,1999:blog-8378277197615257607.post-23430101160179331612008-10-30T11:25:00.004+00:002008-10-30T11:56:12.367+00:00Separating code from content and presentationMost web designers nowadays know that content and presentation should be separated. There are still a few examples of HTML <table> and <br> elements used for layout, instead of CSS, but this is diminishing.
<p>The same can't be said of separating code (i.e. javascript) and presentation. I still see lots of examples of layout being set via javascript. It's even built into most javascript frameworks - for example, jQuery has a set of css methods to allow the likes of $('#div1').css("color: red").
</p><p>That's just wrong. You can't hope to maintain your website's style if you set CSS via javascript - it's difficult enough organising CSS files without having to wade through javascript as well to figure out why a certain style is set. Re-designing your site will require you to change all your code too!
</p><p>The best solution is to remove all javascript and simply use CSS, with pseudo-classes like :hover and :active to get more control. However, if you're responding to a more complicated event, then you should use classes. Just do $('#div1').addClass('highlighted') instead. You can maintain the actual style in your CSS file, in this case div.highlighted {color: red}.
</p><p>Similarly, I always try to remove all HTML from my code. It's very easy to get caught up creating and inserting whole DOM trees via javascript alone. But this is inaccessible to search engines, and creates content management nightmares. Now you have to search all your javascript to find where the image came from, as well as the HTML files!
</p><p>The best solution to this is to remove all javascript and simply use HTML and CSS. However, if you're responding to a more complicated event, then you should have the additional markup already present in the HTML file, perhaps hidden using CSS display:none. You can simply turn it on in your code, without having to create it.</p>Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-3125549656087764992008-04-23T20:48:00.001+00:002008-04-23T20:48:31.685+00:00Microsoft Mesh<p>Details of <a href="http://www.mesh.com">Microsoft Mesh</a> are finally emerging through the fog of Microsoft's PR department, and I think it's going to be absolutely massive. They've found a way to extend their C: drive monopoly to the web.
<p>Basically, Mesh will turn your PC into an <a href="http://www.xml.com/pub/a/2005/09/21/atom-store-web-database.html">Atom Store</a>, publishing your C: drive to the internet as a set of feeds. You can publish any local Word Documents, images, videos, or even folders.
<p>What's more, your C: drive will obey the Atom Publishing Protocol, meaning other services will be able to post, edit or delete local files. This will be used to synchronise your local content with an online space, presumably a version of Sharepoint with developer APIs. Of course, this will turn every PC into a web server - I suspect the only connections allowed will be to Microsoft's servers.
<p>This is exactly the kind of service I had in mind <a href="http://chrisfjay.blogspot.com/2007/01/connecting-digital-devices.html">here</a>!
<p>Microsoft have finally found a way to extend their dominance of the PC to the web - via the C: drive. Now, your pictures in "My Pictures" will be automatically synched with Microsoft Live Photos whenever you turn your PC on. Why would you ever then manually upload them to Flickr? And your Office documents will be automatically synched with a personal Sharepoint that presumably enables document sharing. What's the point now of Google Apps?
<p>Mesh finally makes the slogan "software <i>plus</i> services" meaningful. And they do it by using web standards - HTTP, ATOM and URLs. However, the remaining web standards - HTML, CSS and Javascript - are still being avoided on the client, in favour of binary files like Office documents. That will make it difficult to synch HTML documents created on the web (e.g. lists, and tables) back to the client.
<p>This is definitely a half-way house. The only reason synchronisation is such an issue is that we're still storing data locally on clients, rather than in the cloud. But 50% web technology is much better than 0%, which is what Microsoft provide at the moment. Mesh will protect their Office monopoly for a few more years, but it will still surely crumble eventually in the face of HTML5 and CSS3. Microsoft are betting that Mesh will carry them over until they develop more competitive web applications.
<p>Of course, if you have an Apple iPhone or Mac, or indeed use Linux, you will not synch with Microsoft. You will also have no need to synch with Microsoft if you already rely on full web technology, such as Google Apps. But if they can execute, Microsoft will once more be a force in Silicon Valley.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-65961525506322867762008-04-06T10:31:00.009+00:002008-04-07T22:51:27.488+00:00Language services on the web<p>Applications like Microsoft Word have embedded spelling and grammar checks for years. So Google's recent release of a web-based <a href="http://code.google.com/apis/ajaxlanguage/">API for language translation</a> made me think - just how far could these automated services go?
<p>There are huge benefits to hosting language services on the web, rather than installing them locally on each PC. The clearest is the availability of enormous data sets. For example, it turns out that Google's spell check service is <a href="http://www.googleguide.com/spelling_corrections.html">totally automated</a> - there is no manually maintained database of words, it simply searches the web for common character sequences. The top 10,000 sequences must surely be correctly spelt words!
<p>The same brute force data attacks could surely also provide a grammar check service. For automatic translation, you just need to analyse enough Rosetta Stones, where the same text is written in multiple languages. And Google has been operating a free telephone 411 service in the US, supposedly so that it <a href="http://radar.oreilly.com/archives/2007/04/why-google-is-offering-411-ser.html">can gather enough data</a> (through recording people's voices) to eventually deliver good speech recognition.
<p>It's also important whether a service is descriptive (merely the result of viewing how language is used) or prescriptive (defining rules for people to follow). The writers of the Oxford English Dictionary <a href="http://www.oed.com/about/writing/">claim</a> their work reflects the usage patterns of different words; entries in the dictionary are not meant as prescriptive rules, though it clearly helps if you want to be understood! This is important because a descriptive service could in theory be automated simply by analysing literary data, whereas descriptive services can't.
<p>Finally, services that require a semantic understanding of language are clearly some way off.
<table>
<tr><th>Service</th><th>Authority</th><th>Enough Data</th><th>Semantics</th></tr>
<tr><td>Spelling</td><td>Descriptive</td><td>Yes</td><td>No</td></tr>
<tr><td>Grammar</td><td>Descriptive</td><td>Yes</td><td>No</td></tr>
<tr><td>Speech recognition</td><td>Descriptive</td><td>Not yet</td><td>No</td></tr>
<tr><td>Thesaurus</td><td>Descriptive</td><td>Not yet</td><td>No</td></tr>
<tr><td>Translation</td><td>Descriptive</td><td>Not yet</td><td>Maybe</td></tr>
<tr><td>Dictionary</td><td>Descriptive</td><td>Yes</td><td>Yes</td></tr>
<tr><td>Encyclopedia</td><td>Prescriptive</td><td>Not yet</td><td>Yes</td></tr>
</table>
<p>This table is saying that pretty much every service could be generated automatically simply by analysing huge amounts of data, without the need for understanding. The only exceptions are translations, dictionaries, and encyclopaedias - and for translations, as Google has proved, you can still get a useful part of the way there.
<p>The main takeaway is that there's one massively important side benefit of search engines that has yet to be fully appreciated; they revolutionise linguistics. In fact, they turn it from a mainly qualitative area into a quantitative science.
<p>We now have the tools to analyse language variations as they spread through time and geography, or to discover the common elements in every language, or to watch how language style depends on context, using as a data set the entire internet!
<p>If there's one thing that makes us human, it's language. Computers will help us to understand ourselves!Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com0tag:blogger.com,1999:blog-8378277197615257607.post-24577350528391676422008-04-05T11:37:00.005+00:002008-04-21T21:54:10.722+00:00On Apple's CSS animation proposal<p>Apple recently published new proposals for CSS <a title="transitions" href="http://webkit.org/specs/CSSVisualEffects/CSSTransitions.html" id="c_e-">transitions</a> and <a title="animations" href="http://webkit.org/specs/CSSVisualEffects/CSSAnimation.html" id="fe:k">animations</a>. Having <a title="spent some time" href="http://chrisfjay.blogspot.com/2007/02/my-proposal-functional-animation.html" id="nqip">spent some time</a> reviewing approaches to animation on the web, I conclude that their animation proposal has serious shortcomings, and identify a better approach.
<p>Animation - controlling the evolution of styles like position, colour, size, fonts, and layout - has always been a crucial gap for the open web. That's why it's been a key selling point for plug-ins such as Flash, albeit in a proprietary way that doesn't integrate well with the rest of the page. Animation is a good thing and should be brought to the web asap.
<p>For more than ten years now, the W3C's answer to animation has been <a id="tzlh" href="http://en.wikipedia.org/wiki/Synchronized_Multimedia_Integration_Language">SMIL</a>. But SMIL has a fundamental problem - it can only animate XML. On the web, you don't want to animate <span id="b.c:"><i id="fa1x">content</i></span> - you want to animate <span id="xyuw"><i id="q3bp">style</i></span>. Style is not stored as XML, or even as markup - it's stored as CSS. Finally, Apple has <a id="z03t" href="http://www.w3.org/blog/CSS/2008/04/04/resolutions_17">overcome </a>the inertia with CSS animation. Now there is a chance to shape the way it works - hopefully this review will play a role!
<P>There are two fundamentally different ways to evolve style - transitions and animations. In <span id="c9bv"><i id="zjs_">transitions</i></span>, you don't know in advance what the before and after styles are, you just want to control how quickly the transition takes place for each style property. For example, you could say that background-color always takes two seconds to change, rather than being instantaneous as normal. In <span id="o_fv"><i id="dhf2">animations</i></span>, you control both the before and after styles, plus the path between them.
<h3 id="hh:0">Transitions</h3>Apple's model for transitions is clear and straightforward - you simply apply a transition rule to the relevant CSS properties - for example, perhaps there is a delay of two seconds whenever the div's opacity changes:<pre id="body">div {
transition-property: opacity;
transition-duration: 2s;
transition-timing-function: linear;
}
</pre>Transitions enable a huge number of simple effects, from context menus that slide out on mouse over to page sections that fade out when closed.
<p>I like this model because it's simple and orthogonal to all the other styles (you can't set the actual property values, only their timing), yet gives them even more power. Also, the new transition styles follow the proper cascading rules as they are applied through the DOM.
<h4 id="eyd2">Apple's Animations
</h4>Apple takes a very similar approach with animations. Using the same opacity example:
<pre id="body">div {
animation-name: div-opacity;
animation-duration: 2s;
animation-iteration-count: 1;
}
@keyframes 'div-opacity' {
from {
opacity: 0%;
animation-timing-function: linear;
}
to {
opacity: 100%;
}
}
</pre>Unlike transitions, animations set the exact values over time of the opacity style, using keyframes. This is where the problems arise.
<p>The first issue is orthogonality. Keyframes provide a new way to set the div's opacity, away from its normal position (under the div selector). This adds unnecessary confusion to parsing and understanding the CSS document - there are now two ways to set a style. It also requires several new CSSOM interfaces to control keyframes via script.
<p>As a result, keyframes have a much bigger issue - they don't cascade. Cascading is one of the most important characteristics of stylesheets - it's the C in CSS. Cascading sets a series of priorities for when to apply style rules, based on the DOM and where they are applied. Because keyframes are a totally separate part of CSS, cascading can't work its magic.
<p>For example, what happens if opacity was set in both the <span id="tafx"><i id="wt-l">div </i></span>selector and the <span id="gon1"><i id="ut9e">keyframe</i></span>? You could set an arbitrary rule to give one location priority, but it would be just that - arbitrary. And how does opacity apply to any elements inside the div? Apple have proposed that keyframes don't cascade. But this removes much of the power of CSS.
<h4 id="g3vw">A better approach to animation
</h4>There's a better approach to animation that respects both the orthogonality and cascading principles. I also think it's simpler - it certainly requires fewer lines of code. See an example below that does exactly the same as the animation example above:
<pre id="body">div {
opacity: calc(t / 2s * 100%);
}</pre>There are two key elements to the solution:
<ul id="qu7:"><li id="iroa">The CSS3 <a title="calc" href="http://www.w3.org/TR/css3-values/#calc" id="c.q6">calc</a> function, which enables simple mathematics like multiplication and division.</li><li id="iroa">The new standard variable <span id="uyo9" style="font-style: italic;">t</span>, which measures elapsed time in seconds, starting at <span id="k5sc" style="font-style: italic;">t=0</span> when the style is first applied to the element
</li></ul>
In the example above, opacity would start at t=0 with a value of (0s / 2s) * 100%, which is 0%. After exactly two seconds, opacity would have the value (2s / 2s) * 100%, which is 100%.
<p>Notice that since <span id="l6s1" style="font-style: italic;">t</span> is measured in seconds, we need to divide by a time unit (in this case 2s) in order to get the units right. I've also multiplied by 100% to return a percentage unit accepted by opacity.
<p>The benefits of this inline approach are that it maintains both orthogonality and cascading rules - in fact, animated styles cascade in exactly the same way as static ones. It's also easier (and much shorter) to read, and requires no additional CSSOM interfaces.
<p>To provide the complete picture you need additional animation functions, plus a few discretionary parameters. Following Apple's approach, I recommend the following:
<ul id="qme3"><li id="z.j0">animate-ease(time, iterationcount=1, direction=normal)</li><li id="z.j0">animate-linear(time, iterationcount=1, direction=normal)</li><li id="z.j0">animate-ease-in(time, iterationcount=1, direction=normal)</li><li id="z.j0">animate-ease-out(time, iterationcount=1, direction=normal)</li><li id="z.j0">animate-ease-in-out(time, iterationcount=1, direction=normal)</li></ul>In addition, the following functions provide more control
<ul id="y686"><li id="q08-">animate-step(time) which is the step function, returning zero when time<0s id="dh-l"></li><li id="jm:-">animate-keyframes(time0 value0, time1 value1, time2 value2, ...), which returns a curve smoothly connecting the points via a bezier function.This negates the need for a separate cubic bezier function. </li></ul>
For example, the following styles apply the same effect as above, but eased-in and stepped after 1s rather than linear:
<pre id="body">div.ease-in {
opacity: calc(animate-ease(t / 2s) * 100%);
}
div.step {
opacity: calc(animate-step(t / 1s - 1s) * 100%);
}</pre> The following style iterates linearly every second four times in a row, alternating directions each time:
<pre id="body">div.iterate {
opacity: calc(animate-linear(t / 1s, 4, alternate) * 100%);
}</pre> The following style illustrates more complicated animations, by moving an image downwards with uniform acceleration:
<pre id="body">div.gravity {
top: calc(t*t / (1s*1s) * 1px);
}</pre> <h3 id="f3.1">Synchronisation</h3> Under this model, separate animations are implicitly synchronised. For example, consider the following animation:
<pre id="body">div.projectile {
top: calc(t*t / (1s*1s) * 1px);
left: calc(t / 1s * 1px)
}</pre> The instant a div element is given the projectile class, both animations will be set to t=0, and hence will be syncronised together.
<p>On the other hand, the following animations will not be automatically synchronised:
<pre id="body"><style>
div.moveright {
left: calc(t / 1s * 1px);
}
div.movedown {
top: calc(t / 1s * 1px);
}
</style>
<script>
var div1 = document.getElementsByTagName("div")[0];
div1.className = div1.className + " moveright";
div1.className = div1.className + " movedown";
</script>
</pre> The classes have been set at slightly different times, one after the other, and therefore the animations will begin at slightly different times as well.
<h4 id="wqvj">Conclusion</h4> Animation has the potential to turbo-charge style on the web. It's important that it's done in a way that enables the full power of CSS, including the principles of orthogonality and cascading. Apple's transitions model meets these principles, but their animations model does not, so I have proposed a replacement.Chris Jayhttp://www.blogger.com/profile/09825586183577260997noreply@blogger.com1