My Honours Thesis is Online

Tags

,

By: Sam Hames

This past year I’ve been studying part time for a Bachelor of Science (Honours) degree specialising in Computer Science at Flinders University. The focus of my studies has been my honours thesis. My thesis explored the following research question:

Is it possible to provide collaborative mapping services on mobile devices in an infrastructure independent manner?

To explore this question I developed an Android based application that could support four core objectives. They were:

  1. have the users own geographic location displayed on a map;
  2. add incidents, represented by a marker, onto a map;
  3. be able to see the geographic location of other users of the application on the map; and
  4. share details of incidents with other users of the application on the network.

The software that I developed uses the resilient Ad Hoc mesh network provided by the Serval Project to ensure that communication between instances of the application are infrastructure independent.

The thesis is available online on my Stuff by Techxplorer website.

The photo “Writing Thesis” was uploaded to Flickr by Sam Hames and used under the terms of a Creative Commons License.

First Version of Techxplorer’s CMS Released

Tags

, ,

By: depone

Today I released the first version of Techxplorer’s CMS. The source code is available on GitHub.

Techxplorer’s CMS is a series of PHP scripts, and accompanying JavaScript files, that I use in conjunction with MultiMarkdown to manage the Stuff by Techxplorer website. The CMS was designed with similar goals to that of the MultiMarkdown CMS. I decided to develop my own system for three main reasons:

  1. I wanted to see if I could do it
  2. I wanted something in PHP as I’m allergic to Perl
  3. I didn’t need all of the functionality that the MultiMarkdown CMS provides

The current version of the system provides the following capabilities:

  1. Convert MultiMarkdown source files into HTML files when the md file is newer or there is no corresponding HTML file
  2. Match the URL of the request to a HTML file in the content directory
  3. Incorporate the HTML from the file into the website template
  4. Automatically add a table of contents via JavaScript when required
  5. Automatically create links from citations to a bibliography when required
  6. Add an image cycle to a page
  7. Automatically include page, directory and site specific metadata

The photo “Content Management” was uploaded to Flickr by depone and used under the terms of a Creative Commons License.

My Expo Poster Won an Award

Tags

, ,

In November this year my honours course required that I develop a poster presentation. A poster presentation is basically an A1 sized poster that you stand in front of while people wander around the expo. It is a great opportunity for the school to promote the research and projects that have been undertaken over the course of the year by the students.

In the morning members of the school are invited to attend and check out what we’ve been doing. Some are assigned individual students and they must assess their posters. At the same time a group of industry representatives is also working their way through the expo evaluating a number of projects for awards.

My poster, and presentation, was selected for the “Most Outstanding Software Engineering Project 2011″. On Christmas Eve the award arrived in the mail, which was a very pleasant surprise.

The poster is available as a PDF via my bytechxplorer.com site and my honours thesis is also available.

Many thanks to my supervisors for providing feedback on my poster and for giving me the opportunity to work on the Serval Project.

Using timestamp Fields in MySQL with Lithium

Tags

, , ,

By: Toni Verdú Carbó

This post is a continuation of the series of posts that I’ve written on my experiences with the Lithium framework.

In the MARQues project I wanted to have a very simple way of logging the occurrence of various activities. The two activities I’m most interested in are the two types of searching that a user can undertake. I want the system to be able log when a search is undertaken and what search terms were used.

Initially I’d developed my simple activity logging table in the MySQL database with a timestamp field. Unfortunately this field doesn’t currently work with the Lithium framework. No matter what I did the field was always populated with zeros. This is a known issue and is currently marked as an enhancement.

To resolve the issue I changed the field to an ordinary datetime field and used the PHP date function to populate it. For example I use the model like this:


// build an array of values
$log = array(
  'type'  => 'search',
  'notes' => $this->request->data['search'],
  'timestamp' => date('Y-m-d H:i:s')
);

// create an instance of the model using the values
$activity = ActivityLogs::create($log);

// save the model
$activity->save();

I hope this post proves useful to other who may be experiencing similar issues.

The photo “The passage of Time” was uploaded to Flickr by Toni Verdú Carbó and used under the terms of a Creative Commons License.

Making IE9 Behave

Tags

, ,

By: Sarah Horrigan

Recently I discovered that the main page of a website that I’m developing wasn’t rendering properly in Internet Explorer 9 (IE9). The page in question includes HTML5 specific elements, included the appropriate doctype and the response headers included the appropriate mime-type as well.

In browsers such as Google Chrome and Mozilla Firefox the page would render as expected. In IE9 the page would render, and the icon for compatibility mode would appear. The intention of this mode, as far as I can tell, is to alert the user that the page may be using content that works best in another rendering mode. Unfortunately for me in my experience this mode doesn’t understand HTML5 specific tags. If a user used this mode the page would fail to render properly.

To fix this it is necessary to define a document compatibility mode by including an Internet Explorer specific meta tag in the head of the page.

In my case the header went from this:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>My HTML page</title>
  </head>
</html>

to this:


<!DOCTYPE html>
<html lang="en">
  <head>
    <!-- Explicitly Enable IE9 Standards mode -->
    <meta http-equiv="X-UA-Compatible" content="IE=9" >
    <title>My HTML page</title>
  </head>
</html>

There are two things that irk me about this situation. First, while it is possible to determine that IE 9 has decided that compatibility mode should be presented as an option to the user, it isn’t possible to determine why. Which makes it near impossible to diagnose what is going on.

Second, is that my standards compliant page, which validated fine according to the W3C Validator, now must contain a vendor specific extension. I was naive enough to think that the days of vendor specific extension in the HTML were going to be a thing of the past.

The photo “Little Monkey” was uploaded to Flickr by Sarah Horrigan and used under the terms of a Creative Commons license.

Follow

Get every new post delivered to your Inbox.