from mljungblad import random http://ljungblad.nu Discoveries made by Marcus Ljungblad posterous.com Thu, 02 Feb 2012 14:25:00 -0800 A voyage to Lilliput http://ljungblad.nu/a-voyage-to-lilliput http://ljungblad.nu/a-voyage-to-lilliput

We weren't washed ashore, neither were we considered giants nor did we have to flee. Quite the opposite. Our small Peugeot rental took us rattling up the hills to Spain's smallest neighbour. Despite being surrounded by darkness, I could feel the serenity of the mountains. We were the tiny people. And the mountains looked down upon us like giants.  

The population of Lilliput Andorra is roughly 80 000, of which roughly 30 000 are nationals. Separate from the European Union the country pride itself as a tourist magnet, attracting millions of visitors each year, and as a tax haven. Clueless about the country's history, I now understand why it has primarily been left alone from the countless wars Europe has suffered in its past. Bordered only by Spain and France and located at an average altitude of 1400 metres above sea level, this make the country a challenge to reach.

No issue for our Peugeot though. 

Promising on average 300 days of sun each year, one could start to wonder if the mountains would be dressed in white. Especially considering the fatality of this year's winter. On day two, as it turned out, it snowed so much that police were commandeered to ensure every driver used snow-chains. We bought a set for our little rental. Then the road closed and we had drive back down again, and up the next. 

But as they say, with fresh snow comes great skiing. And so we skied. 

Andorra

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Wed, 18 Jan 2012 16:44:11 -0800 Determination and dedication http://ljungblad.nu/determination http://ljungblad.nu/determination

People with clear goals in their lives are rare. It is difficult to know what you want to do in several years time, but an even bigger challenge is daring to pursue exactly those dreams. Of my friends, only a handful carry within them that true dedication needed to reach for the dreams of their life. 

One such person is very dear to me and currently engaged in an massive undertaking in the alp-surrounded, multi-national, and ever so lovely Genève. Her work is often beyond my intellectual capacity, although I try to follow as best as I can, and contribute with whatever cents I find. 

For long as I can remember, Lisa has had the dream of pursuing a career at the United Nations. This Monday she took a giant leap towards exactly that goal through an internship at UNAIDS. I'm confident it will be a hugely rewarding experience for her, and it will further reinforce the dream of her life. I, for one, is eagerly looking forward to the outcome of this adventure. 

To get a taste of her determination and dedication, listen to Lisa's talk at TEDxYouth@Göteborg where she speaks about the importance of young leaders and how organisations can foster a culture for young talents. 

In simple terms, it is purely awesome to be a part of Lisa's journey! A journey which has just begun.

For more Lisa-dedication, read her own words on her blog Travelling Dreams

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Sat, 14 Jan 2012 12:25:00 -0800 Johnny, Barcelona esta muy loca! http://ljungblad.nu/johnny-barcelona-esta-muy-loca http://ljungblad.nu/johnny-barcelona-esta-muy-loca

Saturday

Went to bed last night thinking I'll have a sleep in. That didn't happen. Maria, one my four flatmates, invited me to join for a little trip up the Montserrat with the infamous group of Johnny. Montserrat is a nearby mountain which with its funny shape attracted a bunch of religious hermits back in the day. Way back in the day. A short music and photo compilation at one of the museums highlighted five areas: símbolos, espiritualidad, identidad, cultura and natura. And I must say, the five words capture the essence of Montserrat perfectly. It's a weirdly located little village, full of religious relations, in an absolutely serene place.

Being free from the main tourist crowd, which I expect will arrive later in the spring, we conquered one of the Montserrat's many peeks. The clouds running over the mountain created a mysterious and silent feel to the uphill walk. With the conquest, the sun scattered the clouds (this is Spain afterall), and we enjoyed a light snack as kings and queens of the hill.  

Now, why do we almost always build beautiful buildings in the most remote and challenging places?

Thanks Johnny people for inviting me!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Fri, 13 Jan 2012 12:32:00 -0800 Arriving in Barcelona http://ljungblad.nu/arriving-in-barcelona http://ljungblad.nu/arriving-in-barcelona

Wednesday

Off I went. New semester, new city, new adventures! I met a friend at the airport who thought I was moving back to Portugal. Nope, not this time. This time it is beaches, cheap beer, tapas, sun, nice weather and... wait, that I had in Lisbon too? No, this, my tenth and final semster of studies, I'm living in Barcelona. 

Last semester as you all know includes writing a thesis which is exactly what I will be doing for the majority of my time here. More specifically I'm doing it at Tuenti, a private social network with some 12 million users here in Spain. It is, I've learned yesterday, the most trafficed site in Spain with many many billion pageviews per month. 

Thursday

First day at Tuenti. Met and greeted a lot of people, of whom I only remember a handful of names. Luckily the office is not that large, hosting roughly 30 employees, but has support from the head office in Madrid with another 200. 

I'll be joining Toni, a recommender system and data analyst expert from Telefonica, in improving and building a recommendation system for the Tuenti site. What, exactly, I'll be doing, no one knows. Least of all me. But I'm sure that time will sort that out.

Breakfast, Cafe com leche y mini chapato, and the office building at Placa de Catalunya.

 

Friday

Met and greeted more people. Awesome people. Friendly and cheery. Everyone is truly enthusiastic about, well, everything it seems, even the daunting tasks. Spent the morning visiting the Spanish bureaucracy. That was largely a failure. Need to be registered at an apartment, get a personal identification number and then, maybe, I can get the social security stuff sorted. Colleagues are guiding me through the process. It will be an experience, especially after having heard all the horror stories from Nick.

The afternoon was spent reading papers. I'm trying to collect all my thesis notes on a separate site, check in there if you're interested in what I'm about to work on. 

View from the office window and my desk.

20120113_194053
The big thermometer says 12 degrees at 19h00 when I left the office

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Mon, 14 Nov 2011 05:22:00 -0800 Presentation Design in 5 Minutes http://ljungblad.nu/presentation-design-in-5-minutes http://ljungblad.nu/presentation-design-in-5-minutes

A big hobby of mine is presentation techniques. This includes everything from planning, to delivery, to reviewing presentations. Today I gave a five-minute talk on slide design as part of a course I'm currently taking in scientific communication and academic writing. In the class, we have addressed presentations quite broadly; discussing tone, pace, language, structure and content, but we haven't covered design in great detail. Thus, I decided to narrow in on that. 

The feedback I got after delivery was positive, although I found myself looking for some words and therefore resolved to making a few dirty shortcuts. Why? I never rehearsed the whole talk. Lesson learned.  

PresentationDesignin5-minutes.pdf Download this file

The slides on their own might not say much as they are only supposed to emphasize what message I as a presenter is wanting to communicate. 

Happy designing! 

Edit: I get a lot of inspiration from Garr Reynolds. Most of the ideas presented in this talk stems from this paper by him.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Mon, 26 Sep 2011 08:43:43 -0700 Workshop: Social Media - Experiences from a Jamboree http://ljungblad.nu/workshop-social-media-experiences-from-a-jamb http://ljungblad.nu/workshop-social-media-experiences-from-a-jamb

Last Sunday @frick, @linarudin and I delivered a workshop at #scoutforum on how we worked with social media at the 22nd World Scout Jamboree 2011. More people than we expected showed up and overall it seemed to be an appreciated workshop. 

We had three objectives with the workshop: (1) demonstrate how easy it is to engage more people using social media, (2) show that social media is more than Facebook, and (3) share inspiration and tips with each other. 

In the end we hope that more Scouts will use and benefit from the "social" communication channels. Let's not forget, however, that social media is not a substitute for a traditional website. It's a symbiosis. 

Here are the slides we used for the workshop. The workshop was also streamed live using Bambuser (live as you preach, right). 

WSJ_socialmedia_scoutforum.pdf Download this file
@thomasfrostberg suggested that we record some short videos based on the Jamboree social media experiences for more Scouts to see. Let's see. 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Mon, 15 Aug 2011 09:20:00 -0700 Jamboree Social Media forensic session http://ljungblad.nu/jamboree-social-media-forensic-session http://ljungblad.nu/jamboree-social-media-forensic-session

At Scoutforum in Katrineholm, Anders Frick and I are planning a workshop on how we used social media for the #jamboree2011.

Some thoughts to include so far:

  • Some statistics
  • Which platforms and why?
  • What did we learn?
  • What did not work?
  • What worked?
  • Tips and tricks

What would you be interested in hearing about?

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Thu, 11 Aug 2011 08:10:45 -0700 Some post Jamboree web thoughts http://ljungblad.nu/some-post-jamboree-web-thoughts http://ljungblad.nu/some-post-jamboree-web-thoughts

While I still remember, some learning outcomes from running the World Scout Jamboree website.

  • Work closely with the tech guy/team - content often required programmatic improvements or adjustments to reach its full reach. Since the web is fast, you have to work fast together.
  • Work closely with the designer - same as with tech, content is supported by graphics and technology.
  • The website is a hub - this point deserves some more elaboration
    • The Jamboree website was supported by a plethora of services: Youtube (video - duh), Issuu (pdfs), Soundcloud (podcasts) to name the three most embedded media types.
    • Facebook and Twitter for encouraging and showing user feedback (and to drive traffic to the information)
    • Simplyscouting.se the blog portal enabled contingents to tail and direct information to their participants.
  • Don't rely on horizonal pictures - photographers like vertical photos too and the format we opted for (548x220px and 920x220px) surely isn't the easiest to work with all times.
  • Organise information carefully - the goal of the website was to run something like an on-line newspaper the months before and during the Jamboree. However, while supporting news we had several other objectives such as provide information to participants, visitors, partners and friends and family of Scouts participating in the Jamboree. At times it isn't easy to distinguish who is the target group and where the information should be placed. Towards the camp we ended up creating a new section only for news from all Camp Media (TV, Radio, Magazine, and the Web). That was a good move.
  • Wordpress rocks - but it for static information it is sometimes a bit difficult to organise the order of information. Or maybe there was just too much of it. Wordpress is a blogging platform afterall.
  • Let people comment on everything - interaction with the audience is great, it really improves the quality of the content you are delivering. We learnt a lot from comments. During the Jamboree we didn't have time to follow all comments due to the speed, but we kept an eye all the time.
  • Respond to questions - goes with out saying, but that makes people happy. Initially we approved each comment manually, thus enabling us to respond to any question that occurred. The drawback is that website visitors didn't get their comment visible immediately. Which may, or may not, have been a turnoff. 

Packing
I'm sure more will follow.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Wed, 18 May 2011 08:53:00 -0700 Professors #1 priority: teaching http://ljungblad.nu/professors-1-priority-teaching http://ljungblad.nu/professors-1-priority-teaching

There are a lot of bad teachers in academia. Actually, there are a lot of super smart professors, PhD students, teaching assistants and whatnots, who are all really bad teachers. There are exceptions of course, but it need not be that way. The default should be awesome teachers.

I've heard several arguments such as "Yeah, but teaching is not what they like the most," "I'm here for the research. Working on hard problems is what captivates me," and "I only get funding for X%, the rest I have to fill up with teaching." Arguably all valid reasons. Take note that what I am about to propose doesn't mean professors should do it 100% of their time. I'm just suggesting a shift in their priorities, such that when we evaluate their research and our education, we will read comments like "Amazing course! Makes me want to do a PhD asap", "Awesome!", and "This is ground-breaking!"

Here's why I think universities should make teaching the number one priority for their researchers, PhD students, professors, and otherwise: 

1. Tap into awesome ideas

In every course and every class, there is a vast unused or under-used pool of resources. Students, freshmen and seniors, controls an enormous amount of intelligent ideas. Ideas and students alike are all different, causing a positive diversity which enables a multitude of angles to be explored. Through teaching, professors can challenge students, explore alternatives, evaluate their ideas, and receive contributions to their current (and past) research.

2. Use free labour for a better cause

In computer science a large part of any course's curriculum is project work. I've been part of the most awesome project and also some really boring ones. The boring ones tend to follow the scheme: "Here's the requirements, implement XYZ, make some not-so-extensive-testing in the last minute, write a report, get a grade assigned to it, never look at it again" Not so motivating. So many times (too many times?) students spend hours and hours implementing some algorithm just to meet the requirements of the course. Here's a thought: let professors use the students free labour during course work to implement and/or evaluate some of their on-going research. I would love to be able to see how my late nights of hacking contribute to something real. I don't give a rats about a grade as long as I learn, and I'm sure many students feel the same.

3. Make students interested in research

This is rather a result of the two previous ideas than something ground-breaking. If students are exposed to, through course work for example, current research activities by professors at their university, then that will open students's eyes. Much of the time I have no clue what the computer science department's researchers are working on even though I have a genuine interest. Probably much of it I will never understand. But, if teaching is professors's number one priority, I'd be able to see and learn about what problems they are working on. They are not the only ones who like to work on hard (real) problems. Show me what you are up to and even I might consider a PhD.

The result: a bunch of A-class students with a deep understanding of research. In fact, much more than that! Professors will likely produce even better research, have a greater chance to get publications (there seems to be a frenzie about getting this in academia), get more work done in less time, and be highly appreciated by their students.

In short, we'll all have a jolly good time while being awesome.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Wed, 11 May 2011 16:14:00 -0700 Updating GPS coordinates in Android emulator http://ljungblad.nu/updating-gps-coordinates-in-android-emulator http://ljungblad.nu/updating-gps-coordinates-in-android-emulator

The Android Eclipse plugin is generally a very handy plugin. There are, however, a few limitations. For example, if you are working with multiple emulators running simultaneously and want to update the GPS coordinates in both emulators, you will find that you can load only one KML file at the time. Needless to say, this is a very specific issue, but annoying enough when developing applications which heavily depend on the GPS functionality and interacting with other clients at the same time.

@pauloricardomg wrote a GPS server to be used in his and @navaneethr course project. He programmatically updates the coordinates by sending instructions over Telnet to the emulator. For the evaluation of our own project, we needed something similar. Below is a hack which extracts the essential functionality and wraps it in a python script.

Hope it may come in handy.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Script to instruct Android emulator to move to coordinates
# Heavily inspired by @pauloricardomg's GPS-server

# Parses a file that contains lat-long tuples, i.e "-91.7674044575329,73.90620635916805"
# KML files can be converted using:
# cat file.kml | grep coordinates | sed 's/.*>\(.*\),0/\1/;s/<\/coordinates>//g' > coords.out

# Hacked by @mljungblad

import socket
import sys
import time

HOST = "localhost"
PORT = 5556
SPEED = 1 # updates / second

def move(lat, lon):
    s.send("geo fix " + lat + " " + lon + "\n")
    print "Sent move to " + lat + ", " + lon

if __name__ == "__main__":
    f = open(sys.argv[1], 'r')
    print "Opening file: " + sys.argv[1]

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((HOST, PORT))
    print "Connected to emulator: " + HOST + ":" + str(PORT)

    for line in f.xreadlines():
        coord = line.split(',')
        move(coord[0], coord[1])
        time.sleep(1.0/SPEED)

    s.close()
    f.close()
    print "Finished"
    

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Sun, 08 May 2011 13:19:00 -0700 I have awesome classmates http://ljungblad.nu/i-have-awesome-classmates http://ljungblad.nu/i-have-awesome-classmates

Who for some mysterious reasons share a deep love to Sweden. Last weekend they demonstrated their passion by singing, without any rehearsing or knowledge of Swedish, the Swedish national anthem. Love it.

The DHTs are in business!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Fri, 08 Apr 2011 06:41:00 -0700 Presenting Cassandra http://ljungblad.nu/presenting-cassandra-university-distributed-s http://ljungblad.nu/presenting-cassandra-university-distributed-s

Today Lalith, Bruno and I presented Cassandra. A distributed database with high availability and partition tolerance. I.e, the A and P of the CAP theorem.

Overall we were pleased with delivery. We got some good feedback from our professor and our colleagues. One comment addresses something which I try to mind when shaping presentations.

Sometimes your presentation is directed to a public which is familiar with Distributed Systems. This is PADI, but many people don't have Distributed Systems as their major or minor, but Software Engineering. I'm not familiar with a lot of systems you talk about in Parallel Computing or Cloud Computing.

We should always start with the audience. Who is listening to our talk? What do they know? Why are they here (apart from attendance)? Where do they come from? We should think about this before we start thinking about content, structure, and other presentation mechanisms that we can use in our delivery.

Probably we thought about it too, but not to sufficient detail. I thought: "they're students like us." Now I know, next time I make a presentation, I should do my audience analysis more carefully and avoid generalising too much.

Thanks for the feedback!

PADI_Cassandra_Presentation.pdf Download this file

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Wed, 06 Apr 2011 15:13:00 -0700 Cassandra and its Accrual Failure Detector http://ljungblad.nu/cassandra-and-its-accrual-failure-detector http://ljungblad.nu/cassandra-and-its-accrual-failure-detector

For Friday’s presentation of Cassandra – a distributed storage system – I needed to understand how the system is able to detect node failures. In distributed systems a so called failure detector is sometimes used to simplify an algorithm’s work. And, Cassandra uses a failure detector called the Accrual Failure Detector. Accrual for those of you who don’t know, means accumulation, or the act of accumulating over time.

The basic idea is that a node’s state is not only up or down. It is not true or false. Rather, it is an educated guess which takes multiple factors into account. With approximation we can, for example, take slow messages into consideration and, thus, allow ourselves to be wrong. How weird?

A server (node A) suspects that a node is down because it hasn’t received the two last heartbeats from node B. Node A assigns a Phi value of (let’s say) 1. Phi denominates the suspicion level that another server might be down. This value can be adjusted dynamically according to local conditions such as load.

Phi represents the likelihood that Node A is wrong about Node B’s state. So, when a third heartbeat is considered lost Phi increases, and eventually a threshold is reached. When that happens the application will be notified about the failed node. The threshold is a configured value.

Cassandra approximates Phi using exponential distribution. Thus, the higher the Phi, the bigger the confidence that Node B has failed. I still haven’t found any more detailed explanation than the following as to why exponential is used rather than Gaussian:

Exponential Distribution to be a better approximation, because of the nature of the gossip channel and its impact on latency.

Don’t know if that made sense to anyone else, but I think I get it know.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Tue, 05 Apr 2011 15:55:00 -0700 Breaking it down - Cassandra http://ljungblad.nu/breaking-it-down-cassandra http://ljungblad.nu/breaking-it-down-cassandra

The last post was a good exercise. I decided to do the same for the next paper titled: Cassandra - A Decentralized Structured Storage System written by Avinash Lakshman and Prashant Malik, both employed at Facebook. We're presenting this paper on Friday as part of our Distributed Systems course.

Same premises as before. I write as I read. And the goal of this paper:

Cassandra system was designed to run on cheap commodity hardware and handle high write throughput while not sacrificing read efficiency.

It is immediately noticed in the introduction of this paper that there is some weight behind their motivation:

Facebook runs the largest social networking platform that serves hundreds of millions users at peak times using tens of thousands of servers located in many data centers around the world.

Maybe it is unfair to compare papers from industry with papers from academia? Not everyone has access to millions of test users... Anyway. Failures are treated as the norm rather than the opposite. Moreover, their systems must support continuous growth. It is also noted that Cassandra does not provide anything new, it only draws on what was existing before. What's new is the combination of techniques, and their implementation of it. 

It scales to 250 million users as of writing and was initially intended for Inbox Search.

Related work mentions two projects commonly referenced in mobile computing literature: Coda and Ficus. Both replicate files for availability but don't provide consistency guarantees. They also compare to GFS, Google File System, and it's simple design. It is interesting to note that they make no distinction between acamedic and industrial projects. Conflict resolution, network partition and data schemes are different among all related projects. Dynamo is highlighted for its gossip membership. None fulfill the goal in one aspect or another.

The data model is very similar to Bigtable with the addition of super column families; a family which includes other families. Sorting by name or time. In general very little specifics, only possibilities listed.

The architecture of a storage system that needs to operate in a production setting is complex.

No shit. They limit the system architecture section to: partitioning, replication, membership, failure handling and scaling. A high-level overview is provided.

The principal advantage of consistent hashing is that departure or arrival of a node only affects its immediate neighbors and other nodes remain unaffected.

Immediately afterwards they also provide the drawbacks: non-uniform distribution of load and heterogenous nodes. Solution is based on being able to make deterministic decisions on load-balancing. Clearly related to the goal set out early in the paper.

It is also interesting to note that Cassandra makes use of real-life notions:

Cassandra provides various replication policies such as “Rack Unaware”, “Rack Aware” (within a datacenter) and “Datacenter Aware”.

There is a clear separation of concerns. Things not related directly to Cassandra are left out of the implementation and instead Cassandra depends on other tools to perform some tasks for it. For example, the leader-election is done by Zookeeper (developed by Yahoo).

Ironically, there are some mishappenings that are not very common to the average programmer:

Data center failures happen due to power outages, cooling failures, network failures, and natural disasters.

Large scale!

They use a failure detector called Accural Failure Detector which instead of sending a boolean value to other nodes in the system, sends a suspicion value. The original authors of the failure detector suggested an approximation using gaussian distribution, but at seems exponential distribution is better in gossip based settings. I'm not sure I understand this. However, do note that they make use of clearly relevant research and adapt it to their needs, and provide a reason for doing so ("adjust well to network conditions and server load conditions")

Some optimisations are provided for the local persistence: 

  • Reads are optimised with bloom filters.
  • Column indexes are maintained (256 Kb)
  • Write logs are written to a separate local disk

All implementation details are left to a section which is very compact and absolutely loaded with information. It was a bit hard to digest at 00h39. I'm unsure how relevant some of these details are to the understanding of Cassandra.

Evaluation is completely based on experiences rather than experimental data. They note that many of the problems that arised was not, and couldn't be, foreseen in an experimental environment.

One very fundamental lesson learned was not to add any new feature without understanding the effects of its usage by applications.

Might seem obvious, but awww we so often forget what it really means.

It is also worth noting that they provide key data to some research projects on failure detectors and their scalability. Most of them were unsuitable as size of clusters grew. They also present the case of Inbox Search. However, no comparison data is provided. Only values, and those don't tell me much. Not in respect to anything else at least. Their qualitative analysis is a bit weak as it only provides some "interesting" scenarios, but aren't doing a very good job at linking these to Cassandra's system architecture. It shows inclinations, or directions, rather than concrete qualitative statements about performance.

In conclusion, this paper is truly different from the previous one presented here. First of all it is a lot shorter, 6 pages compared to 18 pages. Second, there are real motivations provided along with very clear and constructive examples. Third, they make no distinction between academic and industrial projects, and seem to make equal use of both. Whatever works, works. And last, they don't try to solve everything. It is focused on one thing, and one thing only: decentralised storage. In other words, it is not an "all in one" solution.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Tue, 05 Apr 2011 15:46:57 -0700 Breaking it down http://ljungblad.nu/breaking-it-down http://ljungblad.nu/breaking-it-down

My previous post was a bit disorganised. I have too many opinions about academia, some very strong, that I couldn't focus. Thus, I decided to do an analysis of the next paper. By the time I have finished this post, I have finished reading the paper: "Mobile Computing with the Rover Toolkit" by Anthony D. Joseph, Student Member, IEEE, Joshua A. Tauber, Student Member, IEEE and M. Frans Kaashoek, Member, IEEE. Published in IEEE TRANSACTIONS ON COMPUTERS, VOL. 46, NO. 3, MARCH 1997

Let's start with what they set out to show in this paper: 

In this paper, we describe the Rover toolkit, a set of software tools that supports applications that operate obliviously to the underlying environment, while also enabling the construction of applications that use awareness of the mobile environment to adapt to its limitations.

Quite high, and again I flag for the "trying to take over the world" stance. Moreover, Lalith just popped in and we got into the discussion: Should researchers really produce applications?

They're apparently evaluating this by "We illustrate the effectiveness of the toolkit using a number of distributed applications, each of which
runs well over networks that differ by three orders of magnitude in bandwidth and latency." It remains to see in which context though. Immediately afterwards the author's goes on about a number of assumptions made, and a lengthy description of the characteristics of mobile computing is presented. Too many details, especially regarding data consistency, are presented in my opinion. Eventually they reach some kind of conclusion:

[...] a mobile-aware application can store not only the value of a write, but also the operation associated with the write. That operation can include any relevant context. Storing the operation allows the application to use application-specific semantic and contextual information;

Great. Basically, applications need to be aware of what's going on underneath (i.e what network connectivity do we have? How much battery is left?) so that it can optimise performance accordingly.

Here's a summary of some implementation details

  • The Rover toolkit uses a client-server model which provides optimistic concurrency control and caching.
  • It is possible to transfer code and data for computation at a remote location.
  • Remote procedure calls can be queued.
  • Servers can also be run on mobile devices.
  • The main challenge for the programmer is to define so called relocatable dynamic objects, the communication between clients and servers, as well as any conflict resolution.

Here it is worth noting: does this really make life simpler for the programmer? Surely, it seems they don't have to worry about moving the actual code. But how flexible and adaptable is it? What trade-offs do they have to make?

They present four main results:

  1. QRPC is well suited to intermittently connected environments.
  2. Using RDO's enable remote computation of heavy tasks and reduces latency and bandwidth usage.
  3. Porting to Rover apparently requires little work (only three weeks in one case... ehrm... ok?)
  4. Mobile-aware applications using Rover perform better on slow networks compared to their original versions
  5. (then they mention a fifth despite only saying four results) UI's are faster too.

In related works we find that Rover is, apparently, also the first toolkit to support both the development of mobile-aware applications and, so called, proxies to enable untouched applications to benefit of the "mobile-awareness". (This, once again, feels like a marketing trick... but sure let's go with it.)

I won't describe anything from the implementation details. To be honest, I didn't bother reading it too carefully either. Let me add a thought that emerged from these sections though: there are potentially some ideas that have migrated into "real" products here. The details are also irrelevant since the paper was written in 1997 and much have changed since.

Section 5 presents the programmer with something similar to guidelines for how to port, or integrate, Rover to their mobile applications. It looks like a good overview of what steps are required for using Rover. Question: there has gone a significant amount of thinking into this project, why spoil it with  miniscule details like:

"The application developer also must decide which mechanisms to use for notifying users of the cache status of displayed data. In the e-mail application, color is used to distinguish operations that have not been propagated to a server."

Secondly, that is not very unintrusive. How many users knows what a cache is?

A table showing number of lines changed to integrate/add Rover to existing and new applications. Convincing? It is good though to see how much work is required, or at least get an estimation of it.

Lab tests were carried out for evaluation. There is a concise list of hypotheses that they are evaluating. I like. Unfortunately, there are only internal comparisons. We discussed in class one day that it is hard to do benchmarks (in general) in Computer Science because the field is moving too fast. I believe that if you cannot do quantitative measurements, at least provide qualitative assessments.

Their evaluation obviously shows gains (I have only seen a few papers where a solution was disproved... they were an entertaining read!). I'm mostly concerned about their values; 17% doesn't sound like a significant gain. Is it worth it? Increase of bugs? Their final graph on speedup shows some promising results. There is a significant increase against the original versions (based on a subset sample of tasks). A 7.5 speedup over slow networks is mentioned in the conclusion. 

However, they do a bad job of connecting to their original goal.

"We have found it quite easy to adapt applications to use these Rover facilities"

What does that mean by the way? Really, when you're making qualitative statements, provide a solid argument. Don't make loose relative statements from your quantitative 7.5 speedups.

In practice, we find the combination of the Rover cache, relocatable dynamic objects, and queued remote procedure calls results in a surprisingly useful system.

Surprise! Now, except for you guys, who did/does? Show me!

Once again, the paper presents some cool ideas, probably genuine and innovative at the time of writing. But seriously, even if this is 14 years old, this still happens today. Perhaps even more because of increased competition.

Footnote: I wrote this post as I was reading the paper in an attempt to track my thoughts. In other words, an experiment.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Tue, 05 Apr 2011 12:14:00 -0700 Overdoing it http://ljungblad.nu/overdoing-it http://ljungblad.nu/overdoing-it

Our course literature for Mobile Computing consists of a lot of academic papers. A superb way integrating academic work into classes compared to often long and partially irrelevant books. Some papers are well written and easy to understand. Usually because the authors have paid careful attention to the structure of the paper. Sometimes though, actually more often than not, I find that researchers are really trying to "take over the world" with their proposed solutions. They offer glory and a resort to all your problems.

This is obviously not true. Neither do I think the researchers think that it is the case. But it sounds like that. So why spice papers up with sentences like the following?

The Odyssey architecture supports application-aware adaptation while paying careful attention to a variety of practical considerations. Our prototype confirms the feasibility of realizing this architecture, and its ability to support a wide range of applications.

A paper is, inevitably, an argumentation. It is a space to convince a reader that proposed solution maps to a problem defined in the introduction. My problem, I think, is that researchers rarely present any realistic and convincing arguments to the problem in the first place. Their solution might be great. It may even be innovative! But if it is not a problem conceived by users, and where a proposed solution does not provide added value to the user, it is flawed in the first place.

Odyssey is the first system to simultaneously address the problems of adaptation for mobility, application diversity, and application concurrency. It is the first effort to propose and implement an architecture for application-aware adaptation that pays careful attention to the needs of mobile computing.

The statement above from the related works section of the same paper has some legitimacy. They do build on previous research and manage to show that clearly. I can even see the progression from their problem statement that this is might "true". Nevertheless, I interpret it as a marketing trick.

Perhaps am I looking in the wrong place, but I'd like to see better motivations to the research conducted. And I shouldn't have to resolve to reading a ton of surveys before reading a new paper. Although this is only a hypothesis so far, I sense that papers stemming from industry are better at providing realistic and believable scenarios and motivations. Ultimately, conclusions in those papers also hold stronger.

How do we know we, and researchers, are spending time on "the right thing"?

[Update: note so self - be more structured next time you write a post]

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Thu, 17 Mar 2011 15:06:00 -0700 Collaborative Editing Love http://ljungblad.nu/collaborative-editing-love http://ljungblad.nu/collaborative-editing-love

If there's one thing Google has pulled off really well it got to be Docs. Actually, they've done many things right, but this has to be one of their most useful day to day tools (except Search duh!). At the moment (obviously I'm not telling my classmates that I'm writing this right now) I'm working with two classmates on a project proposal. Since we're still not sure about all the details we're discussing many of them at the same time as we write. And... you guessed it, we're able to do it all on Docs! 

Now, why aren't more organisations with people distributed across the globe (hint: #jamboree2011) using tools which are built for distributed groups of people? My next hack is going to be an "auto-link all my docs tagged Jamboree2011 to Sharepoint"-script. 

 

Screen_shot_2011-03-17_at_10

Cheers Google! :) 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Wed, 16 Mar 2011 04:35:00 -0700 What nonsense http://ljungblad.nu/what-nonsense http://ljungblad.nu/what-nonsense

This is a snippet from the introduction of our mobile computing project:

 

Traffic in Lisbon has reached catastrophic proportions, with constant grid-locks and smog. In order to reclaim the city back to its inhabitants, the Mayor has decided to prohibit all vehicles from entering the city. People will be transported using a revolutionary mass transit system, using small flying vehicles.  Each vehicle is able to carry up to 4 persons, and drives autonomous.

Now, since when did my course become a class in literature and storytelling. At least define a project with a relevant scenario (and preferably scope, just don't cram everything in there because it looks good)!

I expected more from this project.  

Update: We managed to get a "special" project instead. A project which is a lot more interesting! Will be working on porting a JavaME framework which provides focal point consistency to Android. Will probably give a longer update in due time.  

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Wed, 23 Feb 2011 03:22:00 -0800 Some computer science issues in #ubicomp http://ljungblad.nu/some-computer-science-issues-in-ubicomp http://ljungblad.nu/some-computer-science-issues-in-ubicomp

Did a presentation with Lalith today on ubiquituos computing based on Mark Weiser's visionary paper published in 1992. The guys over at Xerox PARC did some truly remarkable work about 20 years ago and many of their ideas are today products we use in everyday life. As my colleague Wasif pointed out in a tweet recently

@ @ Not the 1st time Apple has taken inspiration from Xerox,check this out:

Anyway, I'm happy with the presentation. The professor did a good job of interrupting us, but equally improving and augmenting the content. Got some interesting discussions in the class and now looking forward to the other presentations and this course.

Good job Lalith!

The presentation is available under a Creative Commons NonCommercial ShareAlike license. Both the Keynote file (soon) and a pdf is available.

ubicomp_web.pdf Download this file

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad
Tue, 22 Feb 2011 01:00:00 -0800 Focus on the right thing(tm) http://ljungblad.nu/focus-on-the-right-thingtm http://ljungblad.nu/focus-on-the-right-thingtm

I learned two things today*:

  1. Make every detail perfect while limiting the number of details, and
  2. academia needs a presentation revolution.

Perfect details

I watched Jack Dorsey's recent talk at Standford today. He is, for those of you who don't know, the co-founder of Twitter and CEO of Square. Moreover, he is a man with brilliant ideas and he knows how to convey them. In his talk, which is given in same style that he promotes, he explains how Square uses user narratives to guide the company's direction. The narrative, or story, is what he explains: "an epic cohesive story" which is used in all aspects of the company. By the engineers, the marketing team, and the administrators. It enables them to determine their priorities.

Furthermore, he adds, that his role as CEO of Square is comparable to that of an editor of a newspaper. He's job is to filter and single out the one or two important ideas from all the thousands that occurs everyday. That, whether we're a CEO or not, is something we can all do a better job at. It applies to research, work, my studies (for one!), and probably personal life too.

Ubicomp

There are many more things which I could bring up, but will leave that for another post. If you have 30 minutes to spare, or are seeking some Internet wisdom, go ahead and watch the talk. It will be well invested.

Presentation revolution

The second "aha" moment was initiated by my colleague Lalith while preparing a presentation on Ubiquitous computing. Academic presentations are meant to be boring. Actually, I do not personally believe that, and neither should you! If we skip the blah blah content first blah blah, then we're soon down to presentation design. And presentations designs does not have to be boring just because we're in a formal setting.

At the IT-university, Emil Janitzek (my better presentation half) and I experimented with many styles of presentations. We even managed to convince our students and teachers, that presentation design matters. The latter rarely invested in the time needed to do anything about it though. Admittedly, we sometimes pushed the boundaries too far and it didn't really work out as planned (remember covering the floor with water from all the carbon-dioxide ice?). Nevertheless, in a university setting we can afford to experiment. That's what learning is all about. It is ok to fail.

I realise today, that during our three year bachelor degree, Emil and I opened doors and slowly made our classmates open to more liberal forms of presentation design. Those which are not as boring. At IST, and from what I understand of Lalith's experiences from academic conferences, this is not the case yet. I fear, or acknowledge, that such change will take time. Perhaps in the future, and thanks to the likes of Duarte Design and Garr Reynolds, presentation design will make its way into the academic world too. Until then, I'll just rewind a little, sprinkle some patience, and start slowly from the beginning.

* actually I learned a lot more, like the intranet for the World Scout Jamboree sucks, how to build a perfect failure detector, and what abstractions and assumptions I can make to prevent Byzantine faults. And thank you Lalith for opening my doors once in a while :)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/782685/me.jpg http://posterous.com/users/5ebESR8Bata1 Marcus Ljungblad mljungblad Marcus Ljungblad