Archive for category tech

What are my social objects?

I have recently been given cause to evaluate my participation in social media and what I am seeking to achieve by my participation. It has caused me to think on the nature of social media itself and to refresh my understanding of the concept of a social object. Hugh Macleod defines a social object as:

The Social Object, in a nutshell, is the reason two people are talking to each other, as opposed to talking to somebody else. Human beings are social animals. We like to socialize. But if think about it, there needs to be a reason for it to happen in the first place. That reason, that “node” in the social network, is what we call the Social Object.

So my question to myself is what are the classes of social objects I am interested in sharing via social media? Here is the list I came up with (in no particular order):

  • Games. I have a boardgame collection (listed here) and each game on it as well as other games I play is a social object.
  • Locations: I live in Adelaide, Australia and each place I visit is a social object.
  • Business Organisations: every organisation I interact with either as a customer or as a service provider can become a social object.
  • Industries: The industries that organisations I provide services to operate in are social objects in themselves.
  • Devices: The devices I own and use are social objects themselves as well as the features of those devices such as operating systems.
  • Software: Software that I use is a social object.
  • Links: I am constantly reading information on the internets and those links are social objects.
  • TV: The TV programs that I enjoy are social objects.
  • Books: Books that I read are social objects
  • Images/Video: The images and video that I capture using my phone and camera are social objects.
  • Chrisitanity: I am a Christian and that is a social object as well as the church I attend.
  • Sport: One of my son’s plays rugby and I infrequently watch sport on TV so that is a social object.
  • Curent Affairs: anything that happens anywhere that piques my interest becomes a social object.
  • Political Issues: Any political issue that I care about is a social object.
  • Life Skills: Life skills that I lack or am developing become social objects.

My social objects are one way to model both my online and offline relationships and a way to gain insight into behavior, one I will be thinking on much over the next little while.

Tags: ,

No Comments

Bigpond Music Withdraws WMA Support

I received the email below from BigPond music this morning. It seems that Telstra are phasing out their DRM. It sucks if you bought WMA formatted music only last year and now you aren’t supported any more unless you burn all of your music to CD. It’s a good thing I only ever bought one song and that I now have an MP3 version of it from iTunes.

Dear BigPond® Music Member,

BigPond Music won’t be supporting the Windows Media Audio (‘WMA’) file format after 1 April 2010. That means you won’t be able to download new DRM (Digital Rights Management) ‘unlock’ keys for the WMA files you’ve bought from us already – so you should back up your music now.

Any MP3 files you’ve bought from us won’t be affected. Read further if you want to know more about WMA files.

Here’s why you should back up your music.

As long as you keep using the same computer and operating system, you shouldn’t have any trouble playing your WMA music files. But if you try to move them onto a new computer or operating system, they won’t work if you don’t transfer their DRM keys as well.

Besides, backing up your collection is a good idea – for your MP3 files too.

So here’s what to do.

You can back up your music collection now, by either:

1. Burning it to audio CD (Click here to find out how.)

2. Backing up your WMA files and licences separately (See how to do it here.)

Additional information on WMA’s & DRM.

All our music was in the secure WMA file format when BigPond Music started. Whenever you downloaded a WMA file you downloaded it’s encrypted Digital Rights Management (‘DRM’) code at the same time.

DRM is a kind of lock and key system. The key unlocks the music so that it’ll only play on your software. The downside of this security is that WMA downloads don’t work on popular systems like Apple’s iPod and iTunes software. It’s also hard to move WMA files without downloading a new licence key.

We started selling MP3 files without any DRM or licence key restrictions in August 2008. MP3′s are a much more universal format that works on most digital music players and software. We stopped selling WMA files in March 2009, and only offer MP3 music now.

The BigPond Music Team

1 Comment

Website Technical Design Principles

I’ve recently become involved in assiting an organisation to add a little bit of technical rigour to their brief for the redesign of their website. As a part of this I’m developing some technical principles to guide the technical requirements. I’ve listed the principles below:

  1. The website shall be developed in such a way as to allow maintenance by persons other than the successful bidder.
  2. The design of the website shall allow future enhancements to take into account changing requirements, technology and standards without requiring a rewrite.
  3. The website shall allow the content to be edited and maintained by the client without the need to engage external parties to do so.
  4. The website shall be accessible to the widest possible audience and shall not prevent access by people with disabilities or access by persons using commonly used technology.
  5. The website shall be designed in such a way as to promote favorable ranking in common search engines.
  6. The website shall be designed to prevent modification of its contents by unauthorised users.

I think these form a pretty good basis for good technical website design.

Tags: ,

1 Comment

Announcing Project Tintagel: A Grails CMS

I would like to announce that I have created a Google code project to start putting together the ideas for the Grails CMS that I have devised. The name of the project is Tintagel. Why Tintagel? Well Tintagel will be loosely based on the ideas in the Drupal CMS. As the story goes when Dries Buytaert was choosing the domain name for his CMS project he mistyped the word dorp which is Dutch for village and ended up with drop.org which later became Drupal (see the Drupal history for the full story). Tintagel is based on the Grails framework and the village most associated with the legend of the Holy Grail is Tintagel in Corwall UK.

I am definitely looking for help on this project as the scope of the ideas I have is much greater than the time I have available to work on it so if you have the time to help drop me a note in the comments.

Tags: , ,

2 Comments

First Thoughts On a Grails CMS Object Model

I’ve been thinking of writing a Grails based CMS that will be loosely based on Drupal. The main aim will be to have a very clean MVC separation and to add features using Grails plugins. To that end I have been thinking about an object model for the site which I have drawn below:

A Template is a layout of regions. Each theme will have a number of templates (which may be only one) A region can have an existence apart from a template so a region on a particular template is called a Template region. Each template region has a context and can have 0 or more blocks to display content. The blocks use the context to decide what to display. A page is an instance of a template with a number of region instances. Each region instance can have a mode such as view or edit.

I haven’t yet decided which parts of this object model will not be represented in the database but rather in template files as tag parameters.

Tags: , , ,

4 Comments

Grails and Netbeans: How do I Put Domain Classes in Packages?

I downloaded NetBeans to work on my open source project in Grails and one of the first things I noticed is that the Grails plugin doesn’t support creating domain classes in packages. This seems a little bit weird to me and it has left me wondering if I should copy the classes manually into package folders and add the import statements or whether I should give up and have them in the default package. The plugin seems to recognise domain classes in packages just fine but it won’t let you crete them through the wizard. Weird.

Tags:

1 Comment

Oracle Coherence: An Interesting Beast

I attended a seminar yesterday that was all about the Oracle Coherence product. What is Coherence? In short Coherence is a scalable, distributed object cache with added functionality to provide filtering, triggers and updates. There is also the capability to write objects from the cache to a backing database store using Hibernate or JPA. The scaling and fault tolerance are particularly impressive with each cache object having an easily determined location meaning no single points of failure for a registry server and little, if any, performance degradation when servers are added.

I foresee Coherence being useful for applications that need to scale significantly and that need to use an in memory cache to speed performance.

The programming model, though, is more problematic. Basic cache access is achieved through a Map interface where objects are associated with keys. Added to this are methods to listen to events, filter the cache and update it. The API for these operations reminded me a lot of Groovy closures and their operations on collection classes. The issue comes with object relationships. The API, as far as I can see, makes no provision for the storing of relationships between objects in the cache. This means that domain objects stored in the cache need to be aware of how to obtain related objects from the cache. Serialization methods need to know what the serialization boundaries between objects are and how to save related objects. No doubt there would be ways to encapsulate this access into a framework to remove the dependencies from the domain objects but be aware that this is a very different kettle of fish from the ease and convenience that we are used to from Hibernate and JPA.

All in all Coherence seems like an interesting addition to the Architect’s toolkit that may just be the right choice for interesting performance and scaling challenges.

Tags: , , , , ,

No Comments

Why Sermon Podcasting Fails

The guys over at Geeks and God have a new podcast series up on podcasting and one of the episodes deals with sermon podcasts. One of the issues I have with Christian podcasting is that I can never find the good stuff. There are thousands of churches out there that are just putting their sermon audio out there as a podcast and the Geeks and God guys explain very well why this isn’t very effective, basically because the podcasts aren’t very targeted and don’t really work for people who don’t have a connection to the church involved. Thus they are ineffective as outreach tools.

Churches doing or considering podcasting would do well to have a listen to this, I think it has some good insights.

1 Comment

9 Killer Features I Want in a Task Tracker

OK I give up. There are a bunch of features I have been carrying around in my head for a killer task tracking application for a while now, hoping one day to be able to implement it. I now realise that I am unlikely to ever get the time to develop this software and that I really want these features now so here they are, free for anyone to implement. If you want to give me credit or even some renumeration then I’m not going to say no but that is not a requirement for using these ideas. Here is my list:

  1. Predecessors and Successors. Mostly what I want is to reduce my list of outstanding tasks to only those that I can work on at the moment so the whole list doesn’t freak me out so much. By filtering out tasks that have unfulfilled prerequisites I can reduce the list to those tasks that I need to get done so as to allow the successor tasks to be achieved.
  2. The ability to split tasks. Often when doing GTD you realise that the task you have set down is not granular enough and that you need to split it into sub tasks in order to make them next actions. I want the ability to easily split a task and for all of the predecessor and successor information with other tasks to adjust accordingly.
  3. Resources Rather than Contexts. GTD, because it was envisaged for paper based tracking systems, allows tasks to be placed into a single context, the idea being that you look at all of the tasks that can be done in any context you are in and do those. This is a way of reducing the task list. I find that I have tasks that can be done in multiple contexts. I can make phone calls anywhere I have a phone which is everywhere these days, not just in a specific context. In thinking about this I realised that tasks depend on resources and that contexts have resources available. Resources can be something you will need to do a task, such as a phone or an internet connection; a person; a specific place or something less tangible such as work time or personal time. Contexts have a set of resources associated with them. It is the match between resources required and resources available that determines what tasks you can do in a context. For example on the bus on the way in to work I have a phone, personal time and an iPod but I don’t have a privacy resource. Resources could be modeled using tags but there would need to be a way to filter for tasks containing multiple tags to represent the contexts.
  4. Task Urgency Value. GTD abhors the use of task priority to determine which tasks to do next but it also introduces the idea of a tickler file for tasks that need to be done on certain days. This doesn’t allow enough flexibility for me because I have some tasks that have a hard date and some tasks that can be more flexible. For example I have a meeting every Monday that I need to have prepared for by that date but if it has been more than a week since I have vacuumed my floors one more day won’t hurt too much. My idea is this: introduce a task urgency value which gets calculated based on the date when something ought to be done and how hard that date is. Urgency should be calculated using some sort of mathematical function like an exponential function so that the closer the date the higher the urgency gets. Urgency would increase slower for softer target dates and faster for harder target dates. In this way tasks that need doing first would automatically bubble to the top.
  5. Task Templates. In life there are situations that occur that will cause the same set of tasks to occur over and over again. For example my checklist for things I need to bring to my life group meeting. I would like the ability to have that list of tasks to be added to my task contexts automatically using a template prepared earlier. This would save me time and make sure that everything is covered.
  6. Repeating Tasks. I want the ability to have a task or a group of tasks via a template repeat. For example tasks around the house need to be done periodically so if I have cleaned the bathroom for this week then I want a new task to remind me to it again in a week’s time. Fly Lady has built a business on this very concept. The new task shouldn’t be added until the first task is completed. Ideally this should be combined with task urgency values to allow some flexibility as to when tasks are completed. Update: There is an application called Sciral Consistency that does this. it doesn’t integrate with anything (such as RememberTheMilk) but they are on the right track.
  7. Add Tasks From Everywhere. I want to be able to add tasks from everywhere and have them pop up in a holding area ready for me to review and categorise them. I want to be able to tag sites in del.icio.us with special tags to remind me to follow up (RSS?). I want to be able to SMS, email and IM tasks (Imified?). I want to be able to add tasks somehow from my phone and my PDA.
  8. Get Task Lists From Everywhere. I want to be able to get my task list from any device I have, my PDA, my phone and any PC I happen to be on.
  9. Wait List Tasks. I want to be able to delegate a task to someone and have it disappear from my active task lists but I then want it to pop up again to remind me to follow up that person automatically. A threshold based on task urgency value might be appropriate or, more simply, a number of days before a due date.

Any or all of these ideas could be implemented independently although some of them obviously have synergies between them.

So how about it? Can anyone pick these features up and run with them?

For more information I can be contacted either via the comments or via the temporary email address (20 emails only) taskideas.20.yellek@spamgourmet.com.

No Comments

Review: HiTask.com

HiTask

Category: Tool / service

Topic: productivity

Year created: 2007

Overall rating: 4 out of 5
Content rating: 4 out of 5
Design rating: 4 out of 5
Navigation rating: 5 out of 5

I’ve been using HiTask for a couple of months now on my quest to find the perfect Getting Things Done (GTD) application. Given that I have yet to really implement GTD in my life you might take my comments with a grain of salt but hopefully I can give you enough information to help you decide if you want to give it a go.

If you are familiar with GTD you will recall that for day to day operation GTD uses the concepts of projects, next actions and contexts. HiTask supports next actions (called tasks) and projects directly, allowing you to group tasks into projects. Contexts are supported through allowing items to be tagged, each tag being a context. In order to view items in a single context you can filter items into those belonging to a single tag. GTD also addresses the concept of next actions due on a given date by introducing the concept of a tickler file with folders for each day of the month. HiTask supports start and end dates and times for each item.

HiTask also has extra features which extend the basic GTD functionality. In addition to tasks you can also add meetings, reminders, notes and birthdays as items, all of these items being taggable as well as having dates assigned. Meetings can be created as recurring. On the left of the page there is a calendar view of all tasks and items due that day. Items can be assigned to different color groups.

HiTask supports collaboration by by allowing items to be assigned to other people. People can be invited to join as teammates but in order to see all tasks in a workgroup (as opposed to just your items) at least one premium account is required. Workgroup size is limited to 3 users in the free edition. Other limitations of the free edition include a maximum of 100 items and 25 proijects. Premium accounts are USD15 per year.

One of the areas where HiTask really shines is in its support for open standards and integration. I use the iCal integration to mirror my HiTask items and recurring meetings onto my Google Calendar. I still haven’t managed to crack the ultimate calendar synchronization by getting my Outlook calendar synched into Google (Plaxo promises but is not delivering at present) but having a view of HiTask on Google calendar is nice. You can also get an RSS view of your items which lets you see your own or other items in a feed reader such as Google Reader.

One of the big issues with services like this is obtaining your data back if you want to move it somewhere else. HiTask offers a CSV export facility which at least allows you to get a copy but it might be difficult to import somewhere else. I don’t know if there is an open standard for task data to use so I suppose that CSV is a good default.
Those are the features but what about the user interface? I find the HiTask user interface easy to use and well thought through. There are a number of nice AJAX touches like being able to drag and drop items into projects and onto the calendar to set their due dates and times. Items can be grouped by project, color, date and user with categories being able to be expanded to show the items in each one.

What don’t I like? Well I sometimes want the ability to view items that have two or more specific tags and HiTask only allows me one tag filtering. I also want some sort of ability to view only those items that I have to do next and not those items that are waiting on a next action. This would reduce the clutter when I am trying to decide what to do next. I also find that I have both work and personal projects going and that sometimes I want to only see the work projects but I can’t tag or filter projects.

My concusion: HiTask is a solid performer which offers enough to implement GTD online although there are still some things for the development team to work on.

Tags: HiTask productivity task web20 gtd

No Comments