<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2884069909512223696</id><updated>2011-08-09T05:50:17.523-07:00</updated><title type='text'>Duke Dougal</title><subtitle type='html'>dukedougal AT gmail.com</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dukedougal.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dukedougal.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Duke Dougal</name><uri>http://www.blogger.com/profile/13104066621043790256</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2884069909512223696.post-6990947138129747217</id><published>2008-12-06T20:40:00.000-08:00</published><updated>2008-12-06T20:47:50.093-08:00</updated><title type='text'>Cuckoos - Cloud Users Client Open Operating System</title><content type='html'>How about an operating system that literally gets rid of ALL functionality except the web browser?  This operating system provides only the absolute minimal functionality required to implement the browser.&lt;br /&gt;&lt;br /&gt;After all, people keep telling us about how the browser is now the platform and the OS is becoming irrelevant.&lt;br /&gt;&lt;br /&gt;Wouldn't an operating system that is designed only to support the browser be simple, fast, efficient and reliable?  Less software means less complexity.  All that general purpose functionality just gets in the way and makes the OS bloated.&lt;br /&gt;&lt;br /&gt;Such an operating system would probably boot very fast too.  I call this operating system the Cuckoos, which stands for - Cloud Users Client Open Operating System (it's a silent 'K').&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2884069909512223696-6990947138129747217?l=dukedougal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dukedougal.blogspot.com/feeds/6990947138129747217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dukedougal.blogspot.com/2008/12/cuckoos-cloud-users-client-open.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/6990947138129747217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/6990947138129747217'/><link rel='alternate' type='text/html' href='http://dukedougal.blogspot.com/2008/12/cuckoos-cloud-users-client-open.html' title='Cuckoos - Cloud Users Client Open Operating System'/><author><name>Duke Dougal</name><uri>http://www.blogger.com/profile/13104066621043790256</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2884069909512223696.post-5884164001186980187</id><published>2008-11-29T12:33:00.000-08:00</published><updated>2008-11-29T17:06:46.411-08:00</updated><title type='text'>Adobe Flex datagrids are falling behind Silverlight</title><content type='html'>Microsoft has a reputation for entering a market late, starting out with a poor version 1 and then relentlessly improving their software until they have a highly competitive product.&lt;br /&gt;&lt;br /&gt;The same seems to be starting to happen with Silverlight, specifically with the datagrid.&lt;br /&gt;&lt;br /&gt;I've been working extensively with the Adobe Flex datagrid and advanced datagrid.  At first I was overjoyed just to have any sort of datagrid.  Now, over time the elation has faded somewhat as I've come to understand the strengths and weaknesses of the Flex datagrids.   Here are some of the things that have become apparent:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the Flex datagrids have had a number of memory leaks (at least some of which have been fixed)&lt;/li&gt;&lt;li&gt;the Flex datagrids seem to use a large amount of memory, even without memory leaks&lt;/li&gt;&lt;li&gt;the Flex datagrids are very slow to initialise - this becomes a huge problem when you application needs to constantly initialize and re-initialize grids, as ours does&lt;/li&gt;&lt;li&gt;the Flex datagrids are very slow to handle changes in the column structure (i.e. adding, deleting and changing displayed columns) - again a huge problem when your app is built around the idea of constant column changes&lt;/li&gt;&lt;li&gt;the Flex datagrids often don't repaint cells/rows properly - to get them to repaint properly you have to scroll those rows out of and back into view&lt;/li&gt;&lt;li&gt;the Flex datagrids don't resize well according to their contents - for example changing the font or font size requires lots of careful fiddling with CSS properties to avoid text being cut off - this makes it hard to give the end user the option to change the font to one that suits their eyes/display resolution&lt;/li&gt;&lt;li&gt;the Flex datagrids sometimes don't shift focus to a row when I click on it&lt;/li&gt;&lt;li&gt;the Flex datagrids sometimes don't execute drag and drop operations and I have to keep doing the same drag and drop action until for some reason it works&lt;/li&gt;&lt;li&gt;the Flex datagrids lack a sense of "precision".  This is a bit hard to explain, but if you have a look at an application built with a datagrid in Borland Delphi for example, the datagrid feels responsive, tight and accurate.  I know this is not an adequate explanation of a problem but it "just doesn't feel tight" is the only way I can explain it&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I have started to look over the fence at other datagrids out there to see if there are any choices.  There are no third party datagrids for the Adobe Flex (Microsoft seems to have a thriving market of third party components for it's products - I wonder why this is not the case for Flex?).&lt;br /&gt;&lt;br /&gt;There is one interesting alternative though, which is the Silverlight datagrid.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/scmorris/archive/2008/10/14/silverlight-2-datagrid-is-released.aspx"&gt;This post lists some exciting features&lt;/a&gt; in the Silverlight 2 datagrid:&lt;br /&gt;&lt;br /&gt;I've copied, pasted and hacked some of the above post to identify some of the most interesting and exciting things about the Silverlight Grid:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Support for the Visual State Manager (VSM) a tool that allows designers to customize how a control looks in various states, and the animations used to switch between these states.&lt;/li&gt;&lt;li&gt;Performance, Performance, Performance: We have done a lot in this area to try to get the DataGrid running as fast as possible. &lt;/li&gt;&lt;li&gt;Auto-sizing: Everything in the DataGrid can be auto-sized.  That includes the DataGrid itself, Columns, Rows, Headers, and Row Details meaning that you do not have to worry about the size of what you are putting into the DataGrid, it will grow to accommodate it.&lt;/li&gt;&lt;li&gt;Frozen Columns: A frozen column does not scroll horizontally but rather is "frozen" in place.  This is the same as the Freeze Column feature in Excel.&lt;/li&gt;&lt;li&gt;Row Details: In short, it is an area in each row that allows you to put any UI you want that spans all columns.  This could be anything from form-based entry to the contents of a column that would do better if given more space.&lt;/li&gt;&lt;li&gt;Scrollable: Another benefit that the DataGrid provides is the ability to scroll through long lists of data.  The DataGrid does a lot behind the scenes to make this experience as smooth as possible for your users even when you have a large number of rows.  You can also scroll columns and items into view to make sure that an item you want to highlight to your user is visible on screen.&lt;/li&gt;&lt;li&gt;Template Column: The template column gives you complete control of what to show during display and edit modes.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The features listed above are exciting - the most exciting is the suggestion that they have worked hard on the performance of the grid - hopefully that means extremely fast initialization of the grid.&lt;br /&gt;&lt;br /&gt;But really all the above features are exciting.  Row details, frozen columns and especially auto sizing.&lt;br /&gt;&lt;br /&gt;I'm hoping that Adobe does not think that it has "finished" development of its datagrids.  I haven't read anything to indicate that the datagrids continue to be improved and enhanced.&lt;br /&gt;&lt;br /&gt;It would be great to think that Adobe is commited to ongoing development of its datagrids, and commited to competing with the Microsoft Silverlight datagrid.&lt;br /&gt;&lt;br /&gt;We need an extremely fast datagrid that feels tight and responsive and has a rich feature set.  I really don't want to have to switch client platforms just to get access to a better datagrid.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2884069909512223696-5884164001186980187?l=dukedougal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dukedougal.blogspot.com/feeds/5884164001186980187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dukedougal.blogspot.com/2008/11/datagrid-in-adobe-flex-falling-behind.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/5884164001186980187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/5884164001186980187'/><link rel='alternate' type='text/html' href='http://dukedougal.blogspot.com/2008/11/datagrid-in-adobe-flex-falling-behind.html' title='Adobe Flex datagrids are falling behind Silverlight'/><author><name>Duke Dougal</name><uri>http://www.blogger.com/profile/13104066621043790256</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2884069909512223696.post-8936581469299210895</id><published>2008-11-08T12:33:00.001-08:00</published><updated>2008-11-08T13:12:01.597-08:00</updated><title type='text'>Adobe Flex - some thoughts after years of development</title><content type='html'>I've been architecting Flex applications since the first alpha and beta versions of Flex 2.&lt;br /&gt;&lt;br /&gt;Back then I found it one of the most exciting technologies to have ever come along.&lt;br /&gt;&lt;br /&gt;Now, having architected software for Flex over the past couple of years I can say a few things about it:&lt;br /&gt;&lt;br /&gt;Largely Flex fulfils the promise that I found so exciting all those years ago. This is what web application development should be - using web standards for server communication (SOAP/REST/Json), programmed using a well known and simple language (Actionscript/Javascript), truly cross platform (Mac/Win/Lin), with a powerful set of user interface widgets for building business apps, on top of a vector and bitmap graphics engine. In many ways it's the ultimate in web application development.&lt;br /&gt;&lt;br /&gt;But the shine has come off somewhat.  My wild eyed enthusiasm has waned and when I think about Flex my immediate feeling is "if only it was....".  There's two key reasons.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1: Speed of Actionscript.  &lt;/span&gt;&lt;br /&gt;Adobe constantly harps on about how Actionscript is now 10 times faster than previous versions. Perhaps that's true.  The previous version must have been very slow indeed.  My experience is that Flex feels slow.  Out in the browser world Javascript engines having been taking massive performance leaps, driven by Google and Firefox fighting it out for the performance crown. There is no sign Adobe is doing anything to push the Actionscript engine to run faster.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2: Speed of the Flex framework components.&lt;/span&gt;&lt;br /&gt;Modern development is heavily dependent on frameworks. The quality and speed of your application to a large extent is defined by the quality and speed of the underlying framework that it is built with. The Flex framework feels sluggish - in particular the datagrids, which need to do lots of work, feel like they have been build to meet their original design requirements, but haven't been optimised, analysed or refactored to make them crisp, fast and snappy. Much of the development we have done is centred around the datagrids. Slow datagrids means slow application.&lt;br /&gt;&lt;br /&gt;End users want (NEED) applications to be lightning fast. I believe that if software runs fast then the end user is far more likely to enjoy using it. Slow software is far more likely to make for a poor user experience.&lt;br /&gt;&lt;br /&gt;I've been looking back at native code development environments with nostalgia - the speed of the apps built with these systems is incredible compared to Flex. But the days of native code business and web applications have passed. There's no value in wishing for technology that has seen its day.&lt;br /&gt;&lt;br /&gt;It seems inexcusable to me that my Flex applications are slow when running on my modern dual CPU Intel core 2. That's just wrong.&lt;br /&gt;&lt;br /&gt;So both of the key problems with Flex relate to speed. And there's no evidence that Adobe is doing anything to go back and optimise what they have already built. As with much software development the focus remains squarely on adding new features. That's a pity, because Actionscript and Flex need to be much faster.&lt;br /&gt;&lt;br /&gt;There's no evidence at all that Adobe understands that Flex framework performance is just as important as the performance of the underlying Actionscript interpreter.  I don't think they understand this.  Any discussion around performance and Adobe's comment is: "it's 10 times faster!".  Adobe is out of touch on this topic and feels that it has already made Flex fast.&lt;br /&gt;&lt;br /&gt;Adobe needs to take a leaf from the Apple book. The upcoming release of Mac OS X v10.6 (Snow Leopard) "will focus on stability and performance improvements" according to wikipedia. Adobe should stop with the new features and go back and spend whatever time it takes to optimise the Actionscript and the Flex framework.  Imagine that - quitting the obsessive features arms race for a year and focusing on speed.  We need it, but I can't imagine it happening.&lt;br /&gt;&lt;br /&gt;We need the speed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2884069909512223696-8936581469299210895?l=dukedougal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dukedougal.blogspot.com/feeds/8936581469299210895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dukedougal.blogspot.com/2008/11/adobe-flex-some-thoughts-after-years-of.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/8936581469299210895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/8936581469299210895'/><link rel='alternate' type='text/html' href='http://dukedougal.blogspot.com/2008/11/adobe-flex-some-thoughts-after-years-of.html' title='Adobe Flex - some thoughts after years of development'/><author><name>Duke Dougal</name><uri>http://www.blogger.com/profile/13104066621043790256</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2884069909512223696.post-6280906529097562093</id><published>2008-06-23T03:54:00.000-07:00</published><updated>2008-06-23T04:39:08.266-07:00</updated><title type='text'>Playing old games</title><content type='html'>I'm playing old games, for now.  Age Of Empires II is the game I am currently playing, and I recently dug Aliens Versus Predator II out of the old software box and gave it a second run through.&lt;br /&gt;&lt;br /&gt;The main reason that I am playing old games is that the modern crop of games leave me somewhat cold.  A key problem with the most sophisticated of the modern games is that the player often seems incidental to the gameplay.  In some cases it feels like the game would be better off without a player in it ruining all the carefully planned scripted sequences and battles that are fought mainly bot versus bot.&lt;br /&gt;&lt;br /&gt;A case in point is Call Of Duty 4.  A truly amazing game in terms of its production values, but in many cases it seemed to me that the computer players that were "on my side" were playing more of the game than I was.  I'd get into what seemed like a huge battle but before too long the battle was over - my team had killed the enemies and I'd mostly kept my head down.  The game moved on to the next scene, despite the fact that I felt I really hadn't fought the battle through.  It was at this stage that I put Call Of Duty 4 down and started ratting around amongst my old games for a gaming experience that I would find truly satisfying.&lt;br /&gt;&lt;br /&gt;Great games are about great gameplay.  Great graphics certainly help the experience but I'm far from convinced that it makes sense to have games that play themselves.&lt;br /&gt;&lt;br /&gt;There are plenty of classic games that are available at extremely low budget prices.  The graphics aren't great but the gameplay is highly entertaining.&lt;br /&gt;&lt;br /&gt;I'll take great gameplay over a cinematic experience any day.  If I want to see a move then I'll go to the cinema or get a DVD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2884069909512223696-6280906529097562093?l=dukedougal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/6280906529097562093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/6280906529097562093'/><link rel='alternate' type='text/html' href='http://dukedougal.blogspot.com/2008/06/playing-old-games.html' title='Playing old games'/><author><name>Duke Dougal</name><uri>http://www.blogger.com/profile/13104066621043790256</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2884069909512223696.post-899222674260656015</id><published>2008-06-18T02:40:00.001-07:00</published><updated>2008-06-18T03:51:59.364-07:00</updated><title type='text'>Adobe Flex / Flash / Air is missing document preview functionality</title><content type='html'>At my office we are doing some in-depth development with Adobe Flex / Air / Flash.&lt;br /&gt;&lt;br /&gt;These development platforms have a deep need for the ability to display documents integrated within the Adobe Flash environment.  There are many uses for such functionality - consider for example being able to build an email client in Adobe Flex / Air / Flash that was able to display a preview of documents attached to emails.&lt;br /&gt;&lt;br /&gt;Adobe Air DOES provide PDF viewing functionality, but it's a pretty major and crappy sort of hack - not deeply integrated into the Flash environment at all.  Adobe Air allows display of PDF documents, but really its just the Adobe Reader application being rendered inside an HTML window, rendered inside an Air application.  Flash apps running in a browser don't even provide this level of functionality.  What is needed is PDF viewing through a native, integrated Flash/Flex document viewer.&lt;br /&gt;&lt;br /&gt;Adobe has provided no way of viewing documents within Flex / Air / Flash applications.&lt;br /&gt;&lt;br /&gt;There are a number of companies that have developed native Flash document viewers - docstoc - ipaper and print2pdf, but these solutions are deeply flawed in one respect or another and do not represent a truly effective option for displaying document previews natively inside a Flash/Flex/Air application.  Besides, why should we have to buy a third party solution when clearly this is something that many applications really need?&lt;br /&gt;&lt;br /&gt;Adobe used to have a technology called FlashPaper, which provided exactly this functionality - document preview within a native Flash environment.  However this was really a Macromedia technology.  Since Flash has become part of Adobe, FlashPaper has died and is no longer being developed by Adobe.  I wonder why - I assume it is because Adobe feels that FlashPaper in some way represents competition to PDF.  Okay - no problem - if this is a real concern then Adobe should develop a native PDF viewer for Flash - no some hacky and kludgy solution that display Adobe Reader within an embedded HTML window.&lt;br /&gt;&lt;br /&gt;It's disappointing that there is no native Flash document preview functionality built into Adobe Flex / Air / Flash.  Adobe should sort this out and do it properly, including a Linux based document conversion server able to convert documents of a variety of source formats into native Flash document format.&lt;br /&gt;&lt;br /&gt;Somehow I don't think this situation is going to change until there is a major discussion at Adobe in which they really think through the logic behind their decision to orphan FlashPaper.  Does FlashPaper really represent a threat to PDF?  I don't think so.&lt;br /&gt;&lt;br /&gt;Adobe needs to do better than make dogmatic "not invented here" decisions around the Flex / Air / Flash technology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2884069909512223696-899222674260656015?l=dukedougal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/899222674260656015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/899222674260656015'/><link rel='alternate' type='text/html' href='http://dukedougal.blogspot.com/2008/06/adobe-flash-and-air-missing.html' title='Adobe Flex / Flash / Air is missing document preview functionality'/><author><name>Duke Dougal</name><uri>http://www.blogger.com/profile/13104066621043790256</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2884069909512223696.post-5613466947669206917</id><published>2008-06-11T01:33:00.000-07:00</published><updated>2008-06-18T02:29:08.707-07:00</updated><title type='text'>Microsoft has a storm coming (but don't grab your umbrella just yet)</title><content type='html'>No, I'm not talking about Microsoft Hailstorm - whatever that was.&lt;br /&gt;&lt;br /&gt;I'm talking about two operating systems that mean nothing today and will mean an awful lot to Microsoft sometime in the future.&lt;br /&gt;&lt;br /&gt;In my previous post I described "My vision for Windows 7", and at the end of the post I suggested that much of my vision is coming, but not from Apple or Microsoft.  Actually much of that vision already has come from Apple.  If you want a modern, sophisticated, integrated operating system then go and buy a Mac.  But that's not my point.  My point is that there are two operating systems on the horizon that today represent something very underdone and not-very-useful, but within five to ten years could represent a major problem for Microsoft, legal action from Microsoft and cries of "antitrust violation" in response.&lt;br /&gt;&lt;br /&gt;These operating systems represent two aspects of Windows - the client and the server.  Each is very different.  Each has its own place in the world.  Assuming they continue their current direction each operating system will become increasingly important until Microsoft tries to kill them via legal action.&lt;br /&gt;&lt;br /&gt;The first of the operating-systems-that-will-matter-in-the-future is &lt;a href="http://www.reactos.org/"&gt;ReactOS&lt;/a&gt;. ReactOS is an open source clone of Windows XP.  It's not yet at the stage that you could run it up at home and fire up Age Of Empires, but if it keeps up its momentum then eventually more and more developers will join the effort and one day you will truly have the choice of loading this up as your end-user machine at home, without paying Microsoft anything.  One day this project will hit a critical mass point and the media will catch on and it will become widely known and when that happens you can be sure the Microsoft legal team will swing into action and do its utmost to kill the project stone dead.  But if the project survives this withering attack then Microsoft has a problem - there will be a legal, free version of Windows available to anyone who cares to download it.  If we're lucky it will be more reliable and secure than Windows itself.&lt;br /&gt;&lt;br /&gt;The second of the operating-systems-that-will-matter-in-the-future is &lt;a href="http://www.gocosmos.org/"&gt;Cosmos&lt;/a&gt;, the "C# Open Source Managed Operating System".  This is an extremely interesting idea.  It's an operating system purely implemented in CIL (.NET Common Intermediate Language), but its pretty clear that C# is the language that this OS is being built in.  Aside from assembly language, this operating system is being built purely in C# - even the OS kernel.  Now that's a really interesting experiment and if Microsoft had the balls to back up its assertions that .NET is the way to develop code, then Microsoft itself would have committed to building Windows 7 in pure C#.  This is an exciting idea and represents real potential as a pure server operating system.  It should be possible for corporate developers to build their server based apps and run them under Cosmos and perhaps get performance benefits because there is no other operating system cruft and layers of compatibility and other Windows gunk to slow things down - pure .NET.  The open question is whether or not C#.NET is a technology that is truly able to be used for all layers of an operating system, even the kernel, or if .NET is really only useful at the application layer.  Once virtualization is baked in to Cosmos then theoretically it could be deployed into cloud environments such as Amazon EC2.  That's when things really become interesting for the C#/.NET developers and that's when Microsoft's lawyers start to work overtime to shut the project down.&lt;br /&gt;&lt;br /&gt;Windows 7 is going to take many years to develop and Cosmos and ReactOS are also going to take years to develop.  There's a reasonable chance that they will all start to mature to a usable state at the same time.  It would be interesting to see Microsoft Windows 7 under competitive pressure not only from Linux and OS/X but also from Windows compatible open source operating systems that are more compelling to developers and end-users than "the real thing".&lt;br /&gt;&lt;br /&gt;These operating systems don't implement everything in my vision of what Windows 7 should be, but they are innovative and exciting.  Lets see more open&lt;br /&gt;&lt;br /&gt;Where do you want to go today?  Windows Vista, Linux or OS/X?  Tomorrow perhaps to ReactOS and Cosmos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2884069909512223696-5613466947669206917?l=dukedougal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/5613466947669206917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/5613466947669206917'/><link rel='alternate' type='text/html' href='http://dukedougal.blogspot.com/2008/06/microsoft-has-storm-is-coming-but-dont.html' title='Microsoft has a storm coming (but don&apos;t grab your umbrella just yet)'/><author><name>Duke Dougal</name><uri>http://www.blogger.com/profile/13104066621043790256</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2884069909512223696.post-6201596275925731273</id><published>2008-06-10T04:03:00.000-07:00</published><updated>2008-06-10T05:17:12.045-07:00</updated><title type='text'>My vision for Windows 7</title><content type='html'>Microsoft needs Windows 7 to be an operating system to win the hearts and minds of the people.&lt;br /&gt;&lt;br /&gt;I'd like to see Windows take an entirely new direction.  There's a few key elements to the vision:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1: Forget backwards compatibility:&lt;/span&gt;&lt;br /&gt;The defining feature of Windows is cruft and layers of inefficiency leading to slow and buggy code.  Microsoft has maintained a tight focus on backwards compatibility. Forget backwards compatibility.  It's time for a clean start.  Ditch the backward compatibility completely.  Instead, aim for a small, clean and tight operating system that is fast, secure and highly efficient.  Let go of the past.  Backwards compatibility leads to operating systems taking five years to develop and still being crap at the end of the process.  Backwards compatibility is all about ensuring the the quirks, inconsistencies, side effects and bugs of previous operating systems are maintained forever.  Forget it.  Instead implement a pure Windows/.NET API.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2: Internet bootable.&lt;/span&gt;&lt;br /&gt;Imagine if you turned on your computer and a BIOS setting told it to get its boot code from http://www.microsoft.com.  Perhaps it could cache as much code as possible on the local hard disk/flash drive/whatever so that it has the option of booting from the net or from locally cached OS files.  &lt;span style="font-style: italic;"&gt;Let's fantasize for a moment that Microsoft can be entrusted with this level of responsibility. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3:An installation program that does the absolute minimum to get the system installed.&lt;/span&gt;&lt;br /&gt;How many precious hours have I wasted watching Microsoft operating systems copy vast numbers of files and programs that I have no interest in and will never run?  How many times have I watched stupid Windows install programs loading "Compaq RAID drivers" when my system has nothing of the sort installed?  C'mon Microsoft - how about an installer that is ruthlessly focused on installing the absolute minimum, and copying data from CD/DVD only when absolutely needed, detecting and loading device drivers only for hardware that is &lt;span style="font-style: italic;"&gt;actually present in my system&lt;/span&gt;?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4: An installation program that gets a minimal usable system up and running in minutes and lets the rest happen in the background.&lt;/span&gt;&lt;br /&gt;It should be possible to load a working operating system within minutes, and have the rest of the installation happen in the background, allowing the user to get some real work or some web browsing done whilst the boring installation process completes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5: A small (or even tiny) operating system.&lt;/span&gt;&lt;br /&gt;&lt;a href="http://web.archive.org/web/20011019174050/www.qnx.com/demodisk"&gt;QNX &lt;/a&gt;&lt;a href="http://web.archive.org/web/20011019174050/www.qnx.com/demodisk"&gt;showed that is possible&lt;/a&gt; to run a preemptive multi tasking message driven operating system from a single 1.44 meg floppy disk, including graphical UI, web server, web browser, and a host of other software.  Why does it take hundreds of megabytes - in fact multiple gigabytes - for Windows to provide functionality that is not far ahead of QNX?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6: Modular&lt;/span&gt;&lt;br /&gt;Why can't the core of an operating system run in a couple of hundred kilobytes?  Why can't all the unneeded stuff be completely left out?  If I want to only run a web server, why does there need to be even a single file more needed on that system?  Why does solitaire need to be installed?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7: Lose the registry&lt;/span&gt;&lt;br /&gt;The registry was a big mistake.  It's time to ditch it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8: Applications that don't need to be installed&lt;/span&gt;&lt;br /&gt;Apple Mac OSX allows applications to be installed simply by dragging the executable into the applications folder.  Why can't it be this simple with Windows?  Why do Windows apps need to wind themselves like spaghetti into every corner of the operating system in order to install and run?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;9: An operating system that does not become slower over time.&lt;/span&gt;&lt;br /&gt;Windows gets slower over time.  After many months or a year or so it needs to be reinstalled.  Why?  Windows 7 should be designed so this is not an issue.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;10: Headless and virtualized for the cloud&lt;/span&gt;.&lt;br /&gt;Cloud computing demands headless servers that are extremely good at virtualization.  Windows 7 should be built around the idea of being smoothly headless and virtualized.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;11: Pure .NET&lt;/span&gt;&lt;br /&gt;Microsoft has made a large song and dance convincing us that .NET is the way to go.  Windows 7 should be pure .NET.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;12: The device driver problem needs to be solved.&lt;/span&gt;&lt;br /&gt;It no longer makes sense (and never made sense) to have to re-write hardware device drivers for every major new operating system release.  Some genius needs to solve this problem and come up with portable, cross platform and cross OS device drivers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;13: Central, Internet based, user-transparent repository for device drivers&lt;/span&gt;&lt;br /&gt;Why, in the age of the Internet, should I ever have to give even a moment's thought to upgrading my device drivers?  Why should I have to plough through site after site, trying to identify my hardware, motherboard and chipsets?  I should be able to simply select "update my device drivers" and have everything brought up to the latest versions.  This should be highly centralized process with third parties being required to store their device drivers either in a central place, or stored according to a standard that makes them accessible via a universal update mechanism.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;14: Separation of user from system&lt;/span&gt;&lt;br /&gt;There should be a total separation of user from operating system/machine.  I should be able to log in to any Windows machine and have my Windows configuration/applications/settings load up either from some local storage or from a cloud based location.  Currently users and their settings are tightly coupled to individual computers - this makes no sense for a future in which people move from computer to computer and generally have constant access to the cloud.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;15: Consistent and slick user interface.&lt;/span&gt;&lt;br /&gt;The user interface should surprise me with how slick, consistent and integrated it is.  It should not surprise me with how un-integrated and clunky it is.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;16: Give me the X factor.&lt;/span&gt;&lt;br /&gt;Where is the X factor that used to make me so excited about computers and operating systems?  It's gone.  I don't know what it is that I'm looking for but it sure isn't available in any Microsoft OS.  Probably never was.  It's not about features - forget features.  It's about the magical sense that the operating system designer had better ideas about how a computer should work than I could ever imagine.  It's about the operating system designer making me feel like I have stepped into a futuristic world of possibility and potential.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Where is the love?&lt;/span&gt;&lt;br /&gt;Microsoft needs an operating system to win the hearts and minds.  Microsoft needs to make me love my commodity Intel hardware PC again.  I'm far from convinced that Microsoft is capable of doing this.&lt;br /&gt;&lt;br /&gt;C'mon Microsoft - blow me away with cool.  Tiny is cool.  Fast is cool. Flexible is cool.  Minimal is cool.&lt;br /&gt;&lt;br /&gt;Interestingly, I believe much of the above vision is coming.  But not from Microsoft,  Not from Apple either.  I'll tell you from where in a later post.&lt;br /&gt;&lt;br /&gt;- The Duke&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2884069909512223696-6201596275925731273?l=dukedougal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/6201596275925731273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/6201596275925731273'/><link rel='alternate' type='text/html' href='http://dukedougal.blogspot.com/2008/06/my-vision-for-windows-7.html' title='My vision for Windows 7'/><author><name>Duke Dougal</name><uri>http://www.blogger.com/profile/13104066621043790256</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2884069909512223696.post-7444426802094983160</id><published>2008-06-09T00:29:00.001-07:00</published><updated>2008-06-09T00:44:38.090-07:00</updated><title type='text'>I've stopped using Amazon.com</title><content type='html'>I live in Australia and I used to enjoy buying books from Amazon.com.  At some point Amazon.com changed and now the shipping prices to Australia are way too expensive to make it practical to buy anything.&lt;br /&gt;&lt;br /&gt;The following page says  that standard shipping to Australia is $4.99 per item.&lt;br /&gt;&lt;a href="http://www.amazon.com/gp/help/customer/display.html?ie=UTF8&amp;amp;nodeId=596190"&gt;http://www.amazon.com/gp/help/customer/display.html?ie=UTF8&amp;amp;nodeId=596190&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When  placing any order with Amazon, the actual shipping price is MUCH more than USD$4.99.  There is no way to select any alternate  shipping choices.  For example I just put 5 items into my cart for a total of US&lt;span class="price"&gt;D$116.61.  I then proceed to checkout and select my address in Australia.  The total jumps to &lt;/span&gt;&lt;span class="discountlinered"&gt;USD$176.55&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have been waiting months for Amazon.com to fix this.  Every time I  contact customer service I get someone who is very friendly and polite and either does  not understand the problem or can do nothing about it.  There seems to be no way to escalate a problem with Amazon books.&lt;br /&gt;&lt;br /&gt;I really wish Amazon would make the actual shipping prices match the specified prices.&lt;br /&gt;&lt;br /&gt;As a result I have stopped using www.amazon.com because the  shipping bug has made it so expensive to purchase anything.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2884069909512223696-7444426802094983160?l=dukedougal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dukedougal.blogspot.com/feeds/7444426802094983160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dukedougal.blogspot.com/2008/06/ive-stopped-using-amazon.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/7444426802094983160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/7444426802094983160'/><link rel='alternate' type='text/html' href='http://dukedougal.blogspot.com/2008/06/ive-stopped-using-amazon.html' title='I&apos;ve stopped using Amazon.com'/><author><name>Duke Dougal</name><uri>http://www.blogger.com/profile/13104066621043790256</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2884069909512223696.post-4329050682667481245</id><published>2008-06-09T00:18:00.000-07:00</published><updated>2008-06-09T04:44:32.172-07:00</updated><title type='text'>Coining a term - embugging</title><content type='html'>I'm going to start this blog by coining a new term: "&lt;span style="font-weight: bold;"&gt;embugging&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;Embugging is the opposite of debugging.  Embugging is the process of adding bugs into code.&lt;br /&gt;&lt;br /&gt;A software developer is embugging at any time that they are not actively debugging.&lt;br /&gt;&lt;br /&gt;When writing code you are either debugging or embugging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2884069909512223696-4329050682667481245?l=dukedougal.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dukedougal.blogspot.com/feeds/4329050682667481245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dukedougal.blogspot.com/2008/06/to-coin-term-embugging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/4329050682667481245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2884069909512223696/posts/default/4329050682667481245'/><link rel='alternate' type='text/html' href='http://dukedougal.blogspot.com/2008/06/to-coin-term-embugging.html' title='Coining a term - embugging'/><author><name>Duke Dougal</name><uri>http://www.blogger.com/profile/13104066621043790256</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
