Sunday, August 22, 2010

Finally a more stable development environment for PHP/Joomla

Working on our Joomla based website has been a pain for the longest time for me.  I have the development setup using XAMPP 1.7.3, and Netbeans 6.8. One of the key tool for a developer is the ability to run in debug more and step-through the code, inspecting the variables during runtime.  Unfortunately, for my default setup, the Apache HTTPD process crashing when ever I tried to inspect a variable.  A quick Google on the web showed there is a lot of people facing similar issue:
When our website got hacked as mentioned in an earlier post, the migration from Joomla 1.0.x to 1.5.x would have been a lot more easier with a properly setup development environment.

The good news xdebug v2.1.0 release on 2010-06-29 has been working a lot more stable for me.  Although still crashes a lot, way more than what I am use to on the Java platform, it manages to hold up for most of the time in order for me to inspect the code and runtime variable to get a good sense of what is going on.  Good thing is the current website is still fairly stateless and I could get back to the page or state I want to debug fairly quickly after a crash.

Perhaps this why there is still a lot of debate on whehter PHP is ready for the enterprise.  I hate to be working on an issue deep inside a complicated workflow on a PHP platform! 

Wednesday, August 18, 2010

Wireless, Real-time, Environment Monitoring Solution

We have packaged a total solution for data center environment monitoring.  Our primary focus is to allow organization understand the environment where they host their mission critical equipments.  Most data center continue to crank up the CRAC units at their data center and freeze the entire server room without a clear picture of the environment situation in the data center.  Traditional BMS system just measure one a 2 points in the server room, which is grossly in efficient.  With the increasing powerful server equipments such as blade server, we now have racks which are easily over 5kW.  In comparison, a commercial oven or stove is typically only 4kW.  This is why localized hotspot can easily develop in your data center!


With rising energy price and the Green IT movement, it is not only hip to optimize your data center cooling, but it also save your organization money.  If Google said you should raise you data center temperature, it must be the correct thing to do right?  Don't trust Google? What about the engineers atAmerican Society of Heating, Refrigerating, and Air-Conditioning Engineers (ASHRAE). ASHRAE has update their environment condition recommendation for server equipment, and they have increase the up-limit equipment in-take temperature to 27 deg C.  Don't want to take the risk of causing environment problems in your data center by initiating a cooling optimization effort?  Well, monitoring it first!

Learn more about Quantum Data Systems' wire-free, real-time environment monitoring solution.

Tuesday, July 6, 2010

IBM Aquasar


IBM came up with a server with chip level cooling using water.  Beside all the CCNP, CCIE and other fancy certification, all of us nerds need to get their local plumbing license as well.

Saturday, June 19, 2010

Data Center Visits

In the past few months, I got a chance to visit a few data centers.  From small server rooms to large co-location sites, these were great opportunities to get first hand experience at these operational data centers.  There are sites which are very organized and structured, and there are sites which are very ill-planned to the point they are basically a patch work of racks put randomly in a room.  Yet, they are both facing similar cooling challenge, where high heat-load server blades are simply too much for these data centers.  In a few years, server racks went from 1-5 kW, to 10kW or even 20+kW racks.  These data centers are simply not designed with these type of heat density growth in mind.

With our company venturing into the cooling optimization products and services, it is invaluable to get on the ground experience, see all sorts of different data centers, and the challenges face by these operators. In the past 2 weeks, I was able to visit the server rooms of 2 organization.  One of them is in the process of revamping the server room to accommodate the high heat-load server blades which are already in place, and more are coming in.  Another organization is also in the process of procuring new servers, and wanted to do a proof-of-concept solution first.  Proposes were put forth, and I have not receive any feedback yet.  It is time to follow up next week and perhaps, fingers cross, just may be, I will get my first sale.  Either way, it is a learning process, I hope to get some insightful feedback and see how we can better position ourselves to serve the impending need for cooling optimization.

Sunday, June 13, 2010

Testing Twitterlive - Ping.fm integration

This is to test the Twitterlive - Ping.fm integration I have setup.  I used to used Twitterfeed, but Ping.fm has blocked the API calls from TwitterFeed due to spam problems.
If all goes well, my Twitter, Facebook and other social media accounts should get a snippet of this post and a link back to this page.

Why am I doing this?  In today's information age, people are going to "google" you when you apply for a job, funding, business partnership, etc.  What do you want them to find?

Company Website Revamped

After the company website has been hacked a couple of months ago, I have quickly migrate the content from Joomla 1.1.x to Joomla 1.5.x.  It only took a few days, but I had to drop a few plugins and hack a very scripts.  The abundance of plugin in the open source ecosystem is both a bless and a curse.  It is a blessing because at the moment, the ecosystem allow small business to move into market quickly and cheaply. However, often times the plugin may not be of the best quality, such as poor code which allow hacker to remotely exploit the website.  Furthermore, for less popular software/plugins, the development may cease and may not have compatibility issues with other components you relied on.  This is the case for a lot of the Joomla 1.1.x plugins we have been using.


After successfully migrating to the new platform, I still not happy with the layout.   Luckily, Joomla 1.5.x came with some very professional template and I have based our new website on one of the templates which came with default package.
The new platform also came with some new features which used to be a plugin in the previous version and therefore allow me to retire a few of the plugins such as the LxMenu plugin for Joomla 1.1.x.


The most tedious process is cleaning up the platform for the new platform.  The old website use to have a plugin allowing the display of "tabs" to hold the content.  I decide not to use the "tabs" display format because I believe this is not good practice for the web.  For example, when user search for text, the browser may find it, but because it is not on the current tab at the top, the user may not be able to see it, which may confuse some user.
The website has been up and running with this new template for a good few weeks now, however I don't think we have complete the clean up of the content yet.  There are still pages with dead images, links or old content formating code.  
With our current state of business, I don't think we can afford to hire a full time web-developer/designer.  I could delegate some of the work to my colleagues, which I already have for the simpler task.  However, to take-over the maintenance of the website, I don't think we have an employee with that kind of skill set yet.
In order to justify hiring a web-developer, I need to find a way to turn our website into a revenue generator.  
At the moment, we are getting roughly 70-80 visits a day. Since we are a very niche market company, I don't think our goal is just eyeballs.
  

Perhaps e-commerce?  With niche market products and a small market, will e-commerce work?

Sunday, June 6, 2010

Broken links for product additional files in Virtuemart 1.1.4, Joomla 1.5.15 and SEF turned on

We still have to run our website in legacy mode because Virtuemart is still natively incompatible with Joomla 1.5.x.  The migration to Joomla 1.5.x is obviously incomplete as there is still minor bugs here and their.  One of the bugs which I was unable to find an answer to on the web is the shop.getfile bug.  In virtuemart, you can upload downloadable files against a product, and it will appear to be available for download.




After adding the additional files, there is a link which appears on the bottom of the product details page allowing the user the download the file you just added.

Unfortunately with our setup, the generated URL for the downloadable file was incorrect.  Debugging this issue was painful as I was unable to get XDebug to work properly.  The Apache child process on my local development environment just keep crashing when ever I have the debugger attached, but this is a long story possibly for another separate entry.  It turns out the components/com_virtuemart/router.php was missing the shop.getfile entry and I have to manually added it back it.  Inside the virtuemartBuildRoute function add the shop.getfile case into the switch statement.  It will look something like this:

case 'shop.getfile';
  $segments[] = 'products_getfile';
  $segments[] = $query['product_id'];
  $segments[] = $query['file_id'];
  unset($query['product_id']);
  unset($query['file_id']);
break;

Then in the virtuemartParseRoute function, add the corresponding code to handing the routing statement created above.  It will look something like this:

case 'products_getfile':
  $vars['page'] = "shop.getfile";
  if(isset($segments[1])){
    $vars['product_id'] = $segments[1];
  }
  if(isset($segments[2])){
    $vars['file_id'] = $segments[2];
  }
break;

Adding the above code back in and the additional file links for products works again!

I would like to submit a patch to Virtuemart.  Unfortunately, it appears the development issue tracker at http://dev.virtuemart.net is not open to public submissions. Hopefully this problem is eventually spotted and fixed by the Virtuemart development team.