Archive for the 'Features' Category

DuoMesh Final Released

Wednesday, March 14th, 2007

After extensive testing I have now removed the Beta tag from DuoMesh and I have now release it as final. The core features from the projects Aims and Objective have been implemented. This includes support for: text (e.g. blogs), audio (e.g. podcasts) and video based media (e.g. vidcasts). Towards the end of 2006 I did I have a list of possible features that I could integrate, but some of these proved to be too time consuming to implement.

The final list of features includes support for:

  • Text based RSS and Atom Feeds
  • Image based RSS and Atom Feeds from such websites as Flickr or Gallery
  • Podcasts including audio and video formats
  • Weather information

Enjoy!

DuoMesh Beta Released for Testing

Sunday, February 25th, 2007

After 4/5 months of development I have released a beta/testing version to the general public at http://beta.duomesh.com. There were approx. 25 people that had joined the mailing list to keep updated with latest developments, so I have dispatched a email to allow for user testing and an option for them to take part in a user experience questionnaire.

This version is a fully functional prototype of how the end website operate and function. I will use the feedback to assess user reaction and first responses to the website. It will also help to iron out any bugs or problems that I have missed.

It will also allow for the rest of the time for me to concentrate on documentation and marketing.

Weather Module Added

Saturday, February 17th, 2007

Allowing users to add different weather information to their profiles was one of the feature I suggested early on in the project.

This has now been implemented using Yahoo! Weather’s API service and PHP Class “weather” by Matt Brown. This allows developers to access Yahoo! Weather services and pull information back into their own applications and easily customise the layout and design.

The only problems encountered with the implementation where the transparent weather icons in PNG format didn’t render properly in Microsoft Internet Explorer 6 (the problem didn’t effect IE7 as Microsoft new version of IE has partial support for PNGs) as shown in the image below.

ie6-png-problems-small.png

This was fixed by using a CSS hack, this involved putting each of the transparent PNG icons into a div and setting the icon as a background image for that div layer. Then using a special filter command to trick IE6 to render the images correctly.

Podcasts Feeds Supported

Wednesday, February 14th, 2007

After getting standard text based feeds functional, the next steps was to get other feeds types supported. As feeds are generated/written in XML this means that the tags used in the markup language are not restricted liked HTML and users can create their own tags such as:

XML:
  1. <icon>http://www.domain.com/icon.gif</icon>
  2. <content_descriptor>User Content</content_descriptor>

This could have been used to detect/or describe which kind of feed the user was adding/viewing (e.g. text based, podcast, image feeds). But due to the nature of XML there is no standardised way of describing if the feed they have added, is entirely image based or contains some kind of video/audio information.

This means that I will have to let the user choose what type of feed they are trying to add.

When developing the Podcast module I encountered a wide verity of problems, as the XML based feed for a Podcast is not widely standardised. Apple has made an attempt at trying to solve this problem, as their media player "iTunes" supports Podcasts, but will only accept XML that has been written to conform to their technical specifications. After adding wide verity of feeds I found that some podcasts didn't include the <description> which caused the layout of the site to break. Also some Podcasts would link the user to a web page instead of linking them directly to the MP3 audio file or video file. These things all had to be taken into account while debugging the code.

Feed Processing

Tuesday, January 30th, 2007

The core feeds types that the script will support are:

  • Standard text based feeds e.g. BBC News
  • Image based feeds from such image galleries as Flickr
  • Audio/Video based feeds such as Podcast like Diggnation (weekly technology video Podcast)

Other feed types:

  • Email
  • Weather
  • Access to non-RSS feed information by taking a website and only stripping out the text

So far I have implemented standard text based feeds and image based feeds see: http://beta.duomesh.com for the latest development build.

OpenID Authentication Implemented

Saturday, January 27th, 2007

After spending about 2/3 days testing and trying to implement OpenID into DuoMesh, I have managed to integrate with the login mechanism.

Registering with DuoMesh only allows you to use 4-15 characters and only contains letters and numbers, this prevents people from registering with a domain style username (e.g. users cannot register say duomesh.com as a username), this is how OpenID works, using a URL as a username. This means that I can simply use one login box to log both users registered with DuoMesh and people using an OpenID to login.  As OpenID passwords are verified by the identity provider, the password box is automatically disabled when a user starts typing a URL in to the login box, clicking on the password input box will prompt the user that they have entered (or started to enter) an OpenID and that the password is not required by DuoMesh (but authenticated via their identity provider).

Users from DuoMesh and OpenID are automatically entered into the same 'user' table, when a user logs in with OpenID the system will check to see if they exist in the database, if not the system will automatically create a new user with their OpenID as the username. The only difference between a standard account and an OpenID account is that the user of an OpenID account cannot change their password.

To show that OpenID is accepted on DuoMesh I have placed a small OpenID icon in the username field which will allow users to  identify that they can use their OpenID identity. This will also be displayed on the registration form, that registration is not required.

CAPTCHA Protection

Sunday, January 7th, 2007

When creating a dynamic website, the developers need to take in to consideration abuse from spam.

Where the content of the website is subject to user submission, you run risk of getting abused by advertising, automatically submitted from spam bots, to promote their products and services.

To combat this potential problem an additional layer of security can be added to detect whether the client is human or a computer. This method is called CAPTCHA which is short for "Completely Automated Public Turing test to tell Computers and Humans Apart" [source: Wikipedia - 7 January 2007].

This approach usually involves supplying the user with an image, which they are asked to identify by typing a response to the image (e.g. supplying text as an image for the user to duplicate into an input box below).

There are a range of open-source scripts that work with PHP, that allows developers to integrate CAPTCHA into their script. The script that I have chosen to work with is called freeCap this provides users an image which they are asked to replicate into a box below.

Possibility of using OpenID?

Saturday, December 23rd, 2006

OpenID is an open source login system. It allows users to use a URL such as http://sebflipper.myopenid.com as a login name, this allows users to use their OpenID username/URL to login to multiple websites without having to register for them first.

When a user encounters a website that supports OpenID they can enter their username and the website will then redirect the user to their OpenID login page, in my case it will redirect me to myopenid.com which will handle the login on behalf of the originating website. Once the user has logged in and accepted that they want to share their information on the website they were viewing, myopenid.com will send a request back to the originating website to say that the login was accepted.

At the moment only a small number of websites support OpenID such as LiveJournal and Technorati, but more websites are starting to see the potential of a single login.

A video of OpenID in action can be found on Simon Willison's Weblog [Source: Digg.com - 23 December 2006]

I have tried playing around with the demo samples provided from Videntity.org and I have managed to login and authenticate myself using their example scripts. The only problem I have encountered so far, is with trying to fetch details about the user such as their email address and name. As the only thing I can get back from their examples is weather the user is authenticated or not.

I may try and integrate it with DuoMesh, but it may require another database table or amends to the existing user table. Also there would be problems with conflicting user profile information as currently I have been unable to fetch details about the user from OpenID authentication servers.

Detection of Mobile Devices

Wednesday, December 6th, 2006

Each Internet browser whether its a fully blown desktop browser like Firefox, Internet Explorer or a mobile phone will send out a request with each connection it makes with a User Agent tag.

This tag usually contains the name of the browser and what version is it. It can also contain what the system default language is as well as other information. This could be used to direct users to a mobile version of the site or to the normal website.

There is an open-source project called WURFL which is basically a set of XML file that contain information about capabilities and features of over 9000 wireless devices. Its possible to use this information to redirect people using a mobile device to a more appropriate version of the site.

Using the PHP modules they provide with the software you can use this command to redirect users to a mobile version of the site:

PHP:
  1. if (  $wurflObj->getDeviceCapability('is_wireless_device') )
  2. {
  3. header("Location:  http://desktop.example.com/");
  4. }
  5. else
  6. {
  7. header("Location:  http://mobile.example.com/");
  8. }

[Source: dev.mobi - 6 December 2006]

The only problem with this method is that its not guaranteed to have all and new mobile devices in its database. So not all users will be detected and redirected correctly.

I could use this method combined with option to view the full site or the mobile version.

Removing www.

Friday, December 1st, 2006

By default all websites contain www. This is something that web users have become familiar with, but many websites are now automatically removing the www. from the URL to make their domain shorter and cleaner. According to some websites this also improves your ranking on Google.

To achieve this on an Apache web server, add the following code into a file called .htaccess

CODE:
  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
  3. RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

[Source: bigbold.com - 1 December 2006]