Early Father’s Day Present: DiE6

Die6 T-Shirt

Die6 T-Shirt

The postman dutifully did his ‘thang’ today and dropped off some letters. One was a small package that needed to be signed for and it was addressed to me 🙂

Was it an early Father’s Day present? No. I was expecting something as it happens.

One of our very good customers, Clive from ion design it (for whom we do a fair bit of Joomla! work – see here for one our recent projects), told me a while ago that he’d seen something he thought was right “up my street”.

He certainly wasn’t wrong.

If you haven’t worked out what DiE6 represents, click on the image or here to find out more. [Guess what I will be wearing to the pub this evening]

A most worthwhile and laudable campaign if you ask me.

Although just a small part of me wonders a little bit; It does certainly create more work… 😉

Did Microsoft make Firefox?

This post by Matt Assay discussing how we got to a competitive browser market got me thinking. (Dangerous I know, but bear with me.)

… I suppose the truly intriguing thing is not that we have a competitive market for Web browsers again, but how it happened. Baker told me recently that Firefox is “an anomaly” because it managed to beat back overwhelming Microsoft market share. Can we do it again?

What was the tipping point when Microsoft’s Internet Explorer team finally had to start paying attention to Mozilla’s Firefox browser? And when did Google decide that it couldn’t subsist on Firefox’s roadmap and instead had to forge its own browser, Chrome?

Mozilla FirefoxMy own take on this is it was all Microsoft’s own doing. Think about it. Their browser, Internet Explorer [and more specifically IE6], was locked into the operating system that ran an almost every PC sold. So for Mozilla’s Firefox browser to take more than a 20% market share is pretty staggering. If you use Windows (as certainly a few years ago almost everyone did) you already have a browser on that Windows PC so why go and download another one? It isn’t quite the same for OpenOffice.org or Gimp for example. You are having to make a decision about acquiring an Office Application Suite or an Image Editor; whether you pay for commercial code or use FOSS is your choice. But with the browser, you already have one.

My conclusion to Matt’s question is that it comes down to just how bad IE6 really was. If it had been a half decent browser with acceptable support for the standards it was supposed to support then I don’t think Firefox, and possibly the entire FOSS ecosystem, would be as strong as it is today.

Presumably Microsoft could have patched and updated IE6 during the course of it’s life but they chose not to, and instead stuck to delivering a half-baked, non-compliant browser full of leaks and security holes and proprietary features that lead many unfortunate souls to build sites that only worked with Microsoft’s browser.

I think that it was the web development community that started this movement. Being professionally involved in helping Graphic Designers make websites work across browsers, I know just how BAD IE6 really is when it comes to supporting standards. If it hadn’t been so terrible, or even got fixed, I don’t think the web developer community would have started using Firefox in the numbers that they did and then espousing it’s virtues with quite the same level of gusto.

Of course, as well as being a decent browser, there were many new and innovative ideas and features in Firefox, a huge extension and plug-in library and cross platform support too. But as “most” users of a browser are simply surfing, then if IE wasn’t such a pile of steaming poo in the first place I don’t think many consumers would have been inclined to change at all.

What do you think?

Joomla! Hacking: Menus, Modules, Articles and Rings

I wanted to share a little Joomla! hacking I did the other day for two reasons:

  1. Because I think what I managed to do was pretty damn cool (someone else might think otherwise of course),
  2. Because I think there must be a better, less intrusive, way to do what I wanted. So I am hoping for some comments from hardcore Joomla! guys.

So, the scenario is this: A good customer of ours, ion design it a web design firm, asked me to build them a template, from scratch, for a particular client of theirs. This is something I’ve done before and will probably do again (basically, in this role, I help the artists with a fantastic eye for design make their artwork work in Joomla!). Clive, my customer, does come up with some cracking designs… Follow some of the links from his home page if you’re interested.

After being given the job, I started looking through the 5 page PDF which he submitted with the design. One page had a rather troubling menu layout…

Joomla! Menu in-the-round

Joomla! Menu in-the-round

After quite a bit of head scratching, this is actually what I have managed to achieve. The image is taken straight from Firefox 3 running on Ubuntu 8.10. That is Joomla! 1.5.9, the blue boxes arranged in an elipse are actually real Joomla! menu items! At this stage, the template is still being developed and doesn’t have the proper graphics but the basic physical layout and structure is there.

Each dark blue box in-the-round is a regular menu item in Joomla! that is a sub-menu of the menu shown along the top. Using the new split-menu technique in Joomla! 1.5 I am able to use seperate menu modules to display different layers of a single menu heirarchy, so that I can retain the “active” highlighting in the main menu for example.

Making the menu items appear in this ring arrangement isn’t really too hard; I just used absolute positioning of the

  • elements. Each menu item has a unique class such as
  • . It even mostly works in IE6!

    However, there is a much bigger issue… On other pages of the site, the same sub-menu content needs to be displayed but with a different, more traditional, layout; as here:

    Regular Vertical Menu in Joomla!

    Regular Vertical Menu in Joomla!

    To achive this I realised there were several problems to overcome:

    • The titles in the sub-menu needed to break across several lines so they wrapped consistently,
    • the menu module responsible for displaying the menu had to be the same for both layouts or I would lose the active highlighting of the top menu,
    • I wanted to have a single menu so it was easy for my customer or their end-user to modify and update the site,
    • the ring menu really needed to be text based so it was properly indexable and accessible,
    • Joomla! only allows custom CSS class or id tags to be added at the module level and not at the article level.

    To fix the first problem, having line breaks (or
    elements) in menu items, I used an excellent plugin called yvBBCode. It enables you to insert BB Codes, such as [br] for example, anywhere in Joomla! Including in menu titles. The plugin then converts these BB codes to XHTML codes on the fly.

    In the end, the solution for the menu layout itself was fairly straightforward, but required a minor hack to the Joomla! core (you can’t use the override facility here) and a small eval script on the template’s index.php page.

    I added a custom radio list parameter (ring_menu) to the article.xml file in administrator/components/com_content/models/article.xml:


    On the particular article where I wanted the menu displayed “in-the-round” I set this radio list param to “Ring Menu”. The option is shown in the Article Advanced Parameters accordion (the default setting is “vertical” BTW). You can see how the custom parameter is displayed here. Note the first item in the Parameters (Advanced) menu on this screenshot.

    Custom Article Parameter

    Custom Article Parameter

    Now we have a parameter to play with, in the template’s index.php file in the area, I can read this value into a php variable ($class).


    // This loads a custom article parameter "Ring Menu". The custom parameter is defined in
    // administrator/components/com_content/models/article.xml. It defaults to Vertical, the other
    // option currently is "Ring Menu".
    // We can read this parameter and apply a different style to a module based on the page
    $params = &JComponentHelper::getParams( 'com_content' );
    $class = $params->get('ring_menu');

    Further down the script, where the menu module itself is loaded, the $class variable is echoed into the surrounding div. Thus, when the particular article in question is loaded, the container div for the menu changes from

    Microsoft Holes Exploited Again

    As if the last security hole in Internet Explorer was not enough, here’s yet another reason to drop Microsoft Software. This time it’s their cash-cow, Office:

    Attackers are exploiting the just-patched vulnerability in Internet Explorer (IE) by hiding malicious ActiveX controls in Microsoft Word documents, according to security researchers.

    “Inside the document is an ActiveX control, and in that control is a line that makes it call out to the site that’s hosting the malware,” said David Marcus, the director of security research and communications for McAfee’s Avert Labs. “This is a pretty insidious way to attack people, because it’s invisible to the eye, the communication with the site.”

    This all reminds me of a sieve – full of holes.

    If I was a small business using Microsoft application software today, I would be dropping it faster than a red-hot rock. If I was a CTO I would be planning now how to migrate away.

    OpenOffice.org will protect you from malicious ActiveX in documents, Firefox for web browsing and Thunderbird for email will do the same whilst allowing you to continue to use the Windows OS as you plan the final step to freedom. Ubuntu will complete the process.

    If you need help, there are companies out there who can provide support and technical assistance. 😉

    BBC: Internet Explorer Security Alert

    Ouch!

    Users of the world’s most common web browser have been advised to switch to another browser until a serious security flaw has been fixed.

    The flaw in Microsoft’s Internet Explorer could allow criminals to take control of people’s computers and steal their passwords, internet experts say.

    So, apart from being a crap browser at actually rendering web pages according to the standards, it also opens up your computer to a “serious security flaw” (as if we didn’t know that already).

    Here’s my recommendation for curing this ailment. Permanently:

    1. Get Firefox for your Windows computer right now!
    2. Get Thunderbird for your Windows computer today and get away from Outlook/Outlook Express.
    3. Get OpenOffice.org for your Windows computer and marvel at the free office application suite and ponder why you have been paying so much for M$’s bloatware in the past.
    4. Then, once happy with the above, Get Ubuntu (which has all of these wonderful applications and much more)and then get rid of that malware masquerading as an operating system called Windows.
    5. Enjoy trouble-free Free computing for evermore.

    Simple.

    Thanks to oly on the #ubuntu-uk irc channel for pointing this story out.