Sunday, November 20 2005

This Friday I was chatting with a respected industry contact - someone who I consider reliable regarding Google's technology initiatives - and was passed some interesting and exciting information. The impetus of the discussion was an entry I put up back on October 3rd - a post in which I opined that Google is big enough that it can lead web standards rather than just follow them. If the source is to be believed, and I think they should be believed, I made a lucky guess and there is some truth to it.

I will add the caveat that the information I have been fed could be completely bogus misdirection: It could be a market research probe to see how the community accepts it, or it could be a bit of a hint of what Google is up to in efforts to prepare the marketplace. I should also say that normally I would disregard this sort of information if I can't publicly attribute it to someone credible, but in this case I find it so logical, and thought-provoking, that I'll make an exception.

The "facts", purportedly and as interpreted by me from a casual conversation (these were conveyed by verbal chatting, and not a formal white paper, though I have gotten them to confirm that the gist of this post are accurate in regards to what we discussed), are as follows:

  • Google is rolling out a data center strategy to support nationwide - and eventually world-wide - pseudo thin-clients. This will be technically facilitated by geographically distributed computing centers, as well as by an extraordinary dark-fiber bandwidth capacity that Google will bring online.
  • Google has been developing a completely new thin-client protocol (for the purpose of brevity I'm going to call it G-Windows for the rest of this entry, though that name is entirely of my own making) - a hybrid between the high-level document layout of HTML, the vector capabilities of SVG, combined with the best attributes of X, Remote Desktop Protocol, and even DirectX/GDI. Clients of G-Windows will be rich enough to manage the high level abstractions (e.g. like HTML), while still allowing side-by-side and completely integrated server-side rendering with integrated streaming raster graphics.
  • Purportedly G-Windows will be published and open once version 1.0 is released.
  • Google has been proceding with a cross-platform implementation plan for a fork of Mozilla/Firefox that supports G-Windows (no mention of Internet Explorer, but presumably a plug-in for IE would make sense as well).
  • Google has been in talks with an unnamed large set-top box vendor (think PVRs) to provide a thin-client media center box that natively supports G-Windows.
  • Google will roll out side-by-side, but more interactive and feature rich, G-Windows applications to compliment their existing web apps.

This could make for some very, very exciting times, and it might provide a more feature rich programming model and user interface than the current duct-tape of technologies delivers.

   
Monday, November 21 2005

Every month or so, increasing in frequency as the holiday season approaches (courtesy of PR shops acting on behalf of Microsoft and its hardware partners), there are newspaper and television pieces about Microsoft's Media Center OS and the hardware that hosts it. Each time it's presented as a revolution in the living room, and there are bold predictions about how this year it'll take the world by storm.

While everyone seems to focus on the operating system as the critical link that will yield convergence, I think that's the least of the reason why computers were deported from the living rooms to home offices everywhere.

Instead there have been some historical problems that have thwarted convergence:

  1. As computers grew from the Commodore 64s and Atari 800 era into highly capable devices, like the Amiga and Atari ST, that growth brought with it a need for more resolution than televisions could handle. This is what kicked the computer out of the living room, as computers now required their own, special monitor, and conversely there was no way that you were going to watch television on a 14" VGA monitor. Quite a few years back, just under a decade ago, Gateway tried making a 27" television/computer monitor to support their convergence device, but the result was a subpar computer monitor that doubled as a subpar television.
  2. The wires of keyboards and mice are very unsavoury in the living room, not to mention that a modern PC needs to be networked to really be usable.
  3. Computers take a long time to get going - they aren't very convenient - and they are noisy beasts.
  4. Computers are ugly.

Thankfully there have been some great advances in all of these areas. First and foremost, home television and computer display technology have merged, and we now have relatively inexpensive, large (27"+) multimedia displays yielding a million pixels or more (720p and up). Many of these feature perfect-fidelity digital DVI or HDMI ports to transport the display of the PC accurately on your living room display. My living room television is a better computer monitor than the one in my home office.

Advances in wireless technology have brought us wireless networking (no running CAT5e to your living room), but also reliable wireless keyboards and mice: you can stick them under the couch, and you don't have a sloppy setup in the corner of the room.

On the topic of aesthetics, several manufacturers are now (finally!) making PCs in a standard home-theatre equipment form, making it fit in beautifully alongside your other equipment. No longer does convergence mean having a beige mini-tower in the corner of your room. With this they've equipped it with virtually silent fans and hard drives, ensuring that it's sonically unobtrusive.

So now we have good looking, high power, convenient computing devices that display gorgeously on our living room displays. Convergence is upon us, and whether it's used to play MAME games, poker online, or as an MP3 repositorie, the computer has re-entered the living room. I don't even care if it acts as a PVR - I have a stand-alone device to do that - but if it can interface with the television source provider and their HDTV and digital content, and it does a competent job at it, then it could do that task as well.

Sidenote: Microsoft recented inked an agreement with the cable and satellite cabal that will see them including CableCard functionality in their media centers by next Christmas. This is tremendously important, as without this there was no way that your Media Center could make use of all of the digital and digital HDTV channels on the provider's feed, instead being limited to the analog signals.

Speaking of that, a "fun project" I had been considering was a DVI loop-thru adapter in my media PC - one that took the uncompressed DVI 720p signal in an input, and passed it untouched into a DVI 720p DVI-D output. The purpose would be that I could then start overlaying graphics on the computer - the processing demands would be significant, but I mean things like a little translucent icon saying that mail has arrived or a skype call is incoming, or whatever. Of course this brings up digital rights management (DRM) issues: This would not work for HDCP protected content, nor will it work when Microsoft integrates CableCard functionality, as they'll have the swear on their first goldfish's grave that there is no way evil programmers can alter or intercept the signal.

   
Wednesday, November 23 2005

Wasted Power

100_0080

I've been thinking a lot about power consumption in our PCs. For instance that a PC sitting idle, monitor(s) in standby mode, is consuming 70W or more in many cases. All while doing nothing more than anxiously awaiting your return (if you're silly enough to run some sort of 3D "screensaver", that number increases significantly).

Often they're idling around the clock on the off chance that you might wander by and desire instant PC satisfaction. In the corporate setting it's frequently policy to leave workstations on around the clock, for the infrequent occasion that the network admin team needs to roll out a patch.

In the former case you should look at standby or "hibernation". In the latter case, the admins should be using Wake-on-LAN, which is supported close to universally. Dated arguments about system failure or hard drives seizures on start-up aren't rational, or even statistically valid worries.

Increasing Consumption

Which brings me to online power consumption: the power your computer is burning when it's busy doing actually useful work for you. Over the past decade processor power consumption has skyrocketed (with brief retreats, followed by the next surge into power gluttony). Thankfully, though, the power consumed by a processor does scale in a loose correlation with load: A processor at 100% utilization uses more power, and generates more heat, than one idling, courtesy of various power saving strategies available on modern PCs and operating systems (such as the HLT instruction). This is even more evident with mobile processors, which actually reduce the voltage under a lower processing load, saving even more energy (and thus reducing the heat output proportionately, as well as the need for noisy internal fans).100_0084

These savings are offset, though, by the monster co-processor that most PCs have: The videocard GPU, which offloads 3D graphics operations to a hugely complex piece of silicon (video card GPUs are far more complex than your CPU in most cases). Couple that with huge amounts of power-sucking ultra-high speed onboard memory, and video cards are now pushing 150W+ of power consumption under a load (such as when running a 1st person shooter). Thankfully modern video subsystem turn off a substantial portion of their circuitry when it's unneeded, such as in the 2D world when composing a document in Word, vastly reducing power consumption.

Nonetheless when the demand is high and you add together the load of a processor running at 100% with a video card doing the same, you have a recipe for a tremendous power sink that doubles as a competent space heater.

The end result of this power consumption is increased resource usage, higher electric bills and demand on the grid, PCs that require more fans and cooling solutions (and thus create more noise pollution), and often a hotter, less comfortable environment.

Even if you don't care about the environment or rising power costs, and if you enjoy the balmy 40C room temperature, when you're using a mobile PC the the lifespan of your battery, along with the ability to use your laptop without it igniting your pants on fire, depends upon the efficient use of computing resources. In that case you absolutely want your processor and supporting systems (e.g. graphics GPU) doing the absolute least amount of work possible to satisfy your requirements, doing what matters to you without wasting cycles with frivolity.

Windows Vista

Which brings me to Windows Vista (previously Windows Longhorn).

One of the major new features of Windows Vista is the Aero Glass experience (both as an API for applications, and the shell itself). Aero Glass in essence turns your desktop into a video game: Instead of the current model where the GDI draws on a 2D palette, updating the video card memory (making use of acceleration routines that the video card supports) only when changes occur, the model of Aero Glass is that of a traditional game: With every "frame" the scene is wiped clean and re-rendered from scratch, layering "textures" that represent application canvases onto 3-D polygons and building the user experience from there.

This system will attempt to push 60-90FPS of user experience goodness through your video card.

In many cases this will max out even high end video cards. Even where it doesn't, all of the shaders and T&L engines on the video card are engaged - the additional power consumption will be considerable. This could easily add 150W+ to your system power load, and could absolutely devastate battery lifespan for portables. This is on top of the fact that you're suddenly measuring your GUI in frames per second.

In other words the new, shiny user experience in Aero Glass isn't just making use of unleveraged hardware in your PC (which is a valid point - there's a big powerful graphics card there, so why should it go to waste) - It's also considerably adding to the power consumption, heat generation, and cooling requirements. In the mobile world it would be hugely detrimental to the battery lifespan.

All to add a bit of eye candy that, at least as far as I've seen, marginally improves usability.

   
Wednesday, November 23 2005

Intriguing article on why we love rounded corners: http://www.basement.org/archives/2005/11/why_do_we_love_rounded_corners.html

Interesting read, but I disagree with the hypothesis given for why we (currently) love rounded corners.

I would guess, and history will prove me right or not, that the primary reason we love rounded corners is nothing more substantial than temporary differentiation.

On the web, for instance, it remains true that rounded corners are a minor barrier-to-entry of "cool" website designs (I had to waste an hour of my life making those silly rounded corners on this blog in Photoshop, and then playing with CSS and tables so they worked properly in the major browsers), so they do, to a very small degree, differentiate a design. By the same token, there was a time when everyone thought that animated cursors, background music, and intro flash graphics were a great thing because each of them required a bit of knowledge and effort. It certainly isn't a given that such preferences remain.

Earlier I said that history would prove me right or not, but really there is plenty of historical evidence already demonstrating this recursion of aesthetic preferences: Design trends have tended towards extreme roundedness ("organic"), back to squared and sharp ("modern"), then back to rounded, then back to squared and sharp, in an endless cycle. You can look in virtually every market (cars given as examples here) where this cycle took place, with each design philosophy welcomed as interesting and fresh looking, but quickly evolving to old and dated as everyone followed suit.

Soon enough everything old is new again, and it repeats ad nauseam.

I would predict that as more and more blog templates incorporate rounded corners, and CSS3 makes them absolutely pedestrian, rounded corners will become the domain of the amateur johnny-come-lately. At that point we'll be talking about our next-generation, ultra-modern square corners.

   
Thursday, November 24 2005

In a previous entry I spoke negatively about Visual SourceSafe 2005, in particular regarding the internet functionality (functionality that promises the HTTP transport accessibility of a limited number of source control options, in a client/server fashion. This is critical if you want to use SourceSafe functionality over a firewalled connection, or a limited bandwidth connection, and brings a limited amount of SourceOffSite-like functionality to the vanilla SourceSafe).

While my remarks about the server-side configuration of this functionality still stand (it's a terrible setup that fails on anything but a clean OS install), I finally took a few moments and figured out why I couldn't do source control operations with the internet plug-in (e.g. it was reverting to SMB, thrwarting my ability to get some throughput metrics) - The problem was that I had failed to select the Microsoft Visual SourceSafe (internet) plug-in as the current plug-in provider. After setting that, the internet option works smoothly. I'll have an entry about the results of that soon.

To explain how this confusion could happen, consider how you setup a connection in Visual Studio 2005 (which is the only place where this remote option works).

First, or so it appears, you choose which technique you'll connect with for this new source database entry.

ss_internet

Then you tell it where to find the web service, and what database for the web service to use.

ssconfig

Don't worry about that UNC path there - the help tells us...

Note: Because the Web service can serve multiple databases, you must specify the known path of the Visual SourceSafe database. You do not need local access to that path, it is used by the Visual SourceSafe Web Service to communicate with the database.

Great! Easy peasie!

Not quite. Everytime I tried open the new connection, it was working -- but then I looked on the other "machine" (a virtual machine) and noticed all of the SMB connections from my machine. That tricky devil was opening the database the old fashioned way. So I blocked network access to the share (still allowing it locally), trying to force it to use the internet connectivity that it appeared that I was configuring, to get this error when trying to add an internet database.

sserror

Of course this is nonsense - it isn't the web service that's having the problem, as the web service on the remote PC can access the files fine. The problem is that the SourceSafe plug-in on my machine was trying to open the files through the file share using old-style SMB.

Finally I came across the provider setting, choosing..

ss_plugin

Now the functionality works. On the bright side the same SourceSafe database entry can be used for both SMB and internet connectivity, switching the plug-in depending upon connection, however it would have been nice if the brain-dead configuration and help were a little more helpful with this.

   
Friday, November 25 2005

I took a few moments today and rolled out some improvements to yaflaColor.

  • There are 10 color "save" positions. Drag the appropriate eye dropper to a color you want to persist. The save panels, like all other color panels, can be used to select the current color. Single click on the appropriate eyedropper to clear a position.
  • If you want to "persist" your settings, click on the linked Red/Green/Blue link beside the hex string and it'll capture your selections in the URL - you can then bookmark or share this URL
  • There have been some speed/robustness improvements to the object handling

http://www.yafla.com/dforbes/yaflaColor/ColorRGBHSL.aspx

Again, I have to add the standard disclaimer I add everytime I mention this: It is a very simple little tool that I created primarily to scratch my own itch, however hopefully it's useful to someone else.

BTW: Why did I "publish" this tool? PageRank. I've gotten a lot of inbound links to it from people who appreciate the usefulness and ease of use, and those inbound links help my pagerank cause. So if you like it and enjoy it, I'd appreciate if you linked it. Thanks!

   
Monday, November 28 2005

Earlier today, while perusing the meme sites to see where the groupthink arrow is pointed today, I came across links to the following highly-ranked (at least by anonymous numerics) page.

http://microformats.org/wiki/rest/ahah 

I checked the calendar to see if it was April 1st, but alas it does not appear to be. This actually appears to be serious.

This is where the AJAX-trend has brought us - people who have contributed nothing to the global knowledge pool are rushing to remora off of the creations of others and claim it as their own. Every obvious potential use for a programmatic element can become a cheap acronym that someone can append their name to, desperately hoping that they earn some fame for their heroic act of sitting on the sidelines and naming things years after they've entered common use. The fact that the linked page uses the term "discovered" to describe the "discovery" of the most obvious and prevalent use of the XMLHTTPRequest (and friends) object is mind-boggling.

   


About the Author
Dennis Forbes Dennis Forbes is a Toronto-based software architect. While focused primarily on the .NET and SQL Server worlds, Dennis frequently ventures outside of this comfort zone into game development and image processing. He has been published in several industry magazines, has been quoted in the Wall Street Journal and has been interviewed by NPR.

He is a vice president and lead software architect at an innovative New York City hedge fund back-office services firm.

Dennis has been working on solutions for the financial, telecommunications, and power generation markets for over 15 years.





 
Earlier EntriesLater Entries

Dennis Forbes