Monday, August 27, 2007

Retargetting Images

I just had to blog about this. This technology is awesome. Basically, its like resizing an image, except instead of just subtracting rows and columns of pixels, the program seeks the best pixels to remove, that way the image doesnt appear lop-sided or otherwise deformed. It also works for enlarging an image. Check it out.

Image Resizing

Friday, August 24, 2007

LeetBoard Tech: Custom BBC

LeetBoard aims to provide you with the ability to create your own BBC tags to use on your board. Unfortunately, this means the mechanism responsible for creating the buttons users click to add the BBC to their posts requires some advanced programming in order to allow you the freedom to create BBC tags without any restrictions on how much they can do.

BBC tags are traditionally just short-hand codes which are replaced by their HTML counterparts. But some more advanced tags may allow you to use syntax highlighting, or even generate dynamic content. No forum software before LeetBoard has given you this level of power when creating custom BBC tags.

Saturday, August 18, 2007

LeetBoard Tech: Modular Scalability

Something that is in high demand in the computer industry nowadays is modular software. You want to be able to quickly and easily add a new feature to your software without having to drudge through millions of lines of code. Many forum software packages give you the ablility to add your own codes to the mix. But, the problem is many of them get a little carried away with it all. Take MediaWiki or phpBB for example. Sure, they are completely modular, right down to the error message texts. But, they are just TOO modular. It's very easy to get confused or turned backwards in the millions of lines of code you have to go through just to find where to put a new feature.

LeetBoard is not modular to the extent of MediaWiki or phpBB, but is modular enough to allow you to easily find where a new feature needs to be inserted or create a new feature for your board without needing to step through twenty different pages of code. All major features of the board have their own independant file, which is layed out in a manner that is easy to follow. If you want to create an entirely new major feature, just make your own file for it and drop it in the custom module folder, and LeetBoard will automatically use it when it is requested by a user.

LeetBoard Tech: Logging

All forum software big and small is prone to "trashings". Whether it's Invision or phpBB, you are almost guaranteed to have an incident where a moderator account is stolen or a moderator decided to go AWOL and delete a couple or all of your board's posts. No forum software has ever featured the one thing that could save you from such a disaster; that is, until LeetBoard!

LeetBoard boasts a logging feature that records all moderator and administrator actions and automatically generates an undo code, allowing you to restore a board to its former glory with one click. This feature is completely new and can ONLY be found in LeetBoard. Just another reason why you may want to switch your forum software to LeetBoard when it is publicly released.

LeetBoard Tech: Searching

Creating a search engine is very simple. Creating a search engine that has all the features a user would ever want is another story entirely. At present, the LeetBoard search engine only allows a couple of basic searching techniques. It would take forever to make the search engine as advanced as Google, but we would like to continue working on it until we have a respectibly close one.

LeetBoard Tech: "Is Read?" Issue

A feature that is familiar to everyone who uses any sort of forum software is the "Is Read?" or "Is New" feature. This feature is responsible for telling you what posts you have and havent read every time you log into or visit a board. Every forum software has a different way of accomplishing this. LeetBoard uses its own unique style, utilizing a database and cookies.

When you first log into LeetBoard, a blank cookie is set. When you read a topic, the ID of the topic and its newest reply is saved to the cookie. If a topic was made between your previous login time (your last login) and the time you just now logged in, and that topic does not appear in the cookie, the topic is marked as new. Similarly, if a new reply was made between your previous login and your recent login, and the parent topic's ID and the reply's ID dont appear together in the cookie, the topic is marked as new. Logically, this should be a perfect method for checking if a post is read or not, but for some reason it does not work correctly. I am not sure why this is, but I am currently working to figure out what the problem is and fix it.

Edit: The problem was due to a conflict with how posts were decided as being read or unread. Each member has a "last login" time saved with their account. This time is saved each time the user logs in, and its previous value is used to see if posts were made between the previous last login and the current time. The issue has been resolved by adding a query that updates the last login time to the current time when the user logs out. Issues may still occur if the user explicitly deletes the cookie which stores the forum session or lets the session expire without logging out.

LeetBoard Tech: Smiley Issue

An issue has been found concerning the smilies. When rendering the smilies from textual to graphical, some smilies are not correctly rendered. For example, if we have two smilies available, :( and >:(, and we have a post containing the text ">:(", the sad smiley is rendered with a preceding greater-than sign (">").

This is called a collision; when two conditions are similar, and one is checked before the other, the other is not met or is overridden. It is due to the renderer checking the whole text and replacing all occurrences of the sad smiley then checking the whole text and replacing all occurrences of the angry smiley. In order to fix this issue, the renderer must check each character of the text one by one and compare it to all possible smiley conditions. This is rather tedious and will add anywhere from half a second to two seconds, depending on how many smilies your board has, to the renderer's runtime.

Edit: All current smiley-related issues have been fixed. Smiley functionality is now complete.

Friday, August 03, 2007

LeetBoard Status

I didnt get a chance to post about my newest code back when I started work on it, but heres a little catch-up post. Ive created some forum software affectionately called LeetBoard. It is actually a further build on a bit of forum software I designed about a year about for a gaming clan called ThE NuBs, at which time the software was called ThE NuBs Chat.

Now, it is up and running for the Habbo Hotel in-game corporation Myishi Corp and is a prime feature of their site. You can find the Myishi Corp website, also done by me, at LeetBoard is currently in beta stages of development as a private project, and is just now on the verge of entering version 1.2. However, upon completion, it will be made public.