Dragons in the Algorithm
Adventures in Programming
by Michael Chermside

Category: Programming

How Long is an Email Address?

Suppose you are setting up your database table, and you want to create a column to store an email address. How many characters should you allow in the field?

In Oracle (what I use most often), the correct type to use for an email is VARCHAR2(x) for some value …

Read more

Posted Wed 17 December 2008 by mcherm in Programming

My Security Nightmare

As Willie Sutton didn't say, "I rob banks because that's where the money is."

I work for a bank, and so I worry more about security than most programmers. After all, if a hacker were were truly motivated and competent who would they pick to go after? Probably a bank …

Read more

Posted Thu 04 December 2008 by mcherm in Programming

Threadsafe Java Servlets - a solution

In a previous post I wrote about how nearly all web applications built on Java servlets suffer from potential threading issues. Web browsers can make multiple simultaneous requests, which will result in multiple threads concurrently modifying the (not threadsafe) HTTPSession. Most people just ignore the problems (which strike rarely), some …

Read more

Posted Tue 07 October 2008 by mcherm in Programming

Threadsafe Java Servlets

Web servers are inherently threaded applications: their primary purpose is to serve up a website or web application to a large number of users. Essentially all of the frameworks for creating web applications, such as Java's "servlet" specification and all of the structure built on top of it, provide built-in …

Read more

Posted Tue 23 September 2008 by mcherm in Programming

The Secret to Making Chrome

ChromeGoogle has released a new browser, "Google Chrome". It features quite a few innovations: some user interface innovations include tabs above the menus and URL bar, a single field combining the URL and search fields, search and status bars that disappear when not in use and a home page showing …

Read more

Posted Mon 15 September 2008 by mcherm in Programming