Recent Entries »

Playing with Google Maps and encoded polylines

I’ve been playing around with the Google Maps API for a bit and it’s turned out to be a great way to get started with “mashups” and the like. One of the best uses of the API is the ability to create paths or routes on the map.

This is done by creating GPolyline object and then adding it as an overlay to the map. Basically, a polyline is just an ordered list of geographical points/coordinates on the map, each of which is a GLatLng object. For serialization/storage of polylines, there is an algorithm you can use to Base64-encode a series of points; the resultant string can later be passed directly into a factory method to regenerate the GPolyline. By using encoded polylines, you also get access to a few more interesting and useful options related to rendering and performance issues.

Continued

CakePHP and error/exception handling

Copyright CakePHP

I’m currently using CakePHP and finding it to be quite useful. The “automagic” handling of tables is useful for basic relationships, though more complicated setups usually require manual work. The MVC implementation has also clearly drawn inspiration from Ruby on Rails, which may be advantageous to some, though this has no bearing on me. Though there are a few things that nag me about CakePHP (such as lack of a good testing suite, though that’s supposedly fixed in 1.2, which really should be marked as version 2.0), overall it’s a great framework that adds badly-needed structure to PHP and has saved me time.

One thing I’d like to see, however, is a proper exception handling model. I realize this would require making it PHP 5-only, but in my opinion, PHP 5 adds some sorely-need features, such as the aforementioned exception handling model and a class/object system more in line with other languages.

Continued

The fallacy of adding probabilities

I’m an avid reader of Maximum PC and have had a subscription since they were known as boot back in the late 90’s. (I’ve remained a subscriber despite the fact that they put most of their content online, a good move nonetheless, but I still like the printed version). They’re fairly accurate in most of their reviews and I respect them for both this and their useful guides and other features.

However, when reading their review of the FragBox II, I came across an interesting quote about failure rates: (Emphasis mine)

So why would Falcon configure RAM in single-channel mode? Falcon gave us three reasons for this decision: There’s only a minimal performance advantage to running dual-channel mode with this box; RAM is the second-most-likely component to fail (the GPU is first), so using just one DIMM cuts the chance of failure in half…

The emphasized part of the statement is wrong in the general case. But why?

Continued