Blog

Make it open - The Tetras

The Tetra logo, courtesy of Don Kennedy

Tetra: [ Download ]

Tetra 2: [ Download ]

Picking up where I left off last time, we shall progress forward with my CMS releases.

After realizing that the core model of YPNgine seemed broken (looking back it may not have been, but whatever), I decided to scrap the entire project and go a completely different route. When I began conceptualizing this new CMS, there were a few things that I needed to consider from the very start: security and extensibility. With that, I began working on Tetra (named after the type of fish I had at the time).

Read More

Make it Open - YPNgine

YPN logo during the YPNgine era

YPNgine: Download

Sometime in 2003 I became the administrator of YPN. Not entirely sure why, but there it was. As all the other admins left, so went their involvement in the future engine of YPN, partyfish. For reasons I cannot remember, I too stopped development of partyfish even though it was near complete.

But, I didn't drop the idea of a new engine and leave YPN in the capable hands of sasq2 and phpBB. No, I began writing my own CMS: YPNgine. Even with just a handful of months of PHP experience, I'd tasked myself to create a multi-user CMS with various levels of administration, a document library and fully functional forum that needed, at least to the users, all the functionality of the old phpBB. No small task indeed.

But I pounded away at it no doubt learning many, many things along the way. I even opened it up to a public beta, though I cannot for the life of my think of where this was hosted (somewhere on an FSF server, no doubt).

Going through the changelog comments I left int the source files and performing a delta against the final post on this thread, YPNgine took somewhere in the range of two months to develop. I do remember quite keenly when I actually turned this thing live. The first week was nothing but bug reports and security issues. They all got squashed, but in the end between the issues and the requested features, I decided that the entire model I had built YPNgine around was unsustainable, but that's a story for a different day.

I am actually writing this post because I am releasing all of the source code from the last "build" of YPNgine to the public. You can use that link at the top, or download it here.

With the addition of search, the circle is complete

Sometime in late 2002, I was welcomed on to the partyfish dev team. My first task: create the site wide search. Now, bear in mind that this was my first time really doing anything in PHP and search is quite a big thing. Ask Google. I'm pretty sure they'd back me up.

Today, some eight years later, I have implemented site search into my website. Of course, it's running circles around my original code in terms of complexity, speed and even the amount of lines it's implemented in (340 v 70).

Here are some of the fun things the new search can do:

- Searches through all content types and each type can display differently in search results

- All searches are weighted against where the terms were matched. The algorithm is such: (matches in title * 10) + (matched tags * 5) + matches in body

- As with all aspects of my site, the search has a RESTful interface so I could make an ajaxy instant search if I so desired

Here are some good queries to show off what it can do:

Rock Band - Example where weighting really helps

Photoshop - Example of different document types

btw, if you wanted to see the old partyfish search code, here you go. The new search stuff will be added to the repository shortly and I'll be making that public very soon.

I Feel Compelled to Write

It is another month and with that another wave of classes. Lucky me has class six days a week! (except next week where I only have class four days. Whatever.) So, you're probably asking "Hey, Matt! What kind of awesome stuff do you get to do this month?" To which I answer "Have you not been paying attention, compadre? Classes aren't fun anymore." This month is the exciting world of portfolio creation and business communication (see this, here, now? I'm communicating. Perhaps to businesses).

But, school aside, I've been having a rather fun time rewriting the interface to that media player I brought up some months back. This time, however, the entire front end is all ajaxy and delicious. Don't believe me? Check it out for yourself, but don't be ripping off my songs, hear? Though, you'd have to get a flash decompiler or something to actually find where they are on my server. It's all very exciting.

In some days (by which I mean tomorrow) I will the happy owner of a brand new Wii Fit (only cost me twenty extra over retail). Since I left Wal-Mart I've put on some weight - about thirty pounds. Feeling more like a pregnant lady in her third month than the macho man I am, I felt it was time to do something about that. So, I might do a weekly update thingy here as that progresses, though we all know what happens when I promise regular updates of some sort.

Every once in a while I like to google myself and my friends, probably because I have far too much time on my hands. It's an interesting thing to do and one I recommend to my peers (by which I mean other internet micro-celebrities). Interestingly, I seem to have the most web presence of the classmates I googled. Granted, I have had a little bit of a head start and a bump here and there. I suppose it isn't the most common thing ever to be featured on the front page of various gaming sites (twice), but surly somebody in that class has done something that's caught the attention of the internet. Then again, I do seem to be that guy as devusb so fervently calls it, and unfortunately I have to agree. That's probably why I still spend most of my time alone with my computer while everybody else is out smoking weed and getting laid. Or perhaps the internet fame happens because I stay at home by myself. But, we're not here to get into the chicken/egg debate. Actually why don't we.

Q: Chicken or the egg. Which came first?

A: Who cares, they're both delicious.

Well, I suppose that's enough nonsense for one afternoon. Besides, I have other equally unimportant things I could be doing, like checking digg/Joystiq/Engadget, stalking people on Facebook/Twitter, binge drinking all my troubles away, the usual.

Updates and what not

It seems that since I began school this blog has gotten more and more deserted. I was reading through old entries last night and I feel that things may be beginning to get empty. So, here I am once again poring forth my soul into the void that is known as the internet.

Last month ended my two month journey that was motion graphics. I am sad to have to leave these classes as I seem to have found my calling in mograph. To be frank, I had way too much fun and I probably created my best work ever in those two months. Of course, just because I'm not in the class doesn't mean I won't be dropping it and forgetting about it. No, I plan on doing small projects through out school that I can dump into my demo reel down. Even now I am working on a small advertisement for a friend. After that, there's a Dockers "make your commercial and have it aired on TV" contest that I'm thinking of entering. The more I can get my work out there, the more chance I have of going immediately into the industry after I graduate.

But enough dwelling on the past (or the future), and let us reflect on the present. This month I have probably what is going to be the easiest class off all time: web development. For anybody who doesn't know me personally, I've been involved in web dev for going on eight years. All that YPN stuff and what not. Of course, for those of us who are already fluent in web dev they're going to try to get us to use modern and clean coding practices (tableless design, emphasis on CSS, etc). Oh, wait. I already do all that. I feel like a jerk talking about this class like it's useless crap, but it's really not their fault. However, I don't want to be talked down to as if I know nothing or am new to the whole web stuff. As with most technologies I've taught myself, I not only learn forwards, but backwards as well. I'm well versed in tricks of old as well as new. Alright, enough of that borderline ego stroking.

My other class, which I haven't actually attended yet, is, or will be, developmental psychology. I really don't know what this class has in store for me, but at the very least it should be more interesting than web dev.

Today, I got to get my feet wet in the field of game testing. EA's Tiburon division, which develops most of their sports titles, resides just seven small miles from my house. Once or twice a month they bring people in to do a couple hours of game beta testing in exchange for a free game. I've been on the mailing list since December after Ian Cummings, lead director of the Madden series, put in a recommendation for me after reading my Rock Band drums post. Of course, that was for a full-time job doing game testing, but being a full-time student as well these two hours sessions were the next best thing. But, I digress.

Anyways, I got to go to the EA building, which I must say is very, very nice looking. I even got to sign a non-disclosure agreement that forbids me from telling anybody what I played or what I saw. Kind of cool, actually. I will say, I enjoyed what I played and the best part of all is I obtained myself a free copy of Command & Conquer 3 for PC. I haven't actually installed or tried the game yet, but I'll probably post something when I do.

Well, I suppose that about wraps things up for now. I'll be putting up a post about my final project for motion graphics soon (currently waiting on something). Oh, and for all those tiny little updates be sure to check out my Twitter account. I've also placed a convenient little box above the RSS feeds that shows my latest tweet. Until next time, keep your staplers running.