Internet Explorer URL Character Limit is 2,083

August 12th, 2008

Today I learned that Internet Explorer limits the site of GET requests to 2,083 characters.  Any URL longer than this cannot be used by the web browser.

http://support.microsoft.com/kb/208427

I can’t help but wonder where that number comes from?  The closest power is 11 (2^11=2048), which doesn’t correspond at all to this limit.  Is it arbitrary?  Other web browsers (Firefox, Safari) do not have this limitation.

ASP.NET: A potentially dangerous Request.Form value was detected from the client

August 2nd, 2008

This error is caused by the presence of HTML in the fields returned by a form post.  In many cases, for example page management tools, you may want to allow your users to enter text formatted with HTML.  By default, ASP.NET doesn’t like this.

To turn it off, add ValidateRequest=”false” to the top of your aspx file.  This turns off validation of form results.

Honestly, I would rather if this property were available for individual form controls, because in my mind validation is still desirable overall even if one or two fields should allow HTML.  But there you have it.

What I Learned from MUDs

August 1st, 2008

The first bit of code I ever worked on was ROM 2.4, a text-based MUD server written in C.  At the time I didn’t know the first thing about programming, but through trial and error I was able to feel my way around the source code and slowly learn how the language worked and how to make the program do what I wanted.  Some experienced programmers called me the “snippet king” because I used a lot of pre-written additions to expand m game, but I see it as part of the learning process.  If I were to work on a MUD again, I now have the knowledge to do all of the programming myself - but if it weren’t for my baby steps back then I may never have become a programmer at all.

Text-based gaming is all but unheard of now that games like World of Warcraft and Everquest have taken hold.  In my opinion this is a crime because the worlds created through words were so detailed and so interactive that replacing them with pretty graphics makes for a much shallower experience.  It used to be possible to make life-long friends and really share interested, now the genre has been opened up to the lowest common denominator and there is so much swearing and name-calling that many older, more mature players don’t even bother.

I learned a lot of skills from my days playing MUDs that have helped me in my professional life:

  • Programming (obviously)
  • How to interact with others online
  • How to type very fast
  • How to write with personality
  • How to be thick-skinned (when people think they are anonymous, they are quicker to criticize and personally attack you, especially when you’re involved in content creation)

Cuil not so Cool

July 28th, 2008

Jumped on the bandwagon and tried out Cuil today.  The verdict - more development time needed.

1. Result counts are wrong
I searched for the (rare) name of a friend and found 3 results.  The search engine counter said 4 results were found.

2. Duplicate content
I searched for the bizarre phrase ‘fell in outhouse’.  The first 3 pages were nearly identical results.  For a time I wasn’t certain I was really changing pages.

3. Named after a Salmon
Apparantly ‘Cuil’ is a gaelic word referring to knowledge and hazel - they talk about a salmon of wisdom.  I’m not sure how that sits with me…

I chalk up the high server load and weird results to the infancy of the product and expect that it will improve over time.  The column interface is sleek and attractive.  The results clustering appears to be advanced although similar to WebFountain.

Right now, though, I don’t understand why Cuil is being touted as the next generation search engine that will replace Google.  The press coverage and their own site confuse me as to whether the big deal is the size of the search catalogue (apparently 3x that of Google) or the fact that the company’s leaders are made up of former Google employees.

Time will tell, but as of launch today I don’t see Cuil becoming my default search provider any time soon.

Reboot Windows Server 2003 Using Remote Desktop (RDP)

July 18th, 2008

Since Microsoft updated their Windows Server 2003 software, administrators relying on their Remote Desktop Connection are having difficulties rebooting.

When connected via RDP, if you reboot normally you will be disconnected from the server and all will appear well.  Sometimes, however, the server won’t actually reboot!  Furthermore, it will block all incoming connections to RDP, and to everything else.  The only means of recovery is rebooting from the console.

Solution

It is possible to use our knowledge of the command line to perform a proper system reboot using the shutdown command.

The relevant switches are:

/f - Force the shutdown even if other users are connected

/r - REBOOT, rather than shutdown

/t 0 - Set the timer to 0 seconds, i.e. perform the command right away

Example:

reboot /f /r /t 0

I hope this helps prevent some head-scratching!

Getting Real Power in Vista

July 1st, 2008

Windows Vista hides the administrator user. In order to access it, open a command prompt and issue the command:

net user administrator /active:yes password

Password can be anything you want, and will set up the administrator user.

Although you can access much of your system’s setting under the default super user account, Vista implements a User Access Control System that effectively makes administrator the only real super user. In particular, the “Local Users and Groups” interface is normally hidden from you.

One more note - the command listed above can’t be run from a regular shell - you must open the shell as administrator.

Optimize SQL Queries by Using Aliases

June 30th, 2008

When joining tables in SQL, we often use aliases to shorten table names. Consider this query joining order lines (details) with orders inside the database:

The above may work, but behind the scenes the database’s query analyzer has to associate each of the selected columns with their respective tables. Although this is a fast process, it can be skipped entirely by simply fleshing out the query like this: