Category Archives: General News

General information about or Patrick.

New Keyboard Layout Analyzer (Preview)

You can now try out a preview version of the new Keyboard Layout Analyzer. I completely re-did it from scratch. I know I’ve done that before, but I’ve learned a lot about JavaScript and HTML5 over the past two years and thought the application would be best served with a fresh start. Below you can see a screen capture of the new configuration page.

Configuration Tab

The biggest problem with the previous Analyzer was that it didn’t have the best configuration options. And even then, the top-based tab interface led to a lot of people not even noticing that configuration options existed. My main goal was to make configuration much more intuitive and flexible.

The previous Analyzer also assumed keys to be atomic and wouldn’t let you mix and match characters from different keys. For English keyboards this was mostly fine, but when I started learning about Foreign layouts and specialized layouts like the Programmer Dvorak, I realized I’d made a fatal mistake. The old code centered around atomic keys and even used image icons for the configuration display. For this version, I decided to draw the keyboard on a canvas element and to allow keys to mix and match characters. Theoretically, the new setup could even analyze unusual layouts like the Maltron layout, but I haven’t yet created Keyboard Maps for that layout, nor have done much testing in that area (though it’s a goal).

I also tried to make the app look more visually appealing and to provide a better user experience. The old layout was kind of amateurish looking, a number of people didn’t utilize the top-based tabbed interface, and the amount of scrolling you had to do on the output page made it easy to miss interesting information – not to mention that I was using pie charts, which are notoriously bad at presenting this type of information (I had a decent number of people email me asking me to switch to bar charts). I tried my best at making something that was reasonably ok looking, and I hope the new side-tabs making navigating the information easier.

I’ve recently taken on a lot at work, so that has slowed me down quite a bit, but I hope to finish off the rest of the output sections in the coming month. If you find any bugs or have any suggestions please let me know!

Coming updates

Photo By gureu

Two updates for the price of one today. It’s been killing me that I haven’t been posting more. I’ve been switching between projects a lot lately and I’m ultimately left with a lot of stuff that’s between 25%-75% done.

Coming up within the next month there will be a make-over/overhaul of an existing app. I also started some big updates for the baby naming tool, but temporarily shelved them when I started the remake of the previously mentioned app – though I’m not sure when these updates will be out. I’ve also been experimenting with FireFox addons, but I haven’t yet put together anything interesting. Sometimes I feel like I have programmer ADD.

Anyway, I just wanted to let you all know I’m still actively working on stuff for this site and haven’t forgotten about it. Sorry it’s been so quiet lately! Goes On One Month Hiatus (Updated June 2nd)

The Moon, Right Before Its About To Go On Break

Tired Moon

I try to make sure this site is updated at least once a week. Often times I let it slip to every other week. When it goes past that, I usually get kind of upset with myself.

With that said, I’m a little embarrassed that I’ve been slacking on the update front, however, a lot is going on in my life right now and I just haven’t had the time I’ve wanted to work on stuff. I currently have some new updates to the Typing Speed Test in the works and I’m about to start work on a new app for this site. However, since I’ve been pressed for time, I haven’t really gotten much done during the last few weeks. So rather than string people along who regularly check in, or make subscribers wonder why there haven’t been any updates, I figured I’d just take an official break. I’ll still be working on stuff over the next month (when I get the time), I just wont update until the start June.

If anyone has any update requests for the Typing Speed Test let me know. I’m leaning towards reworking it to be more oriented towards typing correct characters instead of typing correct words, but I don’t know yet. It seems like there are a lot of different ways to give a typing speed test and no one way really jumps out at me as the best way.

June 2nd Update: I’m still in the process of moving into my new place and I’m currently in “crunch mode” at work, so it’ll be a little while longer.

My First Try At Revamping My Typing Speed Test

I’ve just updated my Typing Speed Test. I basically just implemented the changes that people suggested to me. These included:

  • Allowing the user to type real sentences, for example, stuff from books.
  • Adding more text input options.
  • Cutting the default time down from 60 seconds to 30 seconds.
  • Not having the text scroll as the user types and letting the user see all of the text they will have to type.
  • Highlighting of the correct, incorrect, and the current word in the box displaying the text that needs to be typed.
  • Providing obvious instructions on what to do.

I was unsure about how to display the instructions, so I just put a yellow information box at the top of the page. The only other thing I could think of was to start the app with a Ext JS-style message box, but I figured that would get really old after a while. Also, the spacing at the bottom of the page is kind of weird because I wanted the tab sizes to be static. I’m not sure if that’s the best design idea, so that may change.

A possible visualization indicating which keys were typed fastest

A possible visualization indicating which keys were typed fastest

For the next release, I’m thinking about adding in more stats on how fast the user types. Maybe giving them info on what keys they typed fastest via a visualization or some bar charts. A line graph showing their progress over time might also be cool. However, JavaScript may not be fast enough to let me do this. While beta testing today I noticed that sometimes I almost got ahead of the app, and keeping lots of extra stats may slow things down too much, I’ll have to see though.

Thank you to those of you who gave me suggestions. I think the test is much, much better now.

If anyone has any more suggestions or finds any problems please let me know!

Oh, and one last news worthy item, I also updated the About page on this blog with some more info and pictures.

URL Structure Changes And Future Plans

One of the things I thought I had gotten right when I relaunched this site was URL structure. I thought I’d put all of my web apps in one sub-folder, all my programming stuff in another sub-folder, common libraries in another sub-folder, etc. However, since then I’ve realized my URL structure wasn’t that optimal. A lot of the sub-folders just made the URLs longer and the mashing together of words made a lot of the URLs hard to read. Examples:

So, to pretty things up a bit, I’ve decided to change how I’m structuring URLs. My new rule of thumb will be to separate words with hyphens and to only use sub-folders when absolutely necessary. Since domain names are supposed to be compact, I think it makes sense not to include them in my hyphen rule. The new locations of the tools talked about above are:

This seems like a rather superfluous change, but it was just one of those little things that was bothering me. I don’t plan to move anything else unless I make a major update to it, and all of the old links are 301 re-directed.

The one program I didn’t move was the Text Ascii Art Generator. This is because it has a bunch of links pointing to it and I didn’t want to mess up its standing in the search engines.

As for my current future plans, I hope to improve some of my existing web-apps. Unfortunately I was kind of tight on time this past week (I had to work past 9PM three times, I’ve got a lot to do at work), but I did do some mock-up Ext JS layouts for the Typing Speed Test program. However, after a little bit of thought, I think I’ve decided I’m just going to extend and change the one I currently have written. I hope to have a new version of it out within the next two weeks. After that, I’m going to try and refurbish another one of my apps.

Lastly, if anyone has any problems with accessing programs using the new URL structure (via old links or whatever), please let me know.

2008 Is Coming To A Close…

The end of 2008 is approaching. It’s been a good year for this site. I’ve learned a bunch of new things, and the site grew significantly in its content and daily traffic.

Right now I’m enjoying the holiday, so I don’t have any new content to add, however, I figured I’d post up my Goals for 2009:

  • Get good at JavaScript. It’s been a while since I’ve felt like I was really good at a particular language. At work, I was referred to as a “language person” by my boss several times since I seemed to be able to dive into any language they threw at me. Versatility is good, but sometimes I feel like I spread myself too thin. I could possibly get really good at Tcl, since I do a decent amount of Tcl programming at work, however, Tcl isn’t that fun of a language and it doesn’t easily do the things I would want to do (I could rant on and on about the pros and cons of Tcl, but I’ll spare you all).
  • Learn jQuery. Right now I’m learning Dojo, but I’d also like to learn jQuery, since I know my company uses and it appears to be the most popular JavaScript framework. Being familar with a couple of these frameworks is probably a good thing too.
  • Develop More Web Apps. I only released 4 total this year (not including ones that were re-done). This is well under the number I wanted to release. In the future I hope to release one a month, however, I don’t want to set myself up with an impossible goal, so I’ll just say I want to make more.
  • Read At Least 4 Programming Books. I’m going to leave 2008 having read 2 completely and 4 part way through. Books can be a great motivator and a good source of learning.
  • Join A Programming Community. I wasn’t able to relaunch the forums this year, however, I do still miss the community of the old forums.
  • Write A WordPress Plug-In. WordPress is the name of the blogging software I use. I’ve played around with it a bit, but I haven’t really tried writing my own plug-in.
  • Release Some Programming Examples. It’s been too long since I released one.

It’s 3:30AM right now, so there may be a few I’m missing, but I think those sum up my mind set right now. Professionally I think I’d like to get back into .NET programming (I miss VB, but for a hobby, I want to stay focused on something, and right now I’m more into web programming than I am into Desktop apps). However, I have no idea what I’ll be doing this next year or even how much I’ll be able to say about it.

2009 year should also be a big year for me personally. Right now I’m looking for a house with my girl friend, so I’m really excited about that. Also, my awful case of tinnitus (constant ringing in the ears) has gone down by about 75%-90% thanks to my switching toothpastes from one that contained Potassium Nitrate to one that didn’t (sensitive toothpastes typically have Potassium Nitrate), and I think it may go completely away. If you know anyone with tinnitus, be sure to pass on this bit of info.

Anyway, I hope you all are having a happy and safe holiday and I hope you keep checking back in! – What Should I Do With It?

Not many people search for the phrase “Patrick Gillespie”, but those who do find that the first listing is a short little article about Patrick Gillespie failing to register as a sex offender. Once you read it you can see that it’s not about me, however, it kind of sucks to know that that’s what people see when they Google my name. A few girls I’ve dated have even brought it up, usually just to make a joke, but it does solidify my concern that people find information about us by Googling us, and if someone is searching for me, I don’t want their first thought to be “Is this guy a sex offender?”

Today things took an interesting turn and I might be able to unseat that crappy website. I was notified by a fellow commenter at that was available for purchase. This is the first time I’ve ever seen this domain available, in fact it just went back on the market around 30 days ago. I think for the past 10 years or so some realtor has had it, or maybe someone just had it parked, either way, it wasn’t very popular or memorable in its previous form. Part of me wonders if the owner let it expire by accident, but I guess that sucks for them. Though I did leave and available for other Patrick Gillespies to pick up.

My main concern now is, what do I do with I could have it point here, but I kind of want to do something a little more creative, I’m just not sure what. Here are some ideas I was tossing around in my head:

  • Personal Blog: This would be the easiest thing to do. However, I already have a livejournal I don’t update much, and I can’t say much about the work I do at work, so I’d feel like this angle might not be very fruitful.
  • Topical Video Blog: Something where I could post videos to get across certain topics. I do a lot of online research, and sometimes I find some interesting videos on sites like youtube. A blog that assembled video information on various topics could be interesting.
  • Resume Site: A boring option, and probably something that wouldn’t rank well, but a decent filler idea if I can’t decide on anything.
  • A Weird Art Project: Something like this, something that just makes people scratch their heads, however, they explore it further because it’s intriguing.
  • Patrick Gillespie Information Center: Some kind of web app that aggregates information on people named Patrick Gillespie.
  • Puzzle: Maybe have the page just be a puzzle of some sort. Like a riddle that the user has to solve and if they do they can get some kind of reward.

That list basically makes up the ideas I was able to come up with today. Does anything jump out as a good idea? If anyone has any suggestions, please let me know.

Souping Up WordPress and TAAG Updates

I can’t believe it’s been almost 2 weeks since I last updated. It seems like every day I think about something new I could do for this site, yet I only get to do a small portion of what I think about. I have more stuff coming down the tube, though I’m not sure when I’ll have it out. Sometimes I think I’ve got programmer ADD. Anyways…

New TAAG Feature

I added a new feature to the Text Ascii Art Generator (TAAG) program that allows you to easily generate an image of your ascii art output. In the outputted text, you’ll now see a new link, next to the “Open In A New Window” link, that says “Generate Image”. When you click it, it’ll generate a PNG file of your output.

Currently this feature is only available for FIGlet fonts. I had some issues with getting some of the more eclectic Arial font characters to print. I’ve even noticed that the AOL fonts (which are done in Arial) don’t show up correctly unless I’m using IE, which I find a bit annoying. Anyway, let me know if you have any problems with this feature or if you see any obvious flaws.


After reading up a little bit on WordPress optimization tips, I decided to re-do this site’s sidebar. Mostly because I felt like the site related content should come before the outgoing links (sorry guys). I’ve also read that it’s good to have a large feed icon so I made one that blended in with this site’s color scheme. I almost went with this icon:

Which was generated using this nifty little program. However, I wasn’t sure how many people would actually understand what that thing was for, and it is kind of ridiculously big, so I went with something more traditional that had some explanation text (“Get Updates in a Reader”). I read somewhere about an experiment someone did that showed that people were more likely to click a link that said “get updates” than they were to click one that said “subscribe”. I think that makes a lot of sense too, since subscriptions usually cost money and involve you giving out some kind of personal information, which most people don’t want to do.

The other feed icons, the brand-name ones, I got here. I’m not sure how long I’ll keep them. They’re not ads, they’re just links to online feed readers. However, the big Google Ad below them is an ad.

Right now I’m not really sure if this is the layout I want for the sidebar. I may try some different configurations in the coming days, but I haven’t made up my mind. I want something that flows and looks nice and I think I’ve sort of got it, but not really. So you may see things change around a bit. If you have any suggestions/complaints/ideas, let know know.

I also added a feedburner counter. I’m not sure if that’s a good idea or a bad idea. However, I do appreciate the adds from those of you who have for some reason or another decided to subscribe to this site.

Subscribe to Comments

Lastly, I also added a new WordPress plugin that allows you to subscribe to certain comment threads on this blog. When you subscribe, you’ll get an email notification each time someone posts a new comment to that thread. I figured this would be pretty useful. At least I know it would have been if I’d had it when everyone was giving their updates in the Three Things to Say entry.


I received 10,765 visitors yesterday, which is pretty good for a small site like this one. Late in the day yesterday I checked my stats and kind of had to do a double take. As soon as I saw the number I knew something had to be up. I checked my referrers and noticed StumbleUpon had sent me a boat load of people.

After a little investigation I found the Text Ascii Art Generator (TAAG) app had for some reason obtained a lot of “thumbs up”‘s from the StumbleUpon community. Someone added TAAG to StumbleUpon months ago, and I received a flurry of visits for a few days after that, but it topped off at around 600, nothing close to the traffic I got yesterday. I’m not sure what caused this avalanche of attention (it seems to have started in the mid afternoon), but it was pretty cool. I haven’t had that many visitors in a single day since I was mentioned in the Lockergnome News Letter back in 2000 (which at the time was a very popular online news letter – now it appears to be some kind of blogging community).

Right now it’s almost 1:30AM and as I write this, and I currently have 1.5k visitors for today already. It’ll be neat to see how long this StumbleUpon bubble lasts. So far my site appears to have held up without any problems too, so site5 earns itself a plus mark in my eyes. 10k isn’t a whole lot, but it’s good to see that sudden bursts of traffic are handled without a problem.

What I’ve Been Doing

It’s been a while since my last update. I’ve been jumping between projects, probably a little too much. Last weekend I was doing some C# stuff, and this past weekend I did a little Javascript (which I’ll talk about below). After reading all the hype on Python, part of me contemplated rewriting the Image Color Palette Generator (ICPG) in Python just as a learning exercise, but I decided to drop the idea after a little more thought. I’ve got too much going on already, and it’s probably better for me to focus on a hand full of projects than it is to try and get a taste of everything.

Ajax Image Uploading

I got image uploading to work separately from the image processing in the ICPG program. Using this nifty jQuery plug-in I was able to set the program up so the user could upload an image and then hit the processing button. It actually worked right out of the box, which is something of a rare occurrence.

ICPG used to handle image uploads, but I kept getting time out errors because my host only allows 15 seconds of processing time for each php file before it kills it. By having image uploading occur separately, I think I can get around this.

However, even though I have something that works now, I’ve decided to wait on uploading it (sorry for being a tease). The new version seems kind of hacked together and since uploads have security issues, I figured I’d take some time to double check everything and try to speed things up as much as possible. I also want to tidy up the interface and get rid of the page reloading.

Well, that’s all for today, I should probably be getting to sleep now since I have to get up for work tomorrow.

JavaScript Snake

During my senior year of high school, I took an independent study course in C++. Originally it had been a full fledged C++ course, but since only 4 students signed up, the school put us all in its independent study program instead. The program worked by allowing students to work by themselves to create a project, and at the end of the semester each student would present their project to a committee to show that they had actually learned something.

On the surface it seemed like a great program, but the school did its hardest to keep us from learning anything. The lady in charge of the program forbid us from using the computers that had C++ compilers, claiming they were “too old”, and we weren’t allowed to install anything on the computers we did have access to.

At first we were resilient and installed compilers we found online anyway. But getting caught got us in a lot of trouble, and this lady was mean – at one point yelling at me for a solid 20 minutes for breaking one of her rules. This environment wore us down, and eventually we resided ourselves to knowing that we weren’t going to efficiently learn anything about C++ while we were at school, so we used a lot of our time to goof off.

It was during this time that I discovered the game of Snake. When I was tired of reading up on programming or dealing with crap from the lady in charge of the computer lab, I’d blow off steam by playing online games. Sometimes I’d spend the whole hour and a half period playing games. Of these games, Snake ended up being my favorite. I honestly sucked at it then and still suck at it now, but it was pretty mindless and actually pretty fun.

A few days ago, while working on some other JavaScript project for this site, I randomly started thinking about these olden days. After remembering how much I loved Snake I thought to myself “Hrm, I bet I could write a version of Snake entirely in JavaScript”. Since Snake is such a simple game, I decided to run with the idea and try and crank out a JavaScript version as quick as possible. You can see what I’ve got so far by following the below link:

That is fresh from my hard drive, and it’s a really bare bones version. I hope to add a couple more features and to optimize it some over the next week. Since JavaScript is interpreted, the game may be a little jumpy on some of your computers (let me know if you have any major problems). When it’s totally done I’ll probably also post the source as a JavaScript example. You could peak at it right now if you wanted, but it’s in a not-ready-for-prime-time state right now.

As an aside, under the hood the snake is a linked list. I googled “JavaScript linked list” for some quick linked list code and came across this link, which is actually pretty nifty. It’s worth a look if it’s been a while since you’ve done anything with linked lists.


TAAG was updated with a couple of fonts (they all start with “JS”) and I fixed up the feature that allows you to share messages you create with others.