Dec 13
New Record!
posted by: Player0 in computering on 12 13th, 2007 | | No Comments »

http://service.futuremark.com/compare?3dm06=4137114

With the new boxen comes a new 3DMark06 score.  14318.  A number which reflects the poor overclocking performance of my E6600 (3.41GHz just isn’t all that stable) with the excellent performance of my NX8800 Ultra at 741MHz core (might be stable).

This number won’t last.  I fully intend on destroying it when my Corsair Dominator 9136 arrives this week.  My Corsair 6400C3DF was back for RMA a second time in a year due to failure and after failing to get me a replacement set (after erroneously sending me 6400C5D and then promising me another replacement set and failing to provide) let me get the next set up.  9136 isn’t low latency at 5-5-5-15 but it does run at a cool 2.1V which should buy me some FSB which my E6600 at low multipliers is screaming for.  It’s the perfect RAM for me right now.  I was about through with Corsair but this has given me faith.

The only remaining non upgraded part on this beast is the E6600.  3.4GHz out of a 2.4GHz proccy isn’t bad but with so many others getting 3.6GHz easily on them I’m sad.  Funny thing is that I am getting about 700MHz more out of it on this new motherboard (Asus Maximus Formula).  Cool.  But instead of failing Orthos, when it crashes it just reboots the whole machine.  I equate that problem more to system RAM than CPU.  It might just be stable at 3.42GHz or better with faster RAM.  I was pretty sure this CPU would never get over 3.33GHz though so anything is an improvement.

If there was a decent 1333MHz FSB quad core out now in the affordable price range with 12M L2, I’d be all over it.  But it looks like I might have to wait for a MUCH better 3dMark score.

Dec 13
foreach ()
posted by: Player0 in php on 12 13th, 2007 | | No Comments »

I love the foreach loop.  For me it sums up everything right in PHP.  Arrays just work in PHP and I like to code PHP as though it’s an array driven language.  To me, using a standard for loop in PHP in 95% of the cases I come across just ruins the point of quick scripting.

I like coding PHP around a 4GL philosophy.  I want to focus on higher level programming for the sheer speed of development.  PHP is a powerful language and has many constructs for doing just about anything you can do in, say, Java.  Just expect it to be a lot slower.  PHP has extremely elegant solutions for dealing with strings and arrays.  Perl’s array/hash mechanism just isn’t nearly as elegant and you need some serious abstraction layers to think about doing this as flexibly in Java/C++.

So PHP is strong with strings and arrays so I try to take advantage of that.  Throw all data in to arrays and objects and treat everything as though it can be multiples.  This philosophy works out great for extensibility and web devopment.  For example, why assume that only one form input will be present when you can easily check for multiples?  Things like, but maybe not exactly like, that.

Dealing with iterators just seems like something I need to do in a low level language so foreach is my savior.   But while I’ve spent time developing my code with as many foreach() as possible some limitations had escaped my notice.

In PHP4, if you foreach through an array of objects you start creating copies of all those objects.  This is slow, memory intensive and bad.  This is fixed with PHP5 and it’s reference based object memories.  However, foreach continues to duplicate the initial array passed in to it so it can handle it’s internal pointers.

If the array is large enough to care about than foreach(array_keys($array), $a) might actually be beneficial.  A standard for loop just might be the best choice for massive arrays though as much as I hate to say it.  I suppose I have some code out there that still iterates over very large arrays with foreach.  But at least now I know better.

I wonder if there are cases where foreach doesn’t make a copy.  I suppose I should go read some more comments on php.net.

Dec 12
Blue Ribbon BBQ
posted by: Player0 in food on 12 12th, 2007 | | No Comments »

So I took the taste challenge. When I first moved to Boston I was introduced to Red Bones over in Cambridge. Some pretty good BBQ. Nearly as good as the place I tried in North Carolina earlier this year. I kept hearing that Blue Ribbon has better Q.

And they were right. We got a couple three meat platters for a sample size of six meets and four sides. I also had to try the cobbler. The beef brisket, ribs and pulled pork were great. I thought the chicken had good flavor but was over cooked. The sausage wasn’t anything special. The burnt ends were also good but very dry. The side sauces were great but the cobbler was a bit doughy. The corn bread was dense and tough.

I’m a big fan of coleslaw but it just wasn’t good here. Also the black eyed corn was a bit strong for me. The beans were great and you can’t go wrong with mashed potatoes.

If this sounds like a lot of food, it was. Most of it will be left overs for the next few days. When I try a new place I usually like to go overboard and try a bunch of different things at once. It’s expensive but it’s fun and with the amount of places I need to try still in Boston, it seems to be the only way to decide if a place is worth going back to or not.

I’ll be honest. I’ve not been to the south much nor have I been to the Dinosaur up here so I may not really know what good BBQ is yet. Everyone seems to have very different tastes when it comes to this. It’s possible I wouldn’t like ‘good’ BBQ even. I need to rectify this with a trip down to Texas. Maybe with a stop in Cincinnati for a three way.

Dec 8
Ancient Network Games
posted by: Player0 in gaming on 12 8th, 2007 | | No Comments »

I was talking with a bunch of guys at work and someone had actually heard of Bolo.  I was introduced to Bolo in the Mac lab in high and it was my first networked game experience.  This was back in the mid-90s so all I really had access to otherwise was the SNES and maybe a MU or two.

It would be good to get a couple games of WinBolo going for old times sake.   I’m downloading it now but I’m not sure how restrictive the shareware license is.  I have heard that the Windows networking isn’t as good as it was on the Mac as it ads a bit more latency.  That’s really too bad.

I also got thinking about another old game today of a similar 2d networking nature, only much more modern.  I played quite a few rounds of Cosmic Rift before Sony decided they wanted to charge ridiculous sums of money for it.  Thus was born my hatred of pay per play games.  It wasn’t until the sheer power of WoW (and to a certain extent Second Life) convinced me to bother paying a monthly fee again.

Dec 8
Project: Cid
posted by: Player0 in computering on 12 8th, 2007 | | No Comments »

I usually name my PCs after characters in Final Fantasy. I’m a big JRPG dork, I admit it.

The Cid gallery can be found here.

My Cid thread on LiquidNinjas is here.

Cid is a simple project really. I wanted to buy an Nvidia 8800. It wouldn’t fit in my Lian-Li PC-60. I really liked the look that the VapoChill LightSpeed Lian-Li add-ons have but didn’t want to spend the money or go to phase change cooling. My own PC-60 was getting on in years and suffered from a few stripped holes. But just getting a new case wasn’t in the cards because of some custom artwork dremeled in to my case panels. I decided to buy a new PC-60 and cut the old one down in size. The planets aligned and it also worked out to be a great way to fit a massive Enermax Galaxy in to this tiny case as well as my long unused 7″ LCD panel.

If I could have just gotten a PC-2000A, I would have.

I did a poor job in cutting the case down and a worse job of re-assembling it. There’s only so much you can do on a rubber maid tub in the middle of a dining room on a folding chair with a dremel and no clamping devices. Riveted back together it is strong enough to support the weight a case must support, but its a little wobbly. Someday I will redo some of what I did to make it a bit more stable but for now I’m sick of getting metal shavings all over the house.

Siamese Lian Li

I’m about 50% done with the project today.  I still need to install the LCD screen and cut down the side panels, both huge projects which I might outsource to someone who can cut straighter lines than me.   The good news is that the water cooling system is running and has made the 8800 Ultra stable.   More on that later.

I installed a Bulgin Blue LED switch on the front panel.  It took a bit of extra drilling and soldering.  It looks kind of neat but it’s overshadowed by the standard blue power LED right underneath it.

Blue LED Switch

Dec 8
Philosophy of PHP
posted by: Player0 in php on 12 8th, 2007 | | No Comments »

Computer languages are flexible beasts.  PHP is no exception and it’s because of this fact that I have a real problem developing a real coding style in PHP.  I believe that PHP was developed to speed web development.  To make web development easier.  It succeeded in spades.  PHP has become the joke language in place of JavaScript.  Anyone’s mother can create a site and add some PHP elements.  You don’t have to understand PHP to add a <?php date(’Y'); ?> on to your site.

PHP, thanks to it’s success as well as Zend, has grown in to larger beast with OO and all sorts of modules and CLI.  And immediately we run in to a problem: PHP is slow.

It all comes down to how enterprisey you think you need to be.  Sure, abstract classes and design patterns and throwing errors is all nice and good and flexible.  But they all make for slower applications.  They also make for slower development processes.

Then ask yourself WHY are you using PHP?  If you want security and speed and UTF-8 and enterprisey, isn’t Java a better choice?  It’s not that much harder to compile code people.

I may be a PHP purist.  I want to keep PHP quick to develop and simple to maintain.  I do like classes because they add name spacing and organization.  But we don’t NEED to be fancy and more than one function call per function is a bad thing.  I don’t want to give up foreach loops for performance reasons.

Yet so many companies build these massive frameworks and OO models which are meant to reduce programming needs down the line but ultimately become these huge elephants that are shot in the chest after it’s discovered that PHP can’t actually manage firm business requirements such as internationalization or code security.

If you let the programmers just build something that works and is at least fairly well done even in a simple way then let feature creep happen you’d be better off.  If you can develop PHP fast then it doesn’t matter if you have to reinvent the wheel a couple times.

PHP shouldn’t be called a joke language but it certainly doesn’t deserve to be treated enterprisey either.  Please stop abstracting your database layers three times just in case you decide that MySQL really does suck and MIGHT go to Postgres or Oracle someday.  If you didn’t wrap every DB call with insanity it might not be so slow.

On that note, does anyone know when PDO will start using the native MySQL drivers?

Dec 8
The Very Bottom
posted by: Player0 in cruft on 12 8th, 2007 | | No Comments »

Those bastard squatters may have gotten Player0.com but I like orgies better anyway. In celebration of finally purchasing my $6.00 personal domain I decided to find blog software. Wordpress it is. Because why not.

As far as installation goes Wordpress was a breeze. I created a new virtual host, unzipped the files, inserted some SQL and I was away. The dirty work is always in the details. I do plan to better organize this blog someday but I suspect that this will happen little by little. See that right column over there? I really don’t want a right column over there. And seeing as how a right column shouldn’t be anywhere else but on the right, then it has to go completely.

I’m staring at the tag field below this post and I’m trying desperately to find the words that best describe this primarily meaningless example blog entry. Ah, I’ve got it.