Informing Future Design workshop at MobileHCI

I’m co-organizing an upcoming workshop for MobileHCI this year. It is on the topic of “Informing Future Design via Large-Scale Research Methods and Big Data”. It is loosely based on previous workshops I have co-organized on Research in the Large. This year it goes beyond evaluation and instrumentation of app stores (which in my view have been a big theme for the previous workshops) and looks at how we can find new ways of incorporating large deployments as means to inform design. This means not only to iteratively improve existing systems and design ideas, but to use it in the ideation process of new ideas.

The deadline for the workshop submission is on May 10th and MobileHCI will be in Munich on August 27-30th. Check workshop web site for more info.

Posted in Uncategorized

Android WebView and File Input

While working on a web app that I wanted to embed in a WebView on Android to create a native app (hybrid), I encountered some problems with file input. The app is a simple one that allows users to upload photos, and shows a list of friends photos. (Instagram anyone?)

These days file input on mobile devices works pretty ok on iOS and Android devices. Adding <input type=’file’ /> will create a file input, and clicking it will let the user pick a file from your phone. At least from Chrome or Safari. However, when putting this in a WebView, it is currently not handled for you automatically.

Googling around to figure out what is going on reveals that this is something that has to be implemented by yourself by overriding a couple of functions in an instance of WebChromeClient. Unfortunately there are still a couple of issues with this. First of all, the functions that has to be overridden har undocumented. Second of all, returning the files seem to be devoid of file type, which is not necessarily a problem for everyone, but that was a problem for me.

First of all, the functions that has to be overridden are:

mWebView.setWebChromeClient(new WebChromeClient() {

@SuppressWarnings(“unused”)

public void openFileChooser(ValueCallback<Uri> uploadMsg, String AcceptType, String capture) {

this.openFileChooser(uploadMsg);

}

@SuppressWarnings(“unused”)

public void openFileChooser(ValueCallback<Uri> uploadMsg, String AcceptType) {

this.openFileChooser(uploadMsg);

}

public void openFileChooser(ValueCallback<Uri> uploadMsg) {

mUploadMessage = uploadMsg;

pickFile();

}

});

The three functions illustrate a progression of Android, where the last one is for early versions of android, and the last one is for Android 4.1+. Potentially then, this might change in the future.

The use of this then is to return the value in mUploadMessage by calling its callback.

Picking the file is easy enough using an intent call.

Intent chooserIntent = new Intent(Intent.ACTION_GET_CONTENT);

chooserIntent.setType(“image/*”);

startActivityForResult(chooserIntent, RESULTCODE);

 

And you return the file in onActivityResult:

protected void onActivityResult(int requestCode, int resultCode, Intent intent) {

mUploadMessage.onReceiveValue(intent.getData());

mUploadMessage = null;

}

 

(Note: There’s not error handling here, so remember to include that!)

So far so good. This will cause the file input data set, so we can submit it from a form, or access it from javascript.

What I needed this image for, was to both update a picture on the web page, and also to upload this data later on. The way I solved this was to use HTML5 local file reading through a FileReader object, and then reading the data using readAsDataURL

var reader = new FileReader();

reader.readAsDataURL(file);

reader.onload = function(e) {

var dataurl = e.target.result;

}

So we got dataurl as a URI object, which will be on the form “data:image/png;base64,…”. Or so is it normally. Problem is that from at least Android 4.2.2 (On my Nexus 4), the file object that is returned to javascript from Android does not have the file type set. (file.type===undefined). This makes the data URI to be invalid as it only describes binary data: “data:base64,…”. This caused major problems for me, but I managed to fix it. Fortunately the filename is set correctly, and so I can use the file ending. From that I can reform the dataurl to create a correct one

dataurl = “data:image/” + file.name.split(‘.’).slice(-1)[0] + “;base64,” + dataurl.split(‘,’)[1];

The rest of the script then works. You can use the dataurl to set the image src ($(“#theimage”).attr(‘src’,dataurl); and you can upload it as a string.

I’m guessing there might be a fix for this to get Android to pass a file with the correct type set, but without that fix, this one seems to work.

 

Posted in Uncategorized

Defended Mobility is the Message

On Monday I finally defended my PhD thesis – Mobility is the Message: Experiments with Mobile Media Sharing. The opponent was David Ayman Shamma from Yahoo! Research. He did an amazing job presenting his interpretation of my work, and we engaged in a lively discussion about the thesis. It was followed by questions from the committee, and the audience.

Now I’ve just got back to Glasgow, where I am visiting Matthew Chalmer’s group doing work in the Populations project at the University of Glasgow. I’ve been here since february and it’s been a super exciting environment so far with great energy! I’m determined that great stuff will come out of what we are doing right now. But more on that another time…

Posted in Uncategorized | Leave a reply

Representation and Communication at the University of Gothenburg

Today I’m giving a Pecha Kucha style presentation of our CSCW paper ‘Representation and Communication: Challenges in interpreting large social media datasets’ (Rost, M., Barkhuus, L., Cramer, H. and Brown, B.), at the University of Gothenburg during an event about social media research.

The purpose of Pecha Kucha is to make the presentations more focused and to the point. The format is to show 20 slides, each slide for 20 seconds. It restricts you from going on and on. It will be the first time I will do a Pecha Kucha presentation and am looking forward to it. I hope it will be as fun for the audience as I will have while giving it!

Find the abstract of the paper below.

Online services provide a range of opportunities for
understanding human behaviour through the large aggregate
data sets that their operation collects. Yet the data sets they
collect do not unproblematically model or mirror the world
events. In this paper we use data from Foursquare, a
popular location check-in service, to argue for the
importance of analysing social media as a communicative
rather than representational system. Drawing on logs of all
Foursquare check-ins over eight weeks we highlight four
features of Foursquare’s use: the relationship between
attendance and check-ins, event check-ins, commercial
incentives to check-in, and lastly humorous check-ins
These points show how large data analysis is affected by
the end user uses to which social networks are put.
Posted in Uncategorized | Leave a reply

Developer Options on Android 4.2

If you just updated an Android device to 4.2, and try to develop for it, you may have noticed that there are no Developer Options anymore. They used to be in the settings, just above “About phone”, but since 4.2 they are gone. This can make it difficult (impossible) to enable USB debugging. However there is a fix for it that once you know it is simple enough.

All you have to do to enable it is to go to Settings->About phone. Then go down to Build number, and tap it 7 times. After the first three times there will be a count down towards the hidden option. Just go back to the settings menu, and the Developer options will have appeared.

I found this from this forum thread.

Posted in Uncategorized | Leave a reply

PhD defence

On March 11, I will defend my PhD thesis ‘Mobility is the Message: Experiments with Mobile Media Sharing’! The official announcement is here, and you can already find the thesis here.

The thesis is comprised of 6 papers and 100 pages of new material that brings the 6 papers together. Find the abstract for the thesis below.

This thesis explores new mobile media sharing applications by building, deploying, and studying their use. While we share media in many different ways both on the web and on mobile phones, there are few ways of sharing media with people physically near us. Studied were three designed and built systems: Push!Music,Columbus, and Portrait Catalog, as well as a fourth commercially available system – Foursquare. This thesis offers four contributions: First, it explores the design space of co-present media sharing of four test systems. Second, through user studies of these systems it reports on how these come to be used. Third, it explores new ways of conducting trials as the technical mobile landscape has changed. Last, we look at how the technical solutions demonstrate different lines of thinking from how similar solutions might look today.

Through a Human-Computer Interaction methodology of design, build, and study, we look at systems through the eyes of embodied interaction and examine how the systems come to be in use. Using Goffman’s understanding of social order, we see how these mobile media sharing systems allow people to actively present themselves through these media. In turn, using McLuhan’s way of understanding media, we reflect on how these new systems enable a new type of medium distinct from the web centric media, and how this relates directly to mobility.

While media sharing is something that takes place everywhere in western society, it is still tied to the way media is shared through computers. Although often mobile, they do not consider the mobile settings. The systems in this thesis treat mobility as an opportunity for design. It is still left to see how this mobile media sharing will come to present itself in people’s everyday life, and when it does, how we will come to understand it and how it will transform society as a medium distinct from those before. This thesis gives a glimpse of what this future may look like.

Posted in Uncategorized | 1 Reply

ProtoDB on GitHub

I wrote a simple database library for rapid prototyping some time back, and decided to put it on github for anyone to use. It mainly takes away the need to setup a database structure before being able to save data on a server when writing simple web apps or other client apps.

It is both a PHP library, a server backend, and a javascript library in one. Use it for prototyping only, as it is not made to be neither secure nor efficient. However, once you got your app up and running, it should be easy to exchange those parts, or just make the library more secure.

Feel free to use and feel free to comment or send pull requests. The repo is here.

Posted in Uncategorized | Leave a reply

CHI 2013 Workshop list

I could not find a list of all workshops for CHI 2013 so I figured I might just as well make a list of the workshops as I find out about them. Email me about missing workshops.

The official list is out and can be found here.

 

Posted in Uncategorized | Leave a reply

WebPlatform.org – New Web Standards Resource by Apple, Google, Facebook, etc.

Great news for people who develop web sites using new on the edge web standards. Apple, Adobe, Facebook, Google, HP, Microsoft, Mozilla, Nokia, and Opera have joined the W3C to launch a new web site on which up to date up-to-date and relevant information about HTML5, CSS3, and other standards of the web are presented, together with the status of their implementations for cross-browser considerations.

Go directly to WebPlatform.org to contribute knowledge, or to find (soon I guess) the most recent up to date information about web standards and their implementations. Click here for more details.

Posted in Uncategorized

Steve Jobs 1983

All talk about Steve Jobs can sometimes be quite tiring. It is however hard to dismiss his insight into the domain in which he was working. Here is a speech from 1983, in which it is clear that he had a firm grasp on what was about to come. He gets many things wrong, such as the idea of the hand held iPad kind of device within the 1980s (it took 20 more years). But it is extremely interesting to listen to many of the things he got right.

I especially like how he wants computers to beautiful and that industrial designers must pay attention to the computer industry to start working towards more beautiful artifacts, and more beautiful experiences. He says that these things (the computers) will inevitable be all around us, in our home and in our offices, and so we now (1983) have the time to make sure they are beautiful. Unfortunately the IBM desktops kind of took over for a long time and we had those gray boring things for a long long time. But I think we can see how that is changing with companies putting more efforts into doing beautiful devices (computers, mobile phones, tablets). If only they would have started doing that already in 1983…

Listen to it here.

 

Posted in Uncategorized