Maybe it's just me, but I keep waiting to see some major reason to switch back to Firefox and it just isn't happening. I picked it up pretty quickly at about 0.7.something and fell in love. Well, maybe it was more lust. I still go back and forth between the Firefox and IE, but that's more about getting things to work in both major browsers. Since IE7 was released, it's been my default; and, after looking at Firefox 3 Beta 1, that won't be changing anytime soon. There are only a small handful of features in Firefox I feel really out-step IE and I find most of those in add-ons. Honestly, there's only one feature I miss. Well, it's not really a feature, but the actual architecture. Firefox reminds me of two other very successful applications, Visual Studio and Eclipse. Why? Because all three are biult on extensibility. All three are merely skeletons to be built upon. Everything you get when you download/buy these apps is an extension that was merely packaged with it on the install. If IE had such a framework, I'd argue that it was better than Firefox. The lack of this framework is why I believe Firefox is so successful... aside from great timing given Microsoft's lack of improving IE. A lot of good work went into IE7, but it's not enough. IE8 is fairly hush-hush and, while I have a few ideas of what will be added, I don't think we're going to see a change in the underlying architecture. From what I've heard, there's a potential for a small revolution, but that all depends on implementation, of course. If you ask me, tho, I'd like to see a complete rewrite for IE9. I don't think that's necessarily out of the question, either. There are some good things we could see out of it. Anyway, what I really started this post for was how disappointed I am in Firefox 3. Aside from the architecture, Firefox doesn't bring anything revolutionary to the table and I'm still waiting for more. One day we'll see something big. The question is, who will push it out first and when? I have a feeling that'll be IE.
A month late, but still newsworthy, Microsoft's Reciprocal and Public Licenses, Ms-RL
) and Ms-PL
), have both been approved by the Open Source Initiative (OSI)
. If neither of these sound familiar to you, you're probably more familiar with the Reference and Permissive Licenses. The Microsoft Reference License is Microsoft's most restrictive license and is what was chosen when .NET went open source
. So, where did these two come from? Well, they were renamed. Originally, these were submitted as the Microsoft Community and Permissive Licenses. I remember noting some debate on the name of the Permissive License, so I imagine the same debate forced a rename of the former. I think the name changes were good -- they seem more direct and explanatory. I know some things were questioned, but don't honestly know how much changed about the licenses. Perhaps my favorite thing about these licenses, including the Microsoft Reference License, is their brevity. Too many licenses are over-complicated *cough, cough* GPLv3 *cough, cough*
Apparently, the Open Document Foundation is dropping the Open Document Format (ODF)
in favor of the W3C's Compound Document Format (CDF)
. There are a number of reasons for this decision with Sun's control over ODF
being at the top of the list. I have to say I find this very amusing. Will this signal the begining of the end for ODF? I don't think we can say that just yet, but it's not good, that's for sure. I took a very brief glance at CDF and thought it was an interesting mix of technologies, but I don't know if I really like it. While HTML has worked for us over the years, there has to be a better presentation technology. Sure, XHTML is a slight improvement, but not enough, in my mind. I'm very curious about XAML, but I don't expect to see that supported in browsers anytime soon. Of course, maybe the pain I associate with HTML is the how developers, web designers, and tools [ab]use it. If everyone used the most recent standard and embraced the minimalistic ideals of CSS-based layouts, I probably wouldn't feel so bad about it. I am intrigued by CDF because of my web experience, tho. Given the lack of tooling support at this time, all I see this doing is fragmenting the ODF initiative, which would strengthen the Open XML
initiative. Personally, I think there's a need for Open XML when considering ODF; but, I don't know enough about CDF to say whether or not that would suffice.
Shelving was a heavily touted feature for TFS when it was first released in early 2006. Microsoft seemed to try to sell it as a new concept, but I argued it was simply an adjustment to an old concept
: branching. I will say it's probably a good thing Microsoft put so much into selling the idea. Without it, I don't think most developers would know about such a capability. Then again, there seem to be a lot of developers who still don't know about it. Anyway, back to my point... After playing with shelving in TFS, I'm getting mildly annoyed with it. I guess the reason I say that is because I want it to be treated more like a branch. I believe in the concept of committing logical changesets, meaning I make small changes and commit them individually. Perhaps I take this to an extreme, but I want each change to be tracked independent of any others. When I shelf code, it's usually a sizable change. I'd like to be able to shelf the first change and then incrementally update the shelf with my changes as I go along. I'd also like the ability for others to commit to my shelves, which speaks to the collaborative nature of shelves. This is all a given when you use Svn shelving (aka branching); I just wish TFS was up to it.
I've always shied away from laptops. Laptops, in general, aren't extensible enough and tend to be too expensive. Over the past few years, tho, as I have become more and more mobile, laptops have become a necessary evil. The worst thing about laptops is the keyboard you're stuck with... and I do mean stuck with. If you had some level of flexibility to switch out keyboards, that'd be a different story, tho. Heck, now that I think about it, with a little reverse-engineering, someone could make some money replacing standard laptop keyboards. I imagine most don't question their laptop keyboards much, but as a touch-typer who tries to ween every bit of productivity out of the system as possible, I want... no, I need my keys to be in a standard location. Honestly, when I look into buying a laptop, the keyboard is the first thing I look at. If you don't have a keyboard that at least closely resembles the standard layout, I take my money elsewhere. What do I look for? Perhaps the first thing is the Insert/Delete/Home/End/Page Up/Page Down buttons. I want the 2x3, horizontal layout. Most vendors get dropped out here. Next, I look at the arrow keys, which must be in the inverted "T" formation. From what I've seen, most vendors who pass the previous test pass this one, too. From there, I glance over the other standard keys like Ctrl, Fn, Win, Alt on the left and Alt, Context, Ctrl on the right of the space bar. I can live without the context menu button being there, but it is the "standard" location. These are the main things I look for and, believe it or not, most laptop vendors fail to meet them all.
I don't know why laptop vendors insist on placing keys in random places. It's almost as if they just shove the qwerty keyboard on a canvas and just toss the rest of the keys on to see where they fall. Perhaps the best vendor I've seen is Dell. HP does a pretty good job, but not as good as Dell. On the other hand, HP has been using extended keyboards with a full number pad. I always get annoyed when I see a laptop -- like my 17" Dell Inspiron from 2004 -- that has plenty of extra room on either side of the keyboard, but no number pad. When you see a laptop with a number pad, you know the vendor is putting more thought into its user. The other thing I like about HP is the button to disable the mouse touchpad. When I've mentioned this to people in the past, they talk of a software disabler, but I have yet to find one; either way, a button is nice. I've pretty much dismissed all other vendors (especially Toshiba *grumble, grumble*)... well, that was until I got a hold of my Lenovo. People told me how "solid" these laptops were and I always wondered what they really meant by that. Since I've tried various other laptops already, I figured I'd give it a shot. Let's just say I was sold. Lenovos are missing some of the consumer conveniences of other vendors' laptops, but if you can get past that, Lenovos can be summed up in that one word: solid. Unfortunately, they're not all that and a bag of chips, tho.
When it comes to Lenovo laptops, I have four complaints. Let me start with the small one: the touchpad buttons are too low, which makes it awkward to use when the computer is in your lap. If the stupid trackpoint buttons weren't so huge, it wouldn't be a big deal. I've always hated those annoying mouse "nubs" and it irks me that it degrades my experience. The second is another minor annoyance; a nicety that was added to enhance users' web browsing experience: Back/Forward buttons on either side of the up arrow. My annoyance is that I've hit these keys several times when I wanted to use the arrows. This can be very annoying when you lose a lot of data (i.e. a blog post). As if that wasn't enough, the capability already exists with the use of one additional finger about 4" away (Alt+Left Arrow). Adding buttons with trivial benefits like this annoys me; especially when there are obvious negative effects. I wish they would've opted for a smaller button that wasn't as easy to accidentally push, like one the shape/size of the volume buttons. My third complaint is the Esc key, which is above the F1 key instead of to the left of it. I keep hitting F1, which makes the system hesitate while it brings up the help. This derails my productivity, like the Back/Forward buttons. Speaking of derailing productivity, this last one baffles my mind: the left Ctrl and Fn keys are switched. This is the first time I've seen something this stupid. What really gets me is how a vendor who has such a quality laptop can miss something this obvious. Most people seem to think it's ok; that you'll just get used to it. I'm sorry, but I refuse to accept this. Of the 7 people I know who have a Lenovo, all of them say this is their #1 complaint. Another handful of people complained about this when I sent an email internally polling for a workaround. Unfortunately, the Keyboard Customizer Lenovo offers doesn't cover this.
This is obviously a common problem, tho, and Lenovo isn't the only one to blame. The broader topic of keyboard standardization came up in Hanselminutes a while back. Some of my concerns were voiced there. Perhaps there's a need for a true standard. I don't see anyone pushing that, tho, so I'm not sure where to go for a global resolution. For now, I guess we're left with our voices.
About a month ago, I commented on Sun's controlling nature with respect to Open Office
. We saw it before with Java and we're seeing it again. I find it quite amusing to see this company scrape by on community-focused ideals, hiding behind the guise of openness. Now, the community behind Open Office seems to be setting their sights on IBM
. IBM is a mammoth and supporting open source initiatives is about all it can do to stay "fresh," in my mind. IBM's efforts with Eclipse did a lot for the company and could do a lot here, but it's definitely an uphill battle. Despite their positive relationship over the years, Sun won't give up their control easily. Hell, it took a CEO change to loosen grips on Java. Either way, I don't see Sun's actions killing the open source project. I do see it's relevance dropping. To be honest, I don't think there is much relevance at this point besides a jump in attention due to the ODF vs. Open XML debate. The real competition seems to be more in the connected world, rather than on the desktop. There's been a love/hate relationship with the ribbon UI of Office 2007, but it's the first real innovation we've seen in a long time. While I don't expect such a drastic improvement in the next release, I'm interested in seeing what's next. We have Office dominating the productivity application market, Open Office making minor steps with the document format debate, and Google quickly putting some skin in the game with their online offering. There's much to see in the coming years. The question is whether or not it's too late for Open Office.
Tim Barcz talks about options when it comes to implementing search for a custom site . He suggests two answers: Google and custom built. I'd recommend two more; both of which I've used and been very happy with.
From what I've seen, Google is not quite what I'm looking for when I think about integrating search into my site. It's not bad, but it doesn't give me the feel I'm looking for. Admittedly, I haven't played with it. I'm simply going off of what I've seen around the web. I want something wholly integrated into my web application, not just Google with a logo. Ok, I understand there's more than just that, but I have yet to see a Google search inserted into a site; every implementation I've seen has been the other way around. On the other hand, there are ways to do this with a bit more work... but I'm lazy.
The second option is just plain crazy. Sure, if you've got the time, go for it. Who does, tho? Even if you do have the time, who says you'll implement something completely bug-free? Yeah, right. For this, I have one suggestion that gives you search and a host of other capabilities without limiting your ability to create great .NET sites: DotNetNuke (DNN) . DNN is an open source portal framework or content management system, depending on who you ask. It's absolutely wonderful. That's what I use. While I'll probably get some flack on this comment, think about it as SharePoint-light. DNN is a little rough around the edges and I don't think I'd want to claim the vast majority of the code I've seen, but it is a very good foundation with an excellent extensibility story. Since I'm mentioning it, tho, SharePoint would also be an option; however, I'm not convinced it's the best story for anyone looking for a website. It'll do what you need it to do and then some, but it might be overkill. SharePoint is much more polished and provides a host of features DNN couldn't touch, but the developer experience isn't all it's cracked up to be. I'm going to stay hopeful for the next release, tho. But, I digress...
Someone briefly mentioned Java Specification Request (JSR) 168 to me a little over a month ago. As most would, I asked what the heck it was about. I know what JSRs are, but I don't make a habit of knowing each one. JSR 168 turns out to be all about portal applications and, specifically, calls out a Java-specific way to implement Web Services for Remote Portlets (WSRP) . Any time I'm asked about integrating Java and .NET, two things come to mind -- and, no, one is not replace the Java with .NET... although, that is a good idea Those things are JNBridge and Mainsoft . I don't know much about these tools besides their existence and high-level goals. After talking to Simon Guest a month and a half ago about user experience , he mentioned how JNBridge works. I'm going to liken it to how Visual Studio allows us to easily consume web services. JNBridge creates a proxy class on the target platform that hooks into their system, which wraps the original code, be it .NET or Java, if I understood it correctly. I'm not sure how MainSoft does the job, but I wouldn't be surprised if it's a somewhat similar method.
Of course, anyone who paid attention to the fourth sentence above will notice I said JSR 168 is about web services, so you might ask why one would need to integrate Java and .NET at a component level. I'm going to chalk this one up to a mild case of stupidity. I say mild because there is some logic here, but not enough. Being the brilliant person that he is, an "architect" at a client's site determined that web services were too slow to accomplish what they needed. At first, I started to accept that. Then, I thought about how web services can be streamlined and asked what numbers they had to back up that claim. Apparently, there aren't and never have been any benchmark tests. People: If you're going to claim something is too slow, at least have some numbers to prove it. Later, I found out JNBridge was mentioned to this person before, but was shrugged off. I don't know if it's the presence of Microsoft that made him change his tone, but he was very accepting of the idea. To me, this guy is one of those zealots we run into occasionally. They always have something hateful to say about the competition, but rarely add to the conversation. In this case, he was (and still is) trying to push Microsoft solutions out of the conversation. I find that funny because... well, let me just say Microsoft has brought a lot of value to the client in the past year. We're not alone, by any means -- we work with some really good... and, with any project, some not-so-good people. I guess one of the key differentiators is our extensive training mantra along with our connections and resources back in Redmond and abroad.
As if the subject of this post doesn't clue you in on my initial reaction to finding out about this, I was quite surprised by the fact that .NET is now open source under the Microsoft Reference License (Ms-RL) . I'd like to see open source zealots' reactions to this one. I'm sure they'll say it's all in a move to push Windows licenses... however that might work. On a lighter side, I'm curious what the Mono folks will do with it. As I understand the license, I don't believe they can simply run with the code. Then again, it looks like they are utilizing some key components of the framework.
On the other hand, Miguel de Icaza claims the license isn't an "open source" license ; however, I'd argue this. By definition, open source is about access to source code. This doesn't mean you can use it for whatever you see fit or even contribute to it. That's why there are so many different types of open source licenses. Miguel's idea of open source seems to be more about open use, open contribution, or perhaps solely on whether or not a license has been Open Source Initiative (OSI) approved. Ms-PL hasn't, but that discussion is underway . After reading a little bit of Miguel's thoughts and opinions, it seems to be more about open contribution. I'll have to stand by the fact that this isn't and should never be the utmost important tenet to becoming "open source." I will agree that it is key to the greatest level of openness. Honestly, tho, I don't think I'd accept anything from everyone if I managed an open source project. There's just too much crappy code out there. Miguel's last comment in the aforementioned post indicates he wants it all, tho.
No matter what Miguel's thoughts of what it is to be "open," I think everyone will agree this is a fantastic move for the community. I love having source to look at. This is why Reflector has been so popular. As Miguel mentioned, I've made use of the Mono source many times when I wanted a peek into .NET. This isn't the same, but it's been close enough. I think more people will be interested in what Microsoft has written than Miguel and company... not to devalue their effort.
So, what is the difference between PDF and XPS? I know the storage format of XPS is based on XML and ZIP technology, which makes the format head-over-heels more "open" than PDF as well as more approachable for us geeks who like to hack documents. For that reason alone, I'm excited about XPS. But that provides nothing for end users, so the question remains... Why do we need a new format?
One thing PDF has today that XPS doesn't is some dynamic capabilities. Of course, this is just a matter of time. Being based on WPF opens XPS to a world of possibilities. On the other hand, I've seen talk about XPS being "safe" because it doesn't contain scripts or macros. I hope this isn't the position Microsoft is taking, but you never know. Either way, I think this is something that has to be added to truly compete with PDF. As-is, you can create forms with XPS, for instance, but have no way to fill them out electronically. Actually, I can see how one might achieve this somewhat easily. Hmmm... There's definitely an opportunity here.
Versioning is another aspect that's been quietly touted. Apparently, Adobe frequently introduces breaking changes into new releases. These have historically broken both software and hardware built to the older spec. I'm not sure how they've gotten away with this for so long, but apparently XPS has an answer to the problem. This is huge for hardware and software vendors.
The last difference I'm aware of is with images. PDFs embed images in a proprietary, lossy format. XPS includes images as they are, in all their high-def glory. Oh yeah, did I mention high-def? As I understand it, XPS has support for HD Photo and just provides all-around better image quality. I know I've noticed this with a few presentations I've saved in both formats.
In my opinion, XPS seems like a great power user upgrade and a decent end user upgrade; but is it really worth the effort Microsoft has ut into it? Doubtful... At least not at this time. I'll be more excited to see v2, which is typically where Microsoft products start to shine.