Honors Project
Posted on 2012-01-04 13:51:07
I am working on my university honors project for this semester. It involves using the Microsoft Kinect camera to "scan" an object into the computer, and then reconstructing it as a 3D model, complete with colors. I've decided to use Linux and libfreenect, as well as qt4 for the GUI library.

I'll be posting more information as I go through the project.

Great Canadian Appathon 2011 Game
Posted on 2011-10-20 03:17:54
I've participated in the Great Canadian Appathon during 2011 with 3 other people in a team called "Black Clover Studios". The Great Canadian Appathon is a 48 hour marathon where you need to make a game for any mobile phone platform. Our team consisted of me, Daniel Kelly, Andrew Richardson, and Sully Kyle.

Our game is a really basic RTS game where you control 3 sports dudes and make them attack pirates, ninjas, and robots for as long as you can. We weren't able to complete what we intended with this project, but it's playable.

I've put the code in the mercurial repository, you can see it here

Mobile Robot Programming Labs
Posted on 2011-02-11 05:06:13
I'm taking a mobile robot programming course during the winter semester. Part of the course asks for me to make web pages for the assignments, so I decided to host the web pages publicly on this website.

You can check out the Lab details and code here. Please pardon me for not having a consistent style with the main page though, these pages are just static HTML and are meant to only diplay static information anyway, so I didn't bother.

Comments Disabled
Posted on 2010-10-04 18:21:15
Not surprisingly, the site seems to have a bad case of spam. For now, I will disable the comments as I work on a nice CAPTCHA method.

I'm actually impressed by the way the bots just seemed to adapt properly to the site's custom layout and design. Amazing how dedicated spambots can be.

Comment System!
Posted on 2010-08-31 13:09:48
After a bit of problems regarding network connectivity, I've finally finished the comment system. Check it out! Click on any blog post and you can comment!

Since it's written from scratch by a PHP newbie, it's probably horribly insecure, so please be nice and inform me if you have found any insecure elements regarding the implementation.

Site updates, DOS keyboard control
Posted on 2010-07-10 19:15:18
I've finished up the basic parts of the site. All sections are implemented now :D

Next things I'm planning to do for the site:
  • Comment system for blog
  • Tag system (for everything)
  • Sidebar for the blog (list of dates, etc.)
  • RSS
  • Image gallery (linked with tags)
  • Apply the site's color scheme to the mercurial repository

In other news, I've managed to implement keyboard control for my DOS game. Since DOS can only handle one key at a time, I had to overload the keyboard's interrupt service routine in order to get it to handle more than one key. And so far it works pretty well! Here's a video demonstration.

The BMP File Format
Posted on 2010-06-22 23:57:46
While working on my DOS game, I was looking at the different file formats one can use to store sprites. I wanted something fairly supported by image editing programs, while at the same time support palettes of 256 colors, and have a simple uncompressed way of storing the bitmap. When I skimmed through the bmp file format specifications that is used a lot by Microsoft, I thought this was a good format to work with, so I began work on a parser that loads the palette and reads the sprite data. After a while of working with it, I began to run into problems.

After a while of writing code, I realized how unnecessarily complicated the BMP file format is. Maybe it's just me, but I question a lot of the design decisions they had in making the specifications, as I don't see any real advantage to having them. My main gripe is that the raw bitmap data is stored upside-down. I've thought about it for a while, but I just could not understand why they would do something like that. Perhaps it's an endian-ness thing? I couldn't really tell. Additionally, between each pixel row there is a number of "padding" bytes added. What's the point? According to Wikipedia, the padding is added in order to make each row have a size of a multiple of four. So what is the advantage to that?

Here's another thing. Usually, the raw bitmap data is stored upside-down, but if the height field in the file is negative, then the bitmap is stored right way up. That just makes things more complicated.

The bmp file format is a pretty old format, so I guess I couldn't really blame the guys who did it, as they probably had to factor in some hardware limits of the time. I just would like to understand why they'd do it that's all.

In the end, I abandoned my bmp file loader class in favor of loading sprite data from a pure raw bitmap file. This is all I need, and this way it is much easier to load. The amount of time that I took to write a completely working sprite loader class is only a fraction of the amount of time I wrote a (broken) bmp file loader class. GIMP has the ability to save any image as a raw bitmap file, with a seperate palette file, so editing those files wouldn't be a problem. If I wanted a header, I could simply write one in a seperate text file. The main disadvantage with this approach is that I'll end up with 3 files for one image, but if I wanted I could always easily make my own image format.

Posted on 2010-06-14 01:01:32
Welcome to Mohammed Khoory's website.

This website is in its early stages now. I have started work on the blog system, and so far this is what I have finished. I can now post blog entries, but there isn't any commenting system at the time being.

1 Comment