<?xml version="1.0" encoding="utf-8"?>

			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>Brian Kotek: Inversion of Control - Personal</title>
			<link>http://www.briankotek.com/blog/index.cfm</link>
			<description>Brian Kotek on ExtJS, DeftJS, CoffeeScript, Java, Groovy, Grails, Design Patterns, and Object-Oriented Programming</description>
			<language>en-us</language>
			<pubDate>Sat, 18 May 2013 08:10:03 -0700</pubDate>
			<lastBuildDate>Fri, 17 Aug 2012 09:34:00 -0700</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>brian428@briankotek.com</managingEditor>
			<webMaster>brian428@briankotek.com</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>brian428@briankotek.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			
			<itunes:explicit>no</itunes:explicit>
			
			
			
			
			
			<item>
				<title>Pressing Pause while Compile, Dammit Ramps Up</title>
				<link>http://www.briankotek.com/blog/index.cfm/2012/8/17/Pressing-Pause-while-Compile-Dammit-Ramps-Up</link>
				<description>
				
				I know that my blogging here has been sporadic. And I&apos;m not alone: a number of my colleagues were in the same boat. So Joe Rinehart, Nic Tunney, Marc Esher, Scott Stroz, Todd Sharp and myself have decided to pool our resources. We&apos;ve started a group blog called &lt;a href=&quot;http://compiledammit.com/&quot; target=&quot;_blank&quot;&gt;Compile, Dammit&lt;/a&gt;.

This is an experiment, but so far it&apos;s going extremely well. Having multiple people working on the same blog means a lot more posts and a wider variety of perspectives. I think this is a very interesting idea that I haven&apos;t really seen tried before.

The focus over on Compile, Dammit will be in two main areas: server development (Groovy, Grails, Spring, etc.) and client development (RIAs, ExtJS, JavaScript, CoffeeScript, jQuery, etc.). This isn&apos;t a hard-and-fast rule, and we&apos;ll likely see content on a whole range of topics. But most of the content will probably fall under those two umbrellas.

So, I&apos;ll probably be pressing pause on this blog for a bit while I contribute to Compile, Dammit. If you&apos;re interested in topics like this, you should definitely add our new group blog to your reading list!
				
				</description>
				
				
				<category>General</category>
				
				<category>Personal</category>
				
				<pubDate>Fri, 17 Aug 2012 09:34:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2012/8/17/Pressing-Pause-while-Compile-Dammit-Ramps-Up</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Thoughts on Flex and HTML5</title>
				<link>http://www.briankotek.com/blog/index.cfm/2011/11/22/Thoughts-on-Flex-and-HTML5</link>
				<description>
				
				It has now been a little over a week since Adobe revealed its plans for the mobile Flash player and the Flex SDK. Now that the dust has started to settle and some additional information has been made available, I wanted to give my candid impression of what these announcements mean.

I&apos;ll begin by stating the obvious: Adobe did a very poor job of coordinating and delivering these announcements. Anything I say at this point will simply be beating a dead horse. This was a PR disaster and one can only hope they learn something (ideally, many somethings) from sifting through the wreckage. I won&apos;t dwell any further on this since we have no control over what happened and I&apos;m interested in looking at what these announcements mean going forward.

I suspect that the news that Adobe was stopping work on the mobile Flash player didn&apos;t actually surprise very many people. Further, I doubt many people actually care much. Yes, it&apos;s nice to be able to view Flash content on my Android tablet. And yes, its easy to forget that the existing 11.1 player will continue to work for a long time and allow people to keep viewing the vast majority of Flash content. But no one was building browser-based mobile Flash sites. Why? Because you still had to create a non-Flash version of it if you wanted to target all mobile devices. Once the sting of all the &quot;Steve Jobs Won&quot; gloating wears off, I believe most people will see the wisdom of this decision. Some people appear to have a problem with this choice, but no one I know really cared at all about this part of Adobe&apos;s recent announcements.

So now we move on to the other big news: Adobe announcing that the Flex SDK would become an Apache project and would go forward under non-Adobe governance. This took a lot of people by surprise, to put it mildly.

First off, let me say that I don&apos;t have an issue with the idea of Flex going fully open-source. Yes, Flex was already &quot;open-source&quot;, but we all know it really wasn&apos;t. You could view the code, but Adobe still exerted complete control over what changes were made. Anyone who ever tried to submit a patch or improvement can attest to this. Those restrictions are now gone. I firmly believe that if this announcement had been made at MAX, rather than in the middle of this PR breakdown, the cheering from the audience would have brought the roof down.

I know a number of the people on the Spoon project, many of whom will probably be part of the group which will govern the ongoing work on the Flex SDK. They&apos;re all very bright people and I have little doubt that the SDK will actually see some nice benefits from this move. So from a purely technical standpoint, I think this can and probably will be a good thing.

However, regardless of what you think about the SDK move, another portion of Adobe&apos;s announcement overshadowed even this news. In a post that will probably live in infamy, some of the Flex management stated &quot;In the long-term, we believe HTML5 will be the best technology for enterprise application development.&quot;  

How Adobe failed to predict the resulting uproar I have no idea. But apparently they didn&apos;t. As a result, we saw an explosion of questions and concerns that essentially boiled down to: Is Adobe saying Flex is dead?

I&apos;ll admit I wondered this myself. Given this statement, what was I supposed to tell the clients to whom I&apos;ve evangalized Flex? Is my investment in Flex now ashes? I was angry and confused. Then I tried to detach myself from my emotional reaction and consider the situation objectively. I want to share a few of my thoughts and conclusions about this.

First, one has to consider the harsh reality that Adobe never really figured out how to make any money on Flex. Their only real revenue came from Flash Builder, and it seems highly unlikely to me that sales of FB offset the money they&apos;ve spent on Flex. And even that revenue is further reduced by the presence of competing tools like FlashDevelop and IntelliJ IDEA. Considered in this light, Adobe&apos;s decision to reduce the amount of resources it dedicates to Flex does make some sense, even if we don&apos;t necessarily like it. Offloading part of that cost onto the community is one way they can try to make those numbers even out.

Next, I&apos;m not sure about everyone else, but I for one always believed that &lt;i&gt;eventually&lt;/i&gt; we&apos;d be able to build Flex-like apps in HTML. Some of this can be done already, but it is disjointed, using a mishmash of libraries, and painful. Building RIAs in JavaScript is agonizing compared to Flex and AS3. But that&apos;s slowly changing as the tools get better and the libraries become more refined and standardized. My guess is that in two or three years we&apos;ll start seeing real parity with Flex on both features and tooling. I knew this before Adobe&apos;s announcement, so does it really change much? Or did the announcement, as poorly as it was delivered, serve as a stark reminder that Flex is in some ways a bridge between now and this eventual HTML-based future?

I think this may be where some of the pain is coming from. No one wants to be told that the platform they&apos;re heavily invested in is probably going to be supplanted in the coming years. But can anyone really look at the current situation and draw another conclusion? Adobe seems to have two options here: keep pouring resources into Flex and delay the switchover a bit, or start changing direction and begin the task of improving HTML tooling from a RIA perspective. It&apos;s clear which way they&apos;ve chosen to go.

So where does that leave us? Like many folks, I poked around the web last week just to get an idea of the current state of HTML RIA development. It wasn&apos;t pretty. I found dozens of libraries, frameworks, UI components, tools, and workarounds to mimic proper OO features in JavaScript. To put it bluntly, it&apos;s total chaos. 

We&apos;re a long way from being able to drop Flex and start building enterprise RIAs in HTML. Which is fine with me. The projects I&apos;m currently involved in are multi-year efforts built with Flex, and these aren&apos;t going away. I&apos;ll be building and maintaining apps with Flex for quite a while.

On the other hand, the writing seems to be on the wall. This isn&apos;t going to last forever. Developers who have been around the block a few times know it is always a bad idea to put all of your eggs in one basket. So I&apos;ll be keeping my eye on the HTML RIA space, trying things out as that platform coalesces. GWT looks interesting, especially paired with Groovy and SmartGWT. So does brunch.io. Trying out new technologies is one of the things I love about programming, and that&apos;s certainly not about to stop.

Will this change on the horizon amount to a career and knowledge &quot;reset&quot;? Is everything we&apos;ve worked so hard to learn going to be thrown out the window? From my point of view, absolutely not. Looking around at the HTML/JS world, I see a lot of people trying to solve problems that we&apos;ve already gone through. Solid OO design? Rich client models? Real-time messaging? Persistent client state? Separation of UI from client-side logic? Large-scale event-driven applications? Architecting and managing huge RIA codebases?

Sound familiar? They should, because they&apos;re probably problems you&apos;ve already dealt with a number of times. The programming language might change, and the UI component APIs may shift, but these fundamental problems aren&apos;t going anywhere. And I think experienced Flex developers are going to be very well suited to helping businesses and clients solve those problems, both now and in the future. Even if the platform eventually shifts to HTML5. As they say, the only constant is change. And honestly, life would be pretty boring any other way.
				
				</description>
				
				
				<category>Development</category>
				
				<category>Flex</category>
				
				<category>Personal</category>
				
				<pubDate>Tue, 22 Nov 2011 08:39:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2011/11/22/Thoughts-on-Flex-and-HTML5</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>My cf.Objective() Dependency Injection Presentation</title>
				<link>http://www.briankotek.com/blog/index.cfm/2011/5/19/My-cfObjective-Dependency-Injection-Presentation</link>
				<description>
				
				Just a quick note that I&apos;ve &lt;a href=&quot;http://slidesix.com/view/Brian-Kotek--Dependency-Injection&quot; target=&quot;_blank&quot;&gt;uploaded the Dependency Injection presentation&lt;/a&gt; which I gave at cf.Objective(). Feel free to let me know what you think! Thanks.
				
				</description>
				
				
				<category>General</category>
				
				<category>Presentations</category>
				
				<category>Personal</category>
				
				<pubDate>Thu, 19 May 2011 12:47:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2011/5/19/My-cfObjective-Dependency-Injection-Presentation</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Trog Bar Outlook Add-On</title>
				<link>http://www.briankotek.com/blog/index.cfm/2011/5/10/Trog-Bar-Outlook-AddOn</link>
				<description>
				
				&lt;img src=&quot;/blog/images/trog/TrogBar_Screenshot.jpg&quot; alt=&quot;Trog Bar&quot; align=&quot;left&quot; width=&quot;230&quot; height=&quot;799&quot; style=&quot;padding: 0px 30px 30px 0px; border-style:none;&quot; border=&quot;0&quot; /&gt;

I recently installed a pretty cool add on for Microsoft Outlook called &lt;a href=&quot;http://www.priacta.com/trog/&quot; target=&quot;_blank&quot;&gt;Trog Bar&lt;/a&gt;. Not only does it offer some nice features that Outlook alone doesn&apos;t have, but it wraps a nice task management system as well.

To the left you can see what Trog Bar looks like. It docks to the edge of the screen, and can be set to autohide if desired. Across the top are quick links to mail, calendar, task list, contacts, compose, and send/receive.

The calendar is great for the simple reason that you can specify more than one calendar to show events for. The fact that the Outlook To-Do bar would only show events from one calendar always drove me crazy. I have a personal account and a work account that uses Exchange, and Outlook will only show one. People have been asking for this simple feature for years. It&apos;s great to see someone add this.

The main area is your task list. You can quickly search, view all tasks, view complete tasks, incomplete tasks, etc. If you use Outlook&apos;s categories option, you can also assign categories to tasks and view the list by category. Last but not least is a view called Task Sense. Trog Bar has some nice algorithms that populate this list automatically to show the most likely tasks to do at the current time. More on this in a moment. (And no, the tasks shown here aren&apos;t my tasks, I grabbed this screen shot off of the product page. Feed mammoth??)

The notepad lets you quickly type in new tasks and store them as &quot;unprocessed&quot;. It&apos;s very easy to fire off tasks into this application (as it should be). When you have more time, you can click on the Unprocessed Tasks link to show the tasks that still need &quot;processing&quot;.

If that sounds annoying or time consuming, don&apos;t worry, it isn&apos;t. Processing new tasks is really easy. You just click the task to open the task editor (see below).

For a task to be processed, you have to enter in a due date and ideally one or more Categories (think Tags) and Projects (a parent task containing multiple child tasks). This takes about 10 seconds, and then you save it. That&apos;s it. The way Trog Bar works is largely based on the Due Date you specify. It is smart enough to treat the Due Date as both a target date as well as an indicator of the urgency of the task. So you are free to treat it as a  sort of strength indicator if you choose. 

&lt;img src=&quot;/blog/images/trog/trogbar_edittask.gif&quot; alt=&quot;Trog Bar task editor&quot; width=&quot;600&quot; height=&quot;356&quot; align=&quot;left&quot; style=&quot;padding: 20px 5px 30px 0px; border-style:none;&quot; border=&quot;0&quot; /&gt;

&lt;br clear=&quot;all&quot; /&gt;

The Task Sense list seems largely based on this &quot;urgency value&quot;. In other words, if you set the Due Date for two weeks later, it isn&apos;t that &quot;worried&quot; about you actually doing it on that date (though you can, of course). Instead, this is an indicator that the task is probably of medium-ish priority, and it places it in the Task Sense list accordingly. Three weeks out, lower priority. One week out, higher priority. You get the idea.

It is also has some extra configuration options which, if you choose to set them up, make this list more accurate. For example, you can define a category as an &quot;80/20&quot; category, meaning 80% result for 20% effort. In other words, biggest return on investment. Task Sense will rank these higher in your list. You can also set up an additional calendar containing high-level time blocks, like 8-5 M-F is Work, 6-12 is Home, etc. If tasks with a corresponding Work tag are created, Task Sense will weight them higher between 8 and 5, and Home tasks between 6 and 12. The point being that it builds up the Task Sense list in a fairly intelligent way.

Anyway, I&apos;ve been using it for a few weeks now and I really like it. First, it is a handy, souped-up version of the Outlook To-Do bar. Second, it is a rapid task entry and organization tool. And third, it does a pretty good job of predicting and showing you relevant tasks at the right time.

The full version costs $35, and there is a free 30 day trial version available. To be clear, I&apos;m not getting a free copy or anything, and am not affiliated in any way with the folks who make it. I just found it useful enough that it seemed worth a blog entry. ;-)
				
				</description>
				
				
				<category>Computers</category>
				
				<category>General</category>
				
				<category>Personal</category>
				
				<pubDate>Tue, 10 May 2011 07:49:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2011/5/10/Trog-Bar-Outlook-AddOn</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>66% Performance Improvement for Almost Any Desktop System for $279</title>
				<link>http://www.briankotek.com/blog/index.cfm/2010/12/6/66-Performance-Improvement-for-Almost-Any-Desktop-System-for-279</link>
				<description>
				
				I was recently contemplating the purchase of a new workstation, since my current system is about two years old. After some research, I ended up choosing NOT to buy a new system just yet, for a few reasons. Read on for an explanation of why, and how a small upgrade kicked up my system performance by two-thirds.

The main reason for the purchase delay has to do with SATA-III. While this new disk connection standard supports up to 6 Gb/sec transfer, and SATA-II is 3 Gb/sec, the reality is that right now the 6 Gb/sec speed is unusable in real life. No traditional hard drive comes close to saturating the SATA-II bandwidth, and they will NEVER get into SATA-III transfer speed due to the physical limitation of the spinning platters. And even the new solid state drives (SSDs) barely fill up the 3 Gb/sec pipe, and come nowhere close to 6 Gb/sec. So spending a bunch of money on a SATA-III motherboard and SATA-III drives is pointless right now.

Over the next 6 months or so, this will change. New SSDs will come out that have faster transfer, and more space, for decreasing price. But until an SSD comes out that actually uses the new bandwidth limit, SATA-III is little more than a marketing gimmick. Once they finally get to the SATA-III speed then I will reconsider.

In the meantime, what I did instead was drop about $279 on a new 600 Gb Western Digital Velociraptor drive. These spin at 10,000 RPM, compared to the normal 7,200 RPM, and this is the fastest non-SSD hard drive on the market. They are roughly 66% faster than a normal drive, basically approaching standard drives in RAID-0. Also, at 600 Gb in size, it can hold my existing system partition (which is about 400 Gb). It came with a  program called Arconis TrueImage, so I used it to clone my existing 1 Tb system drive onto the 600 Gb Velociraptor, then pull out the old system drive and put the new drive in its place. Windows 7 boots from the new drive without knowing the difference. The cloning process took about an hour and worked perfectly. So I&apos;m now running off of the 600 Gb drive.

Speed-wise, it&apos;s a big difference. I did a few real-world tests:

&lt;ul&gt;
&lt;li&gt;I timed the system boot time from POST until the desktop was fully loaded. By fully loaded I don&apos;t just mean seeing the desktop, but having ALL desktop widgets loaded, ALL system tray icons loaded, and until the CPU activity drops back to idle usage. It went from 180 seconds before to 110 seconds after. Result: 63% improvement.&lt;/li&gt;
&lt;li&gt;I timed launching and building large Eclipse workspace. It went from 56 seconds before to 35 seconds after, a 60% improvement.&lt;/li&gt;
&lt;/ul&gt;

So basically, for $279 I&apos;ve boosted my system speed by nearly two-thirds. That&apos;s pretty crazy, considering that swapping the CPU for a faster i7 or going from 1333 to 1600 RAM would probably only generate a 5% or 10% increase, and would cost way more than $279. 

The surprising lesson is apparently: do NOT underestimate the impact that a really fast hard drive will have! This should be a nice boost to carry me forward until the SSDs get faster, bigger and cheaper.
				
				</description>
				
				
				<category>Computers</category>
				
				<category>General</category>
				
				<category>Personal</category>
				
				<pubDate>Mon, 06 Dec 2010 11:45:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2010/12/6/66-Performance-Improvement-for-Almost-Any-Desktop-System-for-279</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>An Awesome Alternative to a Traditional Mouse</title>
				<link>http://www.briankotek.com/blog/index.cfm/2010/2/25/An-Awesome-Alternative-to-a-Traditional-Mouse</link>
				<description>
				
				Like most of you, I sit in front of a computer for a large part of my day. Over time, sitting and working on the computer has caused me varying physical issues, like back, wrist, and elbow pain. To alleviate this, I bought a desk with an adjustable height, an ergonomic keyboard, and an Aeron chair. These have helped greatly. But the one issue that kept coming back was wrist pain. I tried several types of mice, with varying shapes, but none of them dealt completely with the issue. For me, a big part of the discomfort in my hand and elbow came from constantly reaching over for the mouse, as well as gripping it. It might sound silly to some, but when you do this thousands of times, it adds up!

Then, about six months ago, I found a blurb about the &lt;a href=&quot;http://ergo.contourdesign.com/products/product-detail.aspx?id=50&quot; target=&quot;_blank&quot;&gt;RollerMouse Free&lt;/a&gt; on some tech site. Having used it daily for a while, I can say that this mouse is an excellent option to a traditional mouse.

The RollerMouse sits directly under your keyboard, just past the space bar. To control the cursor, you roll a bar up, down, and side to side. It sounds bizarre, but it works very nicely and was easy to get used to. The bar moves very smoothly, and is very accurate. You can easily move it with your thumbs, and you barely have to move your hands off the keyboard, or you can use your fingertips. Either way, it&apos;s far better than reaching over for a normal mouse.

I still keep a regular mouse as well, but I use it pretty infrequently (except for gaming!). This odd new RollerMouse is the workhorse now. I just wanted to mention this device in case anyone else has similar problems and was frustrated trying to solve them. I was uncertain about how this thing would work out, but it really does work well. There&apos;s a video at the product web site which shows how it works in more detail, if you&apos;re interested to see it in action.
				
				</description>
				
				
				<category>Development</category>
				
				<category>Computers</category>
				
				<category>Personal</category>
				
				<pubDate>Thu, 25 Feb 2010 09:30:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2010/2/25/An-Awesome-Alternative-to-a-Traditional-Mouse</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>A Fond Farewell to Alagad</title>
				<link>http://www.briankotek.com/blog/index.cfm/2010/1/11/A-Fond-Farewell-to-Alagad</link>
				<description>
				
				This is just a quick personal announcement: In the next few weeks, I&apos;ll be leaving &lt;a href=&quot;http://www.alagad.com/&quot; target=&quot;_blank&quot;&gt;Alagad&lt;/a&gt; to take a position at &lt;a href=&quot;http://www.boozallen.com/&quot; target=&quot;_blank&quot;&gt;Booz Allen Hamilton&lt;/a&gt;.

I admit that this causes a mixture of emotions for me. On the one hand, Alagad was a great place to work and I&apos;m sad to be leaving. Doug Hughes is a friend and an excellent company owner, and the team at Alagad are a very talented bunch, on top of being all-around nice people. I&apos;ll miss working with them. I&apos;m sure we&apos;ll still chat, email, and talk over beers at conferences, but I know it won&apos;t be quite the same.

On the other hand, the opportunity at BAH was really just too good to pass up. It&apos;s a very prestigious organization, and is ranked as one of the best companies to work for in the world. That alone is very compelling. But on a more personal level, I&apos;ll once again be working alongside Joe Rinehart. I worked with Joe when we were at Broadchoice (and before that as well), and we got along great and worked very well together. Often, when switching companies, it can be a little scary because one doesn&apos;t really know what to expect. So it&apos;s nice to be able to have great expectations based on past experience!

So, while sad to be leaving the great folks at Alagad, I&apos;m very excited to be working with Joe again and tackling a different set of problems at BAH. To Doug, Scott, Jeff, and all the others at Alagad, thanks for the good times, hard work, and friendly parting insults. ;-)

And just a quick addition, even though Booz Allen is headquartered in the DC area, I&apos;ll be staying in Raleigh.
				
				</description>
				
				
				<category>Personal</category>
				
				<pubDate>Mon, 11 Jan 2010 17:04:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2010/1/11/A-Fond-Farewell-to-Alagad</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Upgrading from Vista to Windows 7 (And How to Deal with Warnings about iTunes)</title>
				<link>http://www.briankotek.com/blog/index.cfm/2009/10/23/Upgrading-from-Vista-to-Windows-7-And-How-to-Deal-with-Warnings-about-iTunes</link>
				<description>
				
				Last night I crossed my fingers and upgraded my Vista Professional workstation to Windows 7 Ultimate. I have multiple backups, including Mozy, Windows Backup every night, and a Windows Complete PC Backup (essentially a disk image) every week. As a result, I was very confident that even if all hell broke loose I could restore things quickly. Happily, the upgrade went smoothly and Windows 7 is running great. All of my programs and settings were migrated perfectly.

The upgrade compatibility analysis at the beginning highlighted two potential problems that I dealt with. First, I run two ATI Radeon 4850 video cards to power my three monitors for work, but I enable CrossfireX when gaming, which disables the two outer monitors and puts all the GPU power into the center screen. Windows 7 warned me that my ATI drivers might be a problem after the upgrade. So I simply uninstalled the existing ATI drivers, ran the upgrade, and the installed the Windows 7 64-bit ATI Catalyst drivers after the upgrade. Everything works fine.

The other item flagged was iTunes. I did some research, and it turns out that Apple appears to be using an older and/or unsigned GEAR driver in iTunes. This has to do with CD/DVD recording/burning. I&apos;m not sure why they would do this, but there is an updated driver available &lt;a href=&quot;http://www.gearsoftware.com/support/drivers.php&quot; target=&quot;_blank&quot;&gt;at the GEAR Software site&lt;/a&gt;. I installed that update and then proceeded with the Windows upgrade, and everything works fine after the update finishes. So if you&apos;re getting this warning and want to be sure it won&apos;t mess anything up afterwards, I&apos;d install the updated driver.

Overall, Windows 7 is very nice. It looks better than Vista and has many new features like the taskbar, improved Explorer interface, better window management, etc. I&apos;d been using Vista for about 10 months and unlike most people I never had any real issues with it, it worked just fine with no crashes or problems. Even so, the new Windows is definitely an improvement as things seem snappier, and the enhancements are welcome. So as long as your backups are up-to-date and you look over any upgrade warnings carefully, I&apos;d definitely recommend installing it. Hopefully this entry might help others who see these types of warnings, especially the iTunes one.
				
				</description>
				
				
				<category>Computers</category>
				
				<category>General</category>
				
				<category>Personal</category>
				
				<pubDate>Fri, 23 Oct 2009 11:43:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2009/10/23/Upgrading-from-Vista-to-Windows-7-And-How-to-Deal-with-Warnings-about-iTunes</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Final Prep for CFUnited!</title>
				<link>http://www.briankotek.com/blog/index.cfm/2009/8/10/Final-Prep-for-CFUnited</link>
				<description>
				
				It&apos;s been a while since I&apos;ve blogged, as you might guess I&apos;ve been really busy. I do plan to dive back into blogging again after the conference, both here and at the &lt;a href=&quot;http://www.alagad.com/go/blog&quot; target=&quot;_blank&quot;&gt;Alagad blog&lt;/a&gt;. But right now my focus is on wrapping up some tasks so that my time at &lt;a href=&quot;http://cfunited.com/2009/&quot; target=&quot;_blank&quot;&gt;CFUnited&lt;/a&gt; is used to it&apos;s full potential!

I&apos;m presenting on Friday on Introduction to Object-Oriented Modeling and Design. I&apos;ve tweaked the presentation a bit since I gave it last, based partly on the &lt;a href=&quot;http://www.briankotek.com/blog/index.cfm/2009/7/14/ColdFusion-and-OOP--Match-Made-in-Heaven-or-Long-Road-to-Hell&quot;&gt;podcast&lt;/a&gt; that Hal, Ben Nadel and I did a few weeks ago. If you&apos;re interested in what helps make &quot;good&quot; OO design, I hope the presentation will be helpful. Again, let me point out that the presentation isn&apos;t an introduction to OO, I&apos;m assuming attendees already understand what a class is, what an object is, etc. This presentation is talking about OO at a more general level, in terms of how sets of objects actually work together.

My tentative schedule for the conference is attached to this entry, so if you&apos;d like to chat about OO, CF, Flex, Groovy, or just about anything else, feel free to catch up with me. I&apos;ll also most likely be a regular at any evening gatherings at the hotel bar. ;-)

Anyway, I hope to see you this week in DC! Until then!
				
				</description>
				
				
				<category>ColdFusion</category>
				
				<category>OOP CF</category>
				
				<category>Conferences</category>
				
				<category>Presentations</category>
				
				<category>Personal</category>
				
				<pubDate>Mon, 10 Aug 2009 13:07:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2009/8/10/Final-Prep-for-CFUnited</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>A Slightly Late CF.Objective() Review</title>
				<link>http://www.briankotek.com/blog/index.cfm/2009/5/20/A-Slightly-Late-CFObjective-Review</link>
				<description>
				
				I&apos;m a bit late with this, but better late than never! In my defense, the last few weeks have been pretty crazy with the conference arriving and joining &lt;a href=&quot;http://www.alagad.com/&quot; target=&quot;_blank&quot;&gt;Alagad&lt;/a&gt;. I&apos;ll be posting to the Alagad Team Blog going forward as well, but I&apos;ll do my best to keep that focused on interesting things learned on work projects, and keep my personal blog for covering my own thoughts, personal code experiments, and updates to my RIAForge projects.

With that said, let&apos;s talk CF.Objective(). Overall, the conference was excellent, which wasn&apos;t really surprising all! :-) The networking and hallway/dinner/bar discussions were always insightful. I got to see a number of friends whom I unfortunately only catch up with at conferences, like &lt;a href=&quot;http://cdscott.blogspot.com/&quot; target=&quot;_blank&quot;&gt;Chris Scott&lt;/a&gt;, &lt;a href=&quot;http://www.pbell.com/&quot; target=&quot;_blank&quot;&gt;Peter Bell&lt;/a&gt;, &lt;a href=&quot;http://www.barneyb.com/barneyblog/&quot; target=&quot;_blank&quot;&gt;Barney Boisvert&lt;/a&gt;, and &lt;a href=&quot;http://www.compoundtheory.com/&quot; target=&quot;_blank&quot;&gt;Mark Mandel&lt;/a&gt;. It&apos;s one thing to have email and IM chats, but quite another to be able to bounce ideas around over beers for 3 hours!

I attended several good sessions, like the Mate Framework (even though I&apos;m a Swiz fan, Mate is pretty sweet), ColdBox, and Test Driven Development. Unfortunately, I missed the opening keynote in place of sleeping in, since my flight was delayed and I didn&apos;t get in until about 3 am and I was speaking at 10 am.

Speaking of...speaking, I did give two presentations, one on OO Modeling and Design, and one on Open-Source Enterprise Java and CF. I thought both went pretty well, though I had more time to prepare for the OO talk. I finished a bit early on the Java talk, but the Q&amp;A session was full of interesting discussion, so all in all I think it was good. If you did see me speak, PLEASE fill out the session survey forms: &lt;a href=&quot;http://www.surveymonkey.com/s.aspx?sm=SQ5VDArvCzLA9rUT5MMQfA_3d_3d&quot; target=&quot;_blank&quot;&gt;OO Modeling and Design&lt;/a&gt; and &lt;a href=&quot;http://www.surveymonkey.com/s.aspx?sm=Jf9OEKurAicWxF6pzCnePA_3d_3d&quot; target=&quot;_blank&quot;&gt;Open-Source Enterprise Java and CF&lt;/a&gt;. I really do read what people have to say and try to use it to improve my future presentations!

Anyway, next stop should be CFUnited! Hopefully I&apos;ll see many of the same folks there, as well as some friends who couldn&apos;t make it to Minneapolis, and any new folks who&apos;d like to talk (if it&apos;s geeky, just about anything goes!)
				
				</description>
				
				
				<category>Conferences</category>
				
				<category>Personal</category>
				
				<pubDate>Wed, 20 May 2009 22:25:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2009/5/20/A-Slightly-Late-CFObjective-Review</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Is the ColdFusion Community&apos;s Generosity Encouraging Laziness?</title>
				<link>http://www.briankotek.com/blog/index.cfm/2009/3/27/Is-the-ColdFusion-Communitys-Generosity-Encouraging-Laziness</link>
				<description>
				
				I&apos;ve been using ColdFusion for a long time. When I started back in late 1997, I was a very novice programmer. There wasn&apos;t much in the way of mailing lists, online forums, or books. There was no Google, and there were no blogs. As a result, I developed what I&apos;d consider a pretty self-reliant nature on the subject of programming. I had to read the documentation, experiment, and try things out. And doing this, I was able to solve my problems.

I am a member of a number of public discussion forums and mailing lists, and have been for many years. I moderate several forums and lists. Over the years, I&apos;ve tried to help others by answering questions or pointing them in the right direction to solve their problems. I&apos;d like to hope that I&apos;ve helped save some people some of the pain and time that I had to go through when I was learning ColdFusion.

Lately I&apos;ve been seeing a disturbing trend: a rapidly increasing number of what I will call &quot;lazy questioners&quot;. Sure, some of these folks have always been around. But in the last six to twelve months it seems like the number of these people has been making a rapid upturn.

On the one hand, this might be good news: it seems to indicate that more new people are coming into the community. I think that&apos;s great. However, what I don&apos;t think is great is their approach to asking questions.

If you are also a member of one or more forums or mailing lists, have you also noticed the increasing number of questions like these?

&lt;ul&gt;&lt;li&gt;How do I invoke a trigger from ColdFusion?&lt;/li&gt;
&lt;li&gt;Why doesn&apos;t this work: &amp;lt;cfif IsDefined(&quot;#url.id#&quot;)&amp;gt;...&lt;/li&gt;
&lt;li&gt;Why does my if block always run: &amp;lt;cfparam name=&quot;url.id&quot; default=&quot;0&quot; /&amp;gt; &amp;lt;cfif IsDefined(&apos;url.id&apos;)&amp;gt;...&lt;/li&gt;
&lt;li&gt;How do I zip something in ColdFusion?&lt;/li&gt;
&lt;li&gt;What is wrong with my query? [paste SQL]&lt;/li&gt;
&lt;li&gt;This doesn&apos;t work please help me. [paste 300 lines of code]&lt;/li&gt;
&lt;li&gt;Why doesn&apos;t this work? #XMLParse( [string with invalid xml characters in it] )#&lt;/li&gt;
&lt;li&gt;Will this work? [paste code]
&lt;/li&gt;&lt;/ul&gt;

The list really goes on and on, these are just a few of the ones I recall seeing recently. If you&apos;re asking yourself &quot;what&apos;s wrong with those questions?&quot;, I&apos;ll tell you: either they&apos;re horribly presented questions or they could be solved in 30 seconds just by doing a Google search or actually looking at the documentation.

So what&apos;s the problem? The next response is probably &quot;just ignore the question if you don&apos;t have anything nice to say.&quot; That&apos;s a valid response. And it would work, provided that everyone else also followed it. But they don&apos;t. When questions like these come up (daily at this point), at least one good-natured person decides to try and help. They politely provide a useful answer. Which is admirable. I often do this myself. But after thinking about the overall situation, I&apos;ve come to the conclusion that it&apos;s actually a harmful choice. Here are some of the reasons why:

First, all this does is encourage the questioner&apos;s laziness. In fact, it encourages laziness for anyone asking a question. Why would someone bother to find an answer on their own when they see they can just ask someone else and know they&apos;ll get an answer?

It also means the person probably hasn&apos;t really learned much. They certainly haven&apos;t learned how to find the solution to a similar problem when (not if) they encounter one. The old adage &quot;Give a man a fish, feed him for a day. Teach a man to fish, feed him for a lifetime.&quot; has never been more applicable. Answering a lazy question almost guarantees more lazy questions in the future. The questioner is banking on the generosity of others, and allowing them to shift the time and effort onto a bunch of other people. And, unfortunately, it works.

Which leads directly into the next negative result, which is an overall decrease in the usefulness of the list or forum. Lazy questions decrease the signal to noise ratio of a resource. They take time and attention away from valid and well presented questions. And it&apos;s not just the initial answer. Often, when a lazy question is answered, it triggers a long exchange where the questioner says &quot;that still doesn&apos;t work&quot; or &quot;what about this variation&quot;. In response, the kind folks answering keep feeding into it, many times offering additional information that the questioner would have discovered themselves if they had put even minimal effort into solving their problem through Google or the documentation.

In essence, I think the ColdFusion community is too forgiving of lazy questions. I might get flak for saying this, but it&apos;s true: we&apos;re too nice when it comes to this issue.

Now to be clear, I&apos;m not saying we should be mean, or that we should stop answering questions. We should absolutely keep answering questions. I certainly will keep trying to help people. But anyone asking a question should understand that there is a certain minimum level of effort that should be met before you ask. To me, the minimum level of effort is:

&lt;ul&gt;&lt;li&gt;Have you actually tried to run the code? What was the result?&lt;/li&gt;
&lt;li&gt;If there is an error, be able to provide the exact error to the best of your ability&lt;/li&gt;
&lt;li&gt;Have you read the documentation?&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;Have you searched Google?&lt;/li&gt;
&lt;li&gt;Have you searched the past threads/messages?&lt;/li&gt;
&lt;li&gt;If the problem is SQL-related, have you run the query directly against the database, outside of CF?&lt;/li&gt;
&lt;li&gt;If you plan to paste code, have you eliminated all extraneous code and limited the code to only what is involved in the problem?&lt;/li&gt;
&lt;li&gt;Have you attempted minimal debugging with cfdump, cfabort, or cftrace?
&lt;/li&gt;&lt;/ul&gt;

This is not a lot to ask. In fact, this should be done out of common sense and common courtesy. If someone chooses not to meet this minimum level of effort, they should be met with a terse, blunt response, and NOT the answer to their question. There is a much more general and lengthy resource on this subject at &lt;a href=&quot;http://www.catb.org/~esr/faqs/smart-questions.html&quot; target=&quot;_blank&quot;&gt;the Smart Questions FAQ&lt;/a&gt;.

Here are a few situations where I say the questioner&apos;s laziness should be called out:

&lt;ul&gt;&lt;li&gt;The answer could be found by simply reading the documentation on the tag or function, and it is obvious that they have not&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;The answer could be found with a 30 second Google search&lt;/li&gt;
&lt;li&gt;The questioner is asking an advanced question on a complex subject when it is clear they have limited understanding of the subject or what they&apos;re even asking about, and they&apos;re expecting a free class on the subject (i.e. &quot;I don&apos;t know much SQL, but how do I write this complicated query&quot;)&lt;/li&gt;
&lt;li&gt;The questioner is asking if something will work when they haven&apos;t even tried to run it&lt;/li&gt;
&lt;li&gt;The questioner is asking others to write their code for them&lt;/li&gt;
&lt;li&gt;The questioner is pasting huge amounts of code and expecting others to sift through it
&lt;/li&gt;&lt;/ul&gt;

In many other communities, lazy questions are met with harsh responses that range from &quot;RTFM&quot; to &quot;JFGI&quot; to derisive abuse. I&apos;m not asking the community to go down that road. I love the fact that for the most part, the CF community is a very open and encouraging place. I just think that a small but growning number of people are taking advantage of that generous spirit. It&apos;s time to impose some minimal expectations on those who would ask for our time and assistance.

I&apos;m expecting this to trigger some interesting feedback (hopefully nothing too rough, but if you disagree and can point out some flaw with my logic here, by all means go for it). What do folks think about this issue, and what is the best way to deal with it?
				
				</description>
				
				
				<category>Development</category>
				
				<category>ColdFusion</category>
				
				<category>General</category>
				
				<category>Personal</category>
				
				<pubDate>Fri, 27 Mar 2009 15:10:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2009/3/27/Is-the-ColdFusion-Communitys-Generosity-Encouraging-Laziness</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Taking the &quot;Object Calisthenics&quot; Challenge</title>
				<link>http://www.briankotek.com/blog/index.cfm/2009/2/11/Taking-the-Object-Calisthenics-Challenge</link>
				<description>
				
				In &lt;a href=&quot;http://www.amazon.com/ThoughtWorks-Anthology-Technology-Innovation-Programmers/dp/193435614X&quot; target=&quot;_blank&quot;&gt;The ThoughtWorks Anthology&lt;/a&gt; there is a chapter called &quot;Object Calisthenics&quot;. This section lays out a challenge to help push your understanding of object-oriented programming concepts. I decided to take this challenge by building a little Flex application, and I&apos;ve been quite surprised by its effect. It really &lt;strong&gt;does&lt;/strong&gt; make you think very deeply about what OOP means and how it affects the way you program.

In essence, the challenge is to write a non-trivial (about 1000 lines) program of your choosing that does not violate a set of 9 rules. The rules are very draconian, and they aren&apos;t advocating that you actually write all of your software this way (though obeying them in most cases probably would be a good thing). But the goal of the exercise is to really expose any lingering influence of procedural coding and force you to come to terms with them. While I chose to do this in Flex and ActionScript (since that is what I am currently learning in depth), I think some of these would probably need a bit of tweaking in a ColdFusion implementation, but most of it would still apply. Here are the rules:

&lt;ol&gt;
&lt;li&gt;One level of indentation per method. If you need more than one level in from the start of the method body, create another method and call it. So one level of a loop or if statement is ok, but any deeper and you need to break it out into its own method.&lt;/li&gt;
&lt;li&gt;Don&apos;t use the ELSE keyword. This one is tough. We&apos;re very used to using if/else or switch/case. But good OO designs rely on polymorphism in place of conditional logic.&lt;/li&gt;
&lt;li&gt;Wrap all primitives and Strings. That means instead of var zipCode : String, you need var zipCode : ZipCode, and instead of var age : int, you need var age : Age. The idea is to ensure that everything is an object, that the purpose of everything is self-evident from it&apos;s type, and that behavior related to that object has somewhere to go.&lt;/li&gt;
&lt;li&gt;Use first class collections. This means you can&apos;t have var cartItems : ArrayList, but instead have var cartItems : CartItems. This means that behavior related to the collection has a place to live, and that the collection should contain no other instance variables.&lt;/li&gt;
&lt;li&gt;One dot per line. This is meant to enforce the Law of Demeter. So this would be a no-no: invoice.lineItems.getLineItem(4). Although this discourages method-chaining in cases where a method returns the same object (a la JQuery), that isn&apos;t what this rule is trying to do. It&apos;s trying to stop you from reaching across class boundaries and digging into the guts of other objects.&lt;/li&gt;
&lt;li&gt;Don&apos;t abbreviate anything. This is meant to enforce clarity, as well as identify duplication or misplaced responsibilities. If you&apos;re typing mergeUserPreferencesFromDatabaseAndCookies() too often, something is probably wrong, both in terms of what the method is doing and how many things are coupled to it.&lt;/li&gt;
&lt;li&gt;Keep entities small. No class over 50 lines, and no package over 10 files.&lt;/li&gt;
&lt;li&gt;No classes with more than two instance variables. This is meant to ruthlessly enforce the single responsibility principle for objects. If you need more instance variables, break them into composed objects.&lt;/li&gt;
&lt;li&gt;No getter, setter, and property calls to other objects. This mandates the principle to &quot;Tell, don&apos;t ask&quot; and enforces strong encapsulation boundaries.&lt;/li&gt;
&lt;/ol&gt;

I chose to write a program that generates a game of 10 pin bowling, and then scores it. And wow, writing code to score a game of bowling was actually a lot harder than I initially thought, even without the above rules. But I&apos;m just about done with it and when I am I&apos;ll post it here in case anyone wants to take a look at it.

But before I post it, I thought I would ask if anyone else is interested in giving this a shot? Would anyone be up for trying this (with a bowling score card or any other idea you like), sending them to me, and having me post them (anonymously if people prefer) and start a blog discussion about them? I think it would be quite educational to see how different people approach these rules to solve problems, and I&apos;m sure everyone involved would benefit. Any takers?
				
				</description>
				
				
				<category>Development</category>
				
				<category>Design Patterns</category>
				
				<category>OOP CF</category>
				
				<category>Personal</category>
				
				<pubDate>Wed, 11 Feb 2009 08:26:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2009/2/11/Taking-the-Object-Calisthenics-Challenge</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>A Personal Request: Consider a Donation to Help Joe Rinehart&apos;s Wife, Dale</title>
				<link>http://www.briankotek.com/blog/index.cfm/2009/1/16/A-Personal-Request-Consider-a-Donation-to-Help-Joe-Rineharts-Wife-Dale</link>
				<description>
				
				This will probably be appearing on a number of blogs today, but it looks like this is the first post about it. As some of you may or may not know, my coworker Joe Rinehart&apos;s wife Dale was diagnosed with Multiple Sclerosis just before Christmas. A group of community members, including myself, have taken it upon ourselves to set up a donation pool to try and offer a little assistance to the Rineharts in this difficult time and offset the large and ongoing medical expenses associated with this illness.

Just to be clear: Joe has nothing to do with this and hasn&apos;t asked anyone for help. That&apos;s just not the kind of guy he is. We felt that, as a valued friend and community member, we would contribute to a small fund to help him out. We thought it was the least we could do. While doing this, it seemed obvious to put the word out to the community in case anyone else was likeminded.

I won&apos;t make this long and preachy. Joe&apos;s helped a lot of people over the years, and Model-Glue is being used by a huge number of people. So if you know Joe, or have benefited from his efforts, please consider making a donation. If you&apos;d like to join us in helping, we&apos;ve set up a simple page at &lt;a href=&quot;http://www.helpsupportjoeanddale.com/&quot; target=&quot;_blank&quot;&gt;http://www.helpsupportjoeanddale.com/&lt;/a&gt;.

The Paypal account that gets the donations is my own, so you&apos;ll see my user name (brian428) on the Paypal page. Rest assured that all donations will be transferred directly to Joe. No shenanigans here. Just an attempt to help out a friend. I know times are tough right now for a lot of folks, but thanks in advance for anything you feel you can contribute.

Respectfully,

Brian
				
				</description>
				
				
				<category>Personal</category>
				
				<pubDate>Fri, 16 Jan 2009 09:28:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2009/1/16/A-Personal-Request-Consider-a-Donation-to-Help-Joe-Rineharts-Wife-Dale</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Preemptive New Year&apos;s Resolution: Back to Blogging!</title>
				<link>http://www.briankotek.com/blog/index.cfm/2008/12/30/Preemptive-New-Years-Resolution-Back-to-Blogging</link>
				<description>
				
				As anyone who has frequented my blog in the past is probably aware, I haven&apos;t been doing much blogging lately. Work at &lt;a href=&quot;http://www.broadchoice.com&quot; target=&quot;_blank&quot;&gt;Broadchoice&lt;/a&gt; has continued to be very intense, and what little time I have away from code has been spent slaughtering zombies in Left 4 Dead! On top of this, I haven&apos;t been doing much work with ColdFusion lately, as all of my effort has been directed into learning and coding in Flex, AIR, and Groovy. So I&apos;ve actually been a bit uncertain about what I have to say that anyone else might care about.

I&apos;ve decided that my blogging slackness has to change! So I&apos;m hereby laying out a preemptive New Year&apos;s Resolution that I will be back to blogging more in 2009.

The focus here will likely expand to include entries on learning and using AIR, Flex, and Groovy since that&apos;s been the core of what I&apos;ve been doing for the last several months. I&apos;d also like to talk about some more general topics that apply regardless of language: things like object-oriented programming, test-driven development, refactoring, and application design. I realize that many folks out there haven&apos;t yet taken the plunge into Flex or AIR, so I&apos;ll try to keep those topics loose and ensure that any underlying themes are (hopefully!) useful to both RIA and non-RIA developers. With AIR and Flex rapidly gaining traction, I think 2009 will see a large number of ColdFusion developers at least looking seriously at these technologies and learning them, if not using them on full-blown applications.

ColdFusion 9 is also coming and will most likely be released some time in 2009, and hopefully earlier rather than later! When I can, I want to start writing about some of the new features that have been announced for the next release, including Hibernate support, AIR integration, and language enhancements. I think that some of these may trigger fairly fundamental changes in how CF apps are built and maintained, and I have no doubt that there will be an avalanche of blog posts and discussion forum threads on these topics once Adobe pulls the curtain back.

Do these sound like topics folks in the CF blogosphere would be interested in reading about? Am I missing anything that folks might want to hear about that I haven&apos;t mentioned? If so, please comment and let me know.

In the meantime, I&apos;m already working on a few new posts in tandem and will get them ready for publication shortly. Thanks for sticking with me through the slow period! I hope everyone has had a good holiday so far, and has a great New Years.
				
				</description>
				
				
				<category>Development</category>
				
				<category>ColdFusion</category>
				
				<category>General</category>
				
				<category>Flex</category>
				
				<category>Personal</category>
				
				<pubDate>Tue, 30 Dec 2008 14:19:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2008/12/30/Preemptive-New-Years-Resolution-Back-to-Blogging</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Broadchoice Workspace Released!</title>
				<link>http://www.briankotek.com/blog/index.cfm/2008/11/14/Broadchoice-Workspace-Released</link>
				<description>
				
				I&apos;m happy to say that the &lt;a href=&quot;http://www.broadchoice.com/what_is_workspace/&quot; target=&quot;_blank&quot;&gt;Broadchoice Workspace&lt;/a&gt; application has gone gold! If you haven&apos;t already given it a look, please download it and let us know what you think. If you don&apos;t already have Adobe AIR installed, the installer should set that up for you as well.

On a personal level, we built this application in an incredibly short time, and my hat is off to our entire team. Many long days and late nights were poured into this effort, and I hope that shows in the final product. Working with Joe, Ray, Sean, and the numerous others who helped put this together has been incredibly rewarding.

And even though we&apos;re all breathing a sigh of relief at making it to this point, we&apos;re not anywhere near finished. We plan to keep adding new features and incorporating user suggestions, so in many ways this is just the beginning. (Yes, sorry, that was clich&#xe9;, but it&apos;s true!) Thanks also go out to our beta testers for all their great feedback. I hope everyone finds Workspace to be a useful and promising new collaboration tool.
				
				</description>
				
				
				<category>Development</category>
				
				<category>Broadchoice</category>
				
				<category>Personal</category>
				
				<pubDate>Fri, 14 Nov 2008 16:31:00 -0700</pubDate>
				<guid>http://www.briankotek.com/blog/index.cfm/2008/11/14/Broadchoice-Workspace-Released</guid>
				
				
			</item>
			
		 	
			</channel></rss>