Eightfour

 
 
  • Increase font size
  • Default font size
  • Decrease font size
+skill
    follow us on Twitter
    Blog
    Tenders, Lies and Videotape PDF Print E-mail

    We have had the pleasure of looking at a few Requests for Tender issued by a few government instruments and agencies. Mostly for web site development but some other bits and pieces as well.

    The one thing that stood out to us was how high the barriers are for entry. I know that the purpose is to protect the tender issuer, however things like specifying a minimum of $5,000,000 of Professional Indemnity insurance for a website with total cost less than $50,000 that doesn't handle any transactional data and could be set up in a 2 server clustered environment for less than $500 per month is a bit much.

    One wonders whether people want to give small businesses a go or not.

    I guess it proves the common perception that large organisations only want to deal with large organisations, medium with medium and small with small.

     
    High-Performance Joomla!: Caching PDF Print E-mail

    When setting up high-performance websites based on the Joomla! framework, the most valuable tool in the framework is the cache. Building rich sites with large amounts of database, calculated or externally sourced (e.g. via SOAP) information can lead to slow performance without the cache.

    The cache can be configured to use a few underlying handlers, which are File, APC, Database and Memcache. Each has their merits, APC and Memcache are generally only available when running on a dedicated server as these will not generally be available on shared hosting.

    For Australian Traveller, Memcache is being used as the Joomla! cache handler. APC is also used for caching compiled PHP pages, and MySQL has been configured to have a fairly large query cache. The MySQL query cache however is only used until an insert is done on any table - then the cache is flushed. Also using the Joomla! cache framework means that more than just database queries can be cached - the results of PHP code calculations, SOAP calls and the like that are resource and/or time intensive can also be cached.

    There is also a plugin for Page-level caching which will override the page handler and allow output of all generated pages from the cache, however if using session data such as a shopping cart, this plugin is not recommended as it will cache one users' shopping cart or a users' lack of shopping cart and present that to other users!

    To enable caching, first ensure that a cache handler has been set in the Global configuration and that caching is turned on. After caching has been turned on some Joomla! modules may need to have their cache disabled - in particular the default Menu or Extended Menu should have caching disabled to avoid errors in generating the menu. A default cache time can be set, 5-15 minutes is generally acceptable when dealing with a fairly dynamic site.

    Once that is established and you want to cache internal workings, be it inside the template you are using, a custom module (, someone else's inefficient extension) or otherwise, it is a fairly simple matter using the JFramework classes. One simply creates a function that carries out the required function and returns the appropriate set of values, which is then called with the cache framework handler.

    function getSomeValues($input)
    {
    return array('A','B','C','easy as','1','2','3');
    }
    $cache = JFactory::getCache('modulename');
    $values = $cache->call('getSomeValues','lyrics');

    See also this page: http://docs.joomla.org/JFactory/getCache

     
    Running VMware ESXi inside VMware Server 2 PDF Print E-mail

    Update 30/10/08: More information about this received from the Vmware forums (see this thread ). Thanks jmattson!

    For those of you who want to test out the free ESXi bare-metal hypervisor but don't have a "supported hardware" type - here is a method to run it within the free VMware Server 2 .

    This has been tested with VMware Server 2 installed in a Ubuntu Hardy AMD64 Linux system, running on a system Intel Core2 Duo processor with Intel VT (P8600) with a plain old SATA drive. Other architectures/systems may work however your mileage may vary. There are 4 limitations:

    Limitation 1 - Virtual SMP is supported however ESXi will stall on startup and take a while to load. It will start though. For virtual SMP to work you'll need at least 1GB of RAM set for both the ESXi VM in VMware Server and the VM within ESXi otherwise you'll get a memory allocation error when starting VM's within ESXi.
    Limitation 2 - Only 32-bit OS guests are supported within the ESXi host. This is because the hardware VT is not exposed to the ESXi host from VMware server 2 which means no 64-bit CPU support.
    Limitation 3 - Performance will be pretty slow and eat up a lot of CPU - as there is no VT support and 2 virtualization layers.
    Limitation 4 - VMware server 2 needs to be running on a machine with hardware virtualization, either Intel VT or AMD-V.

    Disclaimer: This is pretty experimental and definitely not supported so use at own risk. I'm not at all responsible for anything that goes wrong!

    Instructions:

    1. Download, install and enter the license details for VMware Server 2 from here: http://www.vmware.com/download/server/ . I used Build 116503 for Linux as a tarball. You could download the .rpm package and use alien to convert it to a .deb package for Debian/Ubuntu but the tarball is probably more straightforward.

    2. Once installed, create a new virtual machine from the VMware server 2 web interface (http://localhost:8222). I set the operating system type to Red Hat Enterprise Linux 4 64-bit (UPDATE: use "Other 32-bit"). Everything else can be set to default, no need to configure any particular options unless you want them. Networking is probably best to set as either bridged (if you have a network supporting DHCP) or NAT. For testing between 4-8 GB of virtual disk space should be enough to install 1 or 2 VM's within the ESXi VM.

    Edit the .vmx file that is created (default path on linux is /usr/lib/vmware/Virtual Machines/<vm name>/<vm name>.vmx. Add in these lines to the file and save to allow a virtual machine to run within a virtual machine (see this thread for details):

    monitor.virtual_exec = "hardware"
    monitor_control.restrict_backdoor = "TRUE"
     

    3. Download (and optionally burn the ISO image) for the VMware ESXi hypervisor from http://www.vmware.com/download/esxi/ .

    4. Start up the new virtual machine from within the VMware Server 2 web interface, and use the console to either connect the ISO image for ESXi or connect to the drive containing your optionally burnt ESXi boot CD.

    5. Install the ESXi hypervisor within the VM console. Default options are fine (not that it gives you many options).

    6. Once installed, put a password on the root account within the ESXi VM (pressing F2 brings up the service console menu) to protect the machine. From your host PC, connect to http://<esxi-vm-ip-address>/ where <esxi-vm-ip-address>  is replaced by the reported system IP address. You can then install the Virtual Infrastructure Client (requires a windows PC or VM to install on) and configure the ESXi machine as necessary - it is as far as i can tell fully featured.

    7. As for installing virtual machines and having them usable,i have tested it using Debian Etch i386 so far - i haven't tested with anything else, but i would assume any 32-bit OS would work successfully.