Google Accounts is a joke

For being a huge corporation, some things about Google are pretty embarrassing. I originally had a Gmail account and decided I wanted to have a custom email using my domain name. Google offers a service called Google Apps that allows you to do that. Cool.

I signed up for Google Apps. I found out quickly that you can’t transfer most of your products. I was able to transfer the pictures from my Picasa collection, but that’s about it. I had to recreate my Analytics account, my AdSense account, my YouTube account, and more. This was a pain in the ass, but I stuck in there and did it anyways.

Later, I cancelled my Google Apps service in favor of using Go Daddy’s Hosted Exchange product. I love Outlook and Exchange, a lot more than Gmail. I was able to migrate all my data over quickly. A few days after I cancelled my Google Apps service, my entire Google account was wiped clean. What the hell? I thought it would have only removed my Gmail, Calendar, and Google Docs access; apps that are provided by Google Apps.

So after all my woes, here is what I’ve discovered. There are 3 types of accounts:
1) Google account not tied to a Gmail account
2) Google account tied to a Gmail account
3) Google account tied to a Google Apps service

If you have a Gmail account and you want to change your Google Accounts email, you’re screwed; it’s not possible to change the email associated to your account. If you’re a Google Apps user and decide to cancel the service, you’ll have your Google account(s) removed, even though it doesn’t say it will do that. If you have a Google account using a custom domain and then you decide to register with Google Apps, you’ll cause a Google Accounts conflict to happen which has to be fixed by their support team.

What’s funny is that I did an interview with Google a few months ago. Not because I was pursuing a job, but because a recruiter found me on LinkedIn and had sent me a few emails. I love my job at Go Daddy, but I figured I would at least do the phone interview, just for the experience. The person who did the interview (interestingly enough) was a person who worked on the Google Accounts product. Just like I anticipated, I was asked silly academic questions which I’ll admit, I didn’t do the best job answering. The interviewer was pretty upset because I didn’t answer the questions like a full time student would answer them and basically ended the interview 30 minutes in.

Now, a few months later, I have this Google Accounts experience described above. No wonder their products have huge flaws with them. They have a bunch of employees who are more interested in Academia than delivering a product that people want and love.

Editing your PHP settings with Go Daddy Web Hosting

I have a Windows Web Hosting account through Go Daddy and I recently installed the Coppermine image gallery program using Go Daddy Hosting Connection. When I started to upload pictures, the Coppermine program was running out of memory while doing batch adds. This meant it wouldn’t create thumbnails and ultimately wouldn’t add my pictures.

Since Coppermine uses PHP, we need to increase the memory usage allowed. To do this, we need to edit the php.ini file. This file contains all the settings that Go Daddy web servers will consider when running PHP for your account. Please note, the below procedure is for Windows with PHP 5; if you have another installation, please see this article.

First, let’s output the php.ini file. Here’s a sample script you can create and put your root directory. Name the file test.php and upload it to your FTP root.
<? system("type c:\\cgi\\php5\\php.ini"); ?>

Execute that script by loading it up in your web browser. It should now output the full php.ini that Go Daddy uses by default. Save that to disk and open it up in your favorite text editor.

In that file, search for “Resource Limits” and you’ll find a section like this:
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing ...
max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 32M ; Maximum amount of memory a script may consume (128MB)

I just had to bump up my memory_limit from 32M to 64M. After you make that change, save the file as “php5.ini” and upload it to your FTP root.

That did the trick and I was able to upload pictures no problem. If you do all of the above and it doesn’t work, try logging into your HCC and recycling your application pool.

Taking a screenshot using XNA 4.0 and C#

I’ve been working a lot on an old game that a few friends and I made in college. We ported it to C# using the XNA framework and it’s working great! You can read more about that project by clicking here.

The old code was C++ with OpenGL. One of the functions I had a hard time porting was taking a screenshot. Older versions of XNA seemed to have a way to do it, but the newest version, 4.0, didn’t have an easy way to do it. Here’s what I ended up doing:
public void ScreenShot(string prefix) {
    #if WINDOWS
    int w = GraphicsDevice.PresentationParameters.BackBufferWidth;
    int h = GraphicsDevice.PresentationParameters.BackBufferHeight;

    //force a frame to be drawn (otherwise back buffer is empty)
    Draw(new GameTime());

    //pull the picture from the buffer
    int[] backBuffer = new int[w * h];
    GraphicsDevice.GetBackBufferData(backBuffer);

    //copy into a texture
    Texture2D texture = new Texture2D(GraphicsDevice, w, h, false, GraphicsDevice.PresentationParameters.BackBufferFormat);
    texture.SetData(backBuffer);

    //save to disk
    Stream stream = File.OpenWrite(prefix + "_" + Guid.NewGuid().ToString() + ".png");
    texture.SaveAsPng(stream, w, h);
    stream.Close();

    #elif XBOX
    throw new NotSupportedException();
    #endif
}

Here’s an article you can check out that explains the new behavior:
http://blogs.msdn.com/b/shawnhar/archive/2010/03/30/resolvebackbuffer-and-resolvetexture2d-in-xna-game-studio-4-0.aspx

Life after having a DUI

If you know me, you’ll know that I don’t drink. I haven’t had a drink in over 4 years now. I went to Santan Brewery last Friday and had a few Diet Cokes with friends and it got me remembering how bad getting a DUI was.

It was just over 6 years ago now; April 2005. I got busted stopped at a red light. A few minutes earlier, someone was in front of me driving really slow on the US60. I was super pissed off, drove aggressively to cut in front of them and shot them the middle finger. They called the cops on me and that’s how it started.

The whole ordeal set me back somewhere between $15,000 and $20,000. Lawyer, court and jail fees… cab fare when I didn’t have a license. Counseling fees for around a hundred hours. I also had to have a blow device in my car at a cost of around $300 to install with a monthly fee of $100 for a year.

Those experiences took every ounce of pleasure when it come to having a drink. The taste, the social scene, having a cool one when you relax. A lot of my friends like to have a few drinks and kick back, but I’ll stick with my Diet Coke, man.

After remembering the experience I dug this up. It’s a journal entry I wrote the morning I was released, Tuesday July 12th, 2005. I’ve posted it before (years ago), but if you haven’t already read it, take a minute and check it out. This is it, in its entirety and completely unedited…

My original journal entry from July 2005
Today I finished doing my time in the Maricopa county jail for my DUI. I can’t explain how awesome it is to be out of there. I’m really looking forward to getting a full night’s sleep in my own bed again.

I’ll try to explain the entire process as accurately as possible (this is all from memory so some of the layouts might be slightly off).

Day 1 (07/02/2005)
If you live in the US, you’ve probably heard about the man that runs this jail, Sheriff Joe Arpaio aka “The toughest sheriff in America”. He is always speaking publicly about making prisoner’s time as bad as possible and about the money he saves by basically denying prisoners any luxuries. He makes the prisoners wear pink underwear and socks and the old-school black and white striped uniforms and he’s made Maricopa County’s “Tent City” famous.

When you get sentenced, you have a date to report to jail. It’s called a self-surrender. You go to the east corner of the Lower Buckeye Jail (LBJ). I got here around 7:30am and waited with a group of people. After about an hour, a detention officer came out and gathered us up and led us to the main building. After we walked through the gate, he radioed someone to close the gate. When the gate slammed closed, I knew this was going to suck. We went into the booking office and filled out paperwork (name, address, etc). Below is a drawing of the facility

Lower Buckeye jail

Lower Buckeye jail

After filling out and turning in the paperwork, you walk through a metal detector. I beeped along with some other people, and we were separated from the rest of the group. Another person took all of us and led us down the hall (forgetting to even bother searching the people that set off the metal detector) and down the first hall filled with holding cells (“tanks”). We were put into a holding cell with about 15 people already in it and the door was locked shut behind us.

The drawing above shows what a typical holding tank looks like. I noticed two types (when I was being booked, the holding tank was about 9 feet by 10 feet. When I was being released, that holding tank was slightly larger at about 9 feet by 12 feet). Being in the holding tank is hands down the worst part about the entire process. When I got in there, I talked with people and asked how long they’ve been here. Most of the people there had been there since around 5pm or 6pm the day before (and now it was about 8:30am). This is where it set in how bad this sucked. After about an hour of sitting on the floor, I laid out and tried to get some sleep.

The time goes by extremely slow. Finally I was called out and I was pretty excited. An officer led me back over to the booking area by the computer and snapped my photo. Then I got thrown back into the holding tank.

A few hours go by and a rookie officer brings in the lunch for everyone. He throws these plastic bags and milk out to everyone and its chow time. If you’ve heard about tent city and Joe Arpaio, then you know how he makes sure the food is absolutely disgusting. He serves the prisoners rotten and expired food which costs less than the meals he provides for the animals over at the animal shelter (I think the cost of an animal meal per day is about $1.20 while the prisoner meal costs about 44 cents). You get 2 pieces of bread that are as hard as a rock, 2 slices of American cheese, 3 pieces of rotten bologna (which have these pieces of cheese in them), and a rotten tomato. I was surprised that the milk didn’t expire until tomorrow. It’s pretty nasty food, but it beats being hungry. Most of the people didn’t eat their food.

Not much else happened. I guess the highlight was something in the cell next to us. There was a ton of noise next door, which I later learned the story behind. Apparently a guy next door couldn’t take being in the holding cell for a long time and went completely insane. He grabbed the toilet paper, dipped it in the toilet, and strained the TP over his head, catching the water in his mouth. He started screaming and undressing and banging his head over and over again into the door and the window on the door. Officers pulled him out and tazered him. Some officers came into our cell and told us to turn around “or else”. We turned around and you could tell they were beating the crap out of this guy. He was screaming pretty loud. They put him into this weird kind of “crazy people” chair and probably put him in solitary confinement.

At 11:30pm, people from different cells were being called out. We were lead into the hall and lined up. The officers shackled our legs up and handcuffed everyone to another person and led us out to the trucks. We crammed in there and the officers started driving. These guys drive insane and I think they do it on purpose. They were taking corners going about 40 or 50, probably just so everyone in back gets thrown around. We finally got to our destination, Estrella Jail, at around midnight. We were let into the main room there, un-cuffed, and searched. The officers threw us all into 2 holding tanks while they were processing us (both of which didn’t have a bathroom). I think a Mexican guy in the other tank crapped his pants.

After sitting in there for a long time, we were let out and went out to the main area. The officer let us use a bathroom and then we got shackled up. I think it was around 1:45am at this point. We got handcuffed on the legs and handcuffed to another person. We started the walk over to tent city.

Overview of the jail layout
Above is an overview of the area. You can see the drive we made from LBJ over to Estrella and I highlighted the walk. I was wearing sandals and during the walk the cuffs really dug into my legs. I could feel the cuffs slicing deeper and deeper the closer we got. We were led over to the “Con-Tents” tent city (the other yard is the “In-Tents”, also called “Stripes” by inmates. The people over at stripes have to wear the old-school striped uniforms).

We were let in and searched. A lot of people obviously weren’t searched before or weren’t searched very good. People had cell phones on them, etc and some people had stuff that could obviously be used as a weapon, like a screw driver. Finally, the cuffs were taken off and I got a chance to check out my legs. They were cut pretty bad and were bleeding all over the place. When I did get a chance to return home, I took a photo (this photo is 2 days after the cuffs cut the crap out of me)

My ankles cut from the handcuffs
It took 18 hours, but we finally made it here to tent city (2:00am). We were told the rules, etc and handed our blankets and assigned a tent and a bunk. I went and made my bed and went up on the hill. There’s a Commissary there that has vending machines. They were being serviced I guess so I waited around with 3 other people and talked until about 4am when they were opened up again. I grabbed an RC Cola and felt a lot better. We all finally got some sleep after that. I drew a map of the con-tents tent city yard.

Detailed tent city image
The tents are all numbered and have numbered bunks. There are metal frame bunk beds with about an inch of foam padding for a mattress. When you walk in, the left side of the tent has 4 bunks in a row and the right has 7 bunks.

Days 2 through 10; Tent Living
I woke up the next day at about 6am. It was pretty hard to get to sleep. It started to get really hot outside, and by noon it was almost unbearable. It gets really damn hot outside, especially inside the tents. Inside the tents, the temperature gets up to 140 degrees. I picked up some good tips that make it not as bad though
-Drink lots of water (obviously)
-Take a shower with your clothes on and get your head soaking wet, this helps a lot
-You get a pink towel when you get your bunk blankets. Grab that and get it soaking wet. Put it around your neck, making sure to cover up the back of your neck. This is probably the most important thing to do, otherwise you’ll probably have a heat stroke (someone did when I was there last Saturday)

The day isn’t that bad if you have work release. There’s a black box in front of the office where you turn in your ID to get released for work. You have to turn in your ID between an hour and a half or an hour before your release time in order to get out. Also, you have to shave everyday and be clean-shaven to get out for work. Once you get work release, the time flies by. Tent City basically is just a hotel to sleep in at night and nothing more really.

I met a lot of great people at tent city. Mostly everyone there was there for a DUI and they’re going through the same things. There’s also some other interesting things. There’s a guy that sells Powerball tickets every Wednesday and Sunday. He sells number slots for the actual Powerball (not the other 5 numbers) for 2 dollars. The winner gets like 100 bucks or something like that (last Sunday’s number was 4).

Besides gambling, you can also find smokes and drugs in tent city. All of these things will get you “rolled up” if you get caught. Rolled up means you pack up your stuff and the guards will put you in stripes (the “in-tents”). You’ll be wearing pink underwear, etc.

Cigarettes go for a dollar a piece. I saw a few people walking around smoking pot just in-between tents. Some guy I talked to saw a guy with a handful of hundred dollar bills and a bag of meth. It’s insane. The stuff all gets in by people throwing it over the fence. The officers don’t really seem to care that much. If they walked around constantly and watched everyone, it would be a much different place.

I spent a lot of time talking with everyone there. I met a lot of great people and had some fun playing Gin Rummy and trying to figure out how to play Dominos (an inmate made dominos out of soap bars). The worst was the last day.

The final hours
When I got back on the 11th (Monday), a guard pulled me aside and let me know I was going to be “kicked out” soon. My name was called about 30 minutes later and I brought all my stuff to the gate. The officer got ready to shackle us up and was nice enough to not shackle our feet (I showed her the scars on the back of my legs). We got thrown in a holding cell with about 15 other people back at Estrella. We got there at 9pm and left at 11pm. When we left, we got shackled up and handcuffed to each other and set off for LBJ. We got to LBJ and got thrown into a holding cell there. At the time, there were only about 12 of us in there, but by about 4am, there was over 40 of us in this small little cell.

Just sitting there is the worst part. It’s impossible to go to sleep and you run out of things to talk about. This is where crazy and insane people save the day. There was a guy there that got busted for shoplifting and was getting released and he stood up on the bench and started to tell everyone about how he likes crack cocaine and how to make it.

The rest really isn’t even worth writing about, but I finally got released around 12 noon on Tuesday. I can’t believe it takes 15 hours to get processed out.

Because of the way they treat people, I think a lot of the inmates are prone to going back out and committing the same crime again. Lots of people in the holding cells I overheard talking were talking about how they’re going to go break the law as soon as they get released. A group of about 10 people already picked the local Circle K (see my drawing above) as a target that they’re going to shoplift from as soon as they get out. One guy was going to get a ride to the mall and go back to the store he was arrested at and shoplift new clothes and then move to Las Vegas. Pretty much everyone was talking about getting drunk and a lot of people were talking about smoking crack or shooting up. I don’t think shoving people in a room really helps them, it only makes them want to commit the crime or a worse crime even more. I’m a really relaxed guy and after being in a small room with 45+ guys and having to use the bathroom in front of everyone and not being able to sleep, I was ready to fight anyone that said the wrong thing.

That all went away when they finally called my name out and I got to do the final walk out to the release area. It’s finally over with

Some of my thoughts about Mexico

Illegal immigration is a pretty hot topic, especially here in Arizona. Nobody has taken a realistic approach to solving the problem. Here are a couple facts for you…

1) As of 2011, the richest man in the world is Mexican; Carlos Slim. According to Forbes Magazine, Mr Slim’s net worth is more than $74 billion dollars while Bill Gates and Warren Buffet only have a net worth around $53 billion dollars.

2) In terms of GDP, as of 2010, Mexico is ranked in 14th place. It’s right up there with Canada, Russia, India, and Spain.

If the country is doing so well financially, why are there people risking their life to come to the Unites States illegally? It’s a pretty easy answer.

There isn’t much competition in Mexico. There’s one gas station, Pemex. There’s one land-line telephone company, Telmex. Cellular phones? Telcel. Guess who has major control over each of those. You can look it up; Carlos Slim’s wealth is the equivalent of roughly 5% of Mexico’s annual economic output.

Here’s another fact. It doesn’t matter if there’s a wall between Mexico and the US; they’ll get over it. Doesn’t matter if border patrol shot and killed illegal immigrants on sight. They will keep coming until there isn’t a reason to come anymore. The only way to solve the illegal immigration problem is to fix Mexico.

People in Mexico want to work because they need to feed their family. Unlike the United States, they can’t go on welfare or file for unemployment (two things I think the American Government needs to get rid of). If they could sit in Mexico and collect welfare and sell drugs like people here in the US do, why would they bother leaving?

These people come here to the US and are willing to risk their life jumping in the back of a strangers pick up truck for a few dollars. They are ready to work a million times harder than loser US citizens getting high in their apartment, collecting unemployment. I think Mexican folks deserve their shot here, legal or not.

The monopolies in Mexico need to be broken down. If there was room for competition, more people would be employed which means less people would want to come here. Think about how much money was spent by the US in Iraq and Afghanistan for a moment. Even if Iraq or Afghanistan become peaceful places and someone builds a Disney World there and puts a Starbucks on every corner… do you see yourself wanting to go visit? Seriously. And here, we have a neighbor that needs help and the US is just spending cash trying to “fix the problem” by keeping Mexicans in Mexico.

I guess what it boils down to is that government contractors are making a killing on the war in Iraq/Afghanistan. Is there anything profitable about helping Mexico? No. And I think that’s why the US isn’t doing anything.

ASP.NET resources

I haven’t done a lot of .NET since back in the good old 2.0 days.

The jobs I held right after graduating from college were extremely heavy on .NET and MS SQL technologies. I joined Intel in 2005, about a year before the .NET 3 framework was released (with the WCF, WWF, WPF, etc). At Intel I mostly worked with COM technologies; C++ and VBScript. I got to do some .NET development, but it was pretty limited.

I joined Go Daddy in 2008 where I mostly did C++ and PHP on Linux. I really enjoyed it but when I got the chance to switch teams at the end of 2010, I was really excited. All of the code for my new team is in C#/.NET. Since then, I’ve been digging in and figuring out all the new features I’ve missed out on.

I found a lot of great resources when I was looking at all the new features of .NET 4.
Click here for a blog entry with a TON of info about .NET 4
Click here for an article which summarizes the new .NET 4 Base Class Library
Click here for an article about new releases, including the ASP.NET MVC 3 framework
Click here to check out a Search Engine Optimization tool

Of all those links above, the one I’d recommend the most is the last one (the Search Engine Optimization tool). This tool is awesome. You enter the landing page URL and it’ll crawl and download your entire site. After it’s done that, It’ll examine what was downloaded for issues.

It breaks problems it finds into categories. For example, it’ll find any pages you forgot to put a title or description. It’ll also help find broken links.

Most of what the tool does is what’s described in the Google document I linked to in a previous article about optimizing your website (It had a couple tips about getting started; like using Google Analytics and different kinds of webmaster tools).
Click here to check out my previous article about optimizing your website

However, having the tool readily available (which takes about 30 seconds or less to run against my website) is great. It saves everything it finds so you can run it multiple times and visibly see the progress you’re making. No matter how good a job you do, you’re going to miss something (and this’ll help you find it).

I recently upgraded to .NET 4 on my Go Daddy account and I’ve really been liking it.
Click here to read about my .NET 4 migration experience

One of the features I am starting to fall in love with (which I hated when it first came out) is LINQ. This is such a great query language. My favorite part so far is dealing with XML using LINQ. My co-worker showed me this sweet tool called LINQPad. It has a lot of great LINQ examples and works similar to Query Analyzer for MS SQL.
Click here to check out LINQPad

That’s all for now, time to get some sleep!

Getting the assembly version in ASP.NET

I typically update the .NET assembly for this website by hand whenever I have a new major release and I’d like to be able to get the version.

Unlike a Windows Forms application, there is no Application.ProductVersion. I Googled for answers and it looked like I needed to do this:
using System.Reflection;
string version = Assembly.GetExecutingAssembly().GetName().Version.ToString();

However, that causes a SecurityException to be thrown. I’m running my website at Go Daddy in a shared hosting environment and the permissions are limited.

Here’s how I solved the problem:
using System.Reflection;
Type t = typeof(*pick any class that's in the assembly you want the version of*);
AssemblyName an = new AssemblyName(Assembly.GetAssembly(t).FullName);
string version = an.Version.ToString();

Some examples that I found use Assembly.GetExecutingAssembly(), but I found that this doesn’t work. It’ll compile, but always returns back 0.0.0.0 as the version. That’s why you’ll have to use Assembly.GetAssembly() and provide a type as shown above.

Upgrading your Go Daddy account to .NET 4.0

Right now this website is written in .NET and I’ve only recently decided to try to upgrade it. About 6 months ago, I did an upgrade which brought me from IIS 6 to IIS 7. I had to migrate my database to SQL Server 2005 to accommodate the upgrade but it worked. Behind the scenes, Go Daddy migrates your account to another box which is running Windows Server 2008 and IIS 7.

Now that I’m on IIS 7, I’d like to upgrade my .NET support to .NET 4.0. I recently bought a great book called C# 4.0 in a Nutshell: The Definitive Reference and after skimming through it, I’d like to start using some of the new .NET 4 features.

Go Daddy has full support for .NET framework 4, but only if it’s a Grid account. The Grid technology basically scales your website by copying the virtual directory content to other boxes and providing load balancing. It’s free to upgrade to a grid account, so here’s how you do it!

Sign into your Go Daddy account. In the “My Account” screen, pull up “Web Hosting” under your products. It should look like this:

In the above picture, you’ll notice I highlighted my account with a red box. Click that hyperlink (the part that has the box around it). It’ll bring up some billing options.

Once you click, it’ll pull up billing options that look like the above picture. Once that comes up, go to the “Edit Account Details” tab. Under the plan drop down, you’ll be able to change your account to a Grid account. Non-grid accounts are called classic.

Once that change is made, it’ll take some time for it to go through. When I changed to grid, it took about 2 hours to be processed. Behind the scenes, it’s copying your information over to a server built for the Grid technology.

Once you’re migrated, you’ll want to launch the Hosting Control Center (this is the product I work on). In the “My Account” screen, you can click the “Launch” button to bring up the control center:

Once this is up, you can click “Settings” and it’ll show the icons just like the picture above. To enable .NET 4, you’re going to want to click the icon “Add-On Languages”.

That will bring you to this screen. Here, simply pick “ASP 4.0″ and click “Continue”.

Problems I ran into (and what I did to fix them)
My upgrade didn’t happen without issue. The problems that came up were really easy to work through, though.

The first thing you’re going to want to check are your directory permissions. I noticed when I got migrated that it reset all of my writable directories (for example, logs).

After that, I had to work through 2 issues with IIS. First issue was that I was getting a 500 error. My web.config was still using the old IIS 6 way of displaying errors, so I had to update it to use the new IIS 7 way out outputting errors. Here’s what that looks like:

<configuration>
 <system.webServer>
  <httpErrors errorMode="Detailed" />
  <asp scriptErrorSentToBrowser="true" />
 </system.webServer>
 <system.web>
  <customErrors mode="Off" />
  <compilation debug="true" />
 </system.web>
</configuration>

After that was done, I could see there was a problem with one of my custom http modules (I’m running my application in integrated pipeline mode). I wrote a simple module to work like Apache’s mod_redirect. It’s used to canonicalize my URLs to one final URL ( for example, brianclifton.com instead of brianclifton.com/ ). It also redirects old content.

I had to remove the module from the <system.web> section. I already had the new entry in <system.webServer> (I guess .NET 2/3/3.5 let both entries co-exist). Here’s what my new entry looks like:

<system.webServer>
 <modules runAllManagedModulesForAllRequests="true">
  <add name="UrlRedirector" preCondition="" type="BrianClifton.UrlRedirector"/>
 </modules>
<system.webServer>

After that change, the site loaded up great!

I only ran into one more problem, which happened when I was trying to write this article. Because I have to enter HTML into the blog entry, ASP.NET freaked out because it could have unsafe content in the text. Even though I had a page directive specifying ValidateRequest=”false”, I had to make another web.config entry under the <system.web> section…

<httpRuntime requestValidationMode="2.0" />

That did the trick and it’s been running great since!

Software that I like

As a programmer, I’m pretty picky about what software I use. Why? Because I’m on a computer for most of the day. If I still worked in a factory and I only had to use a computer for watching silly YouTube videos of people getting in accidents, life would be a lot different.

I wanted to compile a list of my favorite programs and try to explain why I like them. You can click the title of each program below to visit the home page where you’ll get more information / screenshots.

Microsoft Visual Studio
I love Visual Studio. You can get the express editions of the software (which are fully featured) for free.

I remember learning how to write C++ on Mac OS 7 using a pirated copy of CodeWarrior 5 because I was a teenager and I couldn’t afford a legit copy. When I started college in 1999, I had already switched to PC and used my academic discount and bought Visual Studio 6 for about $150, which I thought was a bargain at the time. Now it’s free which is amazing.

To help put things in perspective, I created this website and every piece of software on the “Projects” tab of my web site using Visual Studio. If you want to learn programming on Windows, go download it.

Google Chrome
I seriously hate FireFox. It takes like 30 seconds to start up, it has horrible memory leaks, and it crashes a lot. Those reasons aside, I think the name is just plain stupid. The only thing I did like about FireFox (being a web developer) is the Firebug extension.

I was a hardcore IE user for years until Chrome came out. I even used IE on Macintosh up until version 4 (about when I switched to PC). With Google behind it, I figured I’d give Chrome a try and ended up loving it. I like how unobtrusive the browser is; it has a minimalistic feel to it. I’ve never had it crash. I keep my browser instances and tabs open for days, sometimes weeks.

(Linux people, feel free to insert a joke here about how Windows can’t go that long without a reboot)

I’ll be honest, I don’t really care about a browser’s rendering engine or which has a “better” implementation of CSS. I like using software that works. Period. Any web developer knows that you’re going to have to test your work on every browser anyways; you don’t have to pick the most standards compliant one as your favorite. Chrome uses the WebKit engine which is essentially the same as what’s in Safari. I still have to go back and use IE sometimes for sites that won’t work in Chrome but that doesn’t happen often.

FileZilla
As far as FTP clients go on Windows, this is about the best you’re going to find. There’s not much more to say other than it’s free and it works great. Before I found this in 2002, I used a piece of crap FTP program some of you might remember called LeechFTP.

mIRC
I’ve spent a lot more of my time on IRC than I’d like to admit. I first got involved with IRC on Macintosh in 1994. I used a complete garbage client called Ircle. None of my real life friends were interested in computer programming so I turned to the internet to meet people that were into C++. I learned most of what I know about programming by hanging around for years in #C and #C++ on EFNET.

mIRC is hands down the best client out there. I wrote my own client at one point using MASM (as a learning exercise) and although it worked, it sucked. I got sick of seeing the authors face pop up so I actually paid the shareware fee. It’s been worth every cent, although I don’t go on IRC as much anymore.

KeePass
It’s getting to the point where everything has a password. Want to post a comment on someone’s blog or forum? You’ll probably need to sign up and have another user/password that you’ll almost guaranteed forget as soon as you click the submit button.

I started using this program to keep track of all my passwords because it seriously got out of control. I have the program open now and there are over 80 passwords entered in here that I actively use. I like to think I’m a smart guy but because the password rules are different on every website you can’t use the same password on everything (and even if you could, it’s a horrible idea from a security perspective).

An 8-12 character password with 3 uppercase letters, 2 symbols, and that isn’t close to my last 9 passwords? I have a hard enough time remembering what I ate for lunch yesterday.

I hate cell phones

I hate pretty much everything about a cell phone. I hate the way they look, the way they sound… the fact that they interrupt your free time, going off when you’re in the middle of a nice dinner. I’ll try to explain better.

Let’s talk about the device itself and pretend that I did like cell phones in general. Nobody is close to making a good cell phone in my opinion. They are all complete garbage. I don’t want to run “apps” on my phone. I don’t want internet on my phone. That’s why I have a computer. I have pretty specific requirements in a “dream” phone:
1) Contact list (names, phone numbers, address, email).
2) Ability to call someone and talk with them.
3) Ability to turn off crap like the internet, calendar and MP3 players so they don’t show up in the UI.
4) Can close the phone, put it in my pocket, and not worry about accidentally calling someone or having the phone start the MP3 player or have it open the internet.
5) I do NOT want a camera on my phone.

You’d think that being a month away from 2011 these 5 basic requirements could be met, but it’s not even close.
1) The contact list sucks on non-smart phones. I can store home, work, fax… pick a custom stupid ringtone or picture.
2) I can talk to people without issue. Glad this works at least.
3) You can’t turn off internet or delete the included programs. If you accidentally open the internet, you get charged however many dollars per kilobit. Why can’t I turn off texting (the ability to be texted and to text someone)?
4) Manufacturers always put buttons on the outside of the folding phones. There is always some kind of partial lock feature which does NOT work. How about, if it’s closed, don’t do anything at all. Period.
5) It’s really hard to find phones without cameras. They exist, but are difficult to find.

Those are some reasons why I hate the physical phone itself. The only thing I hate more than the bare bones phones are smart phones like the iPhone or the Android. All of the same stupid problems above except you pay a lot more for them and their data plan. At least you can pay for stupid programs that make fart sounds, right?

What I hate the most is how cell phone usage is becoming acceptable in our social lives. Over the years, texting has become extremely popular. People are texting at the dinner table, texting while they are sitting on the toilet, texting while they are driving. Are we really that ignorant? It’s becoming acceptable to stop whatever you are doing and type into your phone, instead of participating in real life.

I was looking through my wedding photos and my in-laws (my wife’s siblings) were on their phone in most of the photos. They don’t need the phone for business reasons, like being on-call… there isn’t any emergency going on. Just put the phone down already. Every single day someone’s phone plays into my conversation with them. When someone is at the table eating and texting, or answering a phone call during dinner, or telling me to “hold on” during a conversation so they can tend to their phone, they might as well have told me “F**k you”.

Then of course there’s the pure obnoxiousness of a phone. Sitting at work or in the waiting room at the doctor and then hearing an ear piercing ringtone that makes me want to kill myself. Then the guy answers it and talks out loud about how he has warts on his genitals because it seems like a private conversation to him. Thanks for sharing that with everyone that can hear your conversation. Worse than anything I’ve listed so far, I’ve seen children on bicycles with training wheels… talking on a cell phone. What are they even talking about? The latest Sponge Bob episode? Why don’t they actually just go to their friends house or wait until school the next day.

The second I don’t need my cell phone for work related issues, I am going to smash it and flush it down the toilet.