January 2005

Looks like Mr. Bixler and President Bush are kindred spirits in more than just a political sense. Click here to see what I mean.


Mind Hacks is a site worth checking out. The site’s schtick is “Neuroscience and psychology tricks to find out what’s going on inside your brain.” It’s a lilttle more academic that personality, yet remains pretty readable and interesting.

Today’s talks about psychological profiling specifically in the area of arson.

Profiling usually hits the headlines when applied to murderers or sex offenders and is often used to narrow the number of suspects in a criminal investigation.

It is also used to look at ‘risk factors’ in certain sorts of criminal behaviour, to allow policy makers and community leaders to make social changes to reduce the risk of criminal behaviour in the community.

If they can profile murderers, sex offenders and arsonists, couldn’t we profile businesses and people within businesses to better target potential clients?

At the very least, it would be pretty sweet to have a forensic psychologist on staff.

Behold the TRS-80. This thing of beauty was my first computer. I was a jubilant 10 year old when I unwrapped a very big and heavy box on Christmas morning, 1984.

Mine didn’t have the two 5 1/4 floppy disks you see on the right. Instead I used a household tape recorder and 60 minute casette tapes to save data and load programs. I learned how to program in Basic (Visual Basic’s predecessor) by typing in the cryptic program code included in the create your own story books (for extra nerdy kids) my mom would buy for me.

For the sake of visual comparison, here’s my current computer.

Note the similarities. On both, the keyboard is attached to the screen. Neither has a floppy drive. Both have brought me sheer frustration as I spent hours trying to write functional programs. Both have brought me sheer zen like euphoria as I spent hours trying to write functional programs. As wise King Solomon once said, there is nothing new under the sun.

I spent my Saturday morning learning how to post pictures on a weblog. What was that thing about the sun again?

I’ve always believed that Internet Explorer seems more vulnerable to attack primarily because it’s the most commonly used browser. If I’m writing a program to attack the most suckers, I’m going to target the browser most suckers use. Now that Firefox is growing in popularity, I’m certain it will quickly prove the following two things:

1. It is every bit as insecure as IE

2. Open source programmers will prove themselves no more responsive than Microsoft.

Slashdot links to an article detailing 3 new security problems affecting Mozilla on ALL PLATFORMS. While only the third issues seems really serious, I think this might be a sign of things to come. Comments from the peanut gallery?

I’ve been looking into Google suggests and I’ve been able to reproduce how they do it.

Front End:

The key behind the whole thing is a little something called XMLHttp. It’s a nice little control that lets you request information from a server just like a browser but behind the scenes. Since it’s behind the scenes it doesn’t require a page reload and is very fast because of it. Think of all the things you can do with. You could validate that a user has entered a valid item number when they leave the field before they even press a button. It makes the whole user experience much more interactive and more like a desktop application. To use the autocomplete you simple put the following in your html page.

<SCRIPT src=”/timesheet/js/ac.js”></SCRIPT>

<SCRIPT>InstallAC(document.form, document.form.project, document.form.addbutton, “search”, “en”);</SCRIPT>

Back End:

I’m not 100% sure how google does their thing on the back end but I came up with a really good approximation. The solution I came up with loads a Trie datastructure on server load with the following code:

ArrayList list = PRJ.getAllProjects(); // get projects from db

trie = new Autocomplete(true, list); //load trie

so basically you create an Autocomplete object passing in a list of Strings. It’s loads the trie and it is kept in memory. Tries are very very efficient. If you add the words ‘banana’ and ‘bandage’ to a trie, the ‘ban’ part is only stored once. I figure the 10k works I used takes up about 200k of memory.

Then when you are ready to use the trie(ie. when the user types) you do a lookup like so:

String qu = request.getParameter(“qu”); //get what user typed

out.print(trie.getCompletion(qu)); //do lookup and send response

This looks up the string typed and sends a response to the webbrowser. So if the user types ‘ba’ then the trie lookup would find ‘banana’ and ‘bandage’ and return a formatted response to the web browser.

The next time you enter your time on the online time entry program you’ll see what i’m talking about. If you have any questions about it just let me know.

If I were to make a list of the top ten job related nuisances of 2004 spyware would undoubtedly be at the very top. By spyware I mean adware, browser hijackers, spyware, etc. During a handful of weeks, I spent more than 25% of my chargable time trying removing spyware. I often felt like I was playing that gopher game where as soon as you hit one another pops up in a different place.

Though I am in a position to be nothing more than a critic, there were simply no effective tools available to help me fight the battle. Spybot and Ad-Aware were helped bear some of the burden, but were at best 50% effective in identifying problems. Here’s how I would go about fixing problems:

1. Ask (force) the user to use Firefox as their primary web browser. I do this not because I have any illusions that Firefox is an inherently safer browser, but because at this point in time it doesn’t seem to be a major target for the criminals who distribute spyware.

2. Let Spybot and Ad-Aware do their thing.

3. Look at the Processes list in Windows task manager. I would sort the list by image name and google and processes I couldn’t immediately identify. Generally the first site that would appear in the list was the WinTasks process library at LIUtilities. This site was a great help in identifying almost every process running on my computer and would often identify and help me remove threats.

4. Finally I would boot the computer in safe mode, run the registry editor and look at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. This is the list of programs that run at Windows startup. Again, if I saw anything that didn’t look familiar, I would google it and remove any threats.

Even after all this, I would often hear back from users within a week because another gopher had popped out of its hole.

Which brings me to the actual reason for this entry. A post at Slashdot yesterday directed me to a new Microsoft AntiSpyware product. The poster refers us to an article he wrote to give his first impression.

I am very excited by this development. I don’t hate Microsoft and so I could care less who among the big companies solves this problem. I just want to see progress being made and because this is a bog, widespread problem, it’s going to take a big, widespread company to develop a solution. Competition is a good thing.

A few years ago I stopped by a convenience store to pick up a drink. As I walked to the counter, beverage in hand, the kid working at the counter avoided any sort of contact with me. He didn’t look me in the eye or say anything. He conducted the transaction in the most impersonal way imaginable. He handed me my change and walked away. I stood there surprised by the whole experience and laughed before turning to walk out of the store. Apparently my sarcastic laughter irritated him and for the first time since I walked in to the store he spoke to me. He asked, “What’s your problem?” I responded that I couldn’t believe he didn’t even say “thanks”. His reply was” “Thanks for what?”

I know he was probably having a really bad day or I reminded him of someone he didn’t like. I’m sure his question was one of frustration and not of ignorance. How could he not grasp the economic reality of what just happened. I bought a drink which put money in the pocket of the business owner who in turn puts money in to that kid’s pocket. Without customers there is no job and no npaycheck. This is a fact Ron Artest would do well to remember.

Last night I took a client out for dinner. We each had a great steak, a few glasses of gin and a lot of laughs. The dinner cost about $70 which is peanuts in terms of the amount of business we’ve done together. It’s a creative and relatively inexpensive way of saying thanks and the token of appreciation was well received. Thanking a customer for their business is a discipline that should be creatively and frequently practiced.

Next Page »