Archive for the ‘content management systems’ Category

Tech Tip: Websites on Github with Jekyll

We have been facing a challenge on how to manage the Styx Technology Group corporate website without having dedicated resources to host, deal with security, updates and maintenance. Having been in the website business for over a decade at the turn of Y2K,  having an easily maintainable solution was key for the long haul.

Enter GitHub pages (https://help.github.com/categories/github-pages-basics/), of course any decent software developer and team are using some form of version control, but the beauty is that it allows projects, users and organisations to have self hosted sites that are managed through a repository.  That in combination with Jekyll (http://jekyllrb.com/) supports content management without a database.

To further speed up our development process, we leveraged existing themes for the website look and feel that were close to our need, while keeping the site design very simple so that we focused on solving the problem at hand.

It was suddenly music to our ears as the team did not have to leave their IDEs (random plug for Jetbrains IDE tool suite that we have standardized upon)  in order to make updates to the website. Just create a new markdown document, verify and push … And bam!! the updates are done, version controlled and all, no more hassles with database configurations …

Need help getting your website up and running in such a fashion do shoot us an email at consulting at styxtechgroup dot com and we shall be happy to help and engage…. Have a great weekend

State of PHP Feb 2012 – Symfony 2, Zend Framework 2, IDE Support, MySQL

There is just too much going on so I thought I should put these thoughts down so that I do not lose my mind from the excitement and anticipation that comes from things moving very fast and innovation being spured at a pace which is mind boggling.

PHP

In my opinion the stabilization of PHP 5.3 which introduced namespaces (similar to Java Packages) was the first shot across the bow, and I expect 5.4 with traits to bring even more reusability. However our hosting providers are slow to upgrade most are still running PHP 5.2, without general availability for 5.3 just starting to appear

Frameworks

There are two main frameworks in the bull pen Symfony 2 (http://symfony.com/) and Zend Framework 2 (http://zendframework.com/) currently in beta. However they are as different as can be. While Symfony 2 has been refactored from a full blown framework to a bunch of core reusable components, its moving towards ZF2, in that its not trying to be all MVC, forms etc, but is rather a set of building blocks to provide web application framework. So good is it that Fabien Potencier the lead developer has a series on how to build your own framework on top of Symfony at http://bit.ly/zVLi7X

ZF2 on the other hand is a bunch of reusable components which you can mix and match with other frameworks which also provides an MVC, ORM etc.

If you have been in the Java world, Symfony is more like Spring Source () while Zend Framework is Apache Jakarta (http://jakarta.apache.org/)

Interesting tweet that sums it all up:
Every time a developer complains about php, the #Symfony2 community creates another great, namespaced, decoupled and reusable component

IDE Support

Zend Studio 9 was let loose at ZendCon, Oracle released Netbeans 7 (which supports ZF1, and Symfony), Eclipse PDT is chugging along, PHP Storm from Jetbrains creating  a storm with others  Vim, Notepad++, Sublime Text basically all you need to do is pick your poison.

Communities

Github (http://www.github.com) is the new Facebook and LinkedIn for developers, where all the action is happening for all the major PHP communities, you had better be there. Forking and making changes is as easy as a button press. I am yet to push my first commit to a project but I am getting there.

MySQL

The best know web database is getting losta love from Oracle, and also the community led by Percona, SkySQL, Monty DB, and many others. Where it seemed lost with lost of FUD during the $1bn Sun takeover by Oracle, it seems to just be gaining steam (at least from my viewpoint as a consumer, developer and user). Now at 5.5, with 5.6 starting to appear over the horizon …

While there is a barrage of NoSQL solutions, Hadoop leading the charge, MySQL provides a NoSQL interface via HandlerSocket (https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL) and MySQL Cluster (http://www.mysql.com/products/cluster/)

Supporting Infrastructure

This is where all the fun happens, who is using the language and what are the trends. Here is a snapshot:

  1. Content Management Systems – WordPress is getting lots of love, while Joomla now at 2.5 supports databases other than MySQL. Drupal is adopting Symfony 2 as its core framework while Magento runs off a modified ZF1 kernel, while XOOPS (http://xoops.org) is being rewritten to use ZF1 or two
  2. Template Engines – an area where battles are found won, and lost. Smarty now at 3.0 (www.smarty.net), has to battle Twig (http://twig.sensiolabs.org)  which is surging due to its usage in Symfony 2
  3. Web services – JSON, XML, AjaX, Rest Interfaces are no longer buzz words they are the norm with native support being baked into PHP
  4. Object Relational Mappers (ORMS) are one of the core developer architectural choices, in PHP we have ZF Table (Table Gateway), Doctrine 1 (Active Record), Doctrine 2 (Data Mapper), Propel (not used) in addition to plain old PDO all of which provide rich choices. Interesting is that Doctrine 2 provides an mapping for MongoDB which shows its versatility similar to Hibernate for Java
  5. Continuous Integration – with Hudson and Jenkins, and now Travis which is also hooked into Github provides a great way to continuously monitor the quality of your development
  6. Quality Control – PHP Unit has always been there but now we have mess detectors, and other metrics (do not make sense of them yet), but whatever you want to measure there is probably a tool for it.
  7. UI Toolkits – JQuery took the world by storm with JQuery UI providing a set of theme-able components, but we have HTML5 boiler plate and Twitter Bootstrap which are simplifying the cross browser issues we developers face.
  8. Performance – always a PHP problem but it has improved through 5.3 to 5.4, and other techniques like OP Caches are becoming more maintream, Memcache is pre-built into Apache …

Exciting times to be a PHP web developer oopsss we are not web developers we are Software Mechanics (http://www.brandonsavage.net/the-mechanics-of-code/)

Joomla Tip – Custom Content Integration with Jumi

Just wanted to share a Joomla (1.7) tip on how we were able to integrate custom content from an external web application with custom PHP code via the Jumi component and plugin (http://bit.ly/wWIQmz).

Joomla by default does not allow custom PHP code to be added to articles (content pages) functionality which is provided by the Jumi component. However in our case we also wanted to display the most recent report on the home page, plus the last 10 from the archives when the user asks to view more.

  1. Create custom PHP files to load the current report and one for the archives. These were placed in the Jumi component files folder. TIP Always include the PHP line  defined('_JEXEC') OR defined('_VALID_MOS') OR die( "Direct Access Is Not Allowed" ); at the top of the file to ensure that it cannot be loaded directly via HTTP.
  2. Create Joolma article with a Jumi plugin to load content from the external url. We used two calls to the url, the first one to load the latest report and executive summary and the second to load the archives.
  3. Use the excellent Gavick News Show Pro GK4 (http://tools.gavick.com/newshowpro.html) to load the article into a module position. However since we can limit the text brought back, we limited the text only to the first plugin call to load the latest report only. This will include a more link to display the current report and archives.

NOTES:

  1. When loading external urls we used the Curl Library (inbuilt in most PHP installations) since file_get_contents() is usually blocked from accessing external urls
  2. We could not use an external library as it seem like Jumi does not handle include paths very well, so we could not maintain configurations in an external file.
  3. When deploying into production, we had to set caching on otherwise the page loading took too long

Hope this helps you

OpenCMS Shell Export Issues – exportResources vs exportResourcesAndUserdata

Well it has been some time since I wrote, but it has been pretty busy over at work, with one issue after another to be resolved.

We have been having an issue with OpenCMS backups on the shell, even opened up an issue on the dev mailing list (http://lists.opencms.org/pipermail/opencms-dev/2011q2/035562.html) where the backups at the shell were smaller than those from the admin panel.

While pulling out my hair, have lost a bit this year, and reading all available methods I came across exportResourcesAndUserdata which does not seem different from the default method exportResources provided in the wiki, http://opencms-wiki.org/CMS_Shell. Maybe its all the caffeine, but why had I not seen this before.

It takes the same options, and I also remembered that on the admin panel during the database export I select the option to export account data, and voila the backups from the shell and admin panel are almost the same size.

Tomorrow, I am gonna try and carry out a restore to confirm whether I can access the data.

Thats a story for another time…

Joomla Nested Category Issues – Round 2 – Multiple Sections in Blog Layout

Well the problem still stands, my client has 3 levels of content and Joomla 1.5 only supports 2.

We have gone through most of the solutions:

  • Joomla 1.6 – totally unusable given the time and technical constraints,
  • Content Construction Kits (CCKs) like JSebold (http://www.jseblod-cck.com/) bring on more complexity than the CMS itself
  • Move to WordPress – interesting thought, we tried but the complex nature of the layout will require a lot of coding to bring it to life, we actually had a team member try this out

So we reviewed the client’s mind-map, and actually found out that although there were 3 levels of filing, the content was only located in two levels, so the to-level was a “faux” level and this could be simulated using the menus.

Now an issue cropped up, how do you display multiple sections in a blog layout. I give you a hint, use the excellent, I mean excellent News Show Pro GK4 module (http://extensions.joomla.org/extensions/news-display/frontend-news/7738)

For a complete solution description, checkout the Q&A at StackOverflow – http://tinyurl.com/5w5esza

Joomla 1.5 – Nested Category Issues

The things clients make you go through … We have been working on a rush magazine job using Joomla (http://www.joomla.org) , and all was fine until the client brought out their “Mind Map” (http://en.wikipedia.org/wiki/Mind_map) essentially a representation of the information architecture for their site. And like no other, they had 3 and 4 levels of content that had to be incorporated into the site.

Well WordPress, and Drupal were not options at this ti

Wow, I know Joomla 1.5 has only sections and categories, 2 levels, and you would need to move to Joomla 1.6. However on installing the simplest component, an RSS feed generator, the site breaks apart. Verdict – no Joomla 1.6, its not ready for prime time

After going through K2 and another content creation kit (CCK), I was ready to give up, until it seemed that jSeblod CCK (http://www.jseblod-cck.com/) would try to fit the bill. I was led down this alley because they had a Joomla patch for sub-categories, but was discountinued.

Well my team and I are going to thresh this out over the next few days and see if it will meet our needs, at least there is a dim light at the end of the tunnel

Joomla 1.6, the jury is out, but it will be at least 1 year, 2012 when we dare touch it with a long pole …

Joomla 1.6 Released

2011 seems to be heating up in the CMS space

Along the heels of Drupal 7 (http://drupal.org/) which had worldwide release parties, and WordPress 3.1 coming soon (http://wordpress.org/), Joomla has released 1.6 on 01/10/11 with hushed tones.

I hope that this means that we get reduced hacking attempts and better performance for plugins and modules. We have a few projects coming up so we will get the chance to try out the new release

I look forward to see what this year has in store for us

 

%d bloggers like this: