In an ongoing system improvement effort, I'm trying to evaluate VMware solutions for our production environment. Because the production environment has specific requirements I'm starting in a graduated approach, starting with development environments and moving onwards to testing and deployment. A good candidate for testing several aspects of virtualized environment is an integration environment due to the complex nature of integration work.
This site is hosted in the US and uses the Joomla! CMS for content management. I chose Joomla because its one of the most easy to learn and had enough documentation for me to customize it the way I wanted. There are also enough free templates, so a template for this site was found. Unfortunately, Joomla being so widespread is also vulnerable to attacks, with security releases sent every time vulnerability is fixed.
With the ongoing war in the Gaza strip, my site became under attack as many other sites (see report in Slashdot). If normally, the readers came mostly from Israel and a bit from abroad, now I have a lot of attackers looking at the site from other places, not so benevolent.
The net result is a defacing of the site due to XSS vulnerability in Joomla, requiring a complete reinstall and configuration. The positive outcome is a re-upload of all the posts and a bit of clean up of the installed modules.
I believe this is just a face of the cultural clash between the different religions, and a bit of people just enjoying being destructive. At the end, it will have null effect on the war and the public opinion. For me, I'm just another casualty of the e-War.
As told in previous post, software is a figment of our imagination forged into an actual physical representation, encased in a physical box called a computer. This post deals with the cognitive limitations in the forging process and why software architecture and design can help overcome or at least minimize some of the limitations.
When the programmer sits to write some software he begins with an idea and a rough implementation guideline. Gradually, the rough guideline becomes details, and the idea if molded into the implementation. Unfortunately, since the imagination can cope with limited amount of details, there are discrepancies between the imagined guideline and the written code. The implementation process is also limited by the API capabilities and the intricacies of the programming language itself. In addition there are also some other limitations of the coding process:
Software is a fiction of our imagination forged into an actual physical representation, encased in a physical box called a computer. In the transition from an abstract imaginative form, to an actual representation in lines of code, several aspects limit the actual representation: limitation of the programmer's imagination to cover all details and aspects of the software, and limitations imposed by the hardware. The limitations imposed by the hardware are the topic of this post, as a way of showing how different limits can guide you to different design decisions.