The Avatar ([info]saurik) wrote,
@ 2004-04-04 04:58:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Final Conference Update
(Local Time: 14:58.)

Well, I'm finally getting around to talking about the SPIN dinner. :P I ended up sitting with some interesting people and talked about everything from changing cultural views of marraige to the importance of degrees in the educational system.

To point out, only one of these (nice) people was a CS professor, hehe. The other 3 were from Microsoft Research, NASA Aimes, and a Ph.D. student. I later found out that the one CS professor was giving a talk in the Runtime Verification conference that Murat and I are in the next day, so that was encouraging. Murat had told me that I could expect the people at that conference to be nicer. (Although in general I found the SPIN people more cheerful, happy people. The professor from Belgium was also in the SPIN conference, I believe.)

The meal itself was lamb, which I don't really like, but by the main course came around I wasn't really hungry anyway, having filled up on all the various tapas that we had been presented with. Turns out we were at the "house of lamb" or something like that, and there were pictures of lamb on the glasses and plates as clues we had failed to put together.

Afterwards, I followed people back to the metro station and took one line back to near where Murat's hotel was, and then another closer to where mine is to somewhat lesson the taxi fees.

The dinner finished rather late, so the next morning I slept in a bit rather than going to the TXL talk I had wanted to go to. TXL is the Turing eXtensibility Language. I ended up just skimming over the paper to get the idea of what they were doing. TXL is generally a language for quickly adding extensions to an existing grammer by doing source-rewriting to convert the new syntax into old syntax.

It came about because there was a programming language the same people had written called Turing. A number of people were using it and kept submitting feature requests in the form "___ should really be equivilant to ____". As simple as those requests were, it tended to require numerous changes to the parser and lots of debugging time, when really they just wanted to try adding that single feature to the grammar and have it automatically generate the older version.

The conference was organized drastically differently for the workshops. The Vertex building (where all the registration/administrative concerns were normally handled) was closed and locked, so I had to wander around again trying to follow signs to figure out where I should go to get another conference schedule (as I had accidentally left mine with Murat). All of the workshops were also taking place in different rooms of the same building, whereas during the main conference things were spread out around campus. I think it largely had to do with it being a weekend and it being easier to get an entire building like that.

When I got my schedule I noticed that "Stravos Tripakis" was giving the first talk in RV. Stravos was the nice Greek professor from the dinner, so I stayed at RV rather than going to LDTA (Language Descriptions, Tools, and Applications) as I had planned. His talk was "Testing conformance of real-time software by automatic generation of observers". Frankly, I have no idea what it was about. The only thing I even vaguely understood from most of the conference today was when someone would start talking about temporal logic as I had spent a lot of time making sure I had learned that while taking Bultan's 290 course on Program Verification a few years ago.

The next talk was by Martin Rinard, whom Murat had said was incredibly intelligent and probably would be the best talk. Unfortunately he didn't show up (and didn't end up showing up the entire day), so the talks got somewhat rearranged. Margin's talk would have been "Deductive runtime certification". As I got a copy of the proceedings I have the abstract somewhere, but it isn't in my schedule so I'm really too lazy to look it up ;P.

Instead we got "Runtime verification of concurrent Haskell programs", which I didn't really get much out of. The talk was the intersection of math terminology with Haskell, neither one of which I understand very well. This was followed by "Enforcing concurrent temporal behaviors", which I only vaguely remember had a large number of state transition graphs and little time counters. Seriously, I got almost nothing out of RV. :P I probably should have gone to LDTA for most of this time if I had actually wanted to understand the talks I was seeing (as that was entirely about parsing and ambiguous lexing and the such), but I felt it useful to understand the audience I was going to be presenting to more.

The next two I was actually able to understand as they were less math-oriented and more "here's the code aspects". The first was "JVM independant replay in Java". The speaker outlined a problem of wanting to re-execute a Java program with the same concurrency issues (and bugs) from a recorded script of a previous execution. His method had something like a 10x overhead, but considering what he was doing it was somewhat acceptable. He ended up instrumenting almost everything to detect thread context switches and then replay them later. There were some tricky issues having to do with not being sure whether you had or quite had not executed a particular instruction yet, but I wasn't able to catch what his solution was.

The second was "Program instrumentation and run-time analysis of scoped memory in Java". The speaker was working in some environment where he didn't have a working garbage collector (some limited device) and was using escape analysis tools to determine the lifetime of objects, and then runtime instrumented the program to watch where objects were created and mark them as being part of particular lifetime buckets. This is a drastic oversimplification, however... I was having a hard time listening to this talk (as most of them) as the speakers were largely monotone (I'm assuming (??) a property of their native language as many have intonation that is based on the words and not on the meaning as in English).

For lunch Murat and I spent most of our time talking to Mark. The conversation was almost entirely about burnout of software people due to over-communication leading to over-work, and related aspects of the death of the dotcom era. Murat talked to Mark more about CCS a little later and Mark may actually come out to Santa Barbara at some point in give talks about things happening at Microsoft Research.

When we got back there was a talk called "Semantics and runtime monitoring of TLCharts: statechart automata with temporal logic conditioned transitions", which I now see on the schedule was an invited talk (which explains why it was an hour instead of a half hour). I didn't get it at all, or what the purpose of it was. I left halfway through to sit outside and work on my presentation slides. I also missed "Simulation of simultaneous events in regular expressions for run-time verification".

During the JVM replay talk I realized that he really could have used jMonitor to implement a much simpler version of what he did, so I planned to bring it up during the presentation. Much of my time outside got allocated towards building that slide and making sure my methodology would work, thinking of weird border cases and the such. I figured it would be a good way to draw in more audience participation.

I came back for "Monitoring algorithms for metric temporal logic" and "Run-time checking of refinement", neither of which I understood at all. I was really tired at this point and just took the time to rest a little and think about what I was going to say.

During the following half-hour coffee break, Murat and I went over all the slides and tested out some parts of the presentation. Note that we were giving our presentation immediately after the break, hehe.

Testing out our presentation on the projector showed that the red color Murat had chosen for much of the text didn't show up well, so I frantically went through and replaced a lot of it with white. Our talk was the only one with two people involved, and was drastically different than the others. Murat introduced me and then gave a quick overview of jMonitor before passing the presentation to me to show what it could do and what people might use it for. I ended up being a little too nervous that people weren't getting what I was saying and felt I kept hitting things too fast and then being forced to go over them again. I had been hoping for more audience participation, but everyone was just sitting there and watching.

It had almost 10 minutes at the end for questions (which I feel I'm much better at handling), and people seemed really interested in it. I think I am going to be getting a _lot_ of e-mails when I get back from people asking me to send them the prototype that I have so far (which I'll need to spend a day or so cleaning up to make it more usable and have more of the features from the presentation). More people then came and talked to me after the entire workshop was over.

Murat felt that I did really well, which I didn't entirely believe. One thing he did mention is that I kept pointing at mid-air in order to cause a shadow to point at what I was talking about on the presentation and that doing so is very distracting and I should instead just point to what I'm talking about directly.

Next time I give a presentation I really need to spend the time to do the presentation slides the _night before_ rather than in the few hours before the presentation. I've found that goes a lot better, hehe. The other talk I've done where I felt I didn't do so well was my Nmap+V talk to CS279, where I had actually _forgotten about the talk_ until an hour or two before hand and then managed to put together all the slides and everything and run there just in time to present. My slides ended up being pretty good (I'm very good doing last minute miracles in PowerPoint), but I had the same feeling of hittings points at the wrong speeds and losing people occasionally as I did during the jMonitor talk. I do much better when I've taken the time to think those issues through.

The only talk after ours was "Guaranteeing correctness properties of a Java card applet" by someone who really could have used jMonitor (and even mentioned it during his talk, hehe). Unlike the previous Java card speaker, this one spent the time to explain what one is. Java cards are small smart-cards that run Java. They are _extremely_ limited devices where programs aren't allowed to allocate memory after they are done being setup, and I beleive there is no garbage collector.

The speakers talk was on doing bytecode instrumentation of a program to vefrify that it wasn't allocating memory after the setup phase, which ended up running into some problems as apparently the actual implementation of Java card _does_ let you allocate memory, but only up to a fixed amount, after the setup phase, in order to allow the program to customize itself a little bit more before it gets locked in. When he realized this he was forced into the horrible position of trying to estimate the size of a Java object based on it contents determined using reflection.

After the last talk was an organized discussion of the future of RV and whether it should stay with ETAPS for next year or move to a different conference. Also discussed was whether it should be attempt to become its own conference, and if so how it should go about it (i.e., by trying to widen the scope of the accepted papers or merge with another workshop or what-have-you).

Murat and I then went back on the Metro to Murat's hotel to get Lumina (Murat's wife). Murat and I then went walking for a little while down Las Ramblas while Lumina changed for the Workshop Dinner. We stopped at a little outdoor fruit market type area. (Murat had a different name for it, but I don't remember what it was... I don't think it was "farmer's market". I'd probably call it "fruit suek", being a horrible misspelling of an Arabian term for something similar.)

Murat, Lumina, and I then took a taxi to the bus for the dinner. The dinner was held at a rather massive (multi-story), fancy restaurant. Once again we had a large number of tapas and a meal I didn't like all that much. (The meal was chicken with some little underwater insect-like creature things... I couldn't remember what they were called, hehe.) During the dinner I really only got to talk much with someone there from Microsoft Research named Wolfram (whom had liked the jMonitor talk and had talked to Murat and I earlier) and a graduate student from South Africa to my left named Basil. There were a number of French professors to my right and some Italian professors across from me, all of which seemed to be quite happy ignoring me.

The most interesting part of the meal to me was the makeshift bruchetta the waiters explained to us how to construct. You take a toasted piece of french bread, add some garlic to it, cover it in olive oil, cut a few pieces of tomato onto the top, and then salt to taste. We had a large platter of toasted bread on the table, garlic cloves, whole tomatos, a few flasks of olive oil, and a salt shaker to accomplish this all with. I have a feeling I'm going to be eating a _lot_ of that particular combination from now on, hehe.

Giving me control over the garlic content of the meal was also great. I ended up making sure I saved a few cloves from this part of the meal for usage later. Pretty much everything I ate from that point on was coated in garlic. *Doesn't use nearly enough garlic in his cooking.* I think I'm going to add "one whole garlic" to my "big bowl of beef" meal, hehehe.

That dinner ended up lasting way too long. I started to fall asleep at the table. We finally left rather late and then went back on the bus to the center of Barcelona, and then took a taxi back to Murat's hotel, where I had left my tablet and all the conference proceedings I had been lugging around. My next step was to catch another taxi back to my hotel and fall asleep.

Something somewhat random to add: I only just recently figured out you aren't supposed to eat the seeds in grapes. I don't mean that you don't swallow them, but that you aren't supposed to chew them. I finally thought it through from an evolutionary perspective. I had a big bag of them that Murat gave me that I was eating last night, and kept noting to myself that the seed in the middle was horribly bitter... probably because it was one of the plant's natural defense to being eaten (as many of those horrible tastes are) as when I am sitting there chewing the seeds I'm destroying their chance to grow into a new grape vine.

But if that's the case, you'd expect the grape plant would be pretty stupid for having constructed a good tasting fruit around that horrible tasting seed that is just encouraging me to eat the entire thing. That's when it hit me: the plant is trying to train me to carefully chew the grape and not destroy the seed. When I realized this the grapes started tasting _much_ better as I no longer had to deal with the stupid seed anymore, now that I've started abiding by the wishes of the plant. :)

Today my original plan was to go back to the conference for the second half of AVIS (a workshop on "Automatic Verification of Infinite-State Systems") but all the talks looked like they would be over my head and I pretty much verified that to myself by glancing over the copy of the conference proceedings that I had picked up during the day yesterday. So instead, I decided to just sleep in really late and wander around downtown Barcelona looking at shops. *Logs onto the Internet to post this and catch up on correspondance for the last few days.*


(Post a new comment)

lol
[info]wiz
2004-04-05 09:47 am UTC (link)
And thus explains the random outspirt of grape vines all over the city of barcelona in 2006.

Isn't there something bad about eating too much garlic (asides from smelling bad)?

Your posts are wonderful, it leaves a good impression of the adventure and actually puts a good spin on something I was thinking you might come back groaning about. Some of those topics sound like they are constructed to particularly sound over your head though, hehe...
for example, Automatic Verification of Infinite-State Systems...
that just sounds flat out impossible. And what is automatic anyway? We have runtime verification... and automatic verification. hmm.
Anyway, it sounds like you're having a lot of fun =)

(Reply to this) (Thread)

Re: lol
[info]saurik
2004-04-05 01:05 pm UTC (link)
I haven't heard anything bad about eating too much garlic... (and _I_ personally like the smell, but I think that's only me, hehe).

The "runtime" verification people are somewhat particular about verifying software as it's running rather than doing it statically from source code. It's somewhat less formal as you aren't really sure you guaranteed, for all possible inputs and all possible schedulings, that the program does what you intended it to do, only that it worked for the particular executed instances.

As for "automatic", I think it's the obvious definition (so as opposed to manually doing it), although many of these acronyms don't seem like they came from the terms but are instead backronyms, so it might not really be that technical of a term. I believe the issue is that, when dealing with an infinite-state system, you can't use the easy, standard method of just iterating all states and checking them all, so you normally have to drop to doing a proof of the algorithm by hand. Constructing a proof automatically is _much_ harder than doing it by hand (which is already rather hard to begin with).

So was it my earlier entries that made you sure I'd be coming back complaining, or was it my pre-trip commentary? ;P

(Reply to this) (Parent)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…