Archive for the ‘Technology & Software News’ Category

What are the differences between MyISAM and InnoDB?

Friday, July 2nd, 2010

Wait… hold on. Firstly, what are MyISAM and InnoDB?

MyISAM and InnoDB are the two commonly used MySQL engines for database tables. MyISAM is the default database engine for new tables created in MySQL 4 and 5.

So, why would I want to use one over the other?

Good question. Perhaps it is best answered by going through the differences between the two database engines.

  1. InnoDB is a more modern database engine than MyISAM, so some could say MyISAM is more reliable due to this, although there is very little evidence to support this.
  2. However! Even though InnoDB is newer, it has much better error recovery. Corrupt tables are (with all hope) quickly restored to a functional state when the  InnoDB engine is in use, however recovery of MyISAM powered tables is significantly slower and less reliable. Corrupt MyISAM tables have been known to hold up the starts and restarts of the MySQL daemon.
  3. InnoDB supports foreign keys natively, meaning you can enforce referential integrity at a database level rather than ensuring integrity at the application level.
  4. Insertions and updates in InnoDB utilise row level locking, whilst MyISAM only supports full table locking. This means that mass inserts and updates, MyISAM table access can become significantly slowed down as MySQL has to wait for the database engine to release the lock on the table caused by the insert or update. InnoDB defaults to locking only the rows which are affected by the insert or update query, meaning the rest of the table can still be accessed without waiting for a lock release.
  5. MyISAM supports full-text indexing. This means MyISAM tables can have text fields indexed, which significantly increasing SELECT queries which contain text type fields. The InnoDB table has no support for full-text indexing.

It looks like there is no clear winner?

You’re right. Even though InnoDB is, as said, much more modern, both database engines still have their place in modern database structures. In fact, your choice should be dependant on how you anticipate the table will be used.

So, when would I want to use an InnoDB table?

If data integrity is important to you, multiple related InnoDB tables inherently take care of the data integrity between tables due to their support of foreign keys and enforcement of referencial integrity. Additionally, if your table will be used for intensive write operations (inserts and updates) the InnoDB engine can handle this much better than MyISAM, due to row level locking.

InnoDB does fall down however in the fact that it does utilise more memory than MyISAM and as previously mentioned it lacks full text indexing.

InnoDB sounds great. What need do I have for the MyISAM engine?

You don’t need to deal with referential integrity or building DBMS enforced relationships between tables with MyISAM, simply because the engine does not support it. One could argue this makes MyISAM tables quicker to create and useful for smaller, quicker tasks as well as initial system prototyping.

MyISAM also tends to be faster at many operations, especially large scale SELECT queries returned many results. For tables which will be used mainly for data retrieval with less in the way or inserts or updates, the performance of MyISAM may be a deciding factor. As well as this generalised speed, the MyISAM engine supports full-text indexing, which would be useful for large tables that contain textual data that needs to be fully searched and/or sorted on a regularly basis.

Okay. So, which would you suggest? Give me a quick summary.

InnoDB should be chosen where data is written reguarly and data integrity and security is critical.

MyISAM is the best choice for tables in which there is large amounts of data, especially textual data, that is read from significantly more than written to.

Thanks!

No problem. :)

HTML 5 Content Tags

Friday, May 28th, 2010

HTML 5 introduces several new tags which focus of defining the content of a page in a machine readable fashion.

In today’s websites, if a computer program attempts to pick out a particular part of a page, such as the main article, the sidebar or the top navigation, it would have difficulty. This is because every website structures its HTML differently, and most modern websites use <p>, <div> and <span> tags to surround their content. These tags generally define style. The new HTML 5 tags define content.

Defining content makes websites easier to parse by computer programs. This could benefit accessibility readers for the blind and allow content aggregating systems and ‘mash-up’ websites to easily parse, link to and cite your articles.

Here is a list of some of the HTML 5 tags that define content.

  • <article> – Defines a main article on a page. Can include cite (citation) and pubdate (publishing date) attributes.
  • <details> – States content details for a specific section. Can include an open attribute defining whether or not the details within are visible to the end-user.
  • <figcaption> – States the caption for a figure as defined by the figure tag.
  • <figure> – Usually used to group a set of elements.
  • <footer> – Footer layout element. This is used to contain the footer content of the page, usually contains the website name, author and copyright information.
  • <header> – Header layout element. This tag is designed to contain the top header of a document, usually showing the website logo, page and/or company title and subtitle.
  • <hgroup> – A tag used to group together heading tags such as <h1>, <h2>, <h3> and so on.
  • <keygen> – A key generation tag which defines a generated (encryption) key that can be associated with a HTML form.
  • <meter> – The <meter> tag contains content which is deemed to be a measurement of some sort.
  • <nav> – The <nav> tags stands for navigation and is designed to surround navigation links, such as those present in a sidebar bar or navigational header/footer.
  • <summary> – The <summary> tag defines the title of a <details> element.
  • <time> – This tags contains content which is a statement or measurement of time and/or date/time.

More information about HTML 5 tags is available from W3Schools. See the HTML 5 Tag Reference for more details on these tags and the other new tags in HTML 5.

Nokia releases first open-source Symbian device

Wednesday, April 28th, 2010

Nokia N8I previously posted on how Nokia open-sourced the Symbian mobile operating system and the advantages this will bring to mobile web developers. Nokia has now released their first mobile device based on the open-source version of Symbian, the Nokia N8 phone.

It is the first version of the software since the Symbian foundation announced that it had made its code open source in February.

The Foundation – which includes Nokia, Motorola and Samsung amongst others – gave away the code to developers for free in the hope that it would help speed up the pace of improvements. Any organisation or individual can now use and modify it.

The software in the N8 allows the phone to have multi-touch and multi-tasking, meaning more than one application can be open at any one time.

The device will be Nokia’s flagship smartphone. It can be plugged into home theatres and supports surround sound as well as high-quality video.

Social networks, such as Twitter and Facebook, can be displayed on the home screen in a single application.

Lee Williams, executive director of the Symbian Foundation, said he was “stoked” that Nokia had chosen to use the operating system on its phone.

BBC News article

The Nokia N8 will ship in the third quarter of this year, 2010. Hopefully the improved software will bring advantages both for its end-users, and the software ‘app’ and web application developers.

DAT 595 – Faulty McAfee Anti-virus update disables computers

Thursday, April 22nd, 2010

A recent automated update to McAfee Anti-virus software caused the software to mistaken detect a key Windows system program as malicious and move it out of its proper location to a McAfee anti-virus quarantine. Due to the critical nature of the quarantined system program, ‘svchost.com’, affected computers failed to start correctly and were sent into a rebooting loop.

According to Microsoft, the affected file ‘is a generic host process name for services that run from dynamic-link libraries’.

McAfee responded to the problem by withdrawing the definition update and later releasing a clean one. The security giant also published advice on how to manually fix affected computers. The influx of interested parties trying to look up this advice through McAfee’s forum caused the site to become unavailable for a short time on Wednesday evening.

Source: The Register

McAfee had the following to say on the matter.

McAfee is aware that a number of customers have incurred a false positive error due to this release. Corporations who kept a feature called “Scan Processes on Enable” in McAfee VirusScan Enterprise disabled, as it is by default, were not affected.
Our initial investigation indicates that the error can result in moderate to significant issues on systems running Windows XP Service Pack 3.

The faulty update was quickly removed from all McAfee download servers, preventing any further impact on customers. We are not aware of significant impact on consumers.

We recommend the use of ESET Anti-virus products including NOD32 Anti-virus and the Smart Security Suite. If you are interested in a secure, reliable anti-virus and computer security solution for you business, please feel free to contact us for more information.

WordPress 3.0 Beta 1 has been released

Wednesday, April 7th, 2010

WordPress, the super popular open-source content management and blogging software has recently gone into beta. Version 3 of WordPress looks to bring many new features to the system including a revamped administration system and the ability to deploy a network of WordPress powered blogs simultaneously on the same domain in either seperate directories or subdomains.

WordPress 3.0 Beta 1 also comes with a new default blog them called Twenty Ten which comes with custom background and header options built-in.

The official WordPress development blog gives the following information about what to expect in WordPress 3.0.

You Should Know:

  • The custom menus system (Appearance > Menus) is not quite finished. In Beta 2, the layout will be different and a bunch of the functionality will be improved, but we didn’t want to hold things up for this one screen. You can play with making custom menus, and report bugs if you find them, but this is not how the final screen will look/work, so don’t get attached to it.
  • The merge! Yes, WordPress and WordPress MU have merged. This does not mean that you can suddenly start adding a bunch of new blogs from within your regular WordPress Dashboard. If you’re interested in testing the Super Admin stuff associated with multiple sites, you’ll need some simple directions to get started.
  • We’re still fiddling with a few small things in the UI, as we were focused on getting the more function-oriented code finished first. For example, we’re getting a new icon for the Super Admin section.

Things to test:

  • Play with the new default theme, Twenty Ten, including the custom background and header options.
  • Custom Post Type functionality has been beefed up. It’s really easy to add new types, so do that and see how it looks!
  • WordPress MU users should test the multiple sites functionality to make sure nothing broke during the merge.