Posted 30 Apr 2010 / Written by Steve Coventry / Make a Comment
Answer: Yes! HTML5 is going to form the foundations of most websites within a few years, and most modern browsers including FireFox, Chrome, Safari and Opera already support it. Here is a cool demo of just some of what can be achieved without any plugins.
Previously visualization like this which play music, displays smooth animations, and hooks straight into Twitter, would've been something you'd have to build in Flash or Silverlight, requiring developers to know multiple languages, and viewers to download weighty plugins. Now it's possible to pull this off using just HTML5, which includes support for video and audio embedding, a canvas for scriptable animations and all kinds of other rich content that'll make current HTML based webpages look weak and bland in comparison.
Big names like YouTube are already looking at ditching their Flash player in preference of a full HTML5 offering, it's also fueling the fire heating up between Apple and Adobe over Flash on the iPhone. The latest models of the iPhone coming out will heavily feature HTML5, offering some great features for advertisers that you can check out here.
So grab the latest build of your favourite browser and have a look at what it can do. You'll be seeing a lot more of this before too long, so if your newest gadget's software supports it, consider it a worthwhile feature.
Posted 30 Apr 2010 / Written by Robert King / Make a Comment
With the release this week of The Official Charts website which is hosted on our Wickedweb CMS platform it's a good time to look at some of the CMS features that make it possible.
The Official Charts website is a busy site throughout the week but with the chart release at 7pm on Sunday we also have to serve an incredible peak of traffic.
One of my central design goals for the Wickedweb CMS was speed under load. Under load the weak point in any content management system is normally the database. Whilst it is reasonably straight forward to increase your ability to serve http requests just by adding hardware it is a lot harder to increase your ability to serve database requests in the same way.
A normal content managed page will contain a number of modifiable content areas, a number of modifiable menu structures and possibly some custom elements (for example the chart listings on The Official Charts site). A naive CMS implementation would fetch each item from the database and render them into the page on every page view. The Wickedweb CMS avoids this by integrating caching at every level. What this means is that we only have to fetch and render content once for any change. Even on page elements that change at the level of seconds this can be a big win for a busy site. If you are serving 50 pages a second and have content that changes once a second you will still be reducing the load for this element from 50 database calls per second to 1 per second. By integrating the caching at every level from individual database rows, to module page components up to entire pages we are able to not only reduce database load but also the work done for each page load. This means many more pages per second can be served by the same hardware.
Another way of reducing your server load is to move static content off of the server and onto a content delivery network (CDN). Using a CDN not only means freeing up your server to serve more dynamic content but also moves the static content nearer to your customers, improving their page load times. The Wickedweb CMS integrates CDN hosting seamlessly, you upload content to the CMS as if it was stored locally and the CMS publishes to the CDN for you.
It should go without saying that a quality hosting platform is essential to a quality CMS driven site, however many people are attracted to the low prices of bulk shared hosting providers. It is a false economy as your site will be at the mercy of the hundreds of other sites on the same server. This can mean not only a bad customer experience but also poor search engine ranking.
For the Wickedweb CMS we have partnered with leading managed hosting provider Rackspace who provide a powerful, highly reliable, secure hosting platform for our CMS. By serving the CMS on hardware dedicated only to that purpose we are in control of all the elements that affect performance from the server configuration, the code and the maximum load. Depending on the demands of your website the Wickedweb CMS is able to scale from shared hosting, to a dedicated server or multi-server solution.
Posted 31 Mar 2010 / Written by Robert King / Make a Comment
PHP 5.2.13 was released last month and right at the top of the security fixes for this release was "Improved LCG entropy. (Rasmus, Samy Kamkar)". This rather brief note caught my eye so I thought I would take a look under the hood to see what had changed.
LCG stands for Linear Congruential Generator, which is basically an algorithm for generating pseudorandom numbers. PHP uses the LCG algorithm in a few places, the most obvious being the lcg_value() function. It is also used in the uniqid() function if you pass a value of true as the second parameter.
The code for the LCG is located in ext/standard/lcg.c within the PHP source. From the PHP version control we can see the changes have been made to the lcg_seed() function, this is the 5.2.12 code:
static void lcg_seed(TSRMLS_D)
{
struct timeval tv;
if (gettimeofday(&tv, NULL) == 0) {
LCG(s1) = tv.tv_sec ^ (~tv.tv_usec);
} else {
LCG(s1) = 1;
}
#ifdef ZTS
LCG(s2) = (long) tsrm_thread_id();
#else
LCG(s2) = (long) getpid();
#endif
LCG(seeded) = 1;
}
As you can see the PHP LCG is actually a combination of two LCG's which are being seeded in different ways. In version 5.2.13 the code is now (I have highlighted the changes):
static void lcg_seed(TSRMLS_D)
{
struct timeval tv;
if (gettimeofday(&tv, NULL) == 0) {
LCG(s1) = tv.tv_sec ^ (tv.tv_usec<<11);
} else {
LCG(s1) = 1;
}
#ifdef ZTS
LCG(s2) = (long) tsrm_thread_id();
#else
LCG(s2) = (long) getpid();
#endif
/* Add entropy to s2 by calling gettimeofday() again */
if (gettimeofday(&tv, NULL) == 0) {
LCG(s2) ^= (tv.tv_usec<<11);
}
LCG(seeded) = 1;
}
So the seeding of both LCG's has been changed, but how has this improved the entropy? Previously the second LCG was just being seeded with getpid(), which returns the process id of the PHP process ( which if your running mod_php will be the Apache process ). If you lookup the PHP equivalent function getmypid() you will see an interesting warning in the notes: "Process IDs are not unique, thus they are a weak entropy source. We recommend against relying on pids in security-dependent contexts." Indeed in the most common Apache configurations repeat calls to a script in a short period will return the same process id. To improve the seeding of this LCG then the current microsecond value from gettimeofday has been or'ed in. Why shift the microsecond value left 11 places ? The maximum value of microseconds is 999999 which is 0xF423F, shifted we get 0x7A11F800. So shifting 11 places just fits the microsecond value into 31 bits. The process id from getpid() will typically be up to 0xFFFF so combined in this way they make a seed with a greater range. Lets see what values we get if we write an equivalent PHP script to compare the old and new seed values:
$old = getmypid(); $tv = gettimeofday(); $new = getmypid() ^ ($tv['usec']<<11); echo "Old value: $old
"; echo "New value: $new
";
Reloading this script with a couple of seconds between I see:
Old value: 14025 New value: 1644429001 Old value: 14025 New value: 2031015625 Old value: 14025 New value: 1393229513
There is clearly, with this change, considerably less chance of seeding the same value to the second LCG and thereby having it generate the same pseudorandom sequence on each run, i.e. improved LCG entropy.
Posted 25 Nov 2008 / Written by Anna Dixon / Make a Comment
Wickedweb are getting festive early this year, and are already wearing Santa hats! Ok, we're not quite yet, but we have added them to the Rainforest Foundations UK's virtual rainforest application - check out the festive elephant, parrot and swinging monkey! Buy a virtual acre as a Christmas gift for someone special, and you can personalize it with a Crimbo message, adding the funky festive characters... have you ever seen a tiger looking so good in a Santa hat before?
Wickedweb were recommended to the Rainforest Foundation UK and will be developing the Virtual Rainforest with the aim of increasing user interaction with the web application, and driving online donations. There are a number of additional features that will be added over the coming months, and new functionality that focuses on usability and social media networking too... watch this space...
Posted 23 May 2008 / Written by Anna Dixon / Make a Comment
With a reputation for absolute clarity, there was only one creative digital agency the world's largest vehicle glass repair and replacement company could come to.
Belron, parent company to Autoglass, approached us to help improve its current online ordering platform through web application development, and to offer an enhanced user experience when navigating through the purchase process.
But we don't want to give away too much yet - find out how we helped here.
Advertising (3)
Alterian Immediacy CMS (2)
Application Development (5)
Awards (4)
Email Marketing (2)
Fun Stuff (17)
Hosting (2)
Mobile (1)
News (19)
Pay Per Click (1)
People (12)
Project Management (2)
Rich Media (2)
SEO (4)
Social Media (5)
Usability (1)
Web Design (13)
Web Services (1)
WickedWeb CMS (11)
August 2010 (2)
July 2010 (6)
June 2010 (3)
May 2010 (5)
April 2010 (18)
March 2010 (17)
February 2010 (2)
January 2010 (1)
December 2009 (1)
November 2009 (3)
October 2009 (1)
September 2009 (1)
August 2009 (2)
July 2009 (1)
June 2009 (1)
May 2009 (2)
February 2009 (3)
January 2009 (2)
December 2008 (4)
November 2008 (1)
October 2008 (1)
September 2008 (2)
August 2008 (2)
July 2008 (2)
May 2008 (1)
Sign up to our Newsletter to receive news of our web launches, our digital marketing activity and general useful information about the web.
Fields marked * are mandatory