[I am posting this now after a bit of a hiatus. It’s been a busy and somewhat unpredictable summer. See below.]
I’ve gone silent for may weeks primarily out of a re-prioritization of my time since returning from CERN. It was a very busy finish to the work period at CERN this summer. The trip home was delightful, though made slightly unpleasant by the fact that Jodi was away when I returned and would not herself return home for a week afterward. Life began to return to something like normal at SMU when I got back, with my focus turning toward our new grant proposal for the Department of Energy’s Office of Science. The last few weeks have been capped off my some joy and sadness: my sister-in-law and her children are visiting us for a week of vacation, but I had to leave home during this time due to an unexpected death in the family. I am returning home now, looking forward to a few more days with my nephews before getting back to work.
The Last Days at CERN
My last two weeks at CERN were a busy joy. I had a lot of fun working with our students and post-docs as we began making progress on projects involving the Run 2 data and preparations for “25ns operations” of the LHC. The first months of the Run 2 LHC operations have been using a configuration of 50ns between proton bunches. This was the configuration utilized for Run 1 physics. To increase luminosity and move the LHC closer to its final design parameters, most of Run 2 will utilize the designed 25ns configuration. This comes with great technical challenges, and some of our work on the ATLAS trigger system is meant to prepare for this mode of operation.
The Trip Home
I departed CERN on July 11, grabbing a train from Geneva to Paris. It was a really great Saturday, starting with a tram ride with one of my students to Gare Cornavin, the main transit hub in Geneva. He was off to get a train away for the weekend around the same time as my train to Paris. We grabbed lunch at a Doner Kebab place just off the Cornavin – a place that I was taken to by a fellow student when I was a new grad student at University of Wisconsin-Madison.
My ride to Paris was fast and uneventful, with all the lovely scenery of the French countryside to keep me company. I was lucky with my trains in Paris, managing to grab an express RER-B train to the airport (where I was staying at a hotel for the night). It was nice to relax a bit that evening before the hectic international travel the next day.
My life at the airport the next day was pretty easy. I checked my bags and, because of my travel status, was given a “fast lane” pass for passport control and security screening. It was a matter of just 20 minutes to clear those checkpoints and I was at the Admirals Club for American Airlines. I had a nice post-breakfast snack and coffee while waiting for my plane, and even met an American on his way to Africa for 6 months. His work takes him there a lot, and it means long stretches away from his family.
My flight was great. I sat next to a gentleman named Jean-Bernard who is from France but lives in Dallas with his wife. He travels back and forth a lot. He had great stories, amazing pictures of his family’s home in France, and insisted that I begin watching the show, “The Blacklist” (which I did a couple of weeks after returning home).
It was lovely to arrive home and see my cats and my house. It was unpleasant to otherwise be alone in the house, but such is life.
Grant Proposal
This is the year that many of us at SMU need to submit a new research grant proposal to the US Department of Energy’s Office of Science. The Friday after I arrived home, two staff from the Office of Science (one of whom is our grant monitor, our bridge between the funding agency and our group) visited SMU to discuss the upcoming “Funding Opportunity Announcement” (or FOA) deadlines and the expectations for the structure and length of the proposal. Between now and the deadline in mid-September, a lot of time and effort will be focused on assembling the pieces of this proposal and preparing to submit it online via DOE’s grant submission system.
Summer Hobby Project: The Flagship Web Client for Pump.io
pump.io is a federated, open social protocol. What does that mean? It’s a backbone for facilitating public and private social networks. It was developed and deployed in 2012-2013. It allows people to setup their own social site (e.g. I run “The Hub,” at https://hub.polari.us) and the connect with people on that and other social sites that also speak pump.io (e.g. https://identi.ca, the flagship site for this protocol’s deployment). Pump.io is free of corporate control or business interests (though businesses can use it for whatever they like), free to install and use, and allows people to create their own social systems on the internet.
It comes bundled with a demonstration client – a program that a human can use to communicate via pump.io. Evan Prodromou, who developed pump.io, created the client to be feature-complete enough merely to demonstrate the potential for clients speaking pump.io. He never intended it to be perfect, nor the only means by which people utilize pump.io; in fact, underdeveloping it was a kind of strategy, intentional or otherwise, to force an ecosystem of competing (and superior) clients to emerge. This largely worked. Dedicated clients like Dianara and Pumpa appeared and have been constantly developed since. Existing clients like AndStatus and Choqok adopted pump.io as one of many protocols they now support.
But the Web Client languished. Aggravating this, many people blindly mistook the web client (a javascript-based frontend that knows how to talk to its associated backend pump.io server) for the pump.io protocol and made falacious declarations about the infancy of the pump.io protocol.
Well, I decided my summer hobby project was going to be to try to learn how the Web Client was put together and then fix some of its bugs. Notably, bugs often complained about were:
- The message and notification icons count up to “20” messages after you first join a pump.io site, and then peg at 20 forever, no matter how many times you go and read all your messages.
- The popup dialogues for posting notes and pictures can be closed quite accidentally by clicking anywhere outside the dialogue, with no warning to the user. A long post could be lost by a trivial bump of the mouse or touchpad or a tap of the tablet screen.
- There is no support for uploading video or audio in the web client, and no support for playing the video or audio even if you upload it by other means.
- There were a variety of complaints about the user interface, including popups appearing offset from view in the web broswer window, images shifted from being centered or appearing outside their bounding dialogues, etc.
My first goal was to learn just enough to try to address issue 3 above. I figured that would be easy because playing video and audio is just as simple as putting the HTML5 <video> and <audio> tags into the templates for the web client views. I figured that out quickly, and had a working solution in an evening. I also tried to address issue 1 above in a simple way. For instance, I might only count messages and notifications that has appeared in the last N hours. I learned enough about the tools used to originally write the client – Backbone.js, underscore.js, and JQuery – to figure out how to modify the template code for that part of the user interface to make the counters show something other than 20. With that small step, I tried to learn more about the issues behind the other problems.
Harder things to solve had to do with modifying dialogues. My first pass at this was to allow the user to upload video. It took me some evening hours, but I figured out how those popups worked and how to modify them (quite simple in the end) to accept video uploads. I’ll get to audio eventually, and I also want to allow for the possibility of server-side video converstion to support multiple formats for the same medium (e.g. a user uploads MP4 and the server generates WEBM and OGV, so people with browsers that support those formats can play the videos).
I then moved on to the “accidentially closing” dialogues and a number of other issues. The result is that I have generated something like 40 commits ahead of the current stable branch of the main pump.io code repository, and in the coming weeks I hope to have those changes accepted via pull requests to the main codebase. Github has been an instrumental tool in facilitating my own independent work while leaving me hope of these improvements making it back to the main code repository.
It’s been a nice evening distraction while watching TV or avoiding sleep.
Seven Days of Vacation
My sister-in-law and her boys arrived last Wednesday for a week of vacation at our house. Jodi and I had been looking forward to 7 days out of the office, away from the normal pressures of life, esconced in the pleasant bubble that days with kids can offer (even if they are behaving badly). Unfortunately, the day before they arrived I received a call from my father telling me my grandmother – my last living grandparent – had died. Funeral arrangements were made as quickly as possible and I wound up having to travel on short notice to Baltimore for the wake and the funeral. I have already been quite tired owing to the busy summer work and travel schedule (no amount of sleep seems to refresh me). This took an emotional toll on me that left me bleary-eyed with exhaustion over the past two days (but unable to sleep continuously owing to being in a “strange location” – yet another hotel bed).
The wake was actually a decent affair, given the circumstances; I saw family and family friends I’ve not seen in years or decades. I got to meet some people I’d heard about but not yet met. The funeral home, working with my mother, did a lovely job of preparing the body of my grandmother for the wake.
At the funeral service, we shared stories publicly about my grandmother. The pastor had among the best story of the day, one that the family present to hear it will no doubt repeat for many years. I served as a pall bearer for the final part of the service, escorting my grandmother’s body to her final resting place, next to my grandfather who died in 1990 (and was the first death of a grandparent that I experienced). I miss all my grandparents a great deal; it hurts me deeply to know I have none left. But such is the advance of time and the truth of our mortality.
After the funeral, my sister and I accompanied my mother back to her mother’s house to begin the awful work of going through every nook and cranny of the house, tracking down the heirlooms and bagging up the things no one can use or wants for donation or disposal. It’s awful but necessary work, and my sister and I were only around for a day or two so we wanted to help with it so that Mom could have some sense of progress in the wake of the death. There is an overwhelming amount of legal and financial work left to do, as with all deaths, and the process will take months. I hope that I am able to help my mother out with this as she moves it forward; I certainly plan to go back to Baltimore when she needs more help sorting and packing. A family friend is already planning to come in and paint the house’s interior, as the long work to improve it begins.
I am on a plane back to Dallas right now. This has been an emotionally draining week, and I haven’t much energy left in me right now. I had to get up early for this flight, and I’ve already not slept well. I am hoping for a leisurely day of fingerpainting and swimming with the nephews, followed by my first good night’s sleep in a week.