Thursday, July 31, 2008

Chumby: An Experiment in Hackable Pervasive Computing

This paper, written by one of the founders of Chumby Industries - Andrew Huang, describes their hacker- friendly business model.Unlike other consumer products that are locked up from the users, Chumby's software and hardware is open. They have not only released the source code of their operating system, but also have tutorials and templates on how to create widgets.

The author says that the idea behind this is that they want Chumby to be what their users want it to be. It is impossible to please all users- companies always have to make a trade off between including excessive features that would make the device complicated, and leaving out features and thereby users to whom the device is of no use. Hence, they have made the Chumby easy to hack into, so that people can "configure" it to whatever they want it to be. For example, a user can operate home appliances through the Chumby, using its accelerometer. They essentially are providing a device that can be used for other innovations.

Huang also describres various steps involved in product design. Two of the important ones are the very first step which is vision, and the middle step which is engineering. "Vision" involves establishing a broad product concept, and "engineering" involves building the actual product. He says that at the engineering stage, there is a lens that gives an insight into the whole product design process. Closed consumer products have a one way lens at this stage, where the consumers passively see the company's vision. But, Chumby industries have made this lens two ways; this means that users can explore the product closely and give feedback. This feedback is included in the company's vision. They are essentially empowering the users to create their own vision.

Hackers do not just make the product better for themselves, but for the whole user community. For example, one user included a battery pack with the Chumby, and posted in the forums on how to do it. Another one came up with a way to connect it to wired internet via its USB port and shared the procedure. Now, the whole community can benefit from their expertise. So, the product grows and gets better by itself; the company just provided a template.

Chumby Industries, as the author says, was started to make profits; it is by no means a charitable company. They make their money from ads. They feel that good quality ads are interesting and people view them (ads during Super Bowl being the best example). They take extra care in ensuring that the ads are good.

They also make money by slightly overpricing the product, so that they can offer all the widgets and software updates for free, unlike other big companies like Microsoft that offer subsidized gaming console, but make money off of the games and services. By following this model, they can make profits, but at the same time opening up their product to give users a platform to personalize it (alas, over 90% of their targeted user base if not very tech savvy.)

Monday, July 28, 2008

Meeting with Lorcan

After giving a brief update on my work during the last week, we decided on having a clear set of milestones for the final four weeks of the internship :O I will have a set of milestones written on paper for further discussion as soon as possible (hopefully, by the end of today, or first thing tomorrow morning.)
I will also have an outline of my final report, in the form of bullets, written by the end of Thursday. I am going to have friends updates on the Chumby app. Also, the script I am using to get information from basadaeir to twitter needs to run minute. It will also have more rules for updating twitter.

Two Truths and a Lie

Just for lols I made a "two truths and a lie" flash app. It looks really ugly right now, but it works :)
Check it out and register here

Wednesday, July 23, 2008

Bluetooth to Twitter

Today, I used basadaeir, which basically spots bluetooth devices using various sensors in CASL, to update twitter. It is a simple php script that checks if my phone has been spotted. If it is, then it updates twitter with the location. To ensure that it doesn't update the same location over and over, it first checks for the latest tweet, and compares it with the location message to be sent. If they are the same, it doesn't update (else, if does.)

The plan is to run the php script continuously after every few minutes to check for location of the bluetooth device. I will also be defining more rules to better manipulate the location information. For example, if the phone is located in the 4th floor coffee area at around 1 o clock, the twitter update could be "lunch on the 4th floor." If the same location data is obtained at some other time, the update can be "having coffee on the 4th floor." The idea behind this is that most elders have a static daily routine that they follow. Hence, the location and the corresponding time can be matched to their activity.

Issues

Sending Variables to PHP from Flash

To send variables from flash to php all you have to do is use the function

loadVariablesNum("url", 0, "POST");
this will load all the variables in the flash file to php.
They can be retrieved in php using $_POST[].
For example, if I have variables firstName, and lastName in the flash file, I can use the loadVariablesNum function to send the variables.
In php,
i use the code
$firstname = $_POST['firstName'];
$lastname = $_POST['lastName'];

This has been very helpful for me while using the twitter api which does not have a crossdomain.xml file. I had to post the variables from flash to php and then make the api calls.
It is also useful while accessing a database. I can have a nice flash application that takes in variables from flash, send them to a mysql database via php.


Could not send variables from flash to the server

I found out that I could not load or send variables to the server because crossdomain.xml file was missing in the server. It should be placed in the root directory. A simple crossdomain.xml file that gives access to all the websites looks like this:


< ? xml version="1.0"?>
< ! DOCTYPE cross-domain-policy SYSTEM " http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<>
< domain="*">
< / cross-domain-policy >


The above code can be copied into a text editor. It should be saved as crossdomain.xml in the root level.

(I will be updating this post as and when I come across more problems and manage to find a way around them, so that the next time I stumble upon them, I don't have to spend hours on google.)


Password Field in Flash

I had to take the username and password in a flash application. For that I created two input text fields (usernameTextfield , passwordTextfield). To ensure that the password does not show as plain text all you need to do is include the following code in the frame's actionscript
passwordTextfield.password = true;


Scrollbar for Dynamic Textfield in Flash CS3

Inserting a scroll bar for a dynamic text field which is not big enough to fit all your text is very easy in Flash CS3.
Create a dynamic text field.
At the bottom of the workspace set the properties of the textfield to multiline.
Go to Window-> Components on your file menubar. This should pop up a new components window.
Click on User Interface to expand it.
Find the UIScrollBar option and click and drag it on to the text field.
Thats it. When the dynamic text field has more text than it can fit, the scroll bar will show up.


Monday, July 21, 2008

Widget Upgrade

According to the plan mentioned in the previous posts, I have added the options feature. On impact, the Chumby shows a menu. You can choose which update to send. Right now the options are, "at home, " "at work, " and "going into town." These can be made customizable easily using the configuration wizard (I will probably have that added today.)

There is still a small drawback to this app, due to which I cannot share it with everyone just yet. The text is not readable when it is rotated with the Chumby. Some scaling issues of the text that I am still trying to fix.

Thursday, July 17, 2008

Minutes of Today's Meeting with Lorcan and Matt

We decided to meet today to discuss about what can we do next, since we have a working demo for the Chumby. The demo is a simple widget that updates twitter based on interactions with the Chumby, and gets updates from twitter. Its just a prototype that shows a complete cycle of flow of information in and out of the Chumby.

The next step would be to integrate other sensors, bluetooth sensors for now, at home to update twitter. That is going to be my task for the next few days.

I will also continue to work on making the Chumby app more user-friendly. Once that is done, we will be releasing the app to a few Chumby users in UCD and then to a larger user base.

I am also going to update the website with description about the system model.

Future Featues on the Widget

Right now, I am working on having a list of options to choose from on every Chumby orientation. That way, the user will have more options (buttons) to choose from; the user will be able to fully configure the buttons.

Would love to hear feedback and more ideas for this widget. Will keep you updated with any new features as I add/think of.

Widget2.1

So, a few upgrades to the widget. It now has a little OK button so that you can confirm your update before it actually goes crazy updating your twitter. It also shows your latest tweet when you are not interacting with it.

Tuesday, July 15, 2008

First Chumby Widget

So, I got my first widget up and running today. It basically detects changes in the orientation, and for each orientation it updates a different status to Twitter. It can be easily configured by the user when adding the widget. The user can specify which orientation means which message, or can use the default values. The only required information is the user's Twitter username and password. The widget is not available publicly yet; it is still in the testing stage. Looks pretty ugly too :)

The next step would be to get twitter messages displayed on twitter. Hoping to get that done tomorrow, or latest by Thursday evening. That will complete the whole loop of easy twitter access on an ambient device; without having to login to Twitter.

I am also looking for a catchy name for my widget. Any bright ideas?? Would really appreciate it!

Monday, July 14, 2008

Mid-term presentations

Friday, July 11th was the Odysseus mid-term event at DCU. There were eighteen students who presented the work they have done so far and the game plan for the next six weeks. The poster session was for about two hours, during which several people, including the extreme blue interns, supervisors, school director and mentors went around asking questions and giving feedback.

It was a helpful session. I think it was a crucial time to stop and think about the direction, progress and goals of the project. It was also a good opportunity to see what other people received your ideas. It was particularly important for me because my project is application-led. Understanding the user's needs and feedback was very essential.

From user surveys and conversations with people I found out that most people felt that Chumby was a good idea. They could see themselves, and their not-so-tech-savvy family members use it. But, some felt that showing location on a map was "big-brother" like. Some also felt that they wouldn't want families to see their facebook status, but since they already use twitter to interact with work groups, those status messages were O.K. to share.

I also received help from some of the Extreme Blue interns. Neil Cowzer owns a Chumby and I am going to contact him soon to see if he can give feedback on my widgets. Tim Hayes offered help with Flash as he has previous experience with it.

Apart from the feedback I got, just answering questions helped me get a better focus on my project and re-evaluate my goals.

Target Demo

In the meeting with Lorcan today, we decided to have a demo by this Thursday. The demo would have Chumby communicating with twitter. Right now it just detects orientation, and all the twitter data is on the website. The goal is to get the twitter data on Chumby, and have the Chumby orientations updated to twitter.

Monday, July 7, 2008

Minutes of Today's meeting

Today's meeting was mainly about preparations for this week's demo. We decided to do a demo run on Wednesday and I will have the powerpoint, layout for the poster, and survey questions ready by then. I will also do another blog post on evaluation of applications, and technologies that can be used for location sensing- like GPS, bluetooth, etc.

We got a domain name for the project - www.neardear.org. It still needs to be updated with project details; will do that before Friday of this week.

Another important thing we decided was that I take notes during the poster session to record invaluable feedback and discuss the evaluations right after.

I will also try to get a webcam widget up and running for the Chumby.

What Makes Good Application-Led Research?

"What Makes Good Application-Led Research?" is a paper from the 2005 UbiApp Workshop writtern by Richard Sharp and Kasim Rehman. This paper outlines the essential steps for a successful application-led research.

An application-led research arises from an existing need. It is about coming up with a solution to that need and evaluating the effectiveness of that solution. It is different from technology-led research in a way that the later is carried out because it is interesting from a technical perspective. Both kinds of research are essential in the are of ubiquitous computing.

A good application-led research is based on a severe, persistent problem. It is built in a way that the infrastructure can be reused for further development. This application ought to be deployed in the real-world for evaluation; lab testing does not suffice. It is also important that it is evaluated against similar applications. The results of the evaluation should be released publicly so that they can be verified by researchers around the world.

This paper gives me a good idea of the kind of questions I should ask myself and the users in order to evaluate my application.

Saturday, July 5, 2008

Ambient google talk??

Since I started my internship in Dublin, my mom and I use google talk to call eachother. Because both of us are online most of the time, it is almost like calling a phone. But, this weekend she did something amazing. She took her laptop to my aunt's place (about a mile away from our home) and called me. After talking for a while, she just left the laptop in the living room without disconnecting the call. I could hear their conversations and they could hear me. They were not directly talking to me, nor was I sitting at my computer listening to everything they said. I was doing my regular tasks in my room and their voices were just floating in the background. Whenever I heard something that caught my attention, I would join their conversation. It felt great, I felt so "connected" :) Isn't that simple ambient technology at its best!

Thursday, July 3, 2008

Chumby Widget Ideas

I was, and still am, super excited about the Chumby and made it evident through very weird gtalk and facebook status messages. Seeing my excitement, a few of my friends and family shared their chumby thoughts and gave some excellent Chumby widget ideas. Here are some of them-

1) Chumby Falldown - A widget that makes Chumby's alarm go off when it falls down (or even better if it is about to fall !)
2) Birthday Reminder - A widget that reminds birthdays and automatically sends them a birthday e-card.
3) School Sign- Widget to show off you alma mater, school seal, motto etc.
4) A widget that updates twitter with "good morning" when you turn off the alarm.
5) Chumby linked to other sensors at home- like the car key, mobile phone, pressure pads, sensors in ducts etc.
6) Chumby linked to a webcam to upload pictures every now and then to the internet.

Well thats what I got. If you have any more cool ideas, please leave a comment!

Wednesday, July 2, 2008

Minutes of Yesterday's Meeting

A few tasks for the next few days:
1) Blog posts on-
- how are new ideas/products evaluated in the papers I have read
- a more elaborate description of my project
-the other Odysseus projects

2) Set up a webpage exclusively for the project
3) A list of survey questions before the midterms for validating my project.
4) To get a Chumby application up and running before the midterm.