Time does fly….

Wow! Another year gone by with no posting at all. Time flies when you’re having fun.

Work continues to be great. We’ve added a new child to the mix, which is helping keep me busy. I’ve been cooking less, though I still get to do it on the weekends regularly. For Christmas this year I got a new Ice Cream Maker — WAY better than the old one we had — no longer do we have to deal with loading ice and rock salt — we just have to freeze the bowl in advance. We also got an Instant Pot – a programmable pressure cooker. Now I just have to figure out how to use it effectively. Early attempts have had mixed success.

My how time flies

Hard to believe it’s been so long since I have posted last….  The last time I posted, I was still a Purdue employee.  Now I work at Google, which I might add has been a blast.  I’m very much enjoying it.

After a stint of using a Mac Mini as a server, I’m back to using a Linux machine as a server.  While the Mac Mini was somewhat adequate as a host, I really missed the Linux package management, ease of configuration, flexibility, and server side monitoring tools that didn’t assume I live and breathe my whole live using one OS.  I don’t promise I’ll post a lot more frequently, but rest assured that I will keep running the site.

Recent work in Venn Diagrams

As an undergraduate (and for a brief period once I graduated), I worked on areas of discrete math, including Venn diagrams. In fact, I helped develop the constructive proof that rotationally symmetric Venn diagrams existed for all prime numbers of curves [1]. Note that for non-prime numbers of curves, rotationally symmetric Venn diagrams are known to not exist.

However, these diagrams (graphs) are not “simple”. A bit later, I helped Ruskey, Savage, and Weston prove that you could produce “half-simple” rotationally symmetric Venn diagrams for prime numbers of curves [2]. But it has remained unknown whether they could be simple. Today, I read that it has been shown that for 11 curves, they can be simple. See Ruskey’s writeup for pictures [3], or this blog post [4] by Adrian McMenamin for a discussion of what simplicity means and an overview of the technique.

Note that while I made my contributions, Ruskey and Savage are considerably more established in this area. Frank Ruskey is particularly well known for his work in graph algorithms. So when I talk about my part of this research, while I had my contributions, it is of course but one small part of the scientific process. It’s nice to see that this has continued, and to feel like I was part of helping make this happen.

[1] Jerry Griggs, Charles Killian, and Carla Savage. Venn diagrams and symmetric chain decompositions in the Boolean Lattice. Electronic Journal of Combinatorics. Volume 11, January 2, 2004. [http://chip.kcubes.com/research/venn/v11i1r2.pdf] (An article about this result appeared in Science, Vol. 299, January 31, 2003 and it was the subject of a front page article in the January 2004 issue of SIAM News. Additionally, this work was featured in the December 2006 issue of the Notices of the AMS.)

[2] Charles Killian, Frank Ruskey, Carla Savage, and Mark Weston. Half-Simple Symmetric Venn Diagrams. Electronic Journal of Combinatorics. 2004. [http://www.cs.uvic.ca/~ruskey/Publications/HalfSimple/HalfSimple.pdf]

[3] http://webhome.cs.uvic.ca/~ruskey/Publications/Venn11/Venn11.html

[4] http://cartesianproduct.wordpress.com/2012/08/12/venn-diagrams-for-11-sets/

ACM Author-izer Service

When I learned about the ACM Author-izer Service (http://www.acm.org/publications/acm-author-izer-service), I was initially pleased. This is intended to be a way for authors to freely share access to the “authorized” ACM version of a conference publication. I didn’t jump right out and use it though, because it’s just not high on my priority list to change things up.

More recently, I saw someone else use it, so I reconsidered whether I should begin using it. I had clicked through to a paper, selected the author-izer option, and was all ready to get my link, when I saw that it wanted to know the URL of the page that would be referring to it.

Uh, sorry, but that’s not something I can provide. Not that I don’t know some (most) of the URLs that might be referring to it from my site, but they don’t allow multiple URLs. Just one. (per author). So I could put the link on exactly one webpage (well, URL anyway). That just doesn’t work for me. I have bibliography items listed in at least 5 places, and most in at least 6. There’s my departmental profile, my departmental home page, my online CV, my personal website, and my research group’s website. Then, in most cases, there is a blog entry written about the article too, that provides a link to the article.

So, thanks but no thanks. Maintaining consolidated download statistics just isn’t that important to me, nor is having the “authorized” version of the paper available to my readers.

However, in reading about this, I did learn that I need to make sure all my ACM papers on my site are “preprint” versions, meaning they are specifically NOT the ACM authorized version. Just as well, since for some papers, we want to fix typos, too.

In case you are reading this wondering why all the complexity, it has to do with copyrights. At ACM venues, when authors publish work there, they reassign their copyright to ACM, for reasons that are debatable, and have been debated my many, recently (search the web for Open Access, ACM, and USENIX). Authors only retain the right to distribute “preprint” versions of their paper. Granted ACM’s policy is better than some publishers, though not as good as USENIX.

So in conclusion: if you maintain only one website where you post links to papers — great. Use Author-izer. Otherwise, I’m not sure its worth your time.

URL Shorteners

So I’ve been annoyed by the increasing use of URL shorteners. What is a URL shortener you ask? Well, it’s a service, provided by an owner of a short domain name, that provides URL redirection—providing a short URL you can use with services like Twitter or Facebook, but originally conceived for handling URLs in emails to avoid problems with copying and pasting when the URL wraps onto the next line. When you follow a short URL, your browser contacts the owner’s web server, and is given a 301 or 302 error code in an HTTP response that tells the browser where to locate the correct content, which it then does in succession. Popular services include tinyurl, bit.ly, goog.le, and t.co.

So why am I annoyed by it? Mainly because I cannot see where the link is going to end up. I don’t like clicking on links I get from friends unless I know what website I’m going to end up on. This is primarily due to concerns over the potential that the link might take me to a malicious site, or a site I might find offensive. But a number of friends post links that I think I might find interesting–yet I never follow them because they are shortened URLs.

A secondary concern is the tracking done by the URL shortening company. It allows a third party company to track all references to a destination site through the posted URL, which to me seems like a loss of privacy.

Granted – for services like Twitter, which have a small upper-bound on the message size, something like this is needed—albeit only because of the somewhat arbitrary limits placed on message sizes. So what solution might I offer? For my primary concern (knowing where you’re headed before you visit the website), it might be good if browsers recognized the URLs for short URL providers, and used a HEAD request to determine the actual destination to present to users. Alternately, a browser might include a new feature for requesting a HEAD request for a link instead of a standard GET request. The HEAD request, rather than opening the URL, just asks the server for the headers the website would contain, and could be presented to the user so they know what is healthy and normal.

Trying to be paperless

In the quest to be paperless, both for environmental reasons, and also for being gentler on my back, I seek to not have to carry around printouts of documents as easily accessed using my tablet, phone, or computer. However, I have increasingly grown frustrated that a major hindrance to my attempts to be productive without paper are hampered by the FAA, and its historical policy preventing any electronics from being used during takeoff and landing. Since on many of the flights I ride this is more than half of the flight time, my air travel time has been wholly unproductive unless I have paper documents to work with. I was prepared to write a post criticizing this, questioning whether any data supported the risks, and considering how a tech company like Apple or Amazon could score major points by convincing the FAA to certify their tablet devices for takeoff and landing usage. Accordingly, I was very encouraged to read in articles such as this one at Ars, that the FAA is in fact planning to take a “fresh look” at the use of certain electronics devices during takeoff and landing.

If such efforts fail, I next wonder what tech can produce – some ability to create a display before takeoff that can be “frozen” during a “powered-off” state, that might be large enough to keep me busy reading during takeoff and landing…

Phone self-repair

I just got done replacing my iPhone screen, which I shattered over the break. The part was $30 on Amazon, as compared to a $130 third party repair, or probably a $200-300 Apple/AT&T repair. Yes, I am feeling pretty satisfied right now. 🙂

There are plenty of good videos and resources out there, so I won’t add my own, but would just like to say—yes, it can be done!

HPDC Paper (InContext: Simple Parallelism for Distributed Applications)

This past week, one of my students presented his first paper at HPDC. There is a more detailed blog entry at the research website by the student, but I wanted to mention it here too. (Post: http://www.macesystems.org/2011/06/incontext-simple-parallelism-for-distributed-applications/)

The very short story: the Mace toolkit has scalability issues since events must run atomically (think a big lock protecting events to run only one at a time). This paper describes the first step towards loosening that restriction, and running different events in parallel as long as they are not both trying to write to global state.

FSE Paper (Finding Latent Performance Bugs in Systems Implementations)

This post was promised some time ago, about our paper published at the conference on Foundations of Software Engineering (2010), a top conference in software engineering. Instead of posting it here, however, Karthik (one of my student co-authors), posted a description of our FSE paper here: http://www.macesystems.org/2011/04/finding-latent-performance-bugs-in-systems-implementations-fse-2010/

The very short description: by building robust systems, we hide some of our correctness bugs, converting them into performance problems. Our paper is about using model checking concepts to discover such bugs with a minimum of developer effort. See the post and paper on the group website.

Keeping it Simple (or: Grilling on Charcoal)

So a couple weeks ago our gas grill stopped working. Right in the middle of cooking. Originally, I thought we were just out of gas, so I had swapped it out with our spare tank we keep on hand for just such an occasion. But I could not get the grill to re-light. I couldn’t hear the gas either, which I usually can do. I re-tried many times, before finally giving up. Later on, after doing some debugging, I had decided to try replacing the regulator. Unfortunately, despite using a wrench, etc., I could not disconnect the old regulator/hose assembly. At this point I was fed up. The grill was I think about 6 years old, so it lived an okay life.

In deciding what to do about it, I did not envy the thought of replacing it with another gas grill. Gas grills just seemed to me to be overly complex, with a large number of parts which can break and stop working. Couple this with the fact that I’ve never been as happy with the gas grill as I wanted to be — the burners worked pretty well on low and high, but anywhere in between, and they would flicker out and back on, which was always puzzling. Plus, I have to say I never felt like the gas grill made foods taste all that “grilled”. I’m not sure how much benefit it had over the gas range which I had indoors. That flame was consistent, reliable, didn’t run out, was self-lighting, instantly ready, and did not require me to cook in the outdoor elements. So, my go-to grill was the cast-iron grill tray on the gas range, or sometimes, the George Foreman.

So, in looking at new charcoal grills, they were cheaper, promised more-grill-tasting food, fewer parts to break. After all, in the end, it’s basically a fire-safe kettle you put charcoal in. The Weber grill I got had the added feature of a one-touch ash-sweeping system to make it easy to keep clean. It took all of 30 minutes to assemble, and the only tool it required was something to tap the caps on to keep the wheels from sliding off.

Pros and Cons are pretty well established across the internet, but here are a few considerations I went through:

  • Cost: Gas grills are more expensive, but the fuel is supposedly much cheaper. If I the grill is $200 cheaper, and you grill 20 times a year, and your grill lasts 6 years (like my last one), you would have to save $1.66 per meal to make the difference up. I’m not saying it’s impossible, just that I’m not convinced the cost is all that significant either way.
  • Convenience: Gas grills are instant-on, while charcoal grills take more effort and time to get started. Technically, this one is true. However, the starter on my gas grill didn’t last long, and then I needed to use a lighter to start it. Next, I never knew how much gas was left to know when it might run out. Also – as for the instant-on: I always needed to clean the grates before use, so it wasn’t like I could start cooking immediately (not to mention pre-heating the grill). Now, perhaps the charcoal takes longer, but since I generally use that time to prep the food, it seems to be about the same amount of pre-prep in both cases.
  • Taste: The charcoal grill definitely is more grill-like in it’s taste. Plus, I can add fresh herb sprigs to add some smoke to the cooking. Very cool.
  • Cooking simplicity: I have to say, the actual cooking seems pretty nice. Putting the lid down, and just waiting an amount of time for things to be done is great.

I’ve used the grill 4 times now. The first time was an utter failure (I didn’t figure out how to start it properly). Then we had friends come over to show us how it works. Since then I’ve grilled twice, and both times came out great. So, I’m now a happy charcoal grill operator now.

Does anyone want two propane tanks for the exchange system? One is full. The other has an unknown amount of propane (could be empty). I won’t be using them anymore.

Generalizing this out, it is basically illustrates the principle of keeping it simple. The gas grills are more complex, more features, more money, and should be easier and better to use. But for my use, the charcoal grills are more durable, reliable, predictable, and therefore useful. Software often follows the same principle. When we add a lot of complexity to it, we generally add bugs, issues, and make it much harder to know what the software will do. So in summary: keep it simple. Even if you lose some features or flexibility, you may make up for it in the bigger picture.