04 October 2006
Maybe you laugh at my intolerance for Windows sloth. You've got an dual-processor or maybe an AMD64 and you've got cycles to burn baby! So how can you make it run slower (but possibly prettier) ?
Use more powerful themes: take a look at the Stardock site for info on WindowBlinds and other desktop themes or shells, some rather radical (and some just radically unstable).
Run lots of .NET and Java applications: I love Java but both .NET and Java are semi-interpreted languages. Pick one or two favourite applications, and try to stick to either Java or .NET because that way they will share more code in memory. There are lots of useful Java apps, the only .NET app I ever used was SharpReader and I've switch to Sage in Firefox for reading RSS feeds so it's goodbye to .NET from me (that's another reason why Firefox is cool; once you are running the Mozilla platform (Gecko, etc.), your extensions (which are really mini applications) share the code in common with Firefox itself. It's a pity there isn't a user-oriented Java application that achieves the same (though tools like Intellij IDEA, Eclipse and JEdit do pretty well at providing an application platform for software development extensions).
Use Windows Desktop Search and Google Desktop Search: I'd love to be able to search my desktop, but I don't want to run even one of these things because they are so slow (maybe if they would run overnight and then shutdown my desktop when they've satisifed themselves that they've probed every nook and cranny). But if you've got cycles to burn, use 'em both and compare the results. Meanwhile, I'll continue to use baroque folder structures (which I continually reorganise, increasingly using tag-style names rather than old-fashioned hierarchies) to hoard my precious bits and bytes.
Run lots of anti-malware programs: there are so many free anti-adware, anti-spyware and anti-virus programs out there, it's easy to give up whole chunks of your CPU to try to achieve safety and privacy. My recommendation: choose one or two quality apps and dump the rest. But if you like the warm fuzzy feeling of having an army of anti-malware tools attempting to control the horizontal and vertical on your desktop, go ahead.
Use a local mail client: Gmail convinced me that a web-based client could do what I needed, so Thunderbird now languishes unused (except for occasional "backups" of my web mail over POP3). Outlook Express - don't make me laugh. So now Google provides the hard drives and the cyles to store and search my mail. But by all means, run a local mail app (or two) - and of course you might have to anyway for very private or work-related mail.
Use Windows Media Player: Yes, WMP is a charming beast. You'd be better off saving memory and CPU by running Winamp. But dash it all and don't spare the horses - use the latest and greatest (well, largest) WMP and while you're at it, use GForce (actually though, GForce is so pretty that it doesn't matter that it likes your CPU; you won't be doing anything else but watching the darn thing go through it's fractal gymnastics).
So give that little lot a try and let me know how you get on. If you've still got any CPU to spare, drop a comment here and we'll see if we can find anything else to keep your desktop busy.
Actually I'm having a Douglas Adams moment; not pondering if my ancestors should ever have come down from the trees (or out of the water) but wondering if I should ever have stopped using Windows 2000. Here's how you can get some speed back.
Microsoft continues to innovate with the desktop, but a lot of what they add is just pretty fluff, and it's not necessarily coded to be light and fast. If you can live without some of that fluff, you might be surprised by how Windows can move with a little more alacrity.
I had the suspicion that XP's native theme is a bit sluggish and I knew I hated the XP File Search wizard with it's ostensibly cute but actually acutely annoying analogue of the Office paper clip, the famous search puppy. Instead of wagging it's tail and running round in circles, it'll have you clicking again and again, and cycling back and forth with Back and Next until you eventually find what you're looking for or finally lose your reason. Please Microsoft, no more "agent" technology, it's even less illuminating than conversing with a chatbot or (I suspect) one of your support people.
So here's what I've done to speed things up on XP:
Lose the search puppy (send him to catch a long ball off a short pier); credits to the Elder Geek:
- Open regedit.exe using the Run (WinKey+R) dialog box.
- Navigate to HKEY_CURRENT_USER\Software
- Right click in the right pane and select New > String Value
- Name the new string "Use Search Asst" and press enter
- Double click the string name and enter "no" (lower case) in the Value Data: line. Click OK
Don't use a desktop background: it still brings up Active Desktop if you do, so pick a nice colour and live with it (who looks at their desktop background anyway?). Oh wait, I do. Oh well, I don't when I turn it off, which definitely improves my performance.
Disable the Windows XP theming engine: hit the Logo key and press R, then run "services.msc", scroll down to Themes, right-click and select Properties, change "Startup type" to "Manual" and finally hit the Stop button. It'll look ugly for a while, and then you'll just notice that windows, menus and dialogs pop into place that little bit faster.
Tell Windows Messenger to take a message: you're just a few changes in the registry away from ending this little beast (if you're not a regular user of the registry, make a backup first).
Kill any autoruns you don't need: Sysinternals Autoruns will show you what Windows starts automatically when you login. It's probably safest to look at the Winlogon tab, a lot of other items are really essential. Before disabling anything, you might want to try using the Processes tab in Windows Task Manager (or just use Process Explorer) to kill the application first (that way, if you kill anything essential, you just need to restart your Windows session to get back to normal).
Use a fast tabbed browser: Since Firefox introduced tabs, I'm an full-on Fx fan (IE is just ridiculously outdated, and IE 7 RC 1 caused my desktop to hang after login). I had a brief look at Flock but it's features didn't strike me as compelling enough to step off the Mozilla mainstream and I even glanced at Opera (now free, no adware), which almost convinced me to switch because it was noticably nippier, but I would miss my extensions (especially Adblock, DownThemAll, and Del.icio.us tagger).
Tabs are much easier to manage than windows, I do all my browsing in just two windows now (and the other window is a separate Firefox process to allow me to use multiple identities with Google services; just set the MOZ_NO_REMOTE environment variable to 1 and run Firefox with the -P option so that you can create and use a separate profile for the second process).
Mmm, also get rid of any viruses that might be eating your CPU: if your anti-virus isn't helping, take a look at one of my earlier posts on how to murder a virus with your bare hands; a symptom of some kinds of malware is that Windows Explorer CPU will go up to 99% and stay around there.
28 September 2006
This started with folks like Jamie Zawinski who referred to the developer in a published work as a "complete barking lunatic". You probably don't know who Zawinski is but he was at one time a respected Netscape engineer.
Unfortunately, when Zawinski started this, it became open season on Mork and it's luckless developer. Everyone who wanted to do something with the format found Zawinski's article and chimed in with their own insults. What's worse is that Zawinski exposed a series of private e-mails with the developer of Mork, to what purpose I can't fathom as they offer no useful guidance that was concrete enough to influence the actual file format away from its flaws. All of Zawinski's relevant critiques (and maybe even libelous criticisms) were written after the format was implemented (in spite of his quote "The awful thing about getting it right the first time is that nobody realizes how hard it was').
Perhaps the worst part is the hypocrisy of it all: the Mork format has been in use since 1999 by the Mozilla/Firefox history and address book. If it was so bad, why hasn't it been re-written by now?
So what do I think of Mork? I agree with several of Zawinski's technical comments, but none of his personal ones. But having looked myself at the format in some detail, I wonder where the complexity is supposed to be? It is basically a serialized series of dictionaries (hash-maps) where a dictionary can represent either the meta-data (database columns), a data-table, or a transaction (an update to a data-table that is appended to the file, to allow for rapid writing). The only actually awful thing about it is the encoding of wide-chars.
But the worst part about Mork for me has little to do with the format:
- the only open-source Java code that effectively parses the format is derived from Python code that is in turn derived from Perl code that made heavy use of regular expressions.
- this algorithm takes 27 seconds to parse a 1.4Mb history file, something that the Mork implementation does in under a second.
Now the same file converted to CSV and preserving all attributes can also be parsed by Java in less than 1 second! But perhaps the most striking thing is that the original Perl code with the algorithm that runs so slowly was written by... Jamie Zawinski.
To David McCusker, I hope that you're laughing at all this debate about something you developed years ago. Maybe once in a while you scratch your head about a couple of aspects of the resulting format which may have been a result of too-rapid coding rather than exceptionally poor design as has been assumed by many.
And to the hordes of developers who have heaped insults on David - shame on you. I wonder how you would feel to have your worst code exposed in a widely used application, and then mocked by all and sundry? Open-source means that you have access to the developers, but that is a privilege, not an open opportunity to tear someone's reputation to pieces.
By all means have a go at Microsoft (for example) as a large corporate entity that has perpetrated some awful file formats (try parsing the .lnk file format or god forbid, a Word document, but in contrast see how easy it is to work with their .url file format) and some very poor performance-related decisions; but leave individuals alone, in part because the responsibility is rarely just on one person but also because a developer is a person. You know - with feelings and stuff. No, really.
23 September 2006
I've decided that Wikipedia probably gets more readers than my blog (yes, really) so I should contribute there where possible. Here's my contribution to the article on Gemba visits. I learned this technique at Sun back in 1998; it was a real eye-opener to sit with open eyes and ears but closed mouth, watching end-users working with Sun products (on that occasion, it was Sun's deskop environment, CDE).
A Gemba visit is often simply called a customer visit. The hallmarks that make it uniquely useful are:
- the purpose is firstly to observe, occasionally to question, rarely to guide or direct
- the visit occurs in the context where the product or service is used, which allows direct observation of problems that arise, workarounds that are applied, and capabilities or services that are simply never used
- sometimes the customer (or client or user) is asked to describe what they are doing while they are doing it; this provides insight into their thought processes as they work, which often reveals differences between their mental model and the model of the developers or providers of the product or service
- the customer will often express wishes or needs while they are working in context that they would forget or suppress in a different context such as a structured interview or sales meeting
If for some reason you can't do Gemba visits (e.g. the product is used only in secure environments, or you simply don't know who your real customer is because your distribution channel obscures them), you can do something that may be more or less effective: a structured usability test. It is similar to a Gemba visit in that the customer is observed while using a product or service, but they are doing so in a slightly artificial environment:
- they may be at your premises rather than their own
- they are given specific tasks to complete rather than pursuing their own goals
- there may be certain constraints, such as to try to complete a task in a given time or to do as many of a list of tasks as possible
- they may be video-taped for later analysis by a wider group
20 September 2006
The Guardian posts an extract from Heat by George Monbiot that highlights specific individuals like Frederick Seitz who have used pseudo-science and a highly selective quoting from sources (often obsolete or demonstrably inaccurate) to "demonstrate" that climate change is unfounded.
I posted earlier how Michael Crichton is likely to have been funded from similar sources as he apparently successfully convinced folks like Seth Godin that man-made climage change is a fiction. Unfortunately the truth is rather stranger than that...
19 September 2006
The O'Reilly Code Search provides a means to search through their extensive catalogue. The results show the code in the context of the page on the book, and there is a link to the respective book's home page where you can buy the book or just download the examples first.
It supports attribute-based searching, so you can look for specific authors, ISBN numbers and titles, as well as the natural option to use code keywords or API names.
Of course this helps the sale of O'Reilly books, but it's also a real value-added service to their customers, current and future. My hat is off to O'Reilly both for the concept, the openness and it's execution.
18 September 2006
Cookies: It's well known that cookies can reduce your privacy by allowing a web site to track your identity across multiple visits, separated by minutes, days or years (Google cookies last until 2038, see here for issues with this and a workaround). In theory cookies are only accessible by the web-site that created them (so yahoo.com can't access a cookie for google.com), but some techniques (like Jookies and link-colour spying, see below) do allow one site to spy on your activity on another site.
IP Address monitoring: Every computer connected to the internet has a unique IP address. A web site can easily store this address and use it to track your activity. You get some privacy from the fact that:
- your address may change over time (depending on your Internet provider and any DHCP settings), and
- organisations almost always have an edge router or proxy, which is typically all that a web-site can see
Cache timestamp spy: A slightly more complex technique is to use the date-stamp on files in your cache. When a web site serves your browser a file, it can choose to give the file an expiry date. Then when your browser requests that file, it passes that value using the If-modified-since header property. If the web site constructs an arbitrary unique date (say differing only by a second) for each user, this value may be used to identify you.
Cross-site cookies: Internet Explorer and Firefox both employ partial techniques to prevent a web-site from accssing cookies created by another web-site, but they each have different weaknesses:
- Conversely, Firefox will let any site set a cookie, but wil only allow the web page's main site to read a cookie
- what media-types you accept (effectively, what plug-ins you have installed)
- what language(s) you accept (e.g. en-US means English US)
- (potentially, but few if any current browser do this) your mail address
- what kind of browser ("user agent") you are running; for example, my browser reveals the following: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:126.96.36.199) Gecko/20060909 Firefox/188.8.131.52
- Block spurious cookies: From Martin Pool: "There may be more fine-grained controls, such as only accepting cookies from the same server as the top-level page currently viewed and not from servers for subsidiary requests such as images or frames.". In my view, this feature should be an option that is integrated directly into each browser's cookie control mechanism rather than provided via an extension.
- Don't send the referer URL: when you access a web page, your browser sends the referrer URL to tell the site what page you clicked from; in the case of search engines, this will also pass the keywords you searched for. Although there are many legitimate uses for this information (web site maintainers and bloggers use this to find out what their readers were looking for so that they can try to provide more of that), it can also reduce privacy. If the browser allowed the user to not send the referrer URL for specific sites (e.g. http://www.google.com), this would immediately provide greater privacy. Extensions like RefControl (and others) for Firefox can do this for you.
- Block certain data: most web sites don't need precise details of the browser you are running (because they generate at most 2 or 3 flavours of HTML); the user agent http header could be generalised to just provide Internet Explorer or Mozilla. Suggested extension name: PrivacyBlock.
- Specifically disable the :visited CSS class: this could be handled by a general-purpose (future) extension like ScriptBlock, but you can get some benefit using Stanford SafeHistory: "offsite visited links [are] marked only if the browser's history database contains a record of the link being followed from the current site"; this means that a web site can't spy on your accesses to other web-site unless the page is in your history (which means that some spying is still possible, unless you keep deleting down your history). I suggest that a specific feature to disable :visited would be safer.
- Consider using an anonymizing proxy: There are several implementations of anonymising proxies such as Tor; one downside is that some sites block such proxies because of potential abuses (e.g. spamming via mail, blogs or wikis).
- Use Internet Explorer and Firefox: This is simple but powerful technique that I came up with; if you access different sites using different browsers, you have multiple independent caches and sets of cookies; for example, you could use Google search and your Blogger blog via Firefox but access other Google services like Mail and Calendar via Internet Explorer. While using the two browsers, you effectively have two independent identities (athough sites can still track your IP address, and multi-sites like Google can cooperate behind the scenes to "merge" the identity information into a common picture). This might seem difficult or onerous for you to do, however Firefox has extensi0ns like IE Tab and IE View which will do this automatically for you, providing you access the site originally within Firefox
Finally, be cautious about using web privacy or safety features from big companies unless you know how they work. Google's Toolbar includes an anti-phishing "safebrowsing" feature that could send your personal or financial details in a visible way (cleartext) across the internet. I'm not sure I want Google to have this information, I certainly don't want anyone else to.
15 September 2006
Although many will complain, people's "rights" are invariably in contention with copyright. Scott McNealy said many years ago "you have no privacy - get over it"; equally I would say you have no rights to use a product, except as the license allows - get on with it.
Consumers have only one power - the ability to buy. If you don't like it, don't buy it - the way you spend speaks louder than your vote.
Why is IDC's claim partly right?
1. More software. New versions of Windows and Office provide a new look-and-feel that makes older apps look dated (in the same way that the fashion industry does). This encourages both development and sales of other updated products, though unfortunately Windows has not improved technically to the same degree and many users report that features like XP's wizard-based search facility in Explorer is clumsier to use than Windows 2000.
Aside: compare this with Solaris and Linux which have new features that improve performance and reliability; Solaris in particular has innovated with capabilities like ZFS and Dtrace.
2. More hardware. Beta-testers of Vista have reported that it requires a significantly greater increase in hardware power than previous Windows upgrades. This could be regarded as a destructive event, possibly an example of the "broken window" phenomenon in economics (reported on Slashdot). This will slow down initial demand for the OS, but it will eventually lead to greater demand for upgrading desktops and notebooks capable of running it well, which will certainly help distributors and supporters of PCs and some components like memory and graphic cards.
3. More support. A new version of Windows stimulates demand for updated educational materials, books, training.
So ok, why might this be wrong?
1. It's still Windows. In some sense, Vista simply cannibalises the network of people and companies that work on previous versions of Windows.
2. It's not just Windows. The Microsoft near monopoly is declining - slowly. It was thought that Linux would draw users from Microsoft by providing an alternative desktop OS to Windows; though that hasn't occured as fast as some expected, it is happening. Apple Mac has seen a slight increase in sales due to "drag" from iPod - a hardware-devouring Windows release may make the Mac look not just attractive but value for money.
3. The online alternative. Finally, "Web 2.0" has spawned an array of increasingly rich online applications; while none are an Office replacement, they provide rich ways to communicate and coordinate. In tandem with a free portable suite like OpenOffice.org, you can have a rich desktop on (old) Windows XP or new Linux or Solaris. If you really want the look of Windows Vista, you'll be able to get some of that through theming plug-ins for Windows (and Java for that matter).
Meanwhile Web 2.0 apps from several sources, and significantly the emerging online suite (Mail, Calendar, Spreadsheet, with Mail acting as a slim word-processor) from Google, are providing many of the features and most of the usabilty of Works. The only significant lack is a database and a rich editor with mail-merge capabilities; hardly beyond the capabilities or resources of Google.
So what are the possible forms that a Works re-release might take? That depends on how much Microsoft are willing to invest; ranging from nearly nothing to say 4 person years of work, here are some options:
- free online download of Works, possibly supplemented by contextual ads (say based on the content of your document)
- a pseudo-online solution where Works would be offered as an ActiveX plug-in within Internet Explorer; different Works app-lets would be loaded into different plug-in instances
- Works with integration to Windows Live Spaces
- Works Extra Lite, with some infrequently used but bulky features like spell-checking and file conversions off-loaded to a Microsoft server
On the other hand, if they decided to make OneNote freely available online, add a spreadsheet, simple database and blogging capability - now that would be interesting as it would offer a rich user experience and a different feature set.
There are a few ways this could play out:
- MS could offer OneNote as I outline above
- Google could decide to offer richer offline but web-integrated versions of their apps, with integrated Google (re)search facilities
- OpenOffice.org could add journalling capabilities
Zune is a hard disk-based player with an 802.11b/g wireless network adaptor for downloading and sharing music files, an FM tuner and a 3 inch LCD for navigation and video playback.
Zune Marketplace will be Microsoft's music download service; you can either pay by the file or subscribe to get all you want.
When you share music files, it's the opposite of what happens in The Ring movie - the media dies 3 days after they watch it. That's because Zune will add a DRM time-to-live wrapper to copies of files you share.
On the upside, Zuneinsider reports that Zune will support your existing, unprotected, music library (MP3, AAC and WMA files), as well as video formats (WMV, H.264, MPEG4, 320x240), and JPG photo files.
Interestingly, Microsoft may offer a 'competitive migration' option - you will be able to download free copies of music that you previously downloaded from iTunes to your iPod.
So far, sounds good - but we don't yet know the price for this potential iPod beater, and users will be very critical if the hands-on user experience fails to live up to the high standard set by Apple. Also, many users are only interested in solid state players that are lighter and more robust than the HDD variants.
I'll certainly take a hands-on look when this little handful hits retail, but I wonder about one thing - why didn't Microsoft call it Xune to create a brand connection with it's other consumer entertainment device - the Xbox? And what capabilities will it have in connection with XP Media Center?