Recent Posts

  • Technical: AWS S3 bucket pre-signed paths for entire prefixes

    08 October 2017 ( aws s3 cloud scala )

    AWS S3 provides a very efficient storage solution for a wide range of use-cases, but that comes with its limitations. One such aspect is the underlying key-value store: the entire name of the file, together with its path (despite appearing otherwise e.g. in the S3 console) is just a single key and there is no notion of directories.

    Another useful feature of S3 is the security model, where files are private by default, however access to them can be temporarily granted with pre-signed URLs. AWS provides examples of how to do it with Java SDK even. However, combined with the key-value store abstraction's limitations, one cannot grant access to entire directories.

    The alternative is to create a single ...

    Continue reading

  • Technical: automatically generated documentation for Play framework applications

    01 September 2017 ( play hat documentation )

    Let the engineer who loves writing documentation throw the first stone... And for the rest of us, every little helps.

    At the Hub of All Things we love the Play framework. It greatly helps us build solid, modular and maintainable services and as they outgrow themselves - modularise them into new ones with single responsibility. It also has some tools making API documentation easier.

    Some of the Play framework compiler tools can be used inside a running application, e.g. the routes compiler. Play application routes are relatively simple:


    Public landing page

    GET / controllers.Application.index

    Automatically generated service self-documentation

    GET /docs controllers.Application.availableRoutes


    Continue reading

  • The end of a great period - today I submitted my PhD dissertation

    13 March 2015 ( personal )

    Only when my advisor Prof. Jon Crowcroft gave me the green light to submit my dissertation, I decided that it is time to finally write the acknowledgements part of it... And then I learned that they would be hard to fit on a single page. And didn't - I ended up leaving out a fair bit of people I am grateful to. A lesson learned: remember to thank more often. So I felt it important to share the acknowledgements here as well.


    Foremost, I would like to thank my supervisor, Jon Crowcroft, for his help and guidance, for letting me pursue every line of enquiry I thought worthwhile, for allowing me to share my ideas and learn from others at top conferences, for giving me the opportunity to learn through collaborating with some of the top people in the field, and for alw...

    Continue reading

  • Coding as a window to the modern world and our privacy

    05 February 2015 ( CCA )

    This item is cross-posted from the Cambridge Coding Academy (organisation I have co-founder and greatly enjoy working with) blog.

    Even if it's true that not everyone will be able or willing to take on programming as a career, coding is a very powerful tool and often serves as the most effective means to an end. At Cambridge Coding Academy we have found that it also reveals much about the modern digital world... Because seeing is believing!

    Last Friday at our Data Retrieval and Visualisation workshop we had a lively discussion with our attendees about privacy. Privacy is one of the biggest concerns online, only made worse by the fact that a handful of corporations watch and record ...

    Continue reading

  • Live-blog from MobiCom 2014 - day 3

    10 September 2014 ( MobiCom )

    The last day of MobiCom '14 started off with the student research competition, followed by the second session on positioning and navigating and people slowly trickling in.

    Paper Session #7: Positioning and Navigating behind the Doors

    Luxapose: Indoor Positioning with Mobile Phones and Visible Light

    Ye-Sheng Kuo (UMich); Pat Pannuto (UMich); Ko-Jen Hsiao (UMich); Prabal Dutta (UMich)

    > Q: how does location accuracy deterioriate outside the immediate area covered by the lights (directly below) > > A: haven't tested it, but it will decrease of course > > Q: how dense should the LED lights be in the ceiling? How does that compare to current deployments? > > A: Our paper discusses the problem and I don't have the number on the top of my head, but possibly too high for many co...

    Continue reading

  • Live-blog from MobiCom 2014 - day 2

    09 September 2014 ( MobiCom )

    After yesterday's 10:30PM finish starting late today with a brunch and a keynote from Leonard Kleinrock (most well known for his early work on queueing theory)!

    Paper Session #4: Rethinking WLANs

    Enfold: Downclocking OFDM in WiFi

    Feng Lu (UCSD), Patrick Ling (UCSD); Geoffrey M. Voelker (UCSD); Alex C. Snoeren (UCSD)

    WiFi transmissions are power-hungry and can't always stay in sleep mode. Downclock OFDM to save energy.

    Downclocked OFDM signalling (25%) is not decodable in general, unless yhere is a finite set of values for the unknowns.

    Effectively trading off SNR for energy savings using lower data rates while remain downclocked.

    Eval based on packet traces, using 12 popular apps. 25%-30% for low-rate apps.

    > Q: OFDM systems tend to be quite sensitive. If I got it ...

    Continue reading

  • Live-blog from MobiCom 2014 - day 1

    08 September 2014 ( MobiCom )

    Kicking MobiCom off with an award to Leonard Kleinrock for outstanding contributions.

    Next is a keynote From grad school, to startup to acquisition by Sanjit Biswas, CEO Meraki, followed by a panel on Tackling Societal Grand Challenges with Mobile Computing.

    There is also the official MobiCom blog, which covers a different set of events (or with a better quality writing!).


    A really great keynote on starting and bootstrapping Meraki. A bit of an unusual research to startup transition, really started after giving a talk to Google and getting an pre-order for 1000 units of a wireless mesh router at $250 each. Hardware manufacturing turned out to be not that difficult once you have a number of units you already need - started off w...

    Continue reading

  • RaspberryPi as your 3G WiFi router

    30 June 2013 ( RaspberryPi 3G WiFi )

    Largely as part of another project, but partially for fun I decided to hook up my RaspberryPi to a 3G stick, a WiFi stick and make it share the 3G connectivity to my phones and laptop. Perhaps it isn't likely you will have all 3 of them but not an actual MiFi or any better connectivity option, but hey!

    My setup was therefore:

    • RaspberryPi with Debian (Raspbian) wheezy
    • Huawei E173 3G stick
    • TP-Link TL-WN821N WiFi stick

    WiFi stick was working out of the box as a client, but there was some hassle with 3G...

    Basic configuration of the RaspberryPi

    Before starting, I adjusted some of the default RaspberryPi settings:

    • Reduced video RAM split to 16MB
    • Expanded fielssytem to take up the whole 4GB card
    • Disabled SSH server :)

    Setting up Huawei E173 on RaspberryPi


    Continue reading

  • Live-blog from SIGCOMM 2014 - day 2

    20 August 2014 ( SIGCOMM )

    Starting nice and early with the second day. Just in case you haven't noticed, papers are available during the conference from the program webpage. Perhaps unsurprisingly the hall is not very crowded this morning, but the papers look interesting.

    Disclaimer: I tend to rephrase questions/answers to either make them shorter or change them in a way I understand them, so might end up being wrong - don't take my word for it.

    Session 5: Wireless (1)

    FastForward: Fast and Constructive Full Duplex Relays

    Dinesh Bharadia (Stanford University); Sachin Katti (Stanford University)

    WiFi has problematic bandwidth indoors due to shielding from walls, etc. MIMO doesn't help there because of the pinhole effect, where a signal ...

    Continue reading

  • Live-blog from SIGCOMM 2014 - day 1

    19 August 2014 ( SIGCOMM )

    Good morning Chicago. On schedule for SIGCOMM today we have a keynote, some SDN, network architecture and middleboxing. As usual, there is also a live-blog at

    All the awards first:

    • Best paper awards go to "Balacing Accountability and Privacy in the Network" and "CONGA: Distributed Congestion-Aware Load Balancing for Datacenters".
    • Test of time awards go to "Internet Congeston Control for Future High Bandwidth-Delay product environments" by Dina Katabi, MArk Handley, and Charlie Rohrs and "Measuring ISP Topologies for Rocketfuel" by Neil Spring, Ratul Mahajan and David Wetherall.
    • SIGOMM doctoral dissertation Award goes to Aaron Schulman on "Observing and Improving the Reliability of Internet Last-mile Links".
    • the SIGCOMM award goes to George Var...

    Continue reading

  • Live-blog from CoNEXT 2013 - day 2

    11 December 2013 ( CoNEXT )

    Good morning! Today is the second day of CoNEXT 2013 and the sessions today are about trains, wires, tools and falling water. I will be blogging some of the sessions again today, and as before the official conference liveblog is on

    Session 5: Trains, Lanes and Autobalancing

    I skipped the session to patch my own presentation using my colleagues' feedback, but these are the presented papers:

    Bullet Trains: A study of NIC burst behavior at microsecond timescales

    Rishi Kapoor (UC San Diego), Alex C. Snoeren (UC San Diego), Geoffrey M. Voelker (UC San Diego), George Porter (UC San Diego)

    FasTrak: Enabling Express Lanes in Multi-Tenant Data Centers

    Radhika Niranjan Mysore (UC San Diego), George Porter (UC San Diego), Amin Vahdat (UC San Die...

    Continue reading

  • Live-blog from CoNEXT 2013 - day 1

    10 December 2013 ( CoNEXT )

    Kicking off the conference with some explanations about how the TPC selected the papers. The program looks great and I will be covering some of the sessions here over the next three days.

    There is an official live blog at layer9: so I will be covering the sessions and papers that are closer to my field and those that I find particularly interesting.

    Best full-paper award goes to "Enhancing video accessibility and availability with information-bound references"

    Our "Staying Online While Mobile: The Hidden Costs" was a nominee for the best short paper award, but alas! The award goes to "Is There a Case for Mobile Phone Content Pre-staging".

    All the papers can be found online at the conference website: ...

    Continue reading

  • RaspberryPI, 3G and Ofono

    30 June 2013 ( RaspberryPi 3G Ofono )

    I ended up using ofono with a 3G stick and since that turned out to be more tricky than it should be, decided to write it up here in hope that it might help someone.

    Using Ofono with 3G stick:

    Use usb_modeswitch as above, and build ofono from source (1.9.2 as of writing) - there was only 1.6 available for debian wheezy on raspberry Pi. After a bit of fiddling with autotools (because I'm not good at using them), including aclocal, autoheader, libtoolize, automake --add-missing and autoconf, the configuration file is built and you can ./configure && make && make install

    Some pre-requisites for Ofono:


    To also build tools of ofono (in tools/ dir):


    To use python t...

    Continue reading

  • Live-blog from SIGCOMM 2014 - day 3

    21 August 2014 ( SIGCOMM )

    Today I'm only starting to take notes for the wireless session. Somewhat amusingly the room is empty compared to the datacenter scheduling session in the morning, but there really is some good stuff!

    Session 10: Wireless (2)

    Vidyut: Exploiting Power Line Infrastructure for Enterprise Wireless Networks

    Vivek Yenamandra (The Ohio State University); Kannan Srinivasan (The Ohio State University)

    The point is to (de-)sychronize WiFi APs for MIMO by using power line frequency phase differences to avoid interference. A whole lot of considerations to get the reference frequency right, use three-phase power supply, etc. etc.

    > Q: since every access point would be connected to ethernet, have you considered using IEEE something something synchronization protocol? > > A: that is som...

    Continue reading


3G CCA CoNEXT MobiCom Ofono RaspberryPi SIGCOMM WiFi aws cloud documentation hat personal play s3 scala