Monday, May 30, 2005

A new idea for e-Learning solution

There has been many trials on remote learning solutions including face to face web conferences in a large group setting. However, due to the restrictions in prices and difficulties in using technology, not much is successful.

This idea is a first step to recording lectures - easy to use and requiring low bandwidth.

By using Apple KeyNote and a Quicktime MP3 recorder software enables a plug-in to interact between the two. Whenever the lecturer speaks on one slide, the audio clip is automatically attached to that slide. This will enable most content that was presented during the lectures to be captured and made available to students.

Simple, but useful.

Friday, February 18, 2005

AUDF Seeding Grant Progress Report

AUDF Seeding Grant Progress Report 2004
William Ho – The University of Queensland
Collaborative Time Management System

1.0 Introduction
The following sections of the report will detail the progress of the project throughout the last twelve months, as well as stating the future directions that the project will be heading. The proposal sub-divided the project into eight sections, having completed the initial phase of learning and spiking, the project has now completed the first iteration of development. Leaving the remaining two iterations to be developed on Mac OS X Tiger.

2.0 Current Progress
The original proposal details were revised during the course of development. The project proposal is updated with the next generation of Mac OS technology (10.4) and integrates into Mac OS much better. Up to now, the project has completed five out of eight component, and is finishing its first iteration. Having a Java client that reads data from an iCalendar file and interprets it into a pie chart and lists all the tasks for that day in a list. Before going to the Tiger Tech Talk at UTS, it was unclear if Rendezvous has a Java version, thus it was proposed of a client-server model using Java networking, however, as I explore jRendezvous at the Tiger Tech Talk, work is now in progress to incorporate jRendezvous to enable seamless collaboration between users (ie. to add and remove tasks through the network).

3.0 Successes and Positive Outcomes
The most valuable outcome of this project is the knowledge learnt and the experiences gained by developing the program. By going through this project, I was able to lead a group of students into another project that was developed on the Mac platform (refer to Section 6). By attending the WWDC 2004 in San Francisco and the Tiger Tech Talk at UTS, a lot was learnt about the next generation of Mac OS, which influenced the design of the project to be based on Dashboard.

Although Cocoa and AppleScript was not used in this iteration of the development, these two languages were learnt while I was spiking through the different development technologies on the Mac platform. This will provide me with a head start when going into the second and third iteration of the project.

In terms of the project, successes were achieved whereby the java program can accept an iCalendar file and extract the required information for analysis. A pie chart will be the output of the analysis, which indicates the proportion of time spent on different categories of activities.


4.0 Challenges and Obstacles for Future development
Although the first iteration was developed on the Java platform, it is planned for the second and third iteration to be based on Dashboard as the main user interface, as it provides a lightweight UI for the system. This will require me to learn more Javascript, CSS style sheets and probably Cocoa in order to successfully port the project from Java into Dashboard.

Another challenge to overcome is the ability for the program to update a new to-do event into iCal. If the program is written in Cocoa, this could be done with AppleScript.

5.0 Resources required completing the project
With the iBook provided by the AUDF seeding grant last year, and also updates of Mac OS X Tiger seeds from UQ, there should be enough resources to complete the project.

6.0 Revised schedule for 2005
The revised schedule for 2005 will include three components as detailed below.

First Iteration
(Due by Feb ’05)
- Finish off jRendezvous component.

Second Iteration
(Due by Aug ’05)
- Learn JavaScript, CSS and integration of Cocoa into Dashboard
- Port parts of the project into Cocoa
- Design the Dashboard UI
- Investigate the networking ability of Dashboard using Rendezvous
- User Testing Phase 1

Third Iteration
(Due by Oct ‘05)
- Refine UI and program using feedback from User testing.
- Fix bugs and errors.
- User Testing Phase 2

7.0 Additional Information

7.1 Blog
For continual monitoring of the project, a blog has been set-up at blogspot.com to record milestones and important findings relevant to the Macintosh development work that I am doing. (http://williamhhho.blogspot.com/) Releases of the project and source code can also be obtained here.

7.2 Paquet Visuel
As part of my study in the Information Environments program, a project was developed based on the Mac platform using Java, namely Paquet Visuel (http://sourceforge.net/projects/paquetvisuel/). This is one of the first projects developed purely on the Mac platform at the IEP.

Saturday, February 12, 2005

Tiger Tech Talk at UTS

Some key points and notes are taken from the Tiger Tech Talk at UTS
This tech talk serves as an update from WWDC2004, as there are more seed releases of Tiger (MacOS 10.4)

Java Session

RendezVous for Java (Windows/ Mac)
J2ME - support for bluetooth development on mobile devices


CoreData Session (Database, just drag n drop to create interface after entity-relationship is done)
- Cocoa / Xcode

NSLevelIndicator
"Ratings" in iTunes

NSMetadataQuery


DashBoard
- new security data in info.plist
- enable control of data streams
- extended html/javascript/css style shee
- cocoa plugins are now bundled in the .wdgt package


Spotlight
advanced search through meta data
MDImporter / MDQuery - useful for workflow
- choose proper attributes for meta data
- never add binary data as meta data or anything that doesnt make sense

CoreImage
Quartz Composer - Visually programme OpenGL effects etc. Add RSS info etc...

Automator "Pipeline"
- A graphical AppleScript (more or less)
Automate workflow using Apple Events
automator - Developer : making their apps able to interact with automator
End-user able to automate the workflow
CLI || AppleScript || automator getting more accesible by user without knowledge of programming or scripting
Xcode template to create new actions
Dont abuse or complicate automator actions

info.plist - important to store all info that a user would see eg.description
AMApplication
AMDescription
AMKeywords - used for automator searching
AMAccepts - inputs
AMProvides - outputs
AMDefaultParameter (used if UI exists)
AMWarning (used wen data will be modified... "do u want to make a copy?"

/System/Library/Automator

Design Guidelines
use progress indicators "ie. if it take long"


AppleScript workflow (Read TechNote 2106)
using AppleScript actions to programme automator event in Xcode
+ good for apps that has existing applescript

Cocoa based action
For more complicated actions
- can use .nib files to generate UI
- provide feedback (eg. 'before / after' for image filter)


** GOT AN IDEA - bluetooth remote ctrl (ie. WinXP media cntr) How about a Mac one?

Monday, February 07, 2005

jRendezvous

Well, back from the Tiger Tech Talk at UTS. Although a quite tiring trip, but is quite worthwhile. A lot was talked about, while overlapping some of what was said in WWDC2004.
The most valuable discovery I found was Rendezvous does actually have a version on Java, namely the jRendezvous, thanks for StrangeBerry.

So for my project, I can continue on using java (for now) to make the prototype. Where does Rendezvous plays a part is where the network linking of the Task allocation to different users. A Rendezvous service will be setup by the management console, while other users could discover it and join it. This would make discovering other users easier. (maybe hook up with iChat at a later stage)

Although my ideas are everchanging, this would work for now. I would love to implement the whole thing as a server (probably php-based) application, which students could use a Dashboard widget to access and retrieve all kinds of information about their workflow, task allocation, task list and synchronise it was iCal (again using Rendezvous).

http://www.macdevcenter.com/pub/a/mac/2003/07/29/jrendezvous.html

Sunday, January 30, 2005

The iCalendar Standard

After learning and developing on AppleScript for the CTMS, it seems that the AppleScript development platform does not support networking technologies. Automating processes through mulitple programs seems to be the aim of the scripting language. As time is running short, it is thought that using Java would be the best option, as I'm still not so familiar with Cocoa even after going through a few tutorials.

To get iCal's data into Java, the first thought was to interpret iCal's data using a Java filter. Luckily, the data was saved as the iCalendar format, which is detailed here: http://www.ietf.org/rfc/rfc2445.txt

By following the specification, a Java filter was written, this filter accepts an .ics files and picks out the important elements and outputs a text file.

The elements the filter picks out are:

TODO
X-WR-CALNAME
DTSTART
DTEND
DURATION
SUMMARY

These data will be neccessary to construct the total time of each category of events (ie. Time management).
Another idea is to retrieve these data from .Mac where the .ics file can be taken using iSync. However, there is no reason for us to do it, as a local copy can be obtained.