Tuesday, March 31, 2009

It's over

Had fun presenting at HotPar. At first, I was very skeptical of the opportunistic computing talk, but then it ended up probably having the biggest impact on me. First, it reminded me of the whole issue of deciding how much compute to do for a problem -- instead of thinking about dropping frames in an scarce resource setting as I did in some Flapjax animation experiments, be more positive, and think about expressing the extra work you can do (whenever you have the time / energy to spare). Second, the proposal to run multiple instances of randomly terminating algorithms with good PDFs to achieve better speed can be adapted and tuned for energy efficiency (though I haven't encountered an opportunity for this in the browser yet). As Koushik remarked, it also finally motivates some fun statistical program analyses we talked about last year.

Overall, I left further convinced that I don't want to think about exposing web programmers to STM until the community performs a lot more semantics work and field studies (though there are a couple of places where I'm thinking of transactional implementations, but that's different from what you suggest end-user code should use). Finally, I want to take a stab at writing barrier-style code instead of task-parallel as I'm hitting a 24ms wall with TBB and Cilk++, which translates to a quarter second on a handheld.

(and Tim Harris is awesome.)

Tuesday, March 24, 2009

Laws and Rules

Saw a post on LtU about one of the first laws of computer science that I ever learned:

Zero, one, infinity rule [on going beyond public/private/protected/published/...]

This seems to be about change control boundaries. You start at level zero with a language that has no inner boundaries. Then you say: we need one change control boundary. You add the public/private distinction.

That is OK for a while, then you start thinking: I wish we had two levels of change control. Private, public, published. How plausible is it that two will be enough? Surely this is the point to move to a more general structure. - Alan Crowe


Recently, I've been starting talks with Amdahl's law (when you go parallel, you need to go all the way), Bell's law (laptops are being replaced by handhelds), or the Birthday Paradox (in a room of 23 people, there's a 50+% chance some folks share the same birthday).

I think the coolest one that I've picked up recently is about the difficulty of jumping from 2 to 3. Solving 2-SAT and 2-coloring is easy -- they're even the same problem -- but going to 3-SAT and 3-coloring is prize-money hard.

Monday, March 23, 2009

Last one

... for now:

This paper presents Flapjax, a language designed for contemporary Web applications. These applications communicate with servers and have rich, interactive interfaces. Flapjax provides two key features that simplify writing these applications. First, it provides event streams, a uniform abstraction for communication within a program as well as with external Web services. Second, the language itself is reactive: it automatically tracks data dependencies and propagates updates along those dataflows. This allows developers to write reactive interfaces in a declarative and compositional style.

I need to finish putting together a couple of talks, but then back to working my parallel browser stuff full time (modulo writing proofs about parallel algorithms..).

In other news:
  1. We had an Iron Chef cook-off last night, with the secret ingredient being tofu. Team Awesome (me, Fabian, & Kaitlyn) prepared tofu popovers as an appetizer and then a full meal of: spicy tofu (my favorite) as the main, and pan-fried asparagus and friend potatos, both mixed with both caramelized tofu and caramelized onions. Fabian finished with a strawberry parfait, making a ricotta out of pine nuts and tofu, and I topped it with some dulce de leche. I think everything except the potatos were spectacular -- amazing, considering I never eat tofu.

  2. Road trip to San Diego!

Friday, March 20, 2009

Yaggle

On a Twitter mashup demonstrating a system we wrote, with slight editing:

M: "Uh...what does it do? I just see a map. Running Firefox 3.0.7."

A: "Over the course of a minute, ~20 points will appear on the map. Click on the map to read a Tweet."

M: "I think this application is great: it's a real-time map of twits! Now I know where to avoid."

A: "get the hell off of the east coast. that's what my map suggests."

Ah, PLT-localcore.

Tuesday, March 17, 2009

Freedom...?

We present a dynamic control-flow analysis and state classifier for graphical user interfaces. Search engines, end-user programming interfaces, and automated testers exploit such information, but are challenged by clientside and serverside scripts obscuring it: our analysis succeeds on popular web applications that contain both. We further motivate such analyses. First, we introduce a new type of browser extension: a natural-language interface to third-party applications. Second, we begin to address the problem of updates to a website changing how a third-party application must use it: by extending our analysis to yield change-impact information, meta-applications can automatically repair their broken interactions.

Just as I thought the storm passed, I found out there's another one Friday =/

Sunday, March 15, 2009

2 more days

Our paper is really shaping up. We're doing two demos of using our new program analysis. First, a Firefox extension to take natural language commands and interpret them in terms of the functionality of the website you are looking at. Second, autonomic meta-scripting. E.g., if the website you are mashing up or screen scrapping changes, it may be possible to update your program automatically. Unfortunately, we only have ~1.5 pages of room to discuss these, and I'd really like to devote an entire individual paper to exploring each :( Don't think my adviser would like that, and the next use of the analysis I wanted to deeply investigate is actually a new kind of search engine.

In other news, I rediscovered my old Flickr photos. I wonder if there's a good way to connect this with my Facebook photo albums. I really wish I had time to implement my generic data-liberation Firefox extension idea to disconnect data from applications -- not only is language lifting fun, it'd also help solve this problem in a principled way.

Wednesday, March 4, 2009

The joy of related work

Every time I write a paper and we perform a final literature survey for related work, new pertinent work pops up, either because we're in a popular area and others have moved forward, or because our understanding has grown enough so that we can perform a better survey.

Invariably, some of it is very similar to our own work, which is Scary. However, the darker the fear, the higher the joy:

Hey, I almost finished watching the ZZZ 2008 presentation on ZZZ, but I decided to write you when the guy opened Google Maps and said "for which I don't even know how a state machine can be created" :)

Their example was a login page with username/password and submit...

Back to work,
Raluca



Almost done with the camera-ready version for Hot Par, and then back to writing for FSE and running experiments..