WARNING: This blog contains random thoughts on technology, software engineering, and general all-round nerdery. Read at your own risk. Nerd is contagious.

Tuesday, October 31, 2006

Using solidBrush: Addressable Colors

Usually for your UI you will have a color scheme which uses the same colors in different places. You can normally just set up a style element which everything inherits, like this:
<style id="lightBG" fill="#ADADAD"/>
<style id="myLightButton" inherits="#lightBG"/>
<style id="lightPanel" inherits="#lightBG" flex="1" padding="5"/>
but this doesn't work so well if you're using the same color across different style types, like fills, strokes and textColors. What you end up with is the color being used all over your style file:
<style id="myLightButton" fill="#ADADAD"/>
<style id="myTextButton" textColor="
#ADADAD"/>
<style id="myPanel" fill="#FF0000" stroke="#ADADAD"/>
To do that, you can use a solidBrush:
<solidBrush id="lightColor" fill="#ADADAD"/>
<solidBrush id="darkColor" fill="#505050"/>
<style id="myLightButton" fill="
url(#lightColor)"/>
<style id="myTextButton" textColor="
url(#lightColor)"/>
<style id="myPanel" fill="#FF0000" stroke="
url(#lightColor)"/>
<linearGradientBrush id="solidBrushGradient">
<rotateTransform center="50% 50%" angle="90"/>
<gradientStops>
<gradientStop color="url(#lightColor)" offset="0%"/>
<gradientStop color="url(#darkColor)" offset="100%"/>
</gradientStops>
</linearGradientBrush>
<style id="myGradientPanel" fill="url(#solidBrushGradient)"/>
This also lets you store all of our colors in a single place so colors can be updated more easily as well.

Thursday, October 26, 2006

IE7 - OMG Tabbed Browsing!!1!!!

So now that IE7 has been released to the public and we are on the cusp of automatic upgrades for it, get ready for the world's n00bs finally discovering tabbed browsing. It has some serious implications. Here's what i mean:

You'll have people come up to you and try to explain why tabbed browsing is so great (even though you've told them about Firefox a thousand times). People will now talk about tabbed browsing as the greatest thing since sliced bread (it is), and they'll credit Microsoft.

Heck, there will probably even be articles with titles like "Beginner's Guide to Tabbed Browsing!" or "How to get the most out of Tabbed Browsing!" All of a sudden your friends that never listened to you when you told them about tabs or even cared which browser they used will try to introduce you to tabs.

I can't wait for the collective groans from the legions of users of Firefox / Opera / Maxthon / everything else that came before it.

Monday, October 16, 2006

7 Reasons You Should Check Out AIM Lite

UPDATE: Greg has a post about AIM Lite/ET on his blog and it contains screenshots, including what one of the developers' cubes look like. Read his post.


A small group of AOL developers have been working on an alternate version of AIM. This version doesn't really have a name because nobody knows how to describe it. AIM Lite, Lighter AIM, AIM ET (Experimental Technology). I think the best name for it is LAIM. It's cool, easy to say, makes fun of itself (lame), and differentiates itself from AIM by not having 'AIM' as a word in its name. I've had some experience working with members of the LAIM team, and here are 7 reasons you should check it out.

1. Lightning Fast. There's no (software) middle man. Every component is there for a reason, and great steps have been taken to ensure that performance is not compromised. Sign in time is quick, and even large buddy lists load dramatically fast. I was surprised by how fast the app feels.

2. Small Footprint. No middle man means less mouths to feed. Memory usage is lower than most IM clients by a long shot. The LAIM team treats new code like its a module in a space capsule, if its too heavy it won't fly. And it's the plan to keep it that way.

3. Simple Installation. Sometimes big companies like to advertise other products or bundle their apps with other things. Even worse, these things are sometimes opt-out, not opt-in. LAIM uses a nice NSIS installer that cleans up whatever it installed on your machine. If you try and install a newer version of LAIM, the installation is silent, like Google Talk's upgrade feature.

4. Back to Basics. This is a reset. LAIM is back to chat and file transfers. Other things are being added, but the point is to keep it as a tight functional core. Many people who run LAIM for the first time will probably feel like the fluff is gone. Things that can be done inline are done inline. UI clutter is at a minimum (well, because there aren't that many features yet). For example, there are no menu bars. The menu bar on the Buddy List is the leftmost titlebar button that looks like a drop down arrow.

5. Room to Grow. Firefox proved to the world that building an app as a platform is the way to go. LAIM's being written to eventually be a platform for allowing extensions / plug-ins. Let's not forget theming, that's on the plan too. By letting it be a platform, new experiences can be tested in LAIM before making it to production AIM clients (like AIM Triton).

6. New Technology. LAIM uses Boxely, the new XML-based UI platform, which is also being developed at AOL. Boxely is like XUL on steroids. Easy to customize but very powerful. It supports animations, compositing UI elements like Photoshop layers, different layouts in a simple XML language which is easy to understand. There's a reason LAIM doesn't encrypt its UI, you can find out why yourself ;)

7. It Needs You. You can tell the LAIM developers what you like and don't like about the app. Unlike other apps at AOL, this is an experimental client, so the requirements are well, flexible. Click on the WTF? button and leave feedback. You can believe me that they read every comment. Use the comments to pitch an idea of how you think instant messaging should be.

This is really early software, so even the site is not finished, but check it out and download it. I promise it won't bite!

Wednesday, October 11, 2006

Windows Picture & Fax Viewer quirk

Here's a weird one: It turns out that Windows Picture & Fax Viewer's performance becomes super crappy if you have a bad shortcut in the same folder as the picture you're viewing. I had uninstalled an app but had a shortcut lying around on my desktop when I realized that opening images there would cause my hard drive to thrash.

I think this comes from the part that pre-loads images to improve performance. Still, it shouldn't take too long to discover that a local link is invalid.