matt hackmann -> web developer

Building a Web-based Media Player - Part 1

Posted on in media player programming flash actionscript c++ tutorial

For the past month I've been tinkering with Flex and my little Linux server. One of the projects that grew out of this was a web media player with which I could listen to all my tunes wherever there happened to be some scraps of internet. This has been one of the coolest projects I've worked on in some time. It successfully blends nearly all of my programming skills: PHP/MySQL, Javascript, XML, Flex/Actionscript 3.0, and some C++. I'm going to write a series of tutorials walking through what I've done in hopes of bringing this coolness to the masses. I'm going to be fairly verbose covering subjects that any seasoned programmer can pretty much skip over. In the first installment I'm going to cover creating the database and getting song information from the MP3s.

Continue reading >

We bring you... dxprog media!

Posted on in relaunch web design

After a month of crazy coding and hard work, I unveil to the world dxprog media! dxprog media is, for all intents and purposes, just a front for myself and my work.

Speaking of my work, be sure to check out the brand new portfolio section. It\'s a little sparse now, but I will be filling it out with all my best work over the next few days. I encourage you to re-check out my motion graphics projects there as they are encoded in much higher quality than the YouTube versions (and it\'s the only place you\'ll be able to see the corrected Crayola Commercial) . Also, you get to use my snazzy new video player (written entirely in Flex).

Of course, the blog got a couple needed updates as well. Down at the bottom of the page you\'ll notice page navigation. This is across the board for general viewing, viewing tags, and the archives. Another thing to get the page treatment was the entry comments. There\'s only really one entry that can benefit from this update right now, but I hope to gain some more viewers by shifting my posts more towards industry related topics and some tutorials. Originally I was going to intersperse tweets between the posts but decided ultimately against it.

So, there it is. The site looks more awesome than ever and I\'m hoping to bring some new sweet, juicy content to everybody. So, bookmark the site or add the feed to your favorite RSS reader and prepare for a new era of dxprog!

From the Orlando Anime Festival

Posted on in anime convention video

Yesterday, we (Ryan, Tyler, and I) had the pleasure of finally attending my very first convention (outside of the local county fair). Sadly, it wasn't a sci-fi convention as I would have liked, but an anime convention. I don't consider myself to be an anime nerd, and even border on disliking the genre entirely, but I did have a pretty good time none the less. The convention itself was fairly small in comparison to others, but there was still a goodly amount of things going on and plenty of dealers peddling their anime related wares.

The atmosphere or the con was... nerdy. Even so, I felt strangely out of place as I was one of the few attendees that wasn't cosplaying. Most of the costumes I didn't recognize, but there were the likes of Phoenix Wright, Yuna, Link and, surprisingly, several Snakes from Metal Gear:

image

It still surprised me just how many girls were there. In fact, I'd say the males were outnumbered by quite a bit which, for me, is an unusual situation to be in seeing as I go to school overflowing with testosterone. Just being around all these people was probably the most entertaining part of the day.

One of the areas we spent the most time in was the dealers floor. Just about anything anime related was being sold. Mangas, DVDs, T-shirts, action figures, plushies, costumes, weapons. And that's barely scratching the surface. As you can see in the picture above, I broke down and bought a Godot shirt. I wubs it!

There were some video games, including an NES championship tournament, but it was a side to everything else going on. There were rooms showing animes, people talking about how to improve your AMV/drawings, all sorts of crazy stuff. We wound up the night by sitting in on the "Weakest Geek" game show. It was kind of like Double Dare (sans the mess) and a quiz show with the Who Wants to be a Millionaire music playing in the background the entire time. The biggest part of this game was the "Box" game wherein a picture of an action figure would be shown and the player would then proceed to try to find said action figure in a fish tank filled with more action figures and packing peanuts. It was all rather entertaining to watch and the crew running the show was pretty cool.

I'm going to wrap this post up with a video I took while I was there (and later added music to).

[video=http://www.youtube.com/v/I712oSEjZIM]

Speed Cubing

Posted on in howto video

One of the more mundane things that happened over Christmas break was my learning how to solve the Rubik's cube. My ability to do so was actually big thing in math class the following month. Since then, I've been improving upon my technique and now I'm going to show you how to solve Rubik's Cube in ten seconds or less. Video after the break.

Continue reading >

Awesome Video of Errata

Posted on in rants games nes emulator

[video=http://www.youtube.com/v/B3Vh--awqmQ]

Now, I realize that the "system specs" spewed forth in the above video were probably intentionally skewed so as to follow the whacky, 80s style zaniness, but as an uber nerd and somebody who's intimately familiar with NES hardware, I feel compelled to correct their errors.

Claim #1: 3.58Mhz video core clock speed

The NES video processor, a Ricoh 2C02 "Picture Processing Unit", or PPU, is actually clocked at 5.37Mhz. The CPU is exactly one third of this, or 1.79Mhz. The figure they're quoting is the timing of a color NTSC signal.

Claim #2: 240x226 resolution

The PPU actually worked with an internal resolution 256x240, though most old TVs did not display the first and last eight scanlines effectively making the resolution 256x224. This was the same for both NTSC and PAL models.

Claim #3: 16 sprite pixel depth

I don't even know where to begin on this one. Firstly, the NES had enough sprite RAM (object attribute memory, or OAM) for 64, 8x8 or 8x16 sprites. Secondly, every sprite could have three colors (four if you include transparency) from a palette of 53 colors. Every scanline could hae a maximum of eight sprites, and when this limit was exceeded some sprites were not drawn causing the infamous flicker. Finally, you could have a total of 25 colors per scanline. What the hell they were talking about to begin with baffles me, but there were no 16s involved there at all. Except maybe that internal 16-bit PPU register that could be written to through dual writes to address $2006....

Claim #4: NES has a Zilog Z80 processor

This one's easy. The NES did not have a Z80. It had a Ricoh 2A03, which was a 6502 without decimal mode and a set of sound instructions. The Gameboy, however, had a Z80 and the Sega Genesis used one as its sound processor.

Claim #5 It's an 8-bit system

Well, that's about the only thing they got right. Though, the system did have a 16-bit address bus....

Well, I'm finished. I'm sure somewhere God has smote a kitten for my nerdy rantingness, but it had to be said and I said it. Caio.

Up next on dxprog.com

Posted on in site news web programming web design

It is the eve of the beginning of my PHP/MySQL class. Of course, we should all know by now that CMS programming is child's play for me. However, seeing as my final project for this class is a CMS with front end, I'm taking this opportunity to redesign stuff, and by stuff I mean everthing (even beyond the site itself). Some things to expect from the next iteration:

    [item]Twitter integration on blog page[/item][item]A proper portfolio[/item][item]Accross the board branding[/item][item]Page navigation[/item][item]Probably more as I think of it[/item]

If my rebrand goes as well as I hope, I shouldn't be updating the design for some time. Geez, we haven't heard that before, have we?