Category Archives: General News

General information about patorjk.com or Patrick.

A Quick Update

I’ve finally got around to putting some actual functionality into the slider puzzle interface:

http://www.patorjk.com/games/sliderpuzzles/

It should now function as a complete web app. There’s one last feature I’d like to add, but I may wait a while. I’m itching to start something new. I’ve got a couple of ideas floating around in my head for my next project, but I’m not sure which one to pick yet.

I wish I had more to say, but I’ve had a long weekend and I haven’t really had a chance to get my thoughts together… and now it’s 1am so I should probably get to bed. Oh well I suppose. Not every update can be full of wordy goodness.

What patorjk.com is

Is it a blog? Is it a software/programming site? Is it collection of random junk?

I’ve actually spent the last month wrestling with the idea of what I want this site to be. When I initially restarted this site I thought “ah ha! I’ll be a software site that releases kick ass tools!” But that’s not really what I want, and that’s not what I’ve been doing. Creating nice tools is part of what I want, but I like messing around and making other stuff too. So this site is really more of a creative programming outlet for me.

Looking back at the past few month’s posts, it was probably a mistake for me to write about certain things and to jump around so much (this mostly refers to July). I’m still trying to get a feel for what I should and should not post in this blog. There have been a couple of times where I mentally wrote a post in my head or even wrote a post in MSWord, and then later discarded it. This site’s theme is a little fuzzy, but after giving it some thought, it would destroy this site’s pseudo-focus if I started making posts on new CDs I bought, bad dates I’ve had, or even amusing stories about former co-workers. Topics like that really belong in a personal blog, something I don’t want this to be. Personal stories should spice certain entries up, but I don’t want this to be like livejournal. I’m sure none of you care about my trip to the renaissance festival.

I could make this a simple news blog for the site, but that would be a little boring. News about the site should play the most important role though. So in the end, I want to do a blog that focuses on news for the software I write but also deviates into topics I find interesting in the computer world with an occasional amusing personal anecdote. Probably not the best hook for obtaining a large audience, but I’d still blog here even if no one read it (it’d be kind of sad, but I’d still probably do it).

Another thing that’s been weighing on my mind is how unrelated all the software I’m producing is. Each new release feels like it becomes its own island within the site, with its own visitors who will probably only look at the blog every once in a while and then wonder why I don’t stay more on topic.

The same people who like my API spy don’t seem to be the same people who like TAAG or my color fader. I know because my visitor count temporarily went down after I released those two programs. The pattern is always that I have a dip in visits after a program is released, and then, if the program doesn’t fall into the abyss of the internet (never to be seen or downloaded again), it rebounds and finds its own audience. TAAG did this (as did the color fader – though to a lesser extent) and it’s now twice as popular as this blog. But do TAAG visitors read the blog? Who are these people? Will they understand me if I write a post on a new algorithm I thought up? Or if I explain the Javascript behind a certain feature?

Probably not, but I can’t please everyone. I think I’ll write this blog with programmers in mind as the main audience. But I’ll try not to use so much jargon that it’s unreadable to those outside of that realm (sort of like how all of the September entries have been).

Anyway, this post is probably more for me than for anyone who will read it. Sometimes thinking out loud helps ideas come into focus. Though hopefully by reading this you got some insight into what I want this site to be.

Oh! – and lastly, I want to stress that this is a content-oriented site, not just a commentary-oriented site. I blog, but I make stuff too. Hopefully stuff that is somewhat interesting.

TAAG: Test All

A “Test All” feature has been added to TAAG. It will let you test all 281 fonts. You can access it by selecting the font called “__TEST ALL__”. It’s not as fast as I’d like, but it’s not terribly slow either. I debated uploading it but I finally decided to give in. I’m still trying to get a feel for the kind of load I can put my server under. Most of the work for this feature is done with Javascript, but the font files are still parsed and loaded on the server. That doesn’t seem like a whole lot of work, but I’m on shared hosting so it’s unclear how much is too much. Also, this new feature is still in BETA, so it may be a little buggy. Let me know if you have any problems.

After this, there’s only one more feature I’m interested in adding to TAAG. And it’s one of those things that most people wont notice and it’ll be a pain in the ass to program. So it’s way down on my list of things to do. In the meantime I’ll probably just keep working on other things and, when the mood strikes me, look into ways of optimizing TAAG.

That reminds me, I was reading a rather interesting article earlier this week on the death of Gmail:

The Death of Gmail

The cliff notes (possibly a little over simplified): History shows that utilizing new but bloated technology pays off in the long run because hardware keeps getting faster and faster and/or people find ways of speeding it up. It’s better to be ontop on the new technology than to be stuck working within the constraits of the old technology.

It’s an interesting read, but I don’t think the people at Google are so smug that they’d let a new technology slip by them like that. Plus, I don’t think most people would be so quick to give up their Gmail addresses.

3-D Javascript

One of the reasons I liked Flash was because I could easily create 3-D interfaces. I was initially going to use it when creating the main interface for my slider puzzle program, however, it suddenly came to me that I could probably use Javascript instead. Today, after playing around a bit, I was actually surprised at what I was able to create:

http://www.patorjk.com/games/sliderpuzzles/

Note that I’ve only tested that on the latest versions of IE, Firefox, and Opera. The code for that wasn’t too hard to create (it’s still a little buggy and I’m not done with it yet though), I kind of wonder why there aren’t more 3-D Javascript interfaces for websites. I would think it would be much more practical than Flash since the user wouldn’t need a plug in, and the script could react to the browser resizing.

I think this slider puzzle app will unfortunately be one of those programs that I enjoy writing more than people enjoy using. It’s hard to get excited about doing puzzles of famous art. After thinking a bit more a Sarah Michelle Gellar puzzle gallery would be pretty cool, but I wouldn’t want to risk the copyright issues. I wonder if the gallery sites have deals with the photographers or if people just post up the images ignoring the copyright (hoping to fly under the radar).

Slider Puzzles

A long time ago I used to have a Sarah Michelle Gellar Javascript puzzle up. I made it one day while I was bored and trying to learn Javascript. I figured it’d fall into the abyss that a lot of my Javascript projects fell into (anyone remember that ghost clicking game I had?). Oddly enough though, it ended up generating quite a few emails. Mostly Sarah Michelle Gellar fans. Later I built a more advanced slider puzzle, but it was total crap and featured Britney Spears (not the best choice) and I’ve always wanted to write a better one. So on Sunday I sat down and churned one out. One that would allow me to do lazy updates by automatically looking for new puzzle images (keeping the data and the script separate).

Originally I was going to make a Sarah Michelle Gellar slider puzzle gallery – but then copyright issues came to mind and I decided to not to risk it. Plus I thought it might look kind of creepy for me to have a large, shrine-like Sarah Michelle Gellar puzzle gallery on my site.

My next choice was to do Salvador Dali paintings, but it turns out his stuff is under copyright too – and for the next 50 years at that. The ARS, who now manage Dali’s copyrights, seem to be pretty active in going after potential violators. Not the kind of people I want to tangle with.

So instead, for my first slider puzzle gallery, I decided to use the works of Paul Cézanne. He’s a famous impressionist painter whose paintings often pop up in computer graphics journal papers, since the images are public domain. You can see the resulting slider puzzles here:

http://www.patorjk.com/games/sliderpuzzles/

I think I’m going to try and have a variety of galleries since it simply involves finding free images to use.

As stated before this script is relatively new, so it may be a bit buggy. Let me know if you have any problems – or if you have any suggestions!

New App This Friday / Programming Challenge

New App Coming

On Sunday I sat down and programmed up a new online app. I might tweak it a bit between now and then, but as of right now it’s essentially done. I’ll post it up later this week – most likely Friday or Saturday. Since I wrote it in one day, you can assume it’s pretty small, it’ll be cool though! I actually really like it (and I don’t like everything I make). It was on my list of “stuff to do on a rainy day”. Sunday wasn’t actually rainy, but I was tired and I realized I hadn’t released anything here in a while, so I thought I’d take a stab at it.

I had been working on another online app, which I’ve mentioned a few times here before, but it was a bit too ambitious and I’ve lost interest. So it’s offically been abandoned for the moment. I may come back to it later though.

Programming Challenge

While reading some more of Steve Yegge’s blog entries, I ran across a very interesting programming question. It came from an entry Yegge wrote on doing phone interviews. He would always ask potential candidates the following question (or a variation of it):

Last year my team had to remove all the phone numbers from 50,000 Amazon web page templates, since many of the numbers were no longer in service, and we also wanted to route all customer contacts through a single page.

Let’s say you’re on my team, and we have to identify the pages having probable U.S. phone numbers in them. To simplify the problem slightly, assume we have 50,000 HTML files in a Unix directory tree, under a directory called “/website”. We have 2 days to get a list of file paths to the editorial staff. You need to give me a list of the .html files in this directory tree that appear to contain phone numbers in the following two formats: (xxx) xxx-xxxx and xxx-xxx-xxxx.

How would you solve this problem? Keep in mind our team is on a short (2-day) timeline.

Aparently 25%-35% of the software developers he asked this question to could not solve it. So give yourself a pat on the back if you think you’ve got a solution. Once you’re sure on what you’d do, click here to see what the best solution would be. I was actually estatic that I got it, though I’ve been using Unix a lot at work, and I’ve been reading up on regexes, so it’d be pretty bad if I didn’t get it. If you’re not a programmer, reading that solution will make no sense to you. This is the blog entry it’s from. It’s basically an article on what you should know when you go into an interview for a software development position.

The Last Days of Summer

I decided to I take a 5 day weekend to celebrate the end of summer. I needed some time to just sit back, relax, and clear my head. For my break I thought I’d read a book on PHP, check out a John Swartzwelder novel, and do some serious coding.

It’s strange how one’s plans can just go right out the window. I didn’t get any of the above done, though I did have a lot of fun. It’s weird that I planned such an anti-social weekend and then went out did a bunch of stuff. Looking back, I had a lot of fun this summer. I didn’t really take any time to soak it in or appreciate it until just now though. I hope everyone out there reading this had a good weekend.

Today is officially the last day of my big weekend. Hopefully I get some of my original goals done so I can have some more stuff for this site. In the meantime, if you’re bored, I highly recommend viewing this short film:

It was shown to me by a friend a few years ago and it’s absolutely beautiful. I’ve actually re-googled for it a couple of times just so I could re-see it.

Well, it’s almost 5am, I should be getting to bed. I don’t want to totally mess up my sleeping schedule for Wednesday.

Stats: August

Average Number of Visitors a Day: 156.45
Total Number of Visitors: 4850
Total Amount of Bandwidth Used: 2.93 GB

Links from an Internet Search Engine  
13 different refering search engines Pages Percent Hits Percent
Google 1188 90.6 % 1188 90.2 %
Yahoo! 59 4.5 % 59 4.4 %
MSN Search 14 1 % 15 1.1 %
Ask 11 0.8 % 11 0.8 %
Unknown search engines 10 0.7 % 10 0.7 %
AOL 10 0.7 % 10 0.7 %
Windows Live 9 0.6 % 9 0.6 %
AltaVista 3 0.2 % 3 0.2 %
Google (Images) 3 0.2 % 3 0.2 %
Google (cache) 1 0 % 5 0.3 %
Dogpile 1 0 % 1 0 %
del.icio.us (Social Bookmark) 1 0 % 1 0 %
Blingo 1 0 % 1 0 %

Thanks again to all of you who check in every so often. I’ll do a real update later this weekend… I promise…

New Old Stuff

I decided to resurrect the “Most Asked For VB Code” section of my old site. I figured there were a lot of helpful bits of code in there, and that it was a waste to simply discard it. You can view it here:

VB 6.0 Code Bank

I went through and checked all of the code to ensure that it still works, and I tidied up some of the messier looking segments. It’s cool to look back at some of the code I wrote when I was 16/17 and think “hey, that’s pretty clever!” But then some of it also made me go “holy crap, I was an idiot!” I was especially embarrassed by how many times I used variables named “pat” or “patorjk”. I believe early on in my programming days I saw some hacker posting code on a message board and he would use his handle as a variable name. I thought that was pretty cool so I picked it up. Sadly, no one ever pointed out to me that this was a bad programming practice and that it made code hard to decipher.

I suppose that’s one of the disadvantages to teaching yourself. You can end up unaware of certain bad practices until they come back to haunt you. When I was a Teaching Assistant back in grad school I worked with a beginner class where students could lose up to 60% of their project points on style alone. I remember having irate students come to me and ask how they could have received a “D”, or in some cases an “F”, when their project worked perfectly.

I was kind of upset with the harsh grading guidelines too, but there wasn’t anything I could do. Looking back, I still think it’s too harsh to put so much of a weight on style. All that will do is discourage smart people who have picked up some bad habits. This reminds me of an essay I read recently:

Hackers and Fighters

I like how the author romanticizes the idea of the “street programmer” (the self-taught programmer), and I like how he points out the weak points in a university education. Though a university does do a good job of weeding out complete idiots, I’ve seen a number of people who can barely program (ex: “I can’t program in Java, I only know C++”) who go on to make 80k+ a year. Then there are people I know who are self-taught who could program circles around those people and they make less than 50k a year. It boggles my mind. A degree and good social/networking skills seem to be the most important things when getting a good job, which saddens me a little, but oh well.

Opera and Other Things

I downloaded the Opera web browser recently, just to see what this page looked like. I noticed that the TAAG program looked like crap so I’ve redone some of the CSS for it. Later this week I hope to do another update to it to add in some new features.

A while back I was working on a new web app, I haven’t touched it in over two weeks – my plan is to start working on it again later this week and to try and release it asap.

“Google! Teacher, mother… [lustful voice] secret lover.”

I love google. Lately it’s been bringing me lots of visitors. It brought me 55 yesterday, which is a pretty damn cool (and pretty good for a small site like this one). However, this past weekend when I messed up my .htaccess file, it brought me no one. In case you weren’t here: I screwed up my 301 redirect links and no one was able to access anything in the /software, /downloads, or /programming directories of this site (you were just redirected to one of my blog pages). I will now do a total site checkout after touching that file. I can’t believe I was that stupid.

Like an idiot I let this error sit around for a few days before I realized something was terribly wrong. That something wrong was that google was no longer bringing me traffic. I’d fallen in my page rank. I quickly fixed the error and my page rank mostly returned. However, my ranking for the term Patrick Gillespie seems to have disappeared. I was actually kind of hoping to grab the top spot from that stupid news article on the pervert named Patrick Gillespie. Though then again, it was my Tiburon entry that was climbing the top ten of that page, and I’m not so sure that article would look good next to one titled “Patrick Gillespie arrested for failing to register as a sex offender.”

Back to the topic at hand though. Luckily google forgave my foolish .htaccess blunder. I was reading an article on some other blog earlier this week where the site owner wasn’t as lucky:

Google Penalty Nightmare

Google penalizes sites for certain offenses. Usually this is because a site is trying to do something artificial to raise its page rank. But since google doesn’t tell these sites the reason they are penalized, no one can be sure why a page suddenly drops in its page rank – or in some cases, is removed from the search results. Sometimes you mess up and things go back to normal (like me), and sometimes you mess up and things are sucky for a decent amount of time (like the girl in the blog entry above).

I find the whole idea of a secret penalty system quite interesting. It makes sense that they wouldn’t release all of the details, because then people would know exactly what to try and get around. Not knowing what you’re up against means there are more mines you could potentially step on, and when those mines are things like being removed from google’s search results, you’re less likely to do something to try and cheat the system. At least that’s what I think their reasoning is.

Not surprisingly, webmasters have tried to understand this system and some have even put together lists of possible google penalty filters. Below is one such list:

Google Filters

Jargon you’ll need to know to understand that article:
SERPS = Search engine results pages
SEO = Search engine optimization

If you’re a webmaster, that article is worth reading. It’s even caused me to think twice about the naming of my “links” section – though it’s late now so I’ll rename it later.

Oh yeah, in case you’re wondering, the title of this entry is a reference to a famous Homer Simpson quote. I figured it would probably be a good idea to mention that :).