Home

Getting A Little Flashy And Free Icons

Posted by patorjk | Interesting News Articles,Software | Wednesday 25 June 2008 2:15 am

For some reason I couldn’t resist tinkering with the Text Ascii Art Generator (TAAG) app again. Last Wednesday I updated it so that its generated output would be displayed in Firefox without flickering. I used to do all my web development in IE since it was the most popular, but I switched to working in Firefox and Opera late last year since they have Error Console windows and don’t crash as much (if I have too many IE windows open, my computer slows down and I have to restart it). Though I still double check to make sure things work in IE.

Anyway, for this new update, I decided to get a little flashy and add in a footer that would fade-in when the user typed in a message. I’ve heard that presentation is an important part of the user experience and can be the difference between someone passing a site by and taking a closer look. Plus, after a rapid prototype, I thought the footer looked really cool.

Right now it currently holds the links for opening the message in a new window and generating an image from the text. They’re identified by these icons:

– - – - –

Which I found here. Luckily they’re licensed under the LGPL, which from what I gather from wikipedia, means they’re free for anyone to use as long as they don’t extend them (in which case they have to freely provide the extensions).

I think the new footer came out pretty well. TAAG now feels complete to me, though I’m not going to rule out any future updates. Later this week I’m going to try to get to work on some new stuff, but I don’t want to promise anything since lately I’ve been jumping around in what I work on.

$103

In completely unrelated news, if you’re bored, I found this website to be mildly amusing:

websitevaluecalculator.com

You give it a web address and it’ll tell you how much that site is worth. patorjk.com is apparently worth $103, though a couple of days ago it said 6k, so they must still be modifying their algorithm. I wouldn’t take an analysis from a site like this seriously, but it is kind of fun to see what it says different sites.

Souping Up WordPress and TAAG Updates

Posted by patorjk | General News,Software | Monday 16 June 2008 2:44 am

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.

WordPress

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.

Drop Graveyard and Snake Updates

Posted by patorjk | Software | Sunday 27 April 2008 3:37 am

Does archive.org ever delete files that its archived? I’ve noticed that some of the archived files from the older versions of patorjk.com have started disappearing. I went there the other day to grab up my old Snake game and I was unable to retrieve it. My other Flash games were also gone too. This is no big loss, but it’d suck if they actually routinely cleaned house on files that weren’t accessed much. It’d sort of defeat the purpose of archiving.

However, with some Googling I was able to find another one of my old Flash games. The port I did of Sloat’s Drop Graveyard:

Drop Graveyard

I have no idea what it’s doing there. I never uploaded the swf file to any site other than this one. However, I do find it pretty cool that it made its way around the internet and found a new home, even if it is one with tons of ads.

The game seemed to work pretty well for the most part, however it does have a two annoying problems: First off, the high score table doesn’t work since the php file that handled that was on my server. Second off, once you finish a game you’re redirected to their sign up page, which in my opinion is kind of shady. It looks like they modified the game so it’d do that. Though since I’m kind of amused just to see the game again I don’t really care that much.

With my googling I also found the old Drop Graveyard arcadepod page. If you read the reviews on that link you’ll see I got ripped a new one. I honestly thought the game was kind of fun. Not terribly challenging, but its a fun way to spend a few minutes. When I played Sloat’s original game I liked it, but it was the premise and story that really shaped it for me. If you don’t read the story before playing, you wont really know what’s going on.

patorjk.com Banners

While at archive.org, I also noticed that some of the old patorjk.com banners were gone. Some were missing before, but more are missing now. Luckily I grabbed up the ones I saw last time, since the image I based the old patorjk.com logo on is now gone. You can see it here:

That was probably made mostly with filters, but at the time it really blew me away. Ping was actually a really cool guy, I’m not sure what happened to him.

Snake

I’ve made some improvements to the Snake game that I posted up last week. Though I have a couple more ideas for it, I think I’m going to cool it on this project for a while (with the exception of bug fixes). This is mostly because I want to focus more on tool creation rather than on game creation. Anyway, the updates are enumerated below.

  • A control panel was added to the bottom of the screen that gives some useful links and tells you the current length of the snake.
  • When the snake dies, the part that made a collision turns grey.
  • Various bug/anomalies fixed.
  • The game was altered so that it could handle faster key presses. Basically I created a direction queue. This helps when you press a couple of arrow keys really quickly. Instead of using the last pressed arrow key as the direction to move in when you arrive in a new square, the game queues up all of the arrow keys you press and executes each movement as you go along. I noticed that this helped out in those really tense situations where you have to make a lot of careful turns.

Javascript Snake

Posted by patorjk | General News,Software | Monday 21 April 2008 2:08 am

During my senior year of high school I took an independent study course in C++. Originally it had been a full fledged C++ course with a teacher and everything, but since only 4 students signed up, they had us all do independent study projects instead. Independent study courses at my school worked by allowing you to work by yourself to create some project that you would then present to some committee to show that you had learned some stuff.

The only problem with this was that we had no text books, no access to any compilers of any kind, and no authority figure who really knew anything about computers. The lady who was in charge of the school’s computer labs (referred to behind her back as “The Troll Lady”) was mean and irrational.

She forbid us to use the c++ compilers that were available in the upstairs computer lab because they were “too old” (we weren’t even allowed access to that lab). We also weren’t allowed to install stuff on the computers in the downstairs lab. So we were basically left with no way to do anything c++ related at school, unless we wanted to sit and read the books we had purchased ourselves. To make things worse, we didn’t really get along. Since our school was more arts/drama oriented, the kids who were good at computers tended to be kind of snobby. The kind that would call you an idiot for not knowing some obscure unix fact.

I digress though. The only reason I mention all of this is because this is when I discovered the game of Snake. Since I couldn’t do anything programming-related, I’d just sit and play Flash or Java games for the first hour and a half of the school day (we had block scheduling).

Basically I’d come in, watch Flash videos from NewGrounds, and then horse around on the different internet games I was able to find. 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. Years later I’d implement my own version in Flash (which used to be featured at this site).

Anyway, a couple of days ago I was working on some other Javascript project for this site when I randomly started thinking about the 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:

http://patorjk.com/games/snake

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

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.

Today I am 26

Posted by patorjk | General News,Software | Thursday 3 April 2008 2:07 am

Knowing that I’m 26 makes me feel old. When I don’t think about the number, I feel like a young guy. At work, I’m the only person on my team who’s in their 20′s. Less than 2 years ago I was in college working on my masters. So on one hand, I am sort of still young, but knowing that college is completely behind me and that I’m more than a quarter century old makes me feel like I’m beginning to exit the “young” era.

Time seems to just fly by, doesn’t it? It was actually almost 10 years ago that I started this site up. I don’t remember the exact date the site went online, but I believe it was sometime during the Spring of 1998. Here’s an early screen shot from its first incarnation (the very first version of the site was just the main frame without the left hand navigation panel):

I still remember getting email from people who said they loved the content of my site, but hated the design. Each page had its own crazy background image and moving gifs. I had no clue what I was doing though, it was just a fun project. It’s cool to think that its survived so long.

As an interesting side note, I was originally inspired to start this site after getting an email that said “Your site sucks”. See, back in ~1996 I found a free personal webpage service called Geocities. Since no one had their own web page back then, I thought it was the coolest thing in the world. So I created a Geocities webpage. However, since I wasn’t very computer literate, I fumbled around with their online editor, got frustrated, and then left. The site ended up being a black background with black text, the text being a list of jokes I had swiped from some other site. And for no apparent reason, the page had a picture of Spock in the upper left hand corner (they only had like 5 sample images that their editor would let you use). This guy must have found my forgotten creation while browsing the Geocities’ website directory. Apparently it upset him so much that he felt like he needed to send me an email. I was so annoyed with the message that I decided to go fix the page up, and while doing that I decided to make it about my current interest – which at the time was programming.

Had I not gotten that email I probably would have still eventually started this web site, however, it would have had a different history and it might have even gone in a different direction. It’s odd that a piece of hate mail motivated me to create something that evolved into what you now see before you. The butterfly effect at work.

Anyway, going back to age, I suppose you’re only as old as you feel, and at the moment, I feel pretty young.

TAAG

I’ve been trying out some new Javascript tools for possible inclusions in upcoming apps, but nothing I really want to get too much into now. TAAG has seen some significant updates in the past few days though. I completely changed the interface in the control panel and added two new features:

  • A feature that lets you open your text up in a new window. So you can more easily share what you type with your friends. Check it out. Right now the feature is still in beta and doesn’t have all of the capabilities of the normal text that’s generated (colors, alignment, etc). I hope to add that by the end of the week (it’s a quick addition, I’ve just been really really short on time).
  • This one was a request, it’s a feature that allows you to replace the white spaces with whatever character you want. This feature can be found in the “More Options” section.

Originally I had been aiming to update the “Image Color Palette Generator”, but I ended up getting stuck on something so I decided to take a break and work on some TAAG updates. Hopefully there will be a new version of ICPG out sometime this month.

Forums

Despite not catching immediate fire, I’m keeping the patorjk.com forums alive and active. I plan to check them out at least 3 times a day. So feel free to look around or make a post or two. I’ve recently changed the “SEO” forum into a “Web Related” forum. It’s sort of a catch all forum for anything interesting that’s web related.

Yahoo UI and Image Color Palette Generator Updates

Posted by patorjk | Software | Wednesday 27 February 2008 3:05 am

After talking to a friend who had been going on and on about it, I decided to take a look at the Yahoo User Interface Library, or YUI. From Yahoo’s own website YUI “is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX.”

They’re actually really cool, and surprisingly easily to use. After doing some searching I found a few other free Javascript toolkits: jQuery, Prototype, Mootools, and Google Web Toolkit. This of course isn’t an exhaustive list of all that’s out there, but these seem to be the most popular. I had actually heard of jQuery, but because of it’s name I had always thought it had something to do with SQL or Java.

After a not too extensive check of the available features, I decided to try YUI first. Mostly because I thought their tools looked the nicest and they have an Image Uploader (something I haven’t tried yet, but plan to). I decided to soop-up my Image Color Palette Generator, which has so far been pretty plain. I’m still in the process of adding stuff to it (which I’ll describe below), so it’s currently a mess, but it’s now set up so that once you generate a color palette you can play around with a nifty little slider bar that will allow you to navigate through the HSL color space.

I’m sure a lot people will look at it and think “Ok, so you added a slider bar…”, but it’s pretty freakin’ cool. Once the app is fully complete it’ll come together a lot better. These new tools are great though. I can’t wait to check out some of the others.

On a related note, these toolkits remind me of an interesting article I read a couple months back on the possible emergence of a new SDK that could spell the end for Google’s Gmail. It’s a neat read if you have some time.

Image Color Palette Generator Updates

First, let me say I did some house cleaning on this app and sped it up by 700% on my machine. So if you were having trouble with it before, you should be able to use it fine now (if not, please let me know). I even have some more ideas for speed ups, but they’ll be in the next release. I was a bit sloppy in my initial implementation, I guess I thought I could get away with doing some simple math and string concatenation inside of the loop that looked at the image’s pixels, but those fractions of a second add up fast. I used table lookups to replace the unnecessary calculations. As soon as I’m done with everything on it, I’ll release the source so people can better understand what’s going on.

Aside from that, the program is now set up to generate 4 color palettes for you. The two it generates that get displayed on the left side of the screen represent the color palette for the image and the complimentary color palette for the image. The two it generates that get displayed on the right represent the “Muller Formula” versions of these color palettes. The Muller Formula is something that professor Aemelius Müller from Switzerland came up with that basically predicts what colors users will find pleasing. No actual formula is given on that website, so I had to infer one based on the basic idea. Right now I’m still tweaking it, so it’s still kind of experimental for the moment.

A Story, An Update, and Some Blogs

Posted by patorjk | General News,Software | Sunday 17 February 2008 7:45 pm

A Real Programmer?

“I’m not one of these younger guys who don’t really know anything. I’m an older guy, a real programmer with real experience.” So those weren’t his exact words, I’m paraphrasing from memory, but it contains the basic idea he was expressing. I over heard this from the cube next to me while I was eating lunch. Honestly, I was pretty shocked to hear someone say this. While experience does make one a better programmer, I actually haven’t noticed that much of a quality difference between the younger programmers and the older programmers. In fact, the most talented programmer I’ve met at work is 27. It almost seems like programming skill grows logarithmically. You learn and a lot in the beginning, but then as you get more experienced, the skills you pick up only make you slightly better over all. And people who aren’t that great after a year or two, never really become that great.

So hearing some old guy go on and on about himself while bashing on the younger guys sort of ruffled my feathers. Since I had been pretty busy running around all over the place, I wasn’t at my cube but at a “general use” cube (so to speak), so I didn’t know who sat in this area. I was just kind of by myself, eating a sandwich and surfing the web. The voice sounded familiar though. The man continued to trumpet his own skill and put down the “less experienced” when I suddenly realized who he was.

I had actually spent the whole previous day fixing his mangled software. He hadn’t been able to get it to work, even after a 2 week extension, and he had now moved onto another project, so his work had been tasked to me. And I, a younger and “less experienced” programmer, had done what he could not do, and in a day, and now here he was bashing on the younger guys. I was actually pretty annoyed. Even if he had been a good programmer I would have been annoyed. I’m by far the youngest person on my team (by at least 8 years) so part of me had to wonder if he was thinking about me while he gave this little speech. He may have just been trying to talk himself up to his new boss, but what he was saying was still BS.

Anyway, I had enough sense not to interrupt his diatribe or let him know I was around, but I did file it into the back of my mind. Hopefully when I’m 40+ I don’t have an arrogant streak where I go around thinking I’m better just because I’m older, especially if it leaves me blind to my own incompetence.

Image Color Palette Generator Update

I’ve thrown in the towel and done away with the image uploading. The new Color Palette App simply wasn’t being consistent in what it could handle. The ability to upload an image is extremely useful to the user, but since I’m currently under shared hosting (ie, lots of other sites are hosted on the same server), I apparently don’t really have the horse power to handle some of the more heavy duty stuff.

The app is now set up to take in a URL to an image. This shields me from having to worry about people uploading unsavory content (though for safety reasons the app was deleting all images after they had been processed) and it keeps the user from having to worry about me spying on what they upload (something some webmasters do – always be careful about what you upload to websites).

In the future I definitely want to have apps that take in images from a user’s computer, so eventually this issue will be worked out. Anyway, for the time being you can check out the new version of the app here. If it dies on you let me know. This has sort of thrown a wrench in my plans for more image oriented apps, however, I’m still going to charge on and see if I can make the best of this. If worse comes to worse, I’ll just make C# versions.

Oh! And before I forget, I changed the formula for calculating the complimentary colors. I now convert the color space from RGB (red, green, blue) to HSL (hue, saturation, lightness) and then shift the hue by 180 degrees, then I convert back to RGB space. This appears to give much more accurate complimentary colors, though I’m not sure if this is the correct way of doing it. I still cannot find a proper formula for calculating them.

New Blogs

chicanerous – Chicanerous is the author of the popular VB Array Tutorial on this site. And I do mean popular, it now averages over 200 visitors a day. Chic also used to be a regular contributor to a message board I once had. On his blog he says he’ll “probably post poorly written proofs, unastounding thoughts on literature and criticism, overgeneralized musings on strength training and conditioning, and half-hearted ruminations on various other subjects.” Chic’s a cool guy so you should check his site out. Hopefully he doesn’t mind me spamming it here :P .

New Web App: Image Color Palette Generator

Posted by patorjk | General News,Software | Sunday 10 February 2008 5:06 pm

After upgrading to PHP5, which was much less painless than I thought it would be, I decided to take a deeper look into how to do image manipulation in PHP. This is usually done with the gd library, which provides an assortment of useful image handling functions. There are certain aspects which were annoying (no Windows bmp support, difficulty in displaying images I didn’t want to keep on the server), but overall it appears to be a pretty handy toolset. If all goes well, I hope to create more image-based online apps. I’ve already got a big list of ideas, but I don’t want to get too far ahead of myself.

Anyway, the new application is Image Color Palette Generator – not the catchiest of names, but it describes what it does, which is create color palettes from images. This is useful when you’re designing a website and you want it to have the same look and feel as a particular image. This program will tell you what the most frequently used colors within an image are. It will also generate a color palette of the complimentary colors to the most frequently used colors. This can be useful if you want a look and feel that’s totally different from your input image.

The current implementation works by placing colors the app encounters into “buckets” which represent similar looking colors. After the image has been fully examined, the color palette is created by taking the average color from the “buckets” that contain the most colors. Pretty simple algorithm, eh? The complimentary colors are generated in RGB-space (Red, Green, Blue). If anyone knows the formula for calculating a complimentary color in the traditional artist color space (Red, Blue, Yellow) please let me know! I googled for at least an hour but couldn’t find any info on how to do it.

In the future I hope to make the program a bit more sophisticated. I’ve studied colors a little bit so I know the human eye is more sensitive to green than it is to red or blue, so colors with lots of green should probably have more weight than colors with less green. People also tend to notice areas where there is change going on in the image, and whether one notices the change can be estimated using the contrast sensitivity function. That may be getting a little too fancy. Though I’ll keep it in mind since it could be a nice tweak to the algorithm.

The app worked great on my machine, but I’m noticing now that it’s on my server that it’s struggling and timing out when larger images are inputted. So for now try and stick with smaller images (less than 40kb). I’m going to look into ways of getting around this. I may be doing something in an suboptimal way which would explain why it’s dying. Or it could just be because I’m on shared hosting and they don’t want me using a lot of resources. I’m not sure.

If you have any problems or suggestions relating to the new app itself, just post a comment in this blog entry or email me (see the About page for an email address).

Update: I’ve made some modifications and the program should now be able to handle images up to 200kb in size without timing out. It looks like the server only gives the php file a certain amount of time to do its thing and then it kills it. I may have to separate the functionality out into several files (even the it’s a small app). Also, right now I’m doing extra processing for gif images, so the program will work best with jpgs or png files.

Spam Blogs

Has anyone encountered these bot generated “automatic blogs” that seem to be all over the internet? I have no idea how long they’ve been around, but as this site has grown, I’ve become more aware of their presence. They seem to work by either grabbing content from other sites or from article databases. They then display this content and hope to grab visitors from search engines. Since these blogs are full of ads, and since 1-2% of users click ads, these phony blogs end up turning a decent profit, even though they don’t really serve a useful function.

To gave an example, on my stat page I noticed an incoming link from the Jessica Alba is Hot Blog (possibly NSFW). This site apparently has some bot that combs the internet looking for posts on Jessica Alba. It found my previous post, and then copped the begining of it saying:

Emily wrote a wonderful post today on “Slider Puzzle Source Code And Other Nonsense.” Here’s a quick excerpt:
I’ve finally gotten around to releasing my Slider Puzzle source code. Hopefully someone out there can find a good use for it. I was tempted to set up a Jessica Alba puzzle on some free web hosting site […]

Normally I welcome incoming links, but there’s something unsettling about an automatic blog spidering through my site just so it can grab content it can use to promote itself. I suppose it’s not really hurting anything, but it does leave a bad taste in my mouth. So far it’s only happened a few times, but I may end up blocking these sites.

No Housewarming Party

My roommate and I have opted not to throw a house party. The majority of you probably don’t know me in real life so you could probably care less, but I figured I’d say something here since I know there was a bunch of talk about it when I first moved in and some of my friends do read this blog and I don’t want them thinking they weren’t invited or anything. The main reason there will be no party is because my roommate and I are kind of lazy and we’re not really the type to throw huge social gatherings. We kind of prefer smaller groups of like 3-6 people. Anyway, if you haven’t seen the place and want to, feel free to shoot me an email. There’s not really a whole lot here, but the apartment complex itself is pretty damn cool.

C#, wasting time, and hunting down AOL fonts

Posted by patorjk | General News,Software | Monday 14 January 2008 1:55 am

C#

I’ve decided to make C# the next language I learn. On Sloat’s suggestion, I download the free Express Edition, and have been playing around with it a little the past few days. I have a few ideas running through my head on apps I want to make, but before I jump into anything I’m going to try and get a decent background (via online tutorials – right now I’m using what comes up on Google, if anyone has any suggestions for some good resources, let me know).

Later on I may take a look at VB 2007, but since there currently doesn’t seem to be any advantages to using it (at least from what I can tell), I’ll probably delay learning it.

Scrolling Text Time Waster

While looking around on some old CDs I found this, a fun little scrolling text time waster. It’s a PHP version of one of my old Javascript apps. The PHP version was originally located at my UMBC personal page, though at some point I took it down. After looking over the script, I touched it up a bit and figured it was amusing enough, so I decided to post it up.

As a side note, my decision to post it up was partly because of these people. I had honestly never received any feed back on my old Javascript app and had actually wondered if it ever got used at all (or if people thought I was childish for posting it). It’s neat to see how stuff can find its way around the net. As a side note to this side note, I sometimes wonder if my googling skills come off as creepy. My old suite mate Mike (who I talked about in the last post) helped me refine them a little bit when I lived with him. He was actually kind of legendary for his googling skills. I have some funny stories about Mike and googling, but I’m sure he’d kill me if I posted them here.

More AOL Macro Fonts

The number of AOL fonts has doubled in the TAAG app. You can view them by selecting “AOL Macro Fonts” from the Font Type combo box and then running the Test All feature. In addition to these new fonts, the “TRaC” and “Cheese” AOL fonts were fixed (woo!).

This deludge of new fonts comes from various old apps I obtained through lenshellarchive.com. It’s a pretty neat place, it aims at having the largest archive of old progs. What one can do with progs written for software that isn’t used anymore is anyone’s guess, but it’s cool to see they’ve been saved somewhere. However, even though it says everything has been run through a virus checker, I’d be cautious before downloading anything. Some of that stuff is kind of shady.

Interestingly enough, the site actually hosts my old fader program, giving it the low rating of 5/10, which I thought was kind of amusing. It honestly wasn’t that good of an app, though it was the first program I released on this website (when I was at geocities), and it actually generated a lot of positive feed back, so it encouraged me to keep going. How it ended up at lenshellarchive is anyone’s guess. I had no idea anyone else hosted it (btw, I encourage outside hosting of any of my downloadable apps), but according to a txt included in the zip I downloaded:

You Should Have Downloaded This From
Kamz Domain [ http://www.kamzdomain.com ]
If You Did Not Please Email Me At
Kam@kamzdomain.com
and Let me Know Where You Got It So
I can End This Link Stealing Bullshit

|¯|’/¯/    /¯/\ |¯|\/|¯|
|÷|/_/ ‘  /÷/\¯\ ‘ |÷|\/|÷|
|÷|\¯\ ”/÷/ ¯\÷\ |÷|  |÷|
|_|’\_\ |_|    \_| |_| |_|  

According to archive.org, kamzdomain.com existed for a brief period of time in 1999. It’s neat to find stuff like this, I feel like an internet archaeologist. I wonder if the app made any more stops before ending up at lenshellarchive.

Three Things to Say

Posted by patorjk | General News,Software | Sunday 6 January 2008 7:07 am

As I type this sentence my clock says its 5:00am… I’m sure it’ll be much later than that when this entry is finally done. So much for having a normal sleeping schedule :P . Oh well, on with the updates…

Updated Test All

I’ve updated TAAG’s “Test All” feature. It should now be much faster. In fact, based on some tests I ran, it should be 11 times faster than before. The old “Test All” feature worked by having Javascript and PHP continuously talk to each other during the text generation process. Now everything is done server side with PHP code. The downside to this is that all my Javascript text generation code had to be duplicated in PHP. This sucks for a number of reasons, but I couldn’t see away around it :/. With the exception of bug fixes, I think I’m pretty much done with this app. Well, no program is ever really “done”, but I think I’ve come to a decent stopping point.

Also, after doing some testing in Opera, I realized the color dialog script I was using doesn’t work in that browser, so now I’ve put up a little notice when you push that button (it’ll pop up only if you’re using Opera). I’m not sure if there’s a way around this, but I’ll try and find one. It makes me nuts that every browser is so different.

Thoughtful Programming and Forth

While searching the net for an old college friend’s / suite mate’s webpage, I discovered an old article he’d written on Thoughtful Programming and Forth. Though I didn’t agree with all of it, and I’m not about to start programming in Forth, I thought it was a well thought out piece. Since he used to have it on his web page, I emailed him (he’s now off in Canada working on a PhD in Math) and asked him if it’d be cool if I posted it up here. He told me he was fine with me posting it up, as long as I updated the email address and fixed a spelling error. So anyway, if you’re interested in learning a little about Thoughtful Programming and Forth, his article is worth a read:

Introduction to Thoughtful Programming and the Forth Philosophy By Michael Misamore

It’s a shame the rest of his webpage is gone, because he had some interesting content, but nothing lasts forever. Which leads me to my next topic…

RIP DarcFX

DarcFX.com, possibly the last of the great AOL programming websites, has closed down. This is probably for the best, since it hadn’t had any new content in years. In fact, I was actually a little shocked that the site lasted so long. For those of you who don’t know, DarcFX was known for being the site the succeeded KnK4Life.com after it closed down. KnK4Life was once the biggest resource for AOL add-on development. I’m talking thousands of unique visitors a day big. I mention its relevance here mostly because the site housed a couple of my programs and programming examples. It boosted my visibility a decent amount, and for that I’m thankful.

It’s a shame to see sites die, but unless they can evolve there’s really no point in having something that isn’t relevant anymore lying around. DarcFX was still giving me 5 or 6 referrals a month though, so I’d assume the site was still bringing in a decent amount of traffic. It’ll be interesting to see what happens to the domain. KnK4Life.com is apparently available for purchase. I’m surprised some spam site hasn’t grabbed it up, though it’s been so long that the domain is probably worthless. DosFX.com is another site that seems to have died. Dos was probably the most well known AOL add-on developer. Bofen.com was once a major site, until it went down in disgrace. Now the domain is owned by some company that sells “premium domains”. That’s the sort of thing I would expect to see happen to a lot of these late 90′s / early 00′s AOL hacking / programming / software sites that brought in tons of visitors. It’d suck if that were the fate of this site, though at my current status, I don’t see that happening.

Other sites I remember from back in the day:

Magintta.com – This site never brought a lot of people in, but I remember her. It’s good to see it hasn’t disappeared. Though it doesn’t look like it’s been updated in a long time.
Pixelsex.com [currently NSFW] – Plastik’s old site. Originally this site was hosted at dosfx.com. Plastik had a cool site with lots of tutorials. Looks like it’s gone now.
TPA Software – This site seems to be alive and well, it’s been a long time since I last visited.

I know there were a lot more than this, but these are the only ones I can think of off the top of my head. Anyway, I should probably get bed now…

Color Fader Updated + Other Stuff

Posted by patorjk | General News,Software | Tuesday 18 December 2007 12:17 am

Color Fader Update

I’ve been annoyed at the job I did on my updated color fader since it was released. The interface was squished, awkward and clumsy, the color scheme was bland, and it over all just looked bad. I decided a few days ago to break from what I was doing and work on a re-design of it. I think I’ve come up with something that’s cleaner and easier to work with:

http://patorjk.com/software/colorfader/

The ASCII Art heading is kind of cheesy, but nothing else seemed to fit that heading area and it seemed to fit the ambiance so I left it in. Along with the new design, I added a few new features:

  • Vertical text fading: Now you fade lines of text along with fading character by character.
  • Multi-color image fade: I always felt it was a HUGE design flaw to have a separate 2-color area for image fading. I’m not sure what I was originally thinking, perhaps I was just lazy.
  • Background color selection for text fades: You can now see what the faded text looks like on different colored backgrounds.

Ultra Edit

I’ve been looking around for a good text editor that I can use for development purposes. At the moment, most of what I’m doing is Javascript and PHP. Recently I’ve come across Ultra Edit, which appears to be a pretty snazzy editor. It has syntax highlighting, grep-like searching abilities, a customizable tool bar, line number information, the ability to hide nested code, and lots of other nifty features. It’s only negative is that it’s not free. It’s $50 if I want to use it past the trial period. I’m actually thinking about shelling the doe though, since it would be a big step up from WordPad. Anyone know of any other good Windows text editors I should try before I purchase a license for this one?

Garfield / Realfield

Some clever folks on the internet have discovered that the Garfield cartoon strip is actually pretty funny if you remove all of Garfield’s thought bubbles. It actually works on a whole new level, it’s pretty cool:

Google Ads

I’ve been mulling over the idea of possibly placing a few Google Ads on this website. Nothing crazy or annoying, but something that’d be reasonably discrete and only on a few choice pages. I was doing some calculating and with what I read I could probably make enough a month to cover hosting costs if I placed ads on the Color Fader and the VB Code Bank. I think that would be pretty cool – this site paying for itself.

My fears in doing this though would be that I could scare away visitors or annoy those who regularly visit. Or I could turn off people who think I’m just trying to cash in. So I’d probably only do it in a few select areas, and not in areas that would cause clutter. I dunno, I’ll have to think about it some more, but I just thought I’d give everyone a head’s up.

TAAG: Test All

Posted by patorjk | General News,Software | Saturday 22 September 2007 4:10 am

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.

Slider Puzzles

Posted by patorjk | General News,Software | Friday 14 September 2007 1:34 am

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!

Alternative Photomosaic Algorithms

Posted by patorjk | General News,Programming Examples,Software | Saturday 11 August 2007 2:50 am

One thing that has always bothered me is software patents. They just seem wrong. How can someone own a way of doing something? Or own a technique that others would come up with when trying to solve the same problem? They seem like unnatural restraints, like patenting the solution to a math problem. I can understand wanting to protect your ideas, but I honestly don’t think most software ideas are novel enough to warrant a patent, especially at the rate that the US government seems to be giving them out. I’m mean hell, who can be expected to know about all the stupid things people have patented? There is no fucking way that there were 40,000 patent-worthy software ideas that came out last year. That’s completely absurd.

One example that always comes to mind when of thinking about why software patents are bad is the story of what happened to id Software while they were developing Doom 3. Essentially John Carmack, the technical director at id Software, came up with a neat way of doing real time shadowing, which he called Carmack’s Reverse. After discussing the technique on his blog, it was discovered that two researchers had already patented the idea. In order to be able to use the technique, Carmack had to come to an agreement with them. Someone else, independently of these two parties, had also discovered the technique and presented it at a conference before the patent was filed. This person offered to let id Software use it for free, but id Software decided to play it safe and strike a deal with the patent owners [1].

Its things like that that bother me. Someone is toiling away writing a piece of code, they come up with a great way for solving a problem, implement it, and then later learn some researcher in a lab somewhere has patented the idea – probably just so they can say they have X number of patents – and now they have to pay to use a technique that they came up with on their own.

But I digress. I could go on for 10 pages about why I don’t like software patents. My focus here is that I’ve learned that a patent has been granted for the creation of photomosaics, those neat images that are made up of smaller images. The abstract reads as follows [2]:

A mosaic image is formed from a database of source images. More particularly, the source images are analyzed, selected and organized to produce the mosaic image. A target image is divided into tile regions, each of which is compared with individual source image portions to determine the best available matching source image by computing red, green and blue channel root-mean square error. The mosaic image is formed by positioning the respective best-matching source images at the respective tile regions.

I honestly don’t blame the person who filed this patent, since they were one of the first people to create mosaics with photos [3], and they wanted to make sure people didn’t profit at their expense. However, I still really dislike the idea of patenting a way of doing something, especially when the method seems rather obvious. I was able to write a photomosaic generation program when I was in 11th grade, and I didn’t have to look up an algorithm, I just made one up (yes, Mosaicer was written when I was in high school).

The only part of that abstract that seems outside the normal algorithm for creating your basic mosaic is the part that mentions the “root-mean square error” in relation to the color difference. That part is significant because it does a much better matching job than taking a simple color difference (what Mosaicer does). However, spend any time in a reading up on color differences, and you’ll learn that that’s the way to do color differences in RGB color space. So I’m not sure why this abstract as a whole was considered so novel.

Furthermore, the RGB color space is flawed in that it’s a non-uniform color space. Instead of using the RGB color space, one could use the L*a*b* color space, which is a uniform color space that has some of the most precise color difference formulas ever developed.

There’s also another way of creating photomosaics, outside of simply changing the color space and color difference methods. 90% of the people who read what follows will have no clue what I’m talking about, but try to follow along because this is a completely different way of patch matching than what is described in the patent abstract. Instead of dividing the target image into blocks and seeing which input images best fit the blocks, one can use Fast Fourier Transform patch matching [4, 5]. This technique wasn’t discovered until 2002, and I haven’t seen anyone discuss it with relation to creating photomosaics.

When using this method you transform you data into frequency space, perform some calculations, and then you transform your data back into the normal space. Because frequency space is a weird place, multiplication becomes addition. Therefore your computation time is greatly reduced when calculating squared color differences in frequency space. Kwatra et at [6] wrote about the speed up this matching technique provided in their paper on graph cut texture synthesis. With the simple RGB method, generation time for a particular video was 10 minutes, with the FFT method, generation time on the same video was 5 seconds. This is actually how I came across the FFT patch matching. I had to implement Kwatra’s paper for a graphics project I was assigned.

After reading the FFT paper, I immediately saw the possible application to photomosaics – however, after implementing the FFT patch matching method and seeing its nuts and bolts I wasn’t sure how much of a speed up it would actually provide, since it performs more calculations than needed for photomosaic patch matching (it tells you how well the image matched at every offset instead of just the subset of offsets needed for tile placement). In fact, I wondered if it could end up slowing things down. But there are ways of optimizing it for photomosaics, so it was (and is) unclear to me how much of a speed up or slow down effect it would have.

As you can probably tell, I never got around to trying out the above method in relation to photomosaics, mostly because I’m not that interested in photomosaics anymore. But I did put it on my list of possible things to do in the future. I will never patent any of these ideas discussed here so they’re free for anyone to use. However, I have no clue if someone has already thought of them and patented them. So I can’t make that guarantee. Though I figured I’d make a post noting all of this in case no patent for this exist, just so there are patent free methods for photomosaic creation out there.

References:
[1] http://techreport.com/onearticle.x/7113
[2] http://v3.espacenet.com/textdoc?DB=EPODOC&IDX=US6137498
[3] http://en.wikipedia.org/wiki/Photomosaic#History
[4] http://www.cs.sfu.ca/~torsten/Publications/Papers/icip02.pdf
[5] http://www.cs.sfu.ca/~mark/ftp/Icip02/images/icip_2002.jpg
[6] http://www.cc.gatech.edu/~turk/my_papers/graph_cuts.pdf

TAAG Update

Posted by patorjk | General News,Software | Sunday 5 August 2007 5:43 pm

One thing that annoyed me about my TAAG program was that every time you changed fonts, the top frame had to be reloaded. This was because the program needed to talk to the server to get the information about the new font. However, technically, nothing on the page needed to be redrawn, so refreshing the whole frame seemed like a little much, and when you change fonts a lot, it gets annoying. Anyway, this week I was reading up on AJAX, which is a way of talking to the server without reloading the webpage. Since this was just was I was looking for, I decided to incorporate the technique into TAAG:

http://www.patorjk.com/software/taag/

The top frame will still reload is you change the “Font Type” or if you select a font from the preview page. However, it should not reload if you change fonts via the drop down font list. Also, there is a bug in Firefox where the “onchange” event isn’t triggered for keypresses on listboxes, I’ve set things up so you should now be able to change fonts with your keyboard on Firefox. A few other things were updated as well, but it was all small stuff.

If you’re thinking about developing web applications or interactive webpages, AJAX is worth reading up on. I wish I’d known about it sooner. Later this week I think I’ll start on my next program, it’ll be another web program and I’m unsure of how long it’ll take to make.

Next Page »