Warning: strpos() [function.strpos]: needle is not a string or an integer in /home/chaosorg/bugfeatures.com/blog/index.php on line 49
Bug Features - Free bug report and feature request service for your Web site. - Vista on VMWare - "A required CD/DVD drive device driver is missing"
Vista on VMWare - "A required CD/DVD drive device driver is missing" 
It turns out you cannot use an ISO image mounted in VMware to install Windows Vista. While the installer will boot, once it goes to Vista's desktop, the virtual CD/DVD device is not detected and you cannot continue.

The solution? Mount the ISO in Alcohol 120% and retry! Note that my ISO wouldn't mount correctly in PowerISO due to the UDF file system.
  |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 951 )
Profiling and Interactive AJAX Debugging - FireBug Tutorial 
The author of the FireFox FireBug extension has written an excellent tutorial on how to use it - including profiling and interactive testing via the console. A must read for any AJAX developer!

  |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 923 )
OSX Tiger on a PC with networking 
Testing Websites across all browsers and operating systems on a single PC without rebooting? I used to do it with PearPC, but I've discovered a VMware compatible virtual machine does the job much more elegantly. The machine comes without networking support, but some clever chap has written an ethernet driver so you can run a Web browser. It's a bit slow, but it does the job. It is also alleged that using NAT instead of bridged networking in VMWare also works...

* Vmware
* Network Driver
* Pear PC

If all you want to do is see how your Web pages look on a Mac, check out this site:


  |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 935 )
Debugging AJAX 
Debugging AJAX calls can be tricky simply because everything is happening behind the scenes. Some AJAX classes will report debug info when requested nicely, but for a real hands-on approach you should try FireBug. It's a great FireFox extension that displays errors, has a built-in Javacript debugger, a DOM browser and, my favourite, an XMLHTTPRequest observer. This is enabled from the Console options menu and will display the calling code, outbound request and incoming response for all AJAX calls. It is one of the best kept secrets of the WEB 2.0 developer's world...

  |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 883 )
How to fit your life on a USB stick 
Came across http://portableapps.com/ today. Nice idea - all the programs you need for Web, FTP, email, word processing, spreadsheets etc in a single integrated suite. It's (almost) all open source and completely free, with 256MB and 512MB installations available for use with equivalent USB memory sticks. Ironically, the menu that holds the suite together is called pstart and it is closed source but free nonetheless. Here's a quick list of what's on offer:

* FireFox portable
* FireFTP
* FileZilla
* Thunderbird portable
* Gaim portable IM client
* Miranda IM portable
* Sunbird portable
* Open Office portable
* AbiWord portable
* 7-zip portable
* VLC Media Player

There are also apps for HTML editing, XAMPP (MySQL, Apache, PHP, PHPmyAdmin), image editing (GIMP), audio editing (Audacity) and other utilities such as antivirus and archive managers. So if you use several PCs - and sometimes other people's machines, this is a neat way to have all your stuff available all the time...
  |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 911 )
FTP from FireFox with FireFTP 
I'm on a FireFox frenzy today. FireFTP is an FTP client with account management and FTP link integration that runs in a FireFox tab.

  |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 943 )
FoxyTunes - media player controller for FireFox 
An unobtrusive media player remote controller for FireFox. Sits unobtrusively in your status bar... plus has a desktop widget if you are that way inclined.

And if you don't already listen to the Garage Pressure dubstep show on FBIradio.com, check it out!
  |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 922 )
Are templating systems evil? 
This is a bit of a rant in the latest installment of my ongoing struggle with 3 tier architecture, database abstraction and template systems...

It's an old argument - raging for at least 5 years, now: Are PHP templating systems missing the point? Let's start with a brief overview of what I'm referring to as a 'templating system'.

Basically, a template system is a technique of separating the application (business) logic from the display logic. Usually this involves two documents - a PHP script and an HTML template. The PHP script runs all the page logic, processes forms, connects to databases etc and then parses the template to create the HTML that is sent to the browser.

The best example of such a system is Smarty. Smarty is a PHP library that introduces special tags into HTML templates that control display logic such as loops and conditions.

Another example is Savant, which uses PHP tags instead of custom tags in the template. The argument for this is that PHP is itself a templating language, so there is no need to create a new subset of tags - just use PHP. Because there are no custom tags, Savant doesn't need to precompile the PHP scripts.

The reason I am even discussing this on the cusp of 2007 is that I am building a site that will need to scale massively. Accordingly, I have used the tried and true design patterns of a 3-tier architecture.

The separation of the database (server) from the Web application (server) is done via the ADODB library and the display logic is built using Smarty. Now, before I go any further, let it be known that I have had a lot of success using this combination before in some reasonably high traffic sites (50,000 successful page requests per day).

Now, I have done some profiling of the PHP pages and found that the two libraries I am using - ADODB and Smarty - are the biggest drain on the application. My core classe libraries and page logic are running lightning fast, but being bloated by my 3-tier implementation.


Now, my client is arguing that this doesn't actually matter. The days of needing to write the tightest, fastest, leanest code are over. The low cost of high powered hardware now compensates for the high cost of slow development due to performance tweaking. Good point. Consequently, I have decided to remove ADODB, as this can be done quickly and easily using my database abstraction layer code generation tool that I have written (mwahaha!). Smarty, however, will stay.

I make this decision reluctantly, however. The upside - I know it well and I know it works. The downside, the application is now entrenched in Smarty tags and replacing it would be very time consuming. There won't be a lot of page caching in this application, so Smarty will be a drain on the system for sure. Fortunately, it is well written - and any resource spikes can be dampened using a bigger cluster.

If I was going to start from scratch I'd try Savant 3, but I'd profile it first (maybe I still should - just to be sure!). I like the idea of pure PHP templates and I still think the 3 tier model is valid - but I am starting to think that Smarty, ADODB and many of the other PHP DAL and template libraries have had their day....

But don't get me started on ASP.NET, will you? Have you seen the custom tags?!?! ;-)
  |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 924 )
Debugging PHP from Firefox 

NuSphere have been promising it for ages, but its taken a man known only as iflo to build the Firefox etension for the DBG debugger. Now I can start a debug or profiling session right from Firefox. Thank you iflo. Note that Firefox may complain about the extension having an invalid hash, but it will install ok nevertheless.

Now, that does bring me to a little side note about PHP IDEs. I have spent months at a time in both Zend Studio and PhpEd, both of which have their ups and downs. I find Zend's IDE to be a bit buggy and slow. Sometimes it takes a whole minute to display the interface when switching between apps. Maybe that's a Java issue... as perhaps is the mouse selection bug I often get which requires a restart of the app. On the plus side, it has a great profiler - better than the NuSphere one, for sure - but I'd prefer not to have to install an entire server platform in order to use it. The Nusphere debugger/profiler is just a PHP extension. Simple and easy to install and configure. Plus the IDE is fast and supports handy stuff missong from Zend - smarty syntax highlighting, better HTML support (code templates, toolbars etc) and configurable help (eg: you can add MySQL 5 and ADODB help files so they can be accessed from the IDE). After 18 months of trying every other IDE (Eclipse, PHP Edit etc) I always come back to PhpEd, which I've now officially made my home with a pro license :)

  |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 980 )
Calling static functions with a NuSOAP Web Service 
I know, this is a pretty specific problem, but I solved it nonetheless :)

Basically, if you are using NuSOAP Web services and you want to register a static class function then you need to use ".." instead of "::".

For example,

class object{

private $soap;

if($soap !== null){
$this->soap = $soap;

static function static_fn($in){
return $in;

  |  [ 0 trackbacks ]   |  permalink  |  related link  |   ( 3 / 947 )

Back Next