More Baby Steps

August 26th, 2009

How I do enjoy continued progress. For the sake of cobbling something together quickly that can actually be play tested, I’ve (temporarily) switched to writing the rendering code for Scriven (tentative title) to Core Graphics. CG is limited to 2D rendering but should provide enough features to get a demo ready for play testing. From there we can start refining game mechanics. I’ve posted a screen capture below that shows off basic rotation, scaling, and translation of the game board. I actually got the tile textures by scanning the hex tiles from my copy of Settlers of Catan. Here’s to hoping that Mayfair doesn’t sue me…

Scriven Board Test

Apologies for the Quicktime format and slow frame rate, I’m working on getting a better capture.

I’m Sure He Though It Was Funny At The Time…

July 19th, 2009

I have a friend who’s a bit…we’ll call it cantankerous. We’re working on a little project together and he’s been coming over to the house every Sunday for the past couple of months. We’re usually only good for two or three hours of real, actual work before we have to do something else. Carcassonne is the current distraction. I got an IM from him today with a picture attached…while he was at my house…sitting about 5 ft. away from me. I’m not exactly sure why my immediate impulse was to post the picture online for everyone to see. Some things are better left unknown…

rargh

Baby Steps

July 15th, 2009

Ever since I was first exposed to it as a CE undergrad, OpenGL has always intimidated me a bit. I think it’s mostly because of the amount of code it takes to get any output from the damn thing, much less any useful output. Of course, it could just be because my grasp of matrices and linear equations lies somewhere between slippery and non-existent. But I digress…

Despite my aforementioned anxiety, I have a serious need to learn OpenGL backwards and forwards. I wanna write a game. Correction, I wanna TRY writing a game…in 3D…for the iPhone. This combination (along with a lot of others) necessitates learning how to bend vertices to your will. I’ve tried my hand at game programming a couple times. The most recent was writing a Missile Command clone for the Android Developer Challenge. We didn’t win. Apparently they were looking for apps with “features” that were “useful”. Some people are just picky. We did, however, get some good marks from Google for polish and performance afterward. So overall, I’d say it was a great learning experience.

Since then I’ve gotten a bit of Objective-C and iPhone programming experience under my belt from watching the Stanford lectures (which are excellent, by the way) and doing the homework assignments. I also picked up some decent books, which has become something of a ritual prior to starting a new project. But now that I’ve actually started using OpenGL on the iPhone, the task of getting a rendering engine for a game up and running (even a simple one) seems daunting. So…I thought I post a quick shot of some progress. It’s nothing to brag about, but it is progress nonetheless. In the next few months I’ll likely need all the encouragement I can get.

iPhone SImulator

Pandora One Desktop App: First Impressions

June 26th, 2009

Pandora One

I’ve been a Pandora subscriber for a couple years and it’s slowly become a necessity at work and around the house. Its helped me discover most of the new music I listen to and been directly responsible for more firewall subversion activities at work than I care to mention.

One thing that has constantly nagged at me, though, is Pandora’s reliance on a web browser (the player is built with Flash). Even the Pandora “desktop app” that was released in 2008 using Adobe Air provided little more than a dedicated window for the web content and Flash player to load in.

Pandora finally decided to re-brand the entire paid subscription service as “Pandora One” and released a new Adobe Air based desktop app that feels a bit more native. Here’s a couple of initial impressions.

Pros:

  • The layout is much cleaner and a clear departure from the web based client.
  • You can choose between two audio stream qualities: Normal and High (192 kbps).
  • The album art is higher res and looks a bit better.
  • I can finally listen to music without fear of the player crashing my web browser.

Cons:

  • There is no playlist or history. You can only see the current song playing. This is a disappointment, since I can’t always give a track the thumbs up/down while its playing. Once the song transitions, it’s gone.
  • The pop-up notification feature is sluggish and annoying. If you skip a bunch of songs quickly, it notifies you about each one at a painstakingly slow pace. There’s no option to move the popup window to another screen corner or to control the speed of the fade in/out.  To be fair, it can be disabled. But I’d actually like to use this if the implementation had a few more features.
  • The player still eats a ton of memory. Even though it’s outside the browser, the average amount of RAM consumption after a few hours hovers around the 120MB mark. That’s pretty ridiculous for a small music player.

None of the cons are real deal breakers for me (I still use it everyday). I do hope they keep working on the desktop app though. I understand the advantage of using flash for cross platform support, but it’d be nice to see a real native player written in something like Qt in the near future.

Needs More Pixels

May 21st, 2009

In the interest of testing a little side project I’m building on actual hardware (or maybe just because I’m terrible at using the iPhone simulator), I bought an iPod Touch around the end of February. Overall, I’ve been pretty happy with it. The interface is very intuitive, and even the touch keys have been surprisingly adaptive to my unique appendages (read: I got fat fingers). I haven’t had to pay $10 for the “privilege” of upgrading the system software yet, but I’m sure this is coming soon enough with the launch of the iPhone 3.0 OS.

When Steve Jobs announced the iPhone during the Macworld 2007 keynote, he made several references to the LCD. One of the most notable ended with “…it’s the highest resolution screen we’ve ever shipped, 160 ppi (pixels per inch).” I got my first close up look at the screen a few weeks after the launch, and at the time I could easily say it was the most impressive screen I’d seen on a hand held device.

Since the iPhone launch, nearly every major handset manufacturer has adopted a wide screen touch interface in at least one of their products. I assumed that the 480×320 pixel resolution would remain standard in these devices for some time, especially as they got cheaper to manufacture. Recently though, two devices have got me thinking that it would be in Apple’s best interest to bump the screen resolution on the iPhone with the next hardware rev.

The first is the Pandora, an open source hand held platform still under development that runs Linux. From the time of the iPhone announcement up until I first saw an article about the Pandora on Engadget, I had been under the naive impression that 480×320 was as good as it got in a small (3″ – 5″) LCD. The 4.3″ screen on the Pandora cranks out an 800×480 image. To put that in perspective, take a look at this comparison shot of the pixel real estate on the iPhone, the Pandora, the Blackberry 8000 series, and the Nintendo Wii (in 480p mode):

Portable Screen Resolutions

The second new device of interest that uses an 800×480 screen is the HTC Touch HD. This smartphone is easier to compare to the iPhone as it’s intended to compete directly with it. The screen itself is only slightly larger (3.8″ as opposed to 3.5″), and the overall device size is almost identical.

iPhone vs. HTC HD Pro

So why should anyone care? After all, 160 ppi looks great on a screen that small. At first glance, most people probably wouldn’t even notice a difference in image quality between the iPhone and the Touch HD, even though the HD’s screen is displaying more than 2X the pixels. But with higher screen resolution comes subtle differences that may be hard to quantify, but your eyes do pick them up.

Gradients, or the gradual changes from one color to another, are smoother. Complex curves that make up the individual letters in fonts are less “jagged” and appear more like printed type. Photos and other complex images are sharper and more detailed. But most importantly (IMHO), increasing the screen resolution gives developers, UI designers, and graphic artists a higher creative ceiling and more flexibility. But simply taking an existing piece of media and formatting it to display at a higher resolution usually won’t do the trick. BluRay is an excellent example of this type of transition. While at first it was prohibitively expensive and the discs were little more than re-branded DVD’s, BluRay’s market share continues to steadily grow as prices come down and newer movies are filmed in higher definition…allowing the home theater market to take real advantage of the technology.

I’m actually pretty doubtful Apple will release an iPhone with a higher res screen at this years WWDC. Most of the industry speculation is pointing towards an OLED screen (assuming they change the display at all). But I strongly believe in an ever increasing creative ceiling when it comes to display technology, and I hope the folks in Cupertino keep the iPhone state of the art.

A Parallel’s Universe

April 20th, 2009

I’m tired…I think I can actually hear my bed calling me at this point. I’ve been up all night again as a result of what is quickly becoming a ridiculous quest. Simply put, I want to run OSX on my workstation. It should be easy. I mean, after all, every one of the install guides posted on the Insanely Mac forum has a section for the “noob”, the “simpleton”, or the “beginner”. Most of which, ironically, are either difficult to understand or omit important steps.

But the rage here is cryptic as always, so I’m going to be bitching about something else that I’ve encountered as an direct result of my little quest, the Parallels 4 upgrade “process”.

This is a rough timeline of the latter portion of my evening:

11:00PM : My wife (as lovely as she is patient with my vampire hours) is soundly asleep on the couch. I suddenly remember I need to get a bit of work done before I go to bed as I’m taking tomorrow off. I have to do this remotely. Time for some VPN action.

11:30PM : I realize that I can’t boot into Vista on my workstation anymore because of my weekend exploits trying to get OSX up and running. Should be a quick fix…

12:00AM : After several attempts to restore the MBR on my hard drive with the Vista install disc and GParted, I punt and decide to resize/move my Vista partition back to the way it was configured before I started messing with OSX. I’ve had to do this before with another drive, it will take an hour at least…

1:30AM : After the resize is complete, I go a couple more rounds with the Vista restore disc and GParted until I finally give up. My partition is fine, the data is safe and sound, it just…will…not…boot…

2:00AM : I fire up my Macbook and in desperation I try to load an old XP virtual machine with Parallels. I haven’t used it in months. I forget, of course, that I’ve upgraded Parallels since then and thus need to upgrade the VM. Ok…that shouldn’t take long…

2:15AM : Parallels boots up with a slick new interface and asks me to start the upgrade process. It also informs me this process is broken down into four steps. I’ll be referring to these steps by their biblical names.

2:20AM : Step 1…Pestilence. This is the plague step. It starts off with a harmless cough like symptom. You know, that crunching sound your hard drive makes at vital moments when you REALLY need to get some work done. I’m just hoping it will go away soon…

2:40AM : Step 2…Famine. I have no resources available now. My computer has been completely infested by this “installer”. I can barely muster up the RAM to run Firefox and start recording this tale…before it’s too late. Out of the corner of my eye a message appears from the beast…taunting me. “Please wait” it says, “This operation may take some time to complete.”

Some time indeed…

4:45 AM : Step 3…War. This step has been running for the better part of two hours now. Apparently “upgrading virtual hardware” is a pretty painful task. What’s amazing, however, is the complete lack of information the beast manages to shell out at this juncture. I watch the same advertisements for new “features’ go by over and over again while the progress bar stays completely still. Well, not completely still. This is OSX after all, so it’s animated…which means it gives off the illusion of progress while not moving at all. Somewhere from inside the machine, a childs voice cries out in pain.

5:00 AM : I am now wondering whether or not this process will complete in the next 30 mins, at which point I will drive into work…to finish what I never got started…

6:06 AM : I’m at work now. Just wrapped up what I needed to get done. I’m almost certain we’ll still be on Step 3 when I get back home. I’m gonna go ahead and post this now. I’ll be sure to update it later on in the day. Step 4 still awaits…

1:20 PM : Step 4…Death. I mean this literally. I had to KILL the update process because it was still going when I woke up.

What’s the moral of the story kids? Don’t mess with a functioning system too much, particularly when that system is the only one in the house capable of getting any work done.

A Perfect Circle Strikes Back

April 15th, 2009

Quick disclaimer…I loves me some Pandora. I’ve been a paying subscriber for a few years now and can attribute most of the new music I’ve discovered in that time to their service. I have noticed a few hiccups and oddities in the relationships they create between songs , though. I’ve had 50 Cent show up in a Madonna station, for example. Could be some sonic connection there I’m not yet aware of…

Anyway, up until now I’ve never found any obvious bugs in their playlist generation. But I noticed something tonight whilst listening to my NiN station that I thought was pretty amusing, so I took a shot of it. It’s posted below. I don’t mean to complain about listening to “3 Libras” a few times, but, come on now. :)

Pandora Fail

The Hackintosh Matures

April 10th, 2009

This is gonna be a short post, but I want to follow it up (eventually) with a full blown guide detailing the steps I took to get OSX 10.5 (Leopard) running on my Core2 workstation. I need to preface this with a few things first, so please bear with me.

First, I’m a fan of Apple’s OS environment. I’ve been using OSX on a Macbook for a couple years and overall it makes for a very pleasant desktop experience.

Second, I believe that Apple makes a hardware product that is superior in design and engineering to anything else on the PC market.

And third, unfortunately, I think they charge too damn much for said hardware…

I have no problem paying more for a superior product, but it would be nice if the so-called “Apple Tax” was a flat tax and was limited to something like 10%, but I digress. In addition to having expensive hardware, Apple’s desktop lineup is sorely missing a few machines…and no where is this more evident than in the Hackintosh community, which has seen spectacular growth over the last few years.

I tried installing OSX on my last workstation (based on an older Netburst Xeon CPU) with mixed results. I couldn’t get both my monitors to work and the machine crashed without warning. This was sometime in early 2007 I think. How things do change in a short amount of time…

I just booted the Kalyway 10.5.2 OSX DVD (check your favorite torrent tracker) on my workstation, selected a few drivers, and installed it to an external 320GB drive. Long story short, I’m writing this post from Leopard on my PC, with working audio, video (both monitors fired right up), and networking. I’m in the process of installing the retail version of OSX on second partition I created on the same external drive. We’ll see how that goes. For now, here’s some OSX86 desktop pr0n…

p1000611

Digg Dialogg With Trent Reznor

April 8th, 2009

Trent ReznorI’ve been a Nine Inch Nails fan for quite awhile. I was introduced to their music (well, HIS music I guess) with Closer on the radio sometime in `94 (the CD boombox was still very much alive and kicking). Trent Reznor has always been a cut above most muscians in my opinion because he geniuenly appreciates technology, knows how to use it in creative and provocative ways, and also understands what implications it has for the future of music and even society as a whole. Also, the guy seems to really respect his fans and doesn’t use Nine Inch Nails as a brand solely to profit off them.

Kevin Rose recently interviewed him for an installment of Digg Dialogg and I thought I’d post some highlights from each of the ten questions. The video is also below:

Your business model still primarily involves selling music either digitally or physically. Why haven’t you embraced advertising as a business model?

  • While explaining why he’s considering making nin.com self-sustaining with ads. “There will be a time coming up when Nine Inch Nails goes away for awhile.” What?! Why? When?
  • Only 18% of people paid for Saul William’s album. :(
  • On running his own label (Nothing Records). “…I learned that I don’t want to be in control of and held accountable for other acts because you’re always to blame for what’s good and bad…mostly what’s bad.”
  • On the music industry in general. “The old record labels are dead and the new thing hasn’t really come out yet.”
  • Can you make money on iTunes? “Not that I’ve seem personally.”

What is the most embarrassing song on your iPod?

  • “What’s going through my head right now is do I tell the truth at the risk of uhh…career ending statement about to come out of my mouth.”
  • He starts singing “Finally” by C.C. Peniston. No, I’m not joking. 9 mins 56 secs into the video…watch it.

What advice do you have for up and coming bands who chose the internet for distribution over traditional channels?

  • On major record labels. “They’re not interested you as an artist. They’re interested in you as a means to make revenue.”
  • On MTV as a form of exposure for bands in the 90′s. “…and we saw it with Nine Inch Nails. We went from 500 people a show to 5000 people a show `cause we had a video on MTV. Wow. OK. We could have toured forever and never got up that high.”
  • “Print media has been killed off by the Internet…by the speed of it.”

What tech gadgets, hardware, software, can you not live without?

  • On the iPhone. “…having a computer in your pocket that’s viable. That’s a big one.”

Have the plans to release a Year Zero mini-series on HBO fallen through? Or can we still look forward to a video representation of the album?

  • “…it could be a reality.”
  • “It’s a dramatic unraveling of the end of the world basically.”

What is your favorite thing you have seen done with your music by a fan of NIN?

  • “Right off the top of my head nothing…there’s no clear winner in that category. I will say that it’s…it’s very interesting and flattering for me visit the remix portion of our website.”
  • On remixing. “If I had had Queen’s multi-track stuff when I was a kid I would have lost my mind. Of course I’d also needed computers that didn’t exist at that time.”

What are some of your favorite video games?

  • “I think when I came across Wolfenstein…it forced me to go out and buy a PC because I couldn’t believe how cool that was.”
  • “I remember we were on tour and Doom came out and…it seemed like the coolest thing I’d ever seen in my life. I couldn’t believe how politically incorrect it was.”
  • “I feel like an alternate route my life could have taken was the route of the programmer. And I think that’s every bit an art form as music is.”
  • “I think a lot of the big publishers have gone the route of record labels and movie companies.”
  • “My favorite game of all time is Robotron.”

Will any of the records of your side project Tapeworm, with Tool frontman Maynard James Keenan, ever be released?

  • “The end result was kind of…mediocre..to be honest with you.”
  • “If you’re gonna combine Tool and Nine Inch Nails it has to be…10/10, not 7/10.”
  • “I love Maynard. He’s a good friend and I’m certain that we’re gonna do something together that’s 10/10.”

Since you are a tech artist, are you planning an online concert?

  • “I was talking with James Cameron a couple years ago…and he showed me a lot of stuff he’d been filming with his proprietary camera setup that he has…and it’s pretty impressive.”
  • “I would go see a band I don’t even like if I could see a concert live in 3D just to see what it’s like.”
  • “Getting into the idea of trying to charge people to watch something on the Internet. I haven’t thought this through, but it feels like it gets into that same territory of…you’re selling people…snake oil basically.”

Is there tension between art director Rob Sheridan and basist Justin Meldal-Johnsen over coverage of the Scientology protest?

  • “There hasn’t been any kind of issue like that. It’s just a matter of common sense and tolerance.”
  • “We’ve in the band, for the first time really, we’re all friends and we all respect each other.”

Counting Lines Of Code

March 27th, 2009

QtEver had anyone ask you if you “like” your job? I never understood the point of this question aside from being a staple of meaningless small talk. An honest answer will never be a simple “yes” or “no”. Normally my job can swing from nauseating and boring to incredibly stimulating and stressful (FYI: I write software…poorly).

Right now though (and for the last few weeks), I could honestly say my job has been cool. It’s one of those rare times when a developer gets paid to do something they have a personal passion for. Long story short, I get to play with Qt all day.

I’ve followed Qt (that’s pronounced “cute” if you’re obnoxious and “que-tee” if not) since the late 90′s. This was right around the time I first tried Redhat and KDE. I’ve never had the chance to utilize it on a real project until now, though. Given the nature of the project, I had an odd request come my way a few days ago. My boss basically asked me to get a line count of the Qt source code.

Now, any UNIX guru worth his/her salt would chuckle, crack their knuckles, and spin some regular expression and command line magic to produce the answer in seconds. I’m not one of these people, and I already had the source extracted on my XP workstation. So, I went searching for a line counter on the intertubes that would work on the Windows shell and came across this.

For anyone who’s curious, Qt 4.5 is massive. I’m guessing a lot of that bulk is due to the fact that it runs on everything under the sun. Here’s the report from numlines (along with the command options I used):

numlines /i /s C:\Qt\4.5.0\src\*.h;*.cpp > qt_count.txt
Total files: 7532
Total lines: 2,402,695
Total uncommented, non-blank lines: 1,561,824
Total semi-colons: 653,431
Total bytes: 93,440,893
Average lines: 318
Average bytes: 12,405
Report date: 27-Mar-2009 1:35:11a

My hat’s off to the devs at Trolltech (err…Nokia now I guess) for making an incredibly powerful and flexible UI framework…all 1.5 million lines of it.