PWL is Papers We Love and PWLConf 2016 is the first PWL conference, held at Union Station in St. Louis, the day before Strange Loop. I attended this year and had a great time. I'll admit that I chose it because most of the other Strange Loop preconf options didn't look so compelling to me this year and PWLConf was only $40 for a full day of talks, lunch from a magic food truck, and some SWAG including a shirt. At that price I couldn't pass it up. The economics of this conference make no sense to me. They must have some amazing sponsors.
"Randomized Gossip Methods" by Dahlia Malkhi
The topic isn't really my thing, but because a very good speaker delivered the talk it still kept my interest. A randomized gossip method is a way for information to spread in a distributed way across a network of connected nodes. It's a simple protocol to implement. She talked about different ways to implement it and how to make it faster. One fairly successful gossip method protocol is SWIM, which is randomized monitoring for node failure detection in a network.
----
"Multiparty Session Types and their Applications to Concurrent & Dist. Systems" by Nobuko Yoshida
In a way this was the inverse of the first talk. I was really interested in the topic but the speaker was difficult to understand. Luckily I was on the side of the room where they were projecting the live transcription of the talk, so when I got too lost I would read the transcription. Did I mention that PWLConf had someone with superhuman abilities transcribing the talks live? It was amazing.
I'm a sucker for any talk with "types" in its title. Session types are a way of determining correctness of a session protocol through static type checking. Who knew you could do that? Not me. Mind blown!
----
"Abuse of An Algorithm Comes As No Surprise" by Marius Watz
The talk's title is a reference to "Abuse of power comes as no surprise" by Jenny Holzer (Google it). Marius's argument which he presents early on is that "technology... is never neutral, nor is it created in a (cultural) vacuum". Marius talked about ways in which the people who implement technology have failed in embarrassingly awful ways. For example, face detection software not detecting black faces. This was a talk to get people thinking about the intersection of social issues and technology. Unless I missed something there was no actual paper covered, so it didn't quite fit in with the rest of the day. But interesting talk anyway.
----
"Automatic Patch Generation" by Claire Le Goues
This was a software engineering focused talk. The idea is to automatically generate a patch that will fix a bug with no human intervention required. The inputs are the buggy code and a set of tests, including one failing test that shows the bug. It's crazy that we can even do this. The heuristic used is to try random edits near places that are likely to have the bug, and then use "evolutionary computation" (what I would call genetic algorithms) to attempt to converge on a fix. Another method uses a semantic search that actually understands the semantics of the language. Each method has its trade-offs.
It works best with assembly and C, which will let you input just about any old random nonsense. They've had more trouble with languages that will complain about dead code because the compiler stopped the algorithm from exploring some potentially fruitful paths.
This was my second favorite talk of the day. It might have been my favorite talk if she hadn't used the phrase "64-bit Unicode" multiple times. Claire, please stop saying that, it's not a real thing! I think she must have meant there was some bug in Unicode processing that only showed up on 64-bit systems, but I can only speculate.
----
"Design Philosophy in Networked Systems" by Justine Sherry
Justine covered just what the title says, but I feel that we could learn from the design philosophy of networked systems and apply them to all sorts of system design. This talk had a lot of good quotes, which I will possibly misquote here from my notes.
Designing with layers:
- If you can do it at a higher layer, don't bother implementing it at a lower layer.
- But you may need to make exceptions for performance optimizations
- Design to stay out of the tussle
- Or design to influence the tussle
Modular design vs design for choice:
- Modularity makes the tussle battle someone else's decision
- Modular design is when you need to make a global decision (compared to design for choice)
- Residential broadband access: not designed for choice
No such thing as value-neutral design. You're designing the playing field.
Are you giving your customers choice, or are you adding constraints?
----
"Papers I Have Loved" by Casey Muratori
Casey was my favorite speaker of the day. I've been asking myself if it's because he focused on algorithms from game development so I actually understood the stuff he was talking about. But I think I would have liked his talk even if I hadn't been able to follow along so well. He was just fun to watch.
Casey covered 3 different topics in about 1 hour: the marching cubes algorithm for implicit surface generation, quaternion math, and the GJK collision detection algorithm. Any one of these topics could have been a full hour talk but he managed to squeeze all 3 in there. I often watch presentations at 1.5x speed on YouTube but in this case there's no need.
----
The conference was well organized and they had a great speaker lineup with a nice variety of talks. I hope they do it again next year. About the magic food truck: Somehow Guerilla Street Food managed to feed lunch to an entire room of hundreds of people out of a single truck. I think they had a tardis in there to store the food.
No comments:
Post a Comment