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:
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.
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:
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.
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.
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).
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.
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.
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.
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.
Then you tell it where to find the web service, and what database for the web service to use.
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.
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..
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.
I took a few moments today and rolled out some improvements to yaflaColor.
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!
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.