Category Archives: Software development

Google to present at the Wellington Architect forum


Our speaker will be James Tarquin, Enterprise Architect with Google.
He’ll be speaking about the “Key challenges with cloud services”, specifically security, change management and reliability.

Get copies of the flyer here both a thumbnail and a high-res copy are available here.

When: 2nd-Feb-2010 (Networking from 12 noon, formal session from 12:30 till 1:30pm)
Venue: Optimation Boardroom, 1 Grey Street, Wellington (New Zealand)

I’ll be happy to see you there.

CakeOTP 0.1 beta release – One Time Password Reference Implementation for CakePHP


I have started to implement the algorithm for tableless, secure One time password.

Here is a link to the Demo, and here is a link to the beta release.

The only thing you need to do other then the regular cakePHP setup is to create a user table (used by the CakePHP Auth component):

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL auto_increment,
  `username` char(50) default NULL,
  `password` char(40) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;

Continue reading

Morphfolia – A New Open Source CMS is Born.

My friends, Adrian Kearns, finally released his excellent CMS, Morphfolia, as an open source project.

Morphfolia is two things:

  • A Content Management System (CMS)
  • A web application framework (for the typical Microsoft ASP.NET stack)

Morphfolia provides a suite of tools and capabilities that make website development and management flexible and easy.

This is achieved by a mature architecture and good design principles; the pages, content, page-layout and look & feel are all separated. Continue reading

Tableless and Secure One-Time Password (OTP)

A one-time password (OTP) is a password that is only valid for a single login session or transaction. It is commonly used in the internet for registration and password reminder process in which OTPs are provides to the user in a form of a link that the user uses to access in order to create/reset his password.

Common requirements of One Time passwords are:

  1. Statistically unique – using the same password for all requests is probably not the right security choice.
  2. Hard to guess – using sequential number is again, probably not the right security choice.
  3. Can be authenticated by the server – the server needs to distinguish between real OTP and bogus OTP.
  4. Good for one time – after the process is done the OTP should no longer be valid.
  5. Time limited – the OTP usually expires after a configurable amount of time.
  6. Secure – hackers should have a hard time changing the expiry date, username context and so forth.

Most OTP implementations use a Database table to persist the OTP and to manage their expiry date, a DB table might look like this:

id User Id OTP Expire date
1 Amir Asfsd3434bgddh 1/1/2010
2 Someone Ddfsd3345ssfsss 7/1/2010

While this is a valid solution, it is not the most efficient and elegant one, the truth is that you do not need an additional table enable and manage OTPs.

The answer is simple – the seed for this OTP is already persisted in the Database in the form of the old password (or more exactly the old password hash)

Here is how it is done:
Continue reading

Open source presentation at the Wellington Architect forum

Just finished my presentation on Open source and Architecture in the Wellington Software Architect Forum.

We have covered these topics:
1) Definition, Licensing & players
2) Open source based architecture examples
3) Best practices
4) ROI, TCO and other TLA
5) Open source tools for architecture
6) Want to be an open source developer?
7) Future FOSS trends

You can download the presentation here.

IPWEditor – In-Place WYSIWYG Editor 1.2 Released with TinyMCE support


IPWEditor provides easy in-place editing for Web pages with a layer of WYSIWYG. It allows you to seamlessly replace text on Web pages with inputs for on-the-spot editing.

Up until now IPWEditor has integrated only with FCKeditor. The major feature in this release is integration with TinyMCE, a popular WYSIWYG editor.

Developers can now choose to run IPWEditor with either FCKeditor or with TinyMCE editor using the same IPWEditor code.

Continue reading

Drupal crashes when adding module in Modules admin screen

Drupal is a popular CMS that enables 3rd party development of extensions such as themes and modules. In order to get a good value site out of Drupal you need to install several modules and theme that provides functionality such as cool look and feel, SEO improvements, support for content types such as images and a lot more. Continue reading

How to SELECT a Random Record in SQL

Sometimes we need to retrieve a random entry from the Database. An examples for that could be trying to display “random posts” or “a random image”.

Some developers pull some or all of the records and then preform the randomization in the application tier (AKA in code).

In most cases letting the Database return random eateries could prove to be a better option performance-wise.

Here is how it is done:
Continue reading

IPWEditor – In-Place WYSIWYG Editor 1.1 Released


IPWEditor provides easy in-place editing for Web pages with a layer of WYSIWYG. It allows you to seamlessly replace text on Web pages with inputs for on-the-spot editing.

As reported by some members of the community, due to jQuery issue with IE 7, IPWEditor 1.0 had some issues around IE usability.

Thanks to these inputs and some refactoring around the jQuery limitation, these issues were resolved in this IPWEditor 1.1 release. Continue reading

Make ThickBox Work with Other JavaScript Libraries / Resolve ThickBox Conflict Issues

ThickBox is a cool visualization tool based on Jquery JavaScript library. ThickBox helps you display photos in a cool way and is useful in many web projects.

The problem

ThickBox does not work when the HTML pages has other JavaScript libraries such as Mootools.

Debuging the error reveals this:

$(domChunk) is null

Continue reading