Archive for the 'Technology' Category

Listen Up, Google

Dear Google, I use you on a massive scale every day, usually for finding technical information. One feature that that you must implement is the ability for me to define a list of sites (with wildcards) that I do not want to ever show up in a search result (assuming I’m signed in). The various bullshit sites that show up for products are annoying enough (can you say bizrate.com), but what really, really irritates me now is a site called expert-exchange.com.

This site earns my enmity for being jackasses of the year. If I’m researching a technical issue, this site should not show up, period. They tempt you with a question, which causes the search match, and then expect you to pay to see the “expert” responses.

So Google, please, please allow me to configure my account so worthless sites like this never show up in my results. And while you’re at it, change your page rank algorithm to push these asshats down into the oblivion.

No Suprise

I didn’t have to wait long to prove out my first prediction for 2009. Big Blue is apparently in talks to buy Sun.

I have pretty mixed feelings about this. It means Java would be safe, but it would also be dead. IBM is a technology dinosaur, usually running several years behind the pack in the Java space. This would mean the end of innovation at the JVM level and the chances for a Java 7 any time this decade probably go down to zero.

IBM might also try to start monetizing the JVM. While it would be an incredibly stupid thing to do, never underestimate the stupidity of IBM.

The only bright spot will be what gets built on top of the JVM. The JDK 1.6.0_12 is a high-performance, stable beast of a platform. Things like Groovy and other JVM-based dynamic languages are the future of Java, so at least they’ll have a stable core to build on.

Rotten Apple

What the hell is wrong with Apple? They introduced new iMacs today and completely missed the boat. All them, including the top-of-the-line $2,000+ model, are still on Core 2 Duo chips. Not a quad core to be seen in the bunch. Given you can buy a loaded Dell Studio XPS with Intel’s next generation i7 quad core CPU for $1,400 that completely blows away any of the iMacs , I have a hard time understanding who they want to sell to.

I got over my Apple infatuation last year when it became clear that they wanted to become an even worse monopoly than Microsoft ever was, and were just missing the market share. None of their computers are particularly innovative, and if I want the *nix feel, I’ll just load up Linux. They could have used the new product release to at least show they were competitive, but instead chose to underwhelm. You would have to be insane to buy one of these “new” iMacs when there is so much better hardware to be had for less money.

Kindle the Fire

Succumbing to my geek inclinations, I ordered an Amazon Kindle 2 over the weekend. Since they were only accepting preorders, and were giving the impression supplies might not be adequate, I didn’t expect to see it immediately. I was wrong. Santa Claus in Brown dropped it off at my doorstep Tuesday afternoon.

I enjoy reading, and purchased the Kindle to be able to have several books under thumb in an easily toteable package. Amazon seems to have taken a clue from Apple. The Kindle 2 arrived in pretty nice packaging with a minimalist instruction book. The device was already tied to my Amazon account, so it only took about two minutes before I was able to order a book and have it delivered wirelessly to the Kindle 2.

The screen is very good. It is a reflective LCD “e-paper” screen with very sharp text on a near white background. It does not have backlighting, which is a plus for battery life and also the ability to read in bright light. Navigating between pages is extremely easy and I enjoy the built-in dictionary. Simply moving the little cursor to the front of a word causes the definition of the word to pop up at the bottom of the screen.

The arrival of the Kindle 2 might finally signal the start of the tipping point towards e-books. The only thing holding it back is the price. It needs to cost about $150 less before it can really hit mass market. Even now though, Amazon is showing over 240,000 titles available in Kindle format. This has to be a huge no-brainer for publishers with its near-zero distribution cost.

What’s really impressed me most with my Kindle 2 has nothing to do with books. I’m a major news junkie and usually spend at least an hour in the evening catching up with all the news online. With the Kindle, I can subscribe to various news services and blogs, and have them wirelessly delivered to the Kindle every day. I tested it out on a trip to Starbucks today. I was great to sit there with my drink and read the latest headlines from the New York Times and my favorite political blogs. I think this will turn in to a killer feature once people start to discover it.

I’ve only had my Kindle 2 for 24 hours now, but I’ve already bumped into a few rough edges. First, the UI is steamlined around serial thinking, aka page turning. That works great for normal books, but if you like hopping around, it is a cumbersome interface. I’m also mixed on the little five-way joystick used for cursor navigation. Getting to the right word on the page is slow and annoying. Amazon really needs to come up with a touch screen.

On the software side, there are a couple things I would like to see. First would be integration with some sort of calendar. It would be nice to pop up a read-only view of my daily calendar. Some sort of Instant Message integration would be nice too, maybe a bridge to SMS with Whispernet, or to Twitter for the ADD. They could even do a Twitter or Facebook reader application. I wouldn’t care much about email or general web browsing on the Kindle 2. I’ve got better devices for that.

All an all, I’ve extremely impressed with my new little toy. This is a major step forward towards the perfect e-book device and while I’ll be impatiently awaiting the next revision, I’m going to really enjoy my Kindle 2.

Fuzzy Grid

For a small break, I attended the Microsoft Developer Conference in Dallas today. One of the big draws of the conference was Windows Azure, Microsoft’s new cloud computing initiative. More than just a hosting environment, it provides various services too. The Microsoft vision is that users will maintain their information in the cloud and also make use of application in the cloud. I had gotten into the Azure beta, but have not deployed a service, so I was interest to learn more.

The keynote was mostly a pep talk around Azure. But rather than leaving me excited about it, I’m more apt to run away screaming.  My main grief is a total erosion of privacy. The showcase application they demo’d was a Blockbuster video cloud application written in Silverlight. You install the application into your “world”, Live Mesh. At install, the application pops up a security warning saying to install, you allow the application access to your online information, your contacts and your social network. It seems the way Microsoft is trying to draw businesses into using Azure is by enticing them with intimate access to their customer’s data.

I’m just not keen to the idea of me keeping all my personal information up in a cloud when I know that the host’s principal interest is in making that data available to its partners. Yes, I know I’m just trying to maintain an illusion of privacy. The data already available out there on me is probably staggering, but at least a business has to work to find it rather than me laying it down at their feets.

The other sessions were OK, except for the JQuery and ASP.NET presentation. The presenter was very nice, and I’m sure he’d be fun to have a beer with, but he was a JQuery and JavaScript noob, and I expected better content from a Microsoft-sponsored event.

As an example, here’s a little JavaScript trivia. The presenter wasn’t sure about this, and I’ll leave it to anyone interested to fire up Firebug and give it a try themselves.

Which alerts (if any) are shown when this snippet runs:

if("1" == 1) {
alert("First evaluation was true");
}
if("1" === 1) {
alert("Second evaluation was true");
}

Silver(very)light

My friend Caleb Jenkins of Improving Enteprises spoke at the North Dallas .NET Users Group last night about Silverlight 2.0 databindings, styles and templates. Caleb is a fun, energetic speaker, the kind of guy you want to have on your team or have a beer with. He’s definitely gungho over Silverlight, but I’m still not getting very warm to it.

Part of my grief with Silverlight is the same I have with Flex. We don’t need browser plugins to build feature-rich RIAs. I will concede the vector graphics space to these two technologies, but that is a space I could care less about. All the applications I work on involve web-based CRUD of business data. HTML and JavaScript are just fine at doing those, and I actually think ExtJS still does a better job than either with the widgets on the page. And since ExtJS is simple JavaScript, CSS and HTML, it will work with all browsers, including the iPhone, today.

To set the record straight, I’m going to expand my .NET demo project into a full demo site so you can see what I’m talking about. I’ll publish the URL when I’ve pushed some code.

I toss out my congratulations to Caleb on his diet. He’s lost 16lbs in only three weeks and it has motivated him to blog about it. He’s even going to have a contest to give away an MSDN subscription tied to weight-loss, although I think he should just give it to me for mentioning him in my blog ;-)

Also, I haven’t mentioned Improving Enterprises before, but I should. They merit a blog post of their own, but for now I can simply say they are the best small technology consulting company in the DFW area. I do not know of any other organization with such a concentration of A-list talent and would highly recommend them to any organization that actually needs to get something done.

2009 Predictions

Not to be outdone by the innumerable quantity of pundits out there making their own baseless predictions, I’m going to toss out my own for the coming year in the technology space:

  1. Sun Microsystems is toast. Their only real asset is Java, and it is worth more to a company like IBM or Oracle. If the frigid economic climate continues, Sun will be purchased by IBM.
  2. Windows 7 will rock. This prediction might get delayed until early 2010 given Microsoft’s track record, but I fully expect Windows 7 to put Microsoft firmly back in the drivers seat. It will make up for past sins and put Apple on the defensive.
  3. Google and Apple turn out to be evil after all. Pretty safe bet; both want to be what Microsoft was last year and will sell their souls to do it.
  4. Microsoft won’t be the evil empire any more. Now that Bill is gone and Ray Ozzie is setting the tone, you’ll see a lot more warmth and geek-friendliness out of Microsoft. Check out Microspotting if you want to catch a glimpse of the new Microsoft.
  5. Oracle will buy Spring Source. This is about the only jewel they’re missing and would be a better investment than BEA was. Unfortunately, it will kill all the enthusiasm around the Spring Framework, thus killing one of the few exciting things left in the Java space.
  6. (Wildcard) Microsoft buys ExtJS. Apple picked SproutCore, so Microsoft needs a good RIA JavaScript library. They’ve put their backing behind JQuery, which is awesome, but it is not in the same league as ExtJS. They could buy ExtJS for a pittance and have one of the best AJAX widget libraries on the market overnight. ExtJS and ASP.NET MVC will be the winning combo.

Yummy…. Crow!

Yes, I will accept I need to eat some crow. I’ve been playing a lot recently with the .NET framework and C#. My PHP mistress got kinda boring. Same-o, same-ol’. I decided to give .NET another whirl because I wanted to port the ExtJS presentation I did for the local Spring users group to .NET. 

Since I hadn’t really gotten in to .NET since v2.0, I got up to date with Visual Studio 2008 and .NET 3.5sp1. I knew I neeeded JSON for my AJAX, so I thought about starting with WCF. But to fully dig in to WCF, I needed to understand the new features in .NET 3.5, so I found some good tutorials on what was new.

I was really blown away with how far .NET has progressed. I’m a big fan of JavaScript, and C# in .NET 3.5 actually starts to look a lot like it. You can declare variables with the var keyword and you have anonymous classes and lambdas. I actually played with LINQ, and I have say I like it a lot. I will humbly eat that crow pie over the trash talking I gave LINQ serveral posts ago.

I’m still not down with the postback model for ASP.NET, but am playing with ASP.NET MVC, which is getting pretty mature in its fifth preview release. It will definitely be the way I head. I just need to sort out the WCF stuff for the JSON/AJAX calls and I’ll be a happy camper.

So in an epic “I will not eat green eggs and ham” kind of way, I’ve decided I really like those green eggs and ham. But it is a lot more like green eggs and crow in this case.

The Future of Browsing

The big news today was about Google Chrome. Chrome is web browser built by Google based on Webkit that is going to be their way of finally killing off Microsoft. They actually created an online comic book to explain why they created Chrome and the technology behind it.

What makes Chrome special compared to Safari or Firefox is their JavaScript VM called V8. The V8 JavaScript engine provides JIT compilation of JavaScript code, so your JavaScript RIA applications run with blazing speed. ExtJS is incredibly fast in Chrome. Another awesome feature is the ability to create a shortcut to a page that actually is an application link. For example, here is Chrome viewing the ExtJS API documentation:

Notice the window decoration with tabs, navigation, etc… Selecting the Create Application Shortcuts option will create a Start Menu, Desktop and/or Quicklaunch shortcut to the page you are viewing. Opening the shortcut opens the page as a pseudo-application, like this:

This creates a kiosk-mode view, without navigation. This web page of documentation is now essentially a standalone application. Google obviously intends Chrome to be the primary client-side hosting environment for its web-based application suite. This is also really good news for folks using JavaScript for RIAs. With the V8 JavaScript VM, you can have JavaScript performance on par with what a plug-in can do, and thus don’t need the plug-ins.

When Chrome goes final, I don’t see why anyone would not want to use it. It is extremely fast, with a clean UI and will completely change peoples perspectives on web-based productivity software. ExtJS becomes stunning in Chrome, and I’d actually bet that Google buys ExtJS to use it as their main JavaScript library. The only question becomes Google motivations. Will they “not be evil” or will Chrome turn into adware/spyware. Time will tell, but I’ll be using it until I think it is evil ;-)

Back to Business

So I had to ditch my PHP mistress for a bit and come back to the real world. I spoke tonight at the Spring Dallas User Group, giving a presentation on the ExtJS JavaScript library and integration with Spring MVC. We had close to 20 people in attendance, which was more then I expected given the short notice.

Erik Weibust and I had discussed me presenting to the group several months ago. I orginally planned to present in July, but vacation plans got in the way of the meeting date. In the interim, quite a bit happened in the ExtJS world. The fallout from the change to GPL from LGPL had simmered down, and they released a new version.

The presentation went well. Some folks had worked with ExtJS while others were learning about it for the first time. In spite of the turmoil from the license change, I’m still very excited about it. The 2.2 release added some cool stuff and I’m looking forward to digging in to it on a project.

For those in attendance, or the simply curious, I’ve attached the presentation, sample project and my own Spring JsonView implementation. Note that for the sample project, you will need to download the ExtJS distribution yourself and place the contents of it in the web/resources/ext directory. I didn’t want to redistribute ExtJS in my sample.

ExtJS Presentation

ExtJS/Spring Demo Project

Custom JsonView Project