All posts by patorjk

New Web App: Typing Speed Test

I figured a good companion for my Keyboard Layout Analyzer would be a Typing Speed Test. Right now the program is pretty bare bones, however, it does have a few neat configurable options. You can test your typing speed skills against typing words drawn from a database of the 978 most common English words or against words drawn from a database of the 1000 most common “SAT words”. You can also vary the time settings. You can type for 60 seconds or until you’ve finished typing a certain number of words.

In the next week or two I hope to add output stats about which fingers and keys were typed the fastest. I think I also want some more creative text inputs that a user can select from. Maybe programming code, text from popular books, and song lyrics. How fast you can type a given programming language probably isn’t that useful, but it might add to the fun factor. If you have any suggestions or comments about the app please let me know. It was written pretty hastily in my spare time during the past week, so it’s still a little wet behind the ears. However, I did test it in IE 6.0, IE 7.0, FireFox 3.0.3 and Opera 9.24, so it should work fine.

DoFollow WordPress Plug-in

As a way of saying thank you to people who comment and as a way to encourage more people to comment (as long as they don’t spam), I’ve installed the DoFollow WordPress plug-in. Basically, it makes it so linkjuice is passed onto the websites of people who comment. I will nofollow links of people who I think are being spammy, but I figured I’d be a nice/easy way of saying thanks to the people who do decide to say something.

Happy Halloween

Lastly, since the 31st is approaching…

My pumpkin is on the far left, it’s supposed to be two bats. I should probably stick to programming… it was a lot of fun though. If you have a few extra hours, it’s worth revisiting. For me, it’d been almost a decade since I’d carved a pumpkin.

A Round Up Of Updates

Listed below are some small updates that have happened over the last week.

  • The Color Fader now has a neat fade-in/fade-out interface. I figured this was more intuitive than telling the user to scroll down every time they hit the “generate” button.
  • The Keyboard Layout Analyzer now has information explaining what it is and contains a handy chart mapping fingers to keys.
  • I helped out Franz Tarr on a neat little VB app that lets you set the transparency of windows. It’s pretty simple and comes with its source code. I only helped out and didn’t write the app. Since Franz seemed like a cool guy I told him I’d mention his program in my next site update.

Somehow I felt like I did a little more than that, but that’s all that’s coming to mind right now. New stuff is being worked on, however, I’m not sure when it’ll be ready to be posted up.

Is Someone Pretending To Be You Online?

Hopefully I’m not making myself seem like too much of google fanboy, but the other day I found a neat little tool by them called Google Alerts. Google Alerts allows you to monitor search results for key phrases you input to it. When a new webpage gets indexed for that key phrase, and it ranks above a certain threshold, you get an email telling you about the webpage. Though you can schedule these emails to only come at certain intervals. The idea is that you can get the latest info on topics you’re interested in. I thought it sounded useful, so I signed up for a couple of key phrases.

This morning when I opened by email, I found an alert telling me about this website. When I clicked it I found someone with the username “patorjk” was asking a question about Excel. Below you can see a screen capture of the post, my mouse is hovering over “patorjk”‘s username in this shot.

At first I naively thought to myself “whoa, another patorjk, I wonder if its a married couple or something…” So I clicked the username to see the user’s profile. Lo and behold, the user’s profile stated that their name was “Patrick Gillespie” and that they were from Baltimore. What the hell!? The statistical odds of there being another Patrick Gillespie with the internet pseudonym “patorjk”, who lives near Baltimore and programs computers, are basically zero.

I should also note that I had only been awake for about 2 minutes at this point, so I was kind of groggy. At first I thought it had to be some kind of joke, like that fake presidential candidate video going around, but everything I looked at pointed to it being real. So then I wondered what the exact motive for this person was. Was it sinister? Was it that the person was just lazy? Did the person just latch onto my name for some reason (maybe they have a patorjk shrine in their room)? I couldn’t really tell from their posts, but I did notice that they started signing them with the name “Murali Krishna”. So maybe at some point they decided they wanted to be themselves again. patorjk.com doesn’t get massive amounts of traffic, so pretending to be me is really weird and makes me wonder about the mental state of the person. I’ll report the user to the website’s owner if they don’t voluntarily delete their account or change it so it doesn’t look like they’re trying to be me. However, I figured I’d give them a chance to do it themselves or to at least say their piece, since there may be a mix up of some kind somewhere.

Anyway, besides keeping up with the latest trends, it appears as if this tool can also clue you in on when weird stuff is happening regarding your name or website. Whether its someone talking about you or someone trying to pass themselves off as you – whether they’re trolling, trying to slander you or trying to steal your identity. If you run a website or have an online pseudonym, I’d recommend creating a Google Alert for them. And although this post has focused on the negative, most alerts will probably bring you positive news.

Sept. 2, 2009 Update: About a month after this post was made the site owner contacted me to figure out what was going on. We did a little detective work and discovered that the problem was due to some database issues he had when he moved his site. Apparently I had created an account for his forum around 7 months before making this post, but never made any posts (I probably created an account thinking I’d post something, but then forgot about the site). When he moved the site, some accounts ended up getting mapped incorrectly, and the “patorjk” account ended up being one of them. He had been fixing the accounts manually when people complained, but “Murali Krishna” didn’t come forward wondering about his old posts, so they remained under “patorjk”. When Google saw the newly updated posts had “patorjk” in them, it alerted me via its Google Alerts. So “Murali Krishna” isn’t an impostor, his posts are just the result of a database mix-up.

When what had happened had been figured out, I think the webmaster was kind of embarrassed, though he didn’t say much. I didn’t want to do a post saying “hey, look at this guy’s mistake”, so I figured I’d say what happened if someone asked me. However, this post still gets a little bit of traffic and the “Murali Krishna” posts are still under “patorjk”, so I figured I’d put a small little update in this post for those of you who are curious as to what happened afterwards.

Google App Engine Talk

Today I went to a talk at UMBC on the Google App Engine, a product from Google that came out earlier this year. The talk was given by an old friend of mine from Grad School who now works at Google. I was his partner for an Operating Systems project where we built a distributed file system using Bamboo and for a Database project where we built an Amazon-like online grocery store. He’s a pretty smart guy and is usually on top of the latest stuff, so I figured it’d be a really good talk.

The Google App Engine basically allows web app developers access to some neat Google API’s and to have Google servers to host their application and its data. The main things I got out of the talk were:

  • Relational Databases don’t scale well. If you create an insanely popular app, your Relational Database could end up becoming a bottle neck. Google got around this by creating their own Database Management System called BigTable. The Google App Engine lets you use BigTable for you apps.
  • BigTable uses GQL, an SQL-like query language.
  • Using the Google App Engine is free, however, there are certain storage and bandwidth limitations. I’m assuming that in the future they’ll charge users to go beyond the set limits, however, currently you cannot buy more space or bandwidth.
  • If your application requires users to verify themselves, you can set things up so that users log in with their Google username and password.
  • The same Google API’s that are available to in-house Google developers are available to you.
  • Currently all Google App Engine apps have to be written in Python, which kind of sucks since it adds a barrier to entry. They do plan to support other languages, but that will be at some unknown point in the future.

I came away from the talk pretty impressed, however, I think I’ll wait to see what other languages they’ll support before trying it out.

Besides the talk, it was neat to walk around campus again. It was a nice cool Fall day and everyone walking around seemed pretty laid back. I miss being able to get up at noon and then to waltz over to the food court to get some lunch. Everyone looked really young too, I wondered if I looked old to them. The experience reminded me of when another friend of mine stayed in my dorm room for St. Patrick’s Day after having been out in the working world a year. It seemed refreshing for him to be out walking around the campus again. He kept joking about wanting to be a life long college student and to get all of the degrees the school offered, which I think would be a lot of fun, if it paid well and people didn’t age (you wouldn’t want to be the old creepy guy living in the dorms).

Anyway, if you have any thoughts or opinions on the Google App Engine feel free to share them. Right now I can’t recommend it one way or the other, since I haven’t tried it, but from all appearances, it looks really cool.

Keyboard Layout Analyzer Now A Mashup

I just finished a very small glass of Disaronno, an Italian liqueur. I’m never sure if you’re supposed to take shots of liqueurs or if you’re supposed to drink them straight. I don’t think I’d want to do a shot alone, and Disaronno is really tasty, so I figured I’d use it as a night cap. Anyway, it’s almost 1:30 and tomorrow I have a doctors appointment at 8 so I should probably get to bed really soon. However, I’m having a hard time getting myself to hit the hay since I’ve been almost finished with my Keyboard Layout Analyzer for a few days now (I decided to rename it from Typing Analyzer since its really analyzing the layout and not the typing).

I’ve had a lot of ideas over the past two weeks, and rather than go in depth on every detail I’ll give you a really quick run down of this app’s updates:

  • Pie chart statistics were added for finger, hand, or keyboard row usage. The pie charts were created using Plotkit, an awesome javascript library that uses Mochikit. I don’t know much about Mochikit, but according to Google Trends and its website’s own lack of updates, its future doesn’t look too promising. Which is a shame, since Plotkit is really cool.
  • The hot spot visualization was fixed for IE6 users. Apparently IE6 does not like transparent PNG files.
  • A tab view was set up to make viewing the data easier. The tab control comes from Yahoo’s kick ass YUI library.
  • A fade-in/fade-out effect was added when processing data. I figured this way of displaying information would make more sense to the user. I noticed when I showed my parents to app my mom didn’t realize she needed to scroll down to see the output. This feature doesn’t work 100% of IE yet, but I’m deciding it works “good enough” for now.

To see the app just click the following link: Keyboard Layout Analyzer

Let me know if you have any problems or have any suggestions.

I Feel Kind of Nerdy

So I was thinking to myself today, “When would I ever use the Typing Analzyer?” The only situation I can think of would be if I got into some kind of argument over which keyboard layout was best, and even then I think I’d be kind of hesitant to play that card. Oh well, I think this project is one of those ones that is neat to make, but isn’t really that useful. Hopefully it can give passer-byers a couple minutes worth of amusement or possibly get someone to check out an alternative keyboard layout.

Besides questioning the relevance of what I’ve been doing, I’ve also made a few updates:

  • Added “Left Hand Dvorak” and “Right Hand Dvorak” layouts
  • Updated layout graphics
  • Added the Shift and Tab keys into the calculations
  • Fixed the IE issues (I’ve gotten in the bad habit of only checking my work in FireFox)
  • Added a personalized keyboard layout to the output

I stole the last idea from Tritonio, who created his own app for layout generation. I thought the idea was really really cool so I put it in (I’ll make sure and give you a link on the app’s page, once I straighten out the “Other Typing Resources” section). Right now the generated layouts are kind of silly, though they have some semblance of being correct.

I aim to finish up this app next week. I’m going to tweak a few things and then add in some stats and pie charts on finger usage. After that I’m going to move onto a new web app. After a brainstorming session earlier this month I’ve got a collection of neat ideas I want to explore. Part of me wants to do a web app a month until the end of the year, but I don’t want to set goals I’m not sure I can complete. I’ll do the next one and then decide where to go from there.

New Web App: Typing Analyzer

I’ve created a new web app that allows you to analyze and visualize the typing patterns you create when you use a Qwerty, Dvorak, or Colemak keyboard layout. You can find it here: Typing Analyzer.

If you have no idea what I’m talking about, the keyboard layout you’re currently isn’t the only one that’s out there, and not all keyboard layouts are created equal. Some are better for your wrists and allow you to type faster and with more comfort. Here are the layouts of the keyboards I mentioned above:


Qwerty


Dvorak


Colemak

My interest in keyboard layouts came after I read a Discover magazine article entitled “The Curse of QWERTY”. The article tells the story of the Qwerty and Dvorak keyboard layouts and makes a compelling case for switching from a Qwerty layout to a Dvorak layout. Here is a quick summary of its most important points:

  • The Qwerty layout was created in the early 1870’s before touch typing and without speed or comfort in mind.
  • The Dvorak layout was created in the 1930’s and is based on years of research. It takes speed and comfort into account.
  • On average, the left hand does 56% of the typing when a Qwerty layout is used. With a Dvorak layout, the right hand does 56% of the typing.
  • The Dvorak layout forces you to alternate hands more frequently when typing, this causes you to type faster.
  • Users type fastest on the home row. With a Qwerty layout, only 32% of your typing occurs on the home row. With a Dvorak layout, 70% of your typing occurs on the home row.
  • It’s hypothesized that the Dvorak layout will make it less likely that you’ll develop Carpal Tunnel Syndrome (CTS).
  • Anecdotally, people who develop carpal tunnel syndrome seem to find relief when they switch from a Qwerty layout to Dvorak layout.

There are more reasons, but those were the ones that stuck with me. I was so convinced by what I read that I switched my work and home keyboard layouts to a Dvorak layout by configuring some Windows XP settings in the control panel (to see how click here). This lasted for about 6 days (3 of those were over the Labor Day weekend), and then I had to switch back since learning the Dvorak layout was slowing me down at work. I also discovered that the Dvorak layout made all the nice Qwerty keyboard shortcuts (Undo, Cut, Copy and Paste) virtually unusable. This was a big minus since I use those shortcuts constantly. The Dvorak layout also over worked my right pinky. I found myself having to take typing breaks, something I hadn’t done since high school.

After talking to someone who had Carpal Tunnel Syndrome (something I’m worried about getting), I learned about yet another improved keyboard layout that preserved Qwerty’s bottom row short cuts and didn’t put massive amounts of stress on the right pinky. This layout was known as the Colemak. Unlike the Dvorak, the Colemak layout is relatively new (developed within the last 5 years), doesn’t have a lot of research behind it, and it doesn’t have a very large following (online estimates put the number of users between 650 and 1,300). It also wasn’t on my computer at work (I can’t install things on my work computer) so in order to use it, I’d have to talk to some sys admin people. However, the layout looks really promising.

All of this research is what motivated me to create the Typing Analyzer. I wanted to visually compare my typing patterns with the different layouts and get some stats on what hand and which fingers I was using the most (a feature I’ll put in soon).

Hopefully the user interface is straight forward enough. Its in the same vein as the Image Color Palette Generator and the Color Fader, but with some adjustments. I decided to start the page off with a section explaining which fingers you use for which keys, since I know a lot of people don’t know the exact fingerings. In fact, I know people who constantly use a computer yet still hunt and peck for keys. After the chart comes the application’s controls and after that comes a section for the output.

I have more features in mind for this program, but I figured I’d release what I had now just to see how it’d be received and to see if anyone had any suggestions. The other ideas I have in mind are:

  • Allowing a user to enter in a feed URL, so that the program can analyze all of their blog posts instead of having the user paste the text into the text box.
  • Give stats on finger and hand usage. Possibly also include pie charts.
  • Give recommendations to the user on which keyboard layout would benefit them the most.

Oh…

And I haven’t forgotten about patrickgillespie.com. I’m just not as excited about it as I was 10 days ago. I’m going to let myself mull over some more ideas before I take any action. I still don’t think I have the right idea for it yet.

Thinking Out Loud

Right now my plan is to make patrickgillespie.com a depot for random projects and ideas. I was thinking that it might make sense to move some of my more random content (the miscellaneous section and Javascript games) this new site. That’d allow me to narrow the focus here to tools and programming.

For this new site’s interface, the main idea I was throwing around in my head was for the user to see a bunch of images floating through space. Each image would represent a piece of content and none of the content would be related. The idea would be that this was just a bunch of random stuff floating through cyberspace.

I whipped up a quick prototype using Van Halen album covers, which you can see by clicking the above link, and was unimpressed with the outcome. The movement ended up being pretty jumpy, and I’m not sure I like how the images just disappear when they “hit the screen” (when they do that they’re reset to way back in the distance). I’m starting to think that this kind of stuff is best left to Flash. There’s also some other issues, but since this is just a prototype I didn’t bother with certain details.

Right now I’m thinking of stealing my slider puzzle’s interface for patrickgillespie.com since I liked how that came out and nobody ever uses that thing anyway.

I’m Not Dead

I’ve had a hectic past few weeks. Not the normal kind of “oh man I’m stressed”, but the “holy shit I’m stressed” kind of weeks. Things appear to be calming down now though. I’ve been thinking about new things I can do for this site, but all I’ve got so far are a bunch of half finished ideas and projects. Things coming in the near future (next month or so): A new version of the Image Color Palette Generator, the source code to that project, and a rough draft of patrickgillespie.com. The patrickgillespie.com project is the most fun, so that may be out first.

Web App URLs

I’ve decided to change the URLs to my web apps so that they are one level down. Basically, I think having someone type “patorjk.com/software/taag” is a little much. It’s easier to remember “patorjk.com/taag”. The “software” text doesn’t really add much value. I haven’t moved them all yet, and when I do I’ll 301 redirect the old links, but I figured I’d let people know my reasoning for doing this.

Exits

Months ago I removed my links page. I did this because I was replacing it with the links you see in the left panel under the headings “Interesting Blog Links” and “Programming/Hacking Links”. I’ve now decided that it was a mistake to do this. I’m going to keep the links in the left hand panel, but I’m also going to add the links page back in. It will now be called “Exits“. I haven’t had time to fully populate this page, but you can expect the Exits page to grow over the next few weeks. In the mean time, if you’re bored, here are some amusing sites to waste your time with:

Where is Bob? Tales of an Absentee Manager – A really funny blog about a manager named Bob who terrorizes his IT employees. I get the feeling this is fiction, but it’s still a fun read.

The Trolls Among Us – One of the most fascinating articles I’ve read in recent memory. A reporter dives down into the world of internet trolls.

Riddle Me This

Lately I’ve been exchanging riddles / mind puzzles with some coworkers of mine. I’m not really sure how it started, but one ended up on my white board at work and before I knew it everyone wanted to know the answer or had their own riddle to challenge me with. I’ve collected up some of my favorites. If you’re unfamiliar with one and you solve it, feel free to post your proposed solution as a comment.

As far as site updates go, I have some coming, but I’ve had a distracting past couple of weeks. Since January I’ve been suffering from tinnitus (ringing in the ears), but it didn’t really get bothersome until the middle of last month. I ended up going on a huge research quest for a cure, but it appears there are only things you can take to prevent tinnitus (NAC, antioxidants) and nothing that’ll really cure it. Right now it’s at a volume I can deal with, so I’m fine, but I want to caution everyone and let you know its important to take care of your hearing. Also, avoid things that are too good to be true. There seems to be a lot of snake oil out there when it comes to tinnitus.

Anyway, enough of my personal problems, on with the riddles…

1) In front of you there are ten boxes of books and a digital scale large enough and strong enough to hold all of the boxes when they’re filled with books. Inside of each box is ten books. In nine of the boxes, the books weigh 1.0 pounds each. In one of the boxes the books weigh 0.9 pounds each. Using the digital scale only once, how do you determine the box that contains the books that weigh 0.9 pounds? You may take the books out of the boxes and you can assume the weight of each box is 1 pound.

2) You’re one an island and you want to get off of it. There are two caves off the island. One leads to certain doom while the other leads off the island. In front of the caves there are two guards. One always tells the truth and the other always lies. You do not know which one is which. You may ask one question which they both will answer. What question can you ask that will guarantee you pick the right cave to get off of the island? [Editors Note: After much discussion, we discovered there were actually multiple answers to this question, so if you know the answer, try to come up with another one]

3) Four men are standing in a row. They are ordered tallest to shortest. The tallest man is facing west while the other three men are facing east. Each man is wearing a hat that is either black or white. Each man knows that there are 2 black hats and 2 white hats, however, they do not know the color of the hat that they are wearing. The tallest man cannot see anyone’s hat, the next tallest man can see the hat color of the two men in front of him, the next tallest man can see the hat color of the man in front of him, and the shortest man can see no one’s hat color. Imagine that the hat ordering from tallest to shortest is: black, white, black, white. Where the tallest person is wearing a black hat and the shortest person is wearing a white hat.

None of these men can move around, however, they can talk to each other – though they do not have to be truthful when answering each other’s questions. As soon as a man figures out his hat color he screams it out (and he cannot scream unless he really knows his hat color). Which man can figure out his hat color and why? [Editors Note: This one is easier if you draw it]

4) You have 25 runners. When raced, they always perform the same, and no two runners perform identically. You can only race 5 at a time, and once a race is over, the only information you get is the order that they finished in. How do you determine the fastest, second fastest, and third fastest runner using only seven races?

5) This was the puzzle that started it all. No one I’ve told it to has been able to figure it out. And it always takes a while for the answer to make sense.