May 31, 2006

BigPond Wireless - I’m in

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 10:04 am

After much ‘umming’ and ‘ahhing’ I have decided to set my laptop up with a Wireless PCMCIA card and a Wireless connection by BigPond. This will hopefully allow me to finally check emails (and write melbourne chapter posts) from home.

I have ordered my network card yesterday and it is expected within 2 days (so hopefully some time today/tomorrow). Then I have to choose my account.
The plan is a 256K/64K link while within range of the BigPond wireless service, but switches to a different protocol when outside (claiming to burst 144Kbps). Which will be good to go down the beach with the laptop.
I understand that the service isn’t as competitive as some of the alternative networks, but since it allows me to use unmetered sites (etc) I should be able to still make reasonable use out of my limited connection. As they allow you to switch plans without penalty, I will be able to upgrade/downgrade to any plan if their plans become more competitive.

May 30, 2006

Busy busy busy!

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 6:21 pm

Sorry people, I have been flat out. Be sure to post something shortly :-)

May 26, 2006

Portfolio/Netpublish - Request Email Order/Wishlist/Results

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 5:58 pm

I have just finished a nice concise extendable plugin for Extensis Netpublish that will allow your website visitors to send a request for images that are appearing on any page. This means that you can use it to make order requests for images or even potentially email favourites to friends.
Feature overview:

- Templated Emails - Configure the appearance of the HTML emails, or leave the default (which includes small thumbnails of each of the images along with identifying meta information)
- Mixed MIME - Support older generation email browsers without HTML support such as Webmail applications.
- SMTP - Configure an alternate SMTP server to connect and send the mail from. Also supported: SMTP Authentication
- Configurable Actions - Either direct the user to a new page or prompt the user with a thankyou message
- Extendable Fields - No limits to the information that can be parsed into your email request, place additional fields such as Image Comments, Contact Details, etc.
The primary goal behind the functionality is to be as flexible as you need. If all you want to do is email the images on the screen with some information, this is what is needed.

May 23, 2006

php|architect magazine arrives

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 2:32 pm

I am excited as my first magazine to php|architect arrives today. Looks like it will be a great way to keep up more on issues of PHP in the industry. My first magazine has articles on the Zend Framework, AOSD and PHP, Plugin Architecture of PHP and a few other nice things sure to be a nice read.

May 22, 2006

BigPond slows me again :-(

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 5:55 pm

A big month of traffic has pushed me over my 10gb monthly limit on my cable account. My traffic is now shaped to 64kpbs, which is sure to cause me some issues!

Interestingly enough, recently BigPond has released a Wireless account (quite expensive) which will give me internet where-ever I am, work/home/friends place/car/cafe. It also differs back to CDMA for country access. Accounts are about $50 a month with only 200mb downloads. You can get 1000mb downloads from $79.95.

Hopefully though there will be more activity from resellers of iBurst and the like to help us get onto the Wireless Broadband wagon. I don’t want to pay for a cable to be installed in my appartment, and I don’t want to pay for a phone line for ADSL/2.

May 19, 2006

NetPublish success!

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 2:06 pm

I have now setup a framework around Extensis Portfolio/NetPublish which allows complete extension of the functionality of NetPublish. As identified through much experimentation, I have found that NetPublish package is limiting in its capabilities and flexibility for doing anything more than out of the box. That is where this framework takes over to provide the potential for complete flexibility:
The framework is based on:

Database Abstraction - (Oracle, SQL Server, MySQL etc) to connect to a SQL server (either populated through their SQLConnect product [or through framework tool I also wrote which does the work also])
MVC Based - Model View Controller Model 2 design
Access Control Lists - Control access to resources and functionality
Advanced Templating - Highly flexible templating allowing complete seperation of View from the application
It requires the Extensis clients to purchase a copy of their Portfolio product to manage their images, and NetPublish to handle the interaction to the FDB NetPublish database format. Meaning you can work comfortably inside Portfolio, and your website flexibily works around your needs.

Stephen the product manager from PICA was an excellent help and provided many starting point resources about the different products that are provided by Extensis. Ensure that you head to him for your needs, he is very good at his customer service. Checkout http://www.pica.com.au/ for your extensis products.
This new framework gives unlimited potential for features such as:

- Share Lightboxes
- Email Order or Cart Selection
- E-commerce through various payment gateways (ANZ, PayPal, etc)
- User Management and Accounts
- Show/Send to a friend
- Email a comment about a gallery image
- RPC/XML communication for extension to rich user interfaces, like Macromedia Flash
- Advanced Interfaces (not just out-of-the-box fit all scenarios)
- Complex searches and queries
I am very excited about undertaking some of these projects, as there has been much discussion about limitations of the templating system and core functionality. If you are interested in this, checkout http://www.mink.net.au/ to get in contact with me directly.

Newsflash: ANZ MasterCard stuff up

You will find other articles relevant to this document in these sections:
Richard Lee @ 12:12 pm

Last week whilst changing over their MasterCard tape ANZ duplicated over 400,000 transactions Australia wide. So if you have done any banking recently through ANZ please check your statement!

The Age: RMIT Phone tower cancer fears

You will find other articles relevant to this document in these sections:
Richard Lee @ 11:51 am

Recently the RMIT University city campus closed the top two floors of it’s Bourke Street complex ordering more than 100 employees to work from home for the next fortnight due to radiation scares rumoured to have been caused by mobile phone towers at the site. Sources have said there has been no proof that mobile phone tower radiation causes cancer, however 3 of the 5 staff members affected had tumours showing symptoms consistent with radiation and such a cluster needs to be investigated.

Since the damning report, the Electrical Trades Union has banned all work near mobile phone towers, citing them as a health risk, and even closer to home is the investigation into the emissions produced from the sea of mobile phone towers on the 5th floor of my own workplace.

PHP Generating Passwords

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 10:24 am

There are many different ways to generate passwords, and (depending on the requirements) will need to involve both numbers and letters (preferrably additional special characters like !@#$%^ etc). With PHP the generally easiest way to generate a password is to use a random number mapping to a pointer in a string of ‘valid’ characters. A simple example may be as follows:

Generate password using a for loop and random pointer and string of allowed characters

// Generate a password
$password = '';
$len = 6;
$validCharacters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabchefghjkmnpqrstuvwxyz0123456789';
while (strlen($password) < $len) {
  $pointer = rand() % strlen($validCharacters);
  $nextChar = substr($validCharacters, $pointer, 1);
  $password .= $nextChar;
}
print "Your new password is " . $password;

Trying to use a larger set of valid characters and the length of the password will help build the strength of your password. Including special characters into the set will help also.
NOTE: Consider if having issues like i,I,1,l,L,0,O (all different characters) will cause confusion and you may consider stripping some of them out (like done above).

Technically, I am sure a maths person will be able to figure out using probability the chances of the pointer landing on a set of upper case, lower case or number, and be able to better guess at what a likely result would be.

Instead we could re-write the function above to use a array, that allows us to seperate out the character sets, and from there we could better balance the generation. We can also then write a more useful password generation function that will allow us to specify not only length, but strength (based on what sets of characters are included).

Generate a password using a array of allowed character set with 2 random pointers

/**
 * Generate a password based on sets of characters (levels)
 *
 * String getNewPassword(int $length, int $level);
 * Set level higher to include more character sets
 * 1 = lowercase alpha
 * 2 = mixed case alpha
 * 3 = mixed case alphanumeric
 * 4 = mixed case alphanumeric and special characters
 *
 * @param length int Length of password
 * @param level int Sets number of character sets to include
 * @return String New Password based on parameters
 * @author Cameron Manderson &lt;cameronmanderson@gmail.com&gt;
 */
function getNewPassword($length = 8, $level = 3) {
  // Our character Sets
  $characterSets = array();
  $characterSets[] = 'abcdefghijklmnopqrstuvwxyz';
  $characterSets[] = 'ABCDEFGHIJKLMNOPQSRTUVWXYZ';
  $characterSets[] = '01234567890';
  $characterSets[] = '`~!@#$%^&*()-_=+.'/\"';
 
  // Check we have a valid level
  if($level > count($characterSets)) $level = count($characterSets);
  else if($level < 1) $level = 1;
 
  // Generate the password
  $password = ''; // Out new password
  for($i = 0; $i < $length; $i++) {
    $xPointer = rand() % $level; // Get out set pointer
    $yPointer = rand() % strlen($characterSets[$xPointer]);
    $password .= substr($characterSets[$xPointer], $yPointer, 1);
  }

  // Return our new password
    return $password;
}

You will also want to consider how you are going to store your passwords. There are many different algorithms and approaches that can be taken. SHA and MD5 are very common.

May 18, 2006

php.MVC release 1.1.0

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 2:18 pm

John Wilde from www.phpmvc.net has released a new version of his php.MVC framework. The framework is modelled off a model2 MVC Struts framework and I have been finding it a great environment for web application development, much similar to J2EE. You can easily hook up different database abstraction (ADODB/PEAR etc) or frontend templating (TAL/Smarty) and handle authentication with ACL and with the new Roles/Realm upgrades to the framework. Thumbs up for his top work in helping extend the capabilities and competitiveness of PHP as a web application language.

Next Page »