Friday, July 30, 2010

Teaching Internet Programming at HPU Fall 2010

I'm teaching a course on Internet Programming this fall at Hawaii Pacific University (HPU). If you are interested is understanding more about how fantastically useful webservices from Google, Amazon, Yahoo, Twitter and Facebook can be consumed by 2D web browser Javascript, Mobile Phones, Second Life 3D scripting language and others to create cool mashups, do sign up for this course. I'll cover as many new topics as I can fit in, including HTML5, JQuery, selling goods on the Second Life marketplace, etc.

The full course materials will be online so you can take the course from anywhere in the world, and even if you are not enrolled full time in HPU, you can sign up for single courses by going to the following link:

http://www.hpu.edu/index.cfm?contentID=373

Here's the official course blurb:

CSCI 3632, Internet Programming: Fall 2010

Discover how webservices are changing the programming game. Stop rewriting the same tired code and outsource the heavy lifting to Google, Amazon, Yahoo and others. This course will focus on RESTful webservices, as promoted by the open source community. We'll look at how multiple clients, such as browser-embedded javascript and 3D World Second Life embedded Linden Scripting Language, can access RESTful web services to quickly create useful mashups from the Google Maps & Document APIs, Facebook/Twitter APIs. By the end of this course you'll be fully versed in how to make your own webservices using Ruby on Rails, and how to script light-weight components that leverage them in online 2D and 3D clients.
Taught online by Samuel Joseph, Ph.D.

TextBooks:

RESTful Web Services: Web services for the real world by Leonard Richardson & Sam Ruby. O'Reilly Media. http://oreilly.com/catalog/9780596529260

Scripting Your World: The Official Guide to Second Life Scripting (Paperback) by Dana Moore et al. Sybex. http://syw.fabulo.us/

JavaScript: The Good Parts Unearthing the Excellence in JavaScript, by Douglas Crockford. http://oreilly.com/catalog/9780596517748

Thursday, February 18, 2010

Collaborative Telepresence using Skype

So I've been thinking about what I call "Collaborative Telepresence" for a while now. Basically the idea is that you are mobile and you send a video feed to your friend at their desktop (or also mobile). Your friend sees something of interest in your video feed, indicates it (with a cursor or similar) and that video feed comes back to you in real time so you can see what they are pointing at.

I see this as being useful when you are at the grocery store and your better half is at home and want's to point out what you should buy, but it should work for any situation where you have a "field operative" and an "expert" who is trying to advise from a another location. What will totally rock is when we can do this over mobile phones.

I worked out a way to jury rig a system like this by using Skype. Skype allows you to both transmit video feed from a webcam and also to share your screen. To set things up, start a Skype call and have the "field operative" broadcast video. Once the "expert" can see the video feed, have them share their screen back to the field operative. Specifically the part of the screen that has the incoming video. Then, when the "expert" moves their mouse cursor (sometimes you might need to have them grab a file icon if the cursor is too small) over a part of the incoming remote feed it can be seen by the "field operative".

In order to get the mobile "field operative" flavour I ran a demo that involved strapping a UMPC to my chest - running skype on it, and outputting the video to a pair of heads up display built into a pair of Oakley sunglasses (see image). This allowed me to operate as a "field operative" in my yard with my wife (the "expert") telling me which Mangos were ready to pick off our tree and which were not.

Skype is on Android and iPhone, but doesn't have video support yet. Here's hoping that will come soon so my wife can instruct my activities at numerous remote locations :-)

Thursday, December 3, 2009

Mobile Social Navigation apps

I recently read two mobile social navigation studies, Barkhuus et al (2008) and Bilandzic et al (2008), that I wish I had conducted myself (particularly Barkhuus et al). Although the results from Bilandzic et al that people were unlikely to phone complete strangers for help finding coffee shops did seem somewhat obvious :-) Interestingly the solution to this problem that Bilandzic et al suggest is similar to the awareness approach taken by Barkhuus et al. So a very interesting couple of papers to read in parallel.

Furthermore some interesting notes about recent commercial technological developments. The CityFlocks system developed by Bilandzic et al has for the most part been replicated by the default google maps application on android phones, in that if you now search for a restaurant on an android phone you get an aggregated list of the reviews of that restaurant from multiple review sites, which includes some information about the reviewer (i.e. their name), if not their contact details. This functionality is not yet available on the iPhone google maps, although it is slated to become available in the future. Latest updates about google mobile stuff here: http://googlemobile.blogspot.com/

Similarly the functionality developed for Connecto by Barkhuus is almost completely replicated by Google Latitude (http://www.google.com/latitude/intro.html) in that you can see the locations of your friends, and you can set your location manually or automatically. The big thing missing from Google latitude (which runs on iPhone (in browser) and Android) when compared with Connecto is that it doesn't appear to run in the background (at least on the iPhone) and doesn't integrate the information about friend status into the contact list, which I think is one of Connecto's great features. I'm assuming that this kind of integration (friend location and contact list) will be hard on the iPhone, potentially easy on android. Here's a nice blog post showing you what google latitude looks like on the android:

http://androidcommunity.com/google-latitude-location-sharing-app-hitting-android-20090204/

Also of potential interest is that google maps on the android now supports layers, e.g. wikipedia, traffic, your google my maps and more. Here's a link on that:

http://www.streetmapmobile.com/20091203/google-maps-for-mobile-layers-2

We live in "interesting times", and it seems like Google is behind a lot of it :-)

Saturday, November 28, 2009

Economic Thoughts

Probably due to listening to NPR again I have been having economic thoughts about how odd it is that people's willingness to expose themselves to debt affects the bottom line of many businesses, which in turn affects the disposable income of people who might be employed by those businesses, which links back to consumer spending power.

Seems like a steady state might not be possible, i.e. just endless cycles of boom and bust. Still I wonder if there is some way to quantify the value produced by working for a lifetime, or for just one hour, that would allow us to calculate the extent to which an individual or a society is overexposing themselves in terms of debt? Problem is that it is highly non-static and that value is in the eye of the beholder.

However, perhaps we can think of our monthly icomes as indicative of the worth that society places on what we are doing. Money is strange. I guess it is straightforward to work out debt exposure based on monthly income, but somehow the relationship between money and value seems a little broken ... e.g. We can be doing all sorts of things that we don't immediately get paid for, but produce longer term benefits, like raising children, or networking with colleagues. Guess I'm just wondering if there are any economic alternatives to money ...

Monday, November 2, 2009

Mobile Programming @HPU Spring 2010

I'm teaching a mobile programming course at Hawaii Pacific University (HPU) in the Spring. Will focus on iPhone and Android. Here's the link to sign up for single courses at HPU if you're not already enrolled there:

http://www.hpu.edu/index.cfm?contentID=373

I'll be teaching in HPU's mac lab so we'll cover both iPhone and Android programming. The plan is for every class member (or team) to have an app published in the iPhone app store and the Android marketplace by the end of the course.

Monday, October 19, 2009

Gravity thought experiments

For some reason (probably reading my son "The Magic School Bus Lost in the Solar System"), I started wondering about gravity. I was wondering why my sensation of gravity is just being pulled down, and not to the sides as well. I guess the mass to either side of me in the Earth is roughly equal and thus cancels itself out. Which made me wonder how something would fall if you happened to be standing on the edge of a hemisphere, or if there was a cylindrical space running through the center of the Earth. In the later case I would have thought that something might fall down past the Earth's center overshoot, and them fall back, oscillating until it eventually came to rest a the center. Not sure about the hemisphere example. Seems like something dropped might actually fall diagonally. Of course the natural rest state of objects large enough to have noticeable gravity is a sphere, so such toroidal or hemispherical objects would not occur without some kind of intervention. The funny thing about gravity is that all matter attracts other matter. I don't notice being sucked towards the computer because it has so little mass, but the mass of the Earth is huge and sucks me towards it. I wonder if there are objects in the universe massive enough for gravity to be noticed, but in different shapes so that the force of gravity is felt in directions other than straight down ...?

Tuesday, October 6, 2009

SmartFM Mobile Study Dictionary Upgrade

So I released an upgrade (1.0.1) of the SmartFM android client, adjusting the media type for audio uploads (although the AMR uploads are still only audible on the phone and not the main site) and disabling the voice input when the google speech recognition package is not available. This latter was in response to a marketplace comment from Zom-B about force closing on voice button.

Of course this makes me want to say a few things about the marketplace comments, which are potentially a great resource, but are kind of odd in that they can be signed under any name, and there is no way to reliably communicate back with the people who made the comments. For example, originally SuaveAfro made the comment that the app should support downloading other people's lists. I replied to SuaveAfro in my own comment explaining that that functionality was included. Subsequently SuaveAfro became Havoc, and so I updated my own comment accordingly, but that moved my comment away from the one it was referring to. I guess the solution is that I should update my comment to reflect whatever is my response to the most recent comment, but it seems less than optimal. Would be nice if the commenting framework could link directly to a discussion forum on that app, but I guess that's overkill. Comments are a simple solution - would be nice if they were at least linked to a user's email so I could have a fighting chance of getting responses back to users who are unlikely to look at the comments again after their first download ...