Tuesday, March 17, 2009

CODODN 2009 Registration is open!

CentralOhioDoDNLogo_small Registration for the Central Ohio Day of .NET is now open. Quick sign up while spots are still open.

The Central Ohio Day of .NET is a joint venture between the Dayton .NET Developers Group, Central Ohio .NET Developers Group, Cincinnati SQL Server Users Group and the Cincinnati .NET Users Group. The event is a FREE day of technology discussions devoted to helping the local development community grow. Please check back often for more information about Day of .NET events.

If you need additional information please visit the official website.

If you want to track the event start following @CODODN on Twitter. Or keep an eye on the hash tags.

And since I'm the board member in charge of marketing for the event, help me spread the word.

A great event is coming up.... don't miss it. Register Today!cododn2009badge


Software Development Trueisms

A co-worker sent these to me, and I thought they were hilarious and instead of spamming people I thought I would post about it.
  • Walking on water and developing software from a specification are easy if both are frozen.
  • Program complexity grows until it exceeds the capability of the programmer who must maintain it.
  • Users don’t know what they really want, but they will know when they see it…
  • The degree of normality in a database is inversely proportional to that of its DBA.
  • If you work on a program long enough, it will eventually send E-mail.
  • Technology is dominated by two types of people: those who understand what they do not manage, and those who manage what they do not understand.
  • If you want software made you have 3 options: You can have it done FAST, you can have it done RIGHT, You can have it done CHEAP. Pick 2.

Tuesday, March 3, 2009

CAPTCHA Tool for Protecting Email Addresses

This post is a continuation of my previous post. "Some tips and tricks to prevent Email Harvesting / Scraping"

One of the techniques I mentioned was an "Anti-bot" process and I made reference to the Google Groups CAPTCHA design.

Today I found out that reCAPTCHA.net offers the same service for free. It's called Mailhide

Just browse out to http://mailhide.recaptcha.net/, supply an email address, and they will provide you with HTML you can use to mask your email.

Here's the process with pretty pictures

Providing an email address.


The generated HTML


Once the HTML is embedded, clicking the "..." gives you


When you provide the correct input you get


Pretty cool huh?

Give it a try yourself: User...@Domain.com

They also have an API available if you want to do the same process in bulk.

Happy coding.

Sunday, March 1, 2009

Virtualization: My experience installing VMware ESXi 3.5.0

What is VMware Server ESXi?

When you're using visualization usually you need a host operating system that your virtual machines (VM's) will run on top of. With ESXi, the need for a host OS is removed.


"With a General Purpose OS, the VM's are only as reliable as the host OS. So if the host OS crashes or needs to be patched all the VM's on the machine are affected." ESXi removes these problems. In addition ESXi only has a 32MB footprint, therefore using less resources and having a smaller surface area for attack.

If you want to learn more, check out the VMware ESXi Online Demo.

Now let's begin my experience installing ESXi 3.5

First problem I ran into was trying to get the installer to actually run. I kept getting an error when the installer tried to start, "Unable to find a supported device to write the VMware ESX." Turns out, VMware ESXi won't install to an IDE hard drive with it's standard configuration. After some Googling I found a post in VMware's community forum which pointed me to the solution to my problem.

"Install ESXi 3.5 to an IDE drive"

Now I was able to successfully complete the rest of the install process.


Second problem I hit was when I was trying to configure the "Management Network". I wanted to give a static IP address to my ESXi server. Every time I tried to enter the menu I was repeatedly asked to "Restore network factory settings." This time I learned the config menu does weird things if it encounters hardware it doesn't support. (In this case my motherboard's onboard NIC.) Google and Expert Exchange helped me find this answer.

"What storage and network devices will ESXi 3.5 recognize?"

I installed a different NIC and was able to successfully complete the the rest of the configuration process.

Client Installation

I then connected to my new ESXi's IP via http in a web browser, and downloaded/installed the "VMware Infrastructure Client". (This thru me for a loop too, the install manual never said how you got a copy of the infrastructure client.)

Adding a storage device

The next hurdle I had to jump was when I tried to add my WAMP VM via the "Import a virtual appliance" feature. The moment I would click on the feature, I would get an error "Index was out of range. Must be non-negative and less then the size of the collection. Parameter name:index"

This error I figured out by poking around. The problem was because I didn't have a data source configured yet. I had to configure one thru the "Configuration" tab. Heh, go figure. :-P (Once again, something the installation manual kinda missed.)

So I put the server in "Maintenance Mode" and did the following.


Once I was done, I brought the server back out of "Maintenance Mode," and the error was gone.

Importing a Virtual Machine

Justin, so you're done right? Well almost, yes my server was ready, but I still needed to add my VM to it. The last issue I ran into was when I again tried to import my WAMP VM using the "Import a virtual appliance" feature. The WAMP VM is a VMware Workstation VM, and Workstation VM's are not compatible with VMware Server ESXi.

To solve this problem I had to use another tool from VMware. The VMware vCenter Converter. I used the "Import Machine" feature of the converter to import my Workstation VM into my ESXi server.


After the conversion/import process was done, SUCCESS!!! I now have my WAMP VM running on my ESXi server.

Now wasn't that easy?