Friday, March 30, 2007

Concepts in Windows Presentation Foundation (WPF)

Found a PDF of Adam Nathan's third chapter from his WPF Unleashed book. This chapter goes over dependency properties, routed events, and commands, all important core concepts which are heavily used in WPF. Might be worthwhile to the WPF developers out there. I ordered a copy of his book, though it hasn't arrived yet.






Powered by ScribeFire.

Thursday, March 29, 2007

KNetworkManager, part 2

Just dropped into a local Dunn Brothers Coffee shop here in Shakopee and effortlessly connected to their WiFi with Ubuntu 7.04 (development snapshot). Why is this a big deal you say? Because it was so easy to do with new KNetworkManager applet on the panel. 10 seconds after logging in, I was able to auto-discover the network and connect to it with two clicks of the mouse (one to open the applet popup menu/configuration and the other to select the Dunn Bros. network to connect to. Much, much easier than in previous version of Ubuntu. I really dig where 7.04 is going.

Powered by ScribeFire.

Tuesday, March 27, 2007

Test-driven development is hard!

I'm on a consulting gig at the moment and the team is collectively trying very hard to embrace test-driven development (TDD). We have an agile process lead or meanie as he likes to be referred to and this meanie does a great job of keeping us focused on having a good test suite and a thriving, evolving code base. However, we're under a tight deadline for the first release of our product and I keep wondering when the ax will fail from the business. When will they tell us that we either make the deadline with all the features or we're looking for new gigs this summer. I absolutely believe in test driven development and the benefits that TDD affords to software projects. Unfortunately, businesses typically don't understand or cannot evaluate the importance of TDD. Come hell or high water, we're going to hit this date. Our project team is already behind in the amount of features that we should have implemented by now and I really feel like our development velocity has been all over the board and has not settled out into a semi-predictable range. Time will tell how this goes off, but I have learned the importance of driving development with tests. I've done testing before, but this time we're really focusing on pulling development forward with tests. It takes an enormous amount of discipline, at least for me.

On a related note around TDD, one beef I have with Visual Studio 2005 is that it's not geared for incremental compilation and testing cycles. It's always compile and packaging bytecode into DLLs and EXEs. That really starts to hurt when your solution has lots of projects and the projects start to get a lot of source files in them. Java is much nicer in this regard. You compile to .class files and run your tests. No packaging required. Heck, if you're using an incremental compiler like the Eclipse compiler, the compilation step is almost negligible. I am becoming a big fan of NUnit and attributed tests and test fixtures.

Powered by ScribeFire.

Sunday, March 25, 2007

Eye candy in Feisty Fawn, part 2

I've been playing around the development snapshot of Feisty Fawn and the new transparency stuff baked into KDE seems to be working well. I didn't have much luck with any of this stuff before Feisty, so this is a welcomed change. I don't believe any of these effects are provided by Compiz or Beryl, as much as I can tell. I've played with Beryl about 3 months ago and the effects provided by Beryl were trippy and fun...but alas it was quite unstable at that point. I would assume that Beryl would be stabilizing in the near future and that we could expect some of its graphical goodness in a future version of Ubuntu/Kubuntu. I think Suse already uses Compiz or Beryl in some fashion in their desktop product offering.



Powered by ScribeFire.

Saturday, March 24, 2007

Man, I've been away from Java for a while...

I've been working in the .NET world for my day job for the past 6 months. Wow, when I work on my home Java project in IntelliJ running on Linux, I'm continually amazed at the speed that I can work at. Much, MUCH faster than our .NET development environments. Some of it is the corporate laptops that we're given to work on, but I will say that Java 5 and 6 are blazingly quick on Linux when compared to the .NET stuff I've been doing. I really miss IntelliJ--ReSharper helps, but it's not IntelliJ. I've been doing some Swing programming lately and enjoying some of the new effects coming out from various Swing gurus at Sun. Romain Guy and Chet Haase have a new Swing book coming out that looks very interesting.



Powered by ScribeFire.

Eye candy in Feisty Fawn

There does seem to be more eye candy in Feisty Fawn. Immediately noticed the expanding ghosting effect when click on app launchers on the panel. Seems to be more transparency and fade in/out effects also. For the most part, the effects and animations are working and you can tweak them to your liking (which I did not see in Vista when I was using it). Feisty seems very fast compared to Edgy. Apps pop open and things seem quite spry in the new Ubuntu development snapshots I'm working with.

Powered by ScribeFire.

Friday, March 23, 2007

KNetworkManager

There's a new KDE app out that seems to be a major step up for wireless network configuration in Linux--KNetworkManager. It came down with the upgrade to the development snapshot of Feisty Fawn and it's been a dream to work with. Discovers broadcasting wireless networks and seems to make switching wireless network effortless. A much improved user interface for networking in Linux. Lots of information is displayed about current network connections also. Very cool. Kudos to both the Ubuntu community for including it and the OpenSuse.org community for bringing this tool to life. Thanks.

Powered by ScribeFire.

Thursday, March 22, 2007

OpenOffice.org updated to 2.2 in Feisty Fawn

Looks like OpenOffice.org is getting an update in Feisty Fawn. I just upgraded to the Kubuntu 7.04 development snapshot and opened up OOo Writer, and lo and behold, the splash screen states it's version 2.2. I can't tell any other difference than the new splash screen. It does look like the issue with greyed text in OOo has been fixed. Save dialog is different than the one in 2.0.

Powered by ScribeFire.

kdesvn upgraded in Ubuntu 7.04 development snapshot

I upgraded my development laptop (Dell XPS M170) to Kubuntu 7.04 development snapshot and was pleasantly surprised that kdesvn was duly upgraded to version 0.11.0. It now seems to handle Subversion 1.4 formatted directories. IntelliJ 6.0 is using an updated version of the Java Subversion library which upgraded the folder metadata in Java projects to the new format. Now Subversion works again from Konqueror. Happy days!


Powered by ScribeFire.

Sunday, March 18, 2007

wajig

The Debian Package of the Day for March 18th is wajig. It's a command line tool that unifying several package management interfaces commonly used on Debian and Ubuntu. I did an apt-get install and was up and running. Seems to work well and has a ton of options. I like the use of this facade over a number of disparate tool interfaces.

Saturday, March 17, 2007

Apple has a ton of cash these days

BusinessWeek has a good story on Apple's current financial situation, which is outstanding these days. Something like $12 billion in cash and no debt. It wasn't too long ago that Microsoft spotted Apple several million dollars to stay afloat and ease the monopoly concerns. I wonder if this is what Microsoft had in mind when it gave Steve Jobs that infusion of money. Kind of interesting.





powered by performancing firefox

Getting Java 6 Runtime from apt-get

Looks like you can get the Sun JRE 1.6.0 from an apt-get repository. I still used my update-alternatives to configure the default Java Runtime Environment to version 1.6 and configure the default Firefox Java Plugin. Looks like Ubuntu is staying up-to-date with Java.





powered by performancing firefox

Wednesday, March 14, 2007

Getting Java 6 to be default JVM on Ubuntu Linux

After installing Java 6 using the Sun shell script installer, I wanted to set the default Java installation to the new Java 6 installation that I just installed. This is how you do it:





sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0/bin/javac 30

sudo update-alternatives --install /usr/bin/javac java /usr/lib/jvm/jdk1.6.0/bin/java 30

sudo update-alternatives --install /usr/lib/firefox/plugins/libjavaplugin.so firefox-javaplugin.so /usr/lib/jvm/jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so 30



sudo update-alternatives --config javac #then choose javac6

sudo update-alternatives --config java #choose java6

sudo update-alternatives --config firefox-javaplugin.so #choose java6 firefox-javaplugin.so





Found this ditty here.





powered by performancing firefox

Saturday, March 10, 2007

JBoss and Exadel teaming up

http://labs.jboss.com/portal/rhdevstudio



http://labs.jboss.com/portal/jbossrichfaces



http://labs.jboss.com/portal/jbossajax4jsf



Looks pretty interesting. RedHat/JBoss seems to be getting very aggressive on the Java EE 5.0 front. Should be interesting to see how all of this plays out, but certainly RedHat/JBoss seem to have the strongest offering in the Java EE space. I've used Exadel Studio Pro in the past (mainly for its Hibernate tooling) and it was very good back then. I'm not a big fan of Eclipse (prefer IntelliJ IDEA), but this should be viewed in a positive light within the Java community.



I've been working in the .NET space for the past 6 months and I long for tools like Eclipse and IntelliJ. Yeah, we use ReSharper 2.5.1 with VS 2005 and it's a huge improvement over stock VS 2005. However, VS 2005 is just a pig with memory and performance on our development laptops. .NET has a lot of growing up to do to catch up with the likes of the Java development crowd.



powered by performancing firefox

Friday, March 09, 2007

Initial thoughts on Vista Business, part 1

Here's some of my quick thoughts on Vista Business before I go to bed. I tried to upgrade my Windows XP Professional installation on my Dell XPS M170 laptop, but the Norton SystemWorks uninstaller rendered that installation totally useless. Hence, I had to reinstall Windows XP Pro and then perform the Vista Business upgrade. Painful, but I got Vista up and running.



  • The UI is pretty, but I'm already finding that I don't like the window titles and the goofy shading that they display on the window decorations. The animation is pretty cool.
  • Windows Defender sucks! If you've seen the Apple commercial you know what I'm talking about. Good God it's annoying! If this is Microsoft's answer to better security, yikes!
  • I don't care for the new Explorer windows. I can't figure out how to apply global folder options to all Explorer windows and bookmarking folders seems to be hidden somewhere. I think they fixed some performance issues with Explorer windows (they seem spry and don't lock up when opening directories or deleting a directory tree of content).

  • SQL Server 2005 doesn't seem to install correctly. Seems like a service pack is coming out soon to fix this.
  • No ActiveSync...Vista uses Mobile Device Center or some tool like that. Could not get MDC to connect or sync to my Verizon XV6700 Pocket PC smartphone. My wife's Windows XP system with ActiveSync 4.5 connects and syncs without issue.
  • Stand By works really well. No issues there. System seems spry going into and out of Stand By mode.
  • I'm using MS Live OneCare. Seems to do an admirable job of keeping my system up and running. Does anti-virus, backup, defrag of hard drive and Windows Update, among other things. Much better integration and performance than Norton's offering.
All that said, I took my Vista hard drive out of the laptop and went back to Ubuntu Linux 6.10 running KDE. I guess I'm just hooked on Linux these days, though I am thinking about buying a Mac laptop later this year.





powered by performancing firefox

Putting parents on Linux

Well, it looks like my parents are going to make the jump to high speed broadband Internet connectivity. They're scheduled to have Charter install a cable modem at the ol' homestead this coming Monday. I thought my father would never move to this. Now he's inquiring about a cable modem router and how one would go about sharing the connection between two or more computers. And he's inquiring about alternatives to Windows. Why? He's completely fed up with all the malware, adware, viruses, anti-virus product offerings, forced annual upgrades for anti-virus software, incompatibilities of sharing documents saved in Microsoft Office formats, blah, blah, blah... People will not continue to use Windows if it continues to degrade in performance and reliability. There are viable alternatives in Mac OS X and Linux these days and people are starting to figure that out. Perhaps some of this is due to the iPod phenomenon--people buy an iPod and then start to contemplate buying a Mac (perhaps a Mac Mini or iMac) for the integration with iTunes. Whatever the reason, Microsoft is on a slippery slope here (I'll blog about my initial thoughts of using Vista Business here at home later tonight).



So, I'm going to give him one of my old computers with Ubuntu Linux on it. I'll probably wait until Feisty Fawn (7.04) comes out in April, but yeah, I think he'll be better off with this Linux box. My father does his email through GMail and really just surfs the Web and downloads pictures from his digital camera. So Linux should work well for him there. I'll make sure that Java and Adobe Flash 9 Player are installed. It should be interesting to watch him learn and use Linux.





powered by performancing firefox

Curse you wmiprvse.exe process

This process has been a pain in my arse lately. I'm working at a client site that seems to make copious use of this process within their internal network. First of all, what is this process used for...



http://www.neuber.com/taskmanager/process/wmiprvse.exe.html



Yep, it's part of the Windows operating system. Makes sense why a company might want to use this tool for collecting and setting information on client desktop systems. What doesn't make sense is how the process renders my development laptop totally useless when it is activated. I'm assuming the process always runs, but stays silent until activated by some WMI remote calls. At that point, the process sucks 80-100% of the CPU for a long durations of time (minutes). Particularly irritating when attempting to build a large Visual Studio solution or testing our WPF application. If you kill the process from task manager, it just comes right back. I probably kill this process 5-10 times per day. ARGGGGHHHH...it's damn frustrating!! One more reason why not to use Windows for a development environment. I really like a lot of .NET and C#, but hooking it up to the Windows XP operating system cripples the .NET platform. I'm going to have to investigate Mono one of these days. My Ubuntu Linux boxen don't exhibit this type of behavior ;-)





powered by performancing firefox