Author Archive
Worm Hole to the Universe
So I downloaded Google Earth and was playing around with it when I found the Worm Hole to the Universe. Its amazing what can be found out there.
David Hayden [MVP C#] : Validation Application Block – Integrating It Into Your Business Layer
Now that we have this cool Validation Application Block we want to use it with all our business objects. This should immediately send up a red flag that there will probably be some common functionality among all these business objects in how they use the Validation Application Block. Hence some type of layer supertype ( business base class ) will probably be necessary to contain common functionality to remove code redundancy.
Source: David Hayden [MVP C#] : Validation Application Block – Integrating It Into Your Business Layer
David Hayden presents another great article, this time on the newest addition to the MS EntLib: Validation Application Block.
I go back and forth on the EntLib as a whole. Parts are great, other parts are overkill. I love the Data Access Block and use it in tandem with my other data access frameworks (ActiveRecord, NHibernate, etc). The UI block though, WTF!
David’s article is a good read. Go forth and read.
No, wait, I am Dr. Doom
Posted by: darren in Personality on January 11th, 2007
If I were a villian I would be
Dr. Doom
|
Blessed with smarts and power but burdened by vanity.![]() |
Top four reasons Windows wins and Linux loses
Top four reasons Windows wins and Linux loses
1. The Installed Base
2. PC Vendor Support
3. Hardware Vendor Support
4. Software Support
Source: Top four reasons Windows wins and Linux loses
To this list I would like to add:
5. Consistent Package Installation
In windows you have MSI files to install stuff with. They are simple to use and pretty much standard for every program I’ve installed.
In Linux I’ve used RPM’s, APT and PORTAGE. Granted they are all easy to use it is still frustrating to me to have to know how to use all three. The less I have to think about something mundane (i.e. installing software) the better it is.
What would really rock Linux’s world would be a single distribution system that would work with all distributions. That way the distributions could work on making their distro better and not have to worry about maintaining an Open Office or FireFox install.
I am Iron Man
Posted by: darren in Personality on December 30th, 2006
Heavy boots of lead, fills his victims full of dread….
If I were a Hero I would be:
Iron Man
|
Inventor. Businessman. Genius.![]() |
This is interesting in that I can see myself as any one of the top three listed.
Windows XP running in KVM on Fedora Core 6
This is pretty impressive. The KVM is a hardware virtualization that should have better performance than software VM’s. Check out the video to see how responsive it is.
Windows XP Virtual Machine On Linux (KVM) – video powered by Metacafe
VMWare Workstation 6.0 Beta – Holy Vitalization!
Just got an email about the 6.0 version of the VMWare Workstation and all I can say is “Wow!” These are the features I am mainly interested in:
- Multiple monitor display – You can configure a VM to span multiple monitors, or multiple VMs to each display on separate monitors.
- Integrated Virtual Debugger – Workstation integrates with Visual Studio and Eclipse so you can deploy, run, and debug programs in a VM directly from your preferred IDE
- Headless mode – You can run VMs in the background without the Workstation UI
These new features will help me at work as it really does fit into my work style. The next PC I get I’m going to install a base system then VM’s for everything else, all development will be done in a VM sandboxes.
The question now becomes: Will VMServer have these features?
MythTV Demo Project
I actually got a MythTV machine up and running yesterday! Man I was so excited, I have tried several times in the past but with no luck. However after finding a good How-To on the Ubuntu web site I was up and running in (almost) no time.
I have tried using MythDora but I could not get it to work. I think the reason was because of the stupid pain in the ass to set up ATI All-In-One card. This card has never worked right for me, either in Linux or Windows so it is time to chunk it.
This past week I came across a How-To site using Fedora Core 6 which I was prepared to follow. But then I got to thinking that there should be something similar for Ubuntu, which I prefer over Fedora. Sure enough the community site had one so I was in business.
The first attempt I made failed. It failed because I attempted to install the proprietary drivers for that stupid $%^@ ATI card, something I will never attempt again with this card as it is going in the trash soon. So I wiped out the install and tried again, my x config file was so screwed at that point that I felt a fresh install was better.
The second time was much better. I added the TV capture card with no issues, installed the MythTV server and frontend on the same machine, got my Zap2It setup and was watching TV on my PC. I tried to set it up to record a couple of shows as a test but that did not work. I’m not sure why but this is a test install any way so I’m not too worried about it working 100%.
I showed my wife and she thought it was cool. This is important as the all important Wife Buy-In factor needs to be way high in order to take this project to the ultimate conclusion. Once I show her how to login from work and set up the server to record shows she will be good with buying some more hardware. Then there is the video, picture and music library that will be accessible from any where in the house once I wire the house then she will be sold.
MythTV Rocks.
The Un-Deleteable Windows File
I have several Open Source projects I am following and to facilitate downloading the code I created a simple NAnt script. The script worked great until the other day one of the projects started failing to update.
Most of the projects I’m tracking are in Subversion. All I’m doing is checking out the trunk then about once or twice a week doing an update. So when the project started failing to update I figured it would be a simple matter of deleting the project folder and just checking it out again.
Wasn’t going to happen. One of the directories would no delete, no matter what I tried. I tracked it down to a couple of file in hidden _svn folders. I could delete every other file in this folder except for these. Nothing seemed to work.
I finally dropped to a command window and attempted to DEL the file, that is when I got the first real clue what the problem was: the file name was too long. The root folder of all the projects I was updating was on my Desktop so the path was already super long: C:\Documents and blah blah buried deep in the bowls of the hard drive long\Desktop.
So I moved the root folder to my c:\ and sure enough I was able to delete the folders.
Funny how that works.
Comments for a Code Review
Ok, what kind of ass-hat idiotic thing is this?
Source: [GIT PATCH] more Driver core patches for 2.6.19
That has got to be one of the funniest things I’ve read in a long time. Well, at least in the last 24 hrs.
A Call to Distros: Give Users What They Want – OSNews.com
And that easy solution must work in a similar way to this:
1. Via a GUI app found on the /Administration menu that lists the 10 most wanted proprietary applications and asks the user to check the boxes of the apps he wants to install. Show a license agreement that waives the distro off any legal problems and then download and install the requested software.
2. When a user tries to load an mp3 or a .wmv, have patched your multimedia apps (e.g. Sound Juicer, Rhythmbox, Banshee, XMMS, Totem) to inform the user why they can’t play these files and ask if he/she wants to download the codecs. If the user says “yes”, show the license agreement that waives the distro from any legal problems and download/install the requested software. If installing the MP3 codec, also install the required Gnome mp3 profile so users can actually rip in MP3 with Sound Juicer.
Source: A Call to Distros: Give Users What They Want – OSNews.com
I couldn’t agree more with this. When I go to install a Distro the last thing I want to have to do is search the web to find out how to watch YouTube.
Linux should just work and I shouldn’t have to notice it.
The Virtual Domain
I’ve been playing around with VMWare and vitalization for a while now and I have to say I really like it. I have a virtual Ubuntu image that I am using to learn Ruby on Rails with. I installed VMWare’s server on my file server so I can run VM’s from any PC in my house.
So last night I was working on my gateway PC when the thought hit me: Why not create my own virtual domain? I could create an image and install IPCop on it, add three virtual Ethernet cards to the VM and bridge the fourth to a real NIC and viola - Instant Domain. Just add more servers.
From there I could add servers to the Green, Orange and Blue Virtual zones and just play around with configurations. I could create a mini-web farm, play around with MySQL replication, a virtual cluster, anything.
Granted I would bump into a Hardware wall pretty quick, I dumped all my old PC’s so now I don’t have that many to play with. But I bet I could still but together something pretty cool.
FxCop and NAnt
I am working on automating our build process and one of the things I am trying to do now is to add FxCop to the mix. There are a couple of ways to run the process, one using an exec task to call the executable directly, the other is through a Contrib task <fxcop>.
I tried the first method with no success. For some reason I couldn’t get the output file name to be recognized by the executable. I eventually had to switch to the <fxcop> task but I had to set a system envitonment variable to the executable first. It eventually looked like this:
<target name="analyze.fxcop" description="Runs FxCop on build output">
<setenv name="PATH" value="${tools.dir}\fxcop;%PATH%" />
<mkdir dir="${build.dir}\\fxcop" />
<fxcop directOutputToConsole="false" analysisReportFilename="${build.dir}\\fxcop\\fxcop.xml" failonerror="false">
<targets>
<include name="${build.dir}\\release\\bin\\*.dll" />
</targets>
<dependencyDirectories refid="referenceComponents" />
</fxcop>
</target>
A lot of work was involved just to find this out. Oh well, I got it working so now I share my results.
What’s in a Name?
I have had the joy of reviewing other peoples code lately and I must say that for the most part there is a total lack of attention to detail. Extensive use of copy paste coding, but the one thing that bugs me the most is the naming convention used.
Can you believe that there are still developers that preface there variables with obj?! Is that not just crazy? Of course it is an object, we work in an OOP language.
Everyone should stop reading tips and tricks sites and start reading books on how to program.
Mad World
I keep seeing the commercial for Gears of War, I don’t know anything about the game but the background music is one that I know and like. It is called “Mad World” and I recognize it from the movie Donny Darko. Part of it goes like this:
I find it kind of funny,
I find it kind of sad,
But the dreams in which I’m dying
Are the best I ever had.
It is one of those songs that forces you to stop and listen.
Any way, I thought I might have the song so I went looking in my mp3 collection and couldn’t find it. No problem I’ll search iTunes.
Do you know how many remakes are of this one song?! A lot. Just on iTunes I see over 52 remixes.
Wow.
Switched Back to ReSharper
I uninstalled CodeRush and re-installed ReSharper. CodeRush just wasn’t doing anything for me productivity wise. I felt that I spent more time fighting it then working with it.
Maybe I just feel more comfortable with ReSharper. I feel that with it I don’t have to memorize as many key combinations.
I’ll give it another month and see what I think then.
Say What?
There are a lot more airplanes at the bottom of the ocean than there are submarines in the sky.
What does that mean? Who knows but it sounds good.
Coding Horror: Properties vs. Public Variables
Why waste everyone’s time with a bunch of meaningless just-in-case wrapper code? Start with the simplest thing that works– a public variable. You can always refactor this later into a property if it turns out additional work needs to be done when the name value is set. If you truly need a property, then use a property. Otherwise, KISS! Update: As many commenters have pointed out, there are valid reasons to make a trivial property, exactly as depicted above:
* Reflection works differently on variables vs. properties, so if you rely on reflection, it’s easier to use all properties.
* You can’t databind against a variable.
* Changing a variable to a property is a breaking change.
Source: Coding Horror: Properties vs. Public Variables
So this answers the question on why you use properties in .NET and not just public variables.
I’ve always used properties but on occasion of used public variables. Small object, needed it quick so didn’t bother with the getter or setters.
I work with a Java developer who abhors getters and setters, says it is Microsoft’s way of disguising method calls. I disagree since I don’t think the overhead involved is that great.
As far as creating the getters and setters, hey, that is what code snippets is for.
Performancing
Ok, so I found another alternative to BlogJet: Performancing. This is an extension of FireFox so I have to have that installed.
So far it looks like it is easy to use. It can’t seem to be able to insert an image like Live Writer but I think it will be easier to blog about something I found on the web.
I have a feeling I will keep using Live Writer and only use this on occasion.
powered by performancing firefox OK I don’t like that Performancing does self promoting. That is a big minus.
Windows Live Writer
So I just heard about the Windows Live Writer Beta. I am a big fan of BlogJet so when I heard about this new Microsoft program I was skeptical. So far I like it.
Now if it uploads this picute then I will have a reason to start using it and not use BlogJet.
I am always on the lookout for new and better tools. If this does what I need it to do then I will switch to it.

