<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:saurik</id>
  <title>The Avatar</title>
  <subtitle>The Avatar</subtitle>
  <author>
    <email>saurik@saurik.com</email>
    <name>The Avatar</name>
  </author>
  <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom"/>
  <updated>2005-04-01T10:24:12Z</updated>
  <lj:journal userid="641872" username="saurik" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://saurik.livejournal.com/data/atom" title="The Avatar"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:12788</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/12788.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=12788"/>
    <title>oh my... jesus?</title>
    <published>2005-04-01T10:12:47Z</published>
    <updated>2005-04-01T10:24:12Z</updated>
    <content type="html">So, somewhat randomly, I ended up trying out for Jesus Christ Superstar today (the musical Gina and C.J. are putting on). There was both a singing and a dancing part of the audition, and while I could have just done the singing part, I figured the dancing would be fun (and I figured Gina and C.J. would get a kick out of me going through with it, hehe).&lt;br /&gt;&lt;br /&gt;Have you ever seen one of those scenes from TV shows or movies where the somewhat large guy character goes and tries out for some kind of dance thing? (I'm pretty sure Joey from Friends, or maybe on that new Joey show did this, but it's an oft used concept.) Everyone else watches it once and then starts going through it, all doing pretty good, while our character looks all confused, gets in everyone's way, and possibly even hurts a few people when he actually tries to do the moves that he keeps forgetting? Yeah, that was me. I succeeded in tripping the guy to my right and stepping on the hand of the guy behind me.&lt;br /&gt;&lt;br /&gt;By the end I was no longer able to sit down or stand up without extreme pain in what Oreana says are my "quadricepts" (or maybe I already forgot what she said). I also slammed my right knee into the floor at one point. I'm still having a hard time standing and walking around ;P. I'm just glad I lived through the whole thing. Auditioning for Hamlet on the Moon tomorrow is going to be much easier.... (And regardless, I'm going to be working with Daniel on technical stuff for it... sparks, robots, etc.... so I'll have something to do.)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:12344</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/12344.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=12344"/>
    <title>and now for the hard part...</title>
    <published>2005-03-25T11:06:25Z</published>
    <updated>2005-03-25T11:07:26Z</updated>
    <content type="html">I finally got sick enough of C++ that I've designed my own programming language and am working on porting menes over (which, most of the time, is causing me to realize I forgot to add something important to my grammar). My new language is called ++C. I got the idea for it after reading &lt;a href="http://www.csse.monash.edu.au/~damian/papers/HTML/ModestProposal.html"&gt;a paper called "A Modest Proposal: C++ Resyntaxed"&lt;/a&gt;, where the two authors came up with a new, simpler, syntax for the same underlying programming semantic as C++. The new language could be parsed with an LALR(1) parser and was generally much cleaner. My language is LL(2) and takes much from them but took full liberty to change anything I disagreed with. Also, reading their paper I noticed they broke the language in a few places... they over-simplified templates until they had a different semantic. (But at the time C++ wasn't standardized and noone really understood templates well, so no one would have noticed; not that many would now, either.)&lt;br /&gt;&lt;br /&gt;The first even remotely complex file (and really it's not complicated at all) I ported over was &lt;a href="http://www.jayfreeman.com/syntax/http://svn.saurik.com/repos/menes/trunk/menes-ext/block.xxh"&gt;block.xxh&lt;/a&gt;. Apparently, .xxc/.xxh wasn't ever used as a file extension before and no language registry lists a ++C, thereby making my language name choice both funny (based on the old joke about wanting C to be better _before_ you use it, which a postfix ++ operator such as C++ will fail to accomplish) and as yet unused: probably because it's impossible to search for on any search engine, a detriment I don't care about as I don't expect anyone to ever want to use it for anything.&lt;br /&gt;&lt;br /&gt;I'm still missing new/delete syntax, I'm going to remove all the little () blocks after typedef/function/etc. and add an attribute system like C#, and I haven't thought much about how I'm going to syntax the overloaded operator definitions, but already I have something that I can start porting with. Even without doing the type analysis, this is going to let me add things like: break/continue labels, implicit This_ typedef for all types, dynamic instantiation of objects by name without needing special macros all over the place to register things, automatically generated serialization stubs, and _maybe_ enough pointer/value type diffentiation to get type-accurate garbage collection (for the few places where I want such a thing).</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:12196</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/12196.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=12196"/>
    <title>"Confessions of an Unrepentant Code Commando"</title>
    <published>2005-03-23T00:51:08Z</published>
    <updated>2005-03-23T00:52:12Z</updated>
    <content type="html">&lt;i&gt;Commandos can do what grunts do if they have to, but they don't like it; they are better than grunts, they know it, and they act like they know it. (If you've ever known a bona fide Green Beret or SEAL, you know what I'm talking about.) Grunts, whether alone or in arbitrarily large groups, cannot do what commandos can do. That's why the military goes to great expense to create such people, even though they are a pain in the ass to work with.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;[ &lt;a href="http://www.kuro5hin.org/story/2002/3/10/113513/407"&gt;http://www.kuro5hin.org/story/2002/3/10/113513/407&lt;/a&gt; ]</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:11950</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/11950.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=11950"/>
    <title>The Madwoman of Chaillot</title>
    <published>2005-03-04T10:27:27Z</published>
    <updated>2005-03-04T10:27:27Z</updated>
    <content type="html">Oh, so for people who read this, that play that I'm in is actually starting ;P. Friday (as in Today or Tomorrow, depending on if you are still awake) at 9pm, and 2pm and 9pm on Saturday. Girvetz 1004. Free.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:11550</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/11550.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=11550"/>
    <title>A Change in the Docket Algorithm</title>
    <published>2005-01-19T11:28:21Z</published>
    <updated>2005-01-19T11:28:21Z</updated>
    <lj:music>loud (really loud) fan noises</lj:music>
    <content type="html">There are a few situations I hate being in. One of them is having to ask the question "Can I call [so-and-so] now?". Maybe I think it's too late, or that I think they are busy, possibly that I'm calling them too often. In the past I have attempted to minimize my ability to cause this feeling in others. I tell _anyone_ who ever expresses a concern over calling me that they can call 24 hours a day: if I don't want to receive their phone call, I simply won't answer it; and if any phone call would be inconvenient, I will make sure my phone doesn't ring. If I really care about someone I'll even explicitely tell them that I will probably wake up to answer their call anyway (something that tends to apply to all people anyway, I hardly ever do selective caller group screening, even as amazingly setup I am for it, day or night).&lt;br /&gt;&lt;br /&gt;However, I've decided today, after spending weeks in the most painful version of this that I've ever had to experience, that this isn't enough. I now extend this further guarantee: that no matter how much I may not want to talk to you, I _will_ answer your call in the shortest time period possible. If this requires me to use pay phones or carry about hand-crank cell phone chargers, so be it. _All_ calls, regardless of purpose or utility (so even if I can't or won't actually help you with whatever you need) _will_ be answered. And not just some day, but soon.&lt;br /&gt;&lt;br /&gt;To steal a line of reasoning from a book I flipped through recently: calling people is easy. There is no excuse to not call someone. There's always some time in transit between places and always other routes to getting or returning messages. I _accidentally_ call people from my pocket... it can't possibly be difficult. If you aren't answering someone's call, you probably hate them.&lt;br /&gt;&lt;br /&gt;Note that this only applies to communication that involves a telephone currently: so text messages and phone calls. In other words, I still feel free to ignore your IMs.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:11152</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/11152.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=11152"/>
    <title>WannaWiki.com</title>
    <published>2004-11-19T20:12:30Z</published>
    <updated>2004-11-19T20:12:30Z</updated>
    <content type="html">OK, I haven't even looked at any of these articles yet, but the very idea of &lt;a href="http://www.wannawiki.com/"&gt;this website&lt;/a&gt; sounds _awesome_. Completely random How To articles. Seeing the juxtoposition of ideas made me smile today, which was itself quite a feat.&lt;br /&gt;&lt;br /&gt;Most Popular Articles:&lt;br /&gt;Be a Computer Engineer / Cheat on an Exam / How to be a Pimp / Fight Zombies / Use A Wiki&lt;br /&gt;&lt;br /&gt;Newest Articles:&lt;br /&gt;Fake your death / Propose to your Girlfriend / Summon Captain Planet / Learn To Shave Your Face / Use my mac as a WebDAV server&lt;br /&gt;&lt;br /&gt;Requested Articles:&lt;br /&gt;Understand Shaft / Travel to Europe / Get a Free iPod / Break up with a Girl/Boyfriend / Get an Abortion</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:10368</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/10368.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=10368"/>
    <title>Random Research Topics of the Yesterday/Today</title>
    <published>2004-09-09T11:59:35Z</published>
    <updated>2004-09-09T12:00:31Z</updated>
    <content type="html">&lt;a name="cutid1"&gt;&lt;/a&gt;The Word 'Literally' (for &lt;span class='ljuser  ljuser-name_morian' lj:user='morian' style='white-space: nowrap;'&gt;&lt;a href='http://morian.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://morian.livejournal.com/'&gt;&lt;b&gt;morian&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://home.bluemarble.net/~langmin/miniatures/literally.htm"&gt;Language Miniatures No. 102: "That Literally Killed Me"&lt;/a&gt;:&lt;br /&gt;(Not the original article I had read. I don't remember if this is better or worse than the other one. I want to say worse?)&lt;br /&gt;&lt;i&gt;"In every human language, the meanings of words are undergoing constant, uninterrupted modification. It may be glacially slow or dizzyingly fast, but it is never absent."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.laboratorium.net/archives/LiterallyDefinition.html"&gt;The Laboratorium: Literally Definition&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dictionary.reference.com/search?q=literally"&gt;American Heritage Dictionary Definition&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;a name="cutid2"&gt;&lt;/a&gt;Computer Typography (for &lt;span class='ljuser  ljuser-name_bembo' lj:user='bembo' style='white-space: nowrap;'&gt;&lt;a href='http://bembo.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://bembo.livejournal.com/'&gt;&lt;b&gt;bembo&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://daringfireball.net/2003/11/panther_text_rendering"&gt;Panther Text Rendering&lt;/a&gt;:&lt;br /&gt;(Strong introduction to the problems of rendering text on computer screens.)&lt;br /&gt;&lt;i&gt;"If you want an overview of everything new in Panther, the best resource I’ve seen, by far, is Mark Pilgrim’s “What’s new in Panther” — 11 pages, 100 screenshots, and pretty much a point-by-point overview of everything new. If you’ve upgraded to Panther and aren’t sure if you’ve checked out everything there is to check out, use Mark’s guide. (He even had it ready to go on Panther’s release day.) That’s the overview. Now, let’s take the underview — one change, examined in minute detail."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://grc.com/ctwhat.htm"&gt;How Sub-Pixel Font Rendering Works&lt;/a&gt;:&lt;br /&gt;&lt;i&gt;"So: This means that if we were to treat the actual sub-pixels individually -- ignoring their differing colors for the moment -- we would have three times the horizontal resolution from our existing LCD display panels!"&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.truetype.demon.co.uk/articles/times.htm"&gt;Times (New) Roman and its part in the Development of Scalable Font Technology&lt;/a&gt;:&lt;br /&gt;&lt;i&gt;"The outcome of all of the legal maneuverings is that Linotype and its licensees like Adobe and Apple continue to use the name "Times Roman", while Monotype and its licensees like Microsoft use the name "Times New Roman"."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.truetype.demon.co.uk/tthist.htm"&gt;A History of TrueType&lt;/a&gt;:&lt;br /&gt;&lt;i&gt;"Also, Apple was irritated that Adobe licensed PostScript to printer manufacturers who undercut Apple's own LaserWriter. So, Apple and Microsoft agreed a cross-licensing and product development deal, the fruits of which would be available to both parties: Microsoft would bring a PostScript-style graphics engine to the table (TrueImage), while Apple would create a font system even better than Adobe's..."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;a name="cutid3"&gt;&lt;/a&gt;Random Fun Topics (for everyone):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sat.net/~bberlin/"&gt;Nautical Terms and Phrases Used In Everyday Speech&lt;/a&gt;:&lt;br /&gt;(Warning: does not fully render correctly in Mozilla.)&lt;br /&gt;&lt;i&gt;"The end of the anchor line secured to a sturdy post on the deck called a bitt. The line was paid out in order to set the anchor. However, if the water was deeper than anticipated the rope would pay out to the bitter end . . . ooops."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.paulgraham.com/essay.html"&gt;The Age of the Essay&lt;/a&gt;:&lt;br /&gt;&lt;i&gt;"It's no wonder if this seems to the student a pointless exercise, because we're now three steps removed from real work: the students are imitating English professors, who are imitating classical scholars, who are merely the inheritors of a tradition growing out of what was, 700 years ago, fascinating and urgently needed work."&lt;/i&gt;&lt;br /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:10136</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/10136.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=10136"/>
    <title>Fluoride in Tea</title>
    <published>2004-09-09T11:53:56Z</published>
    <updated>2004-09-09T20:48:50Z</updated>
    <content type="html">At some point &lt;span class='ljuser  ljuser-name_devilfish' lj:user='devilfish' style='white-space: nowrap;'&gt;&lt;a href='http://devilfish.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://devilfish.livejournal.com/'&gt;&lt;b&gt;devilfish&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; was interested in my statements that tea contains fluoride. Here's an abstract of a paper from Chulalongkorn University entitled &lt;a href="http://www.chula.ac.th/college/dentistry/cu-dent-j/11/11-1-6e.htm"&gt;Fluoride in Black Tea&lt;/a&gt;. (Note that for a quick counter, &lt;span class='ljuser  ljuser-name_danopato' lj:user='danopato' style='white-space: nowrap;'&gt;&lt;a href='http://danopato.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://danopato.livejournal.com/'&gt;&lt;b&gt;danopato&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; will argue that even if this is true, the fluoride is probably not bio-available anyway.)&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;Contrast this 196 micrograms per bag of tea with a statement from &lt;a href="http://www.crd.bc.ca/water/faq.htm"&gt;some Canadian Governmental FAQ&lt;/a&gt; &lt;i&gt;"The Canadian limit is 1500 micrograms per litre."&lt;/i&gt;. To be fair, the abstract of that paper (which I wasn't able to find a copy of) only cited the content of the tea in the tea bag, not how much ends up in your tea.&lt;br /&gt;&lt;br /&gt;However, I found a better paper. (z00t!) &lt;a href="http://www.fluoride-journal.com/00-33-4/334-196.pdf"&gt;Fluoride Levels in Hair of Exposed and Unexposed Populations in Poland&lt;/a&gt; which has tables that give numbers of micrograms/gram of fluoride in teas and even looks at the strength and quantity of the consumed tea.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Table 2 presents mean fluoride values in hair in relation to declared nutrition and hygiene habits. Statistical analysis showed no correlation between the concentration of fluoride in hair and the intake of fish, kind and strength of tea and kind of toothpaste used. No significant differences were found between hair samples from people drinking tea; however, the values obtained for people who declared that they do not drink tea at all were substantially lower."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Given their data you really have two options: either A) humans are weird and there's some threshold to our tea absorbtion, or B) there's some correlating personality quirk in people who don't like tea and people who don't participate in high-fluoride activities. However, after actually looking at the data, I'm going to say the real answer lies in option #3: the people who wrote this paper are _really_ bad at statistics and the reviewers should have asked them to get more data. They have almost 200 people who drank 1-2 glasses of tea per day and almost 200 people who drank 3-4 glasses of tea per day and they are comparing this to _a whole 9 people_ who didn't drink tea. I'm sorry... you can't tell much at all from this. The average fluoride concentration of people who don't drink tea is almost half that of both people who use _and don't use_ fluoridated toothpaste. This data has a serious case of &lt;a href="http://plato.stanford.edu/entries/paradox-simpson/"&gt;Simpson's Paradox&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So really, while I think I've shown my point that tea contains fluoride, it seems like we've also proved &lt;span class='ljuser  ljuser-name_danopato' lj:user='danopato' style='white-space: nowrap;'&gt;&lt;a href='http://danopato.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://danopato.livejournal.com/'&gt;&lt;b&gt;danopato&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;'s point that it doesn't matter. _However_, I'm going to throw in a few "What if?" theories to show that we really don't have enough data yet:&lt;br /&gt;&lt;br /&gt;If options A _and_ B from the previous paragraph are both true, then the data in this chart is consistent. If you use fluoridated toothpaste or drink tea or eat fish, you're fucked and have around 2 micrograms of fluoride presenting. However, if you're truly paranoid, paranoid enough to not drink tea, paranoid enough to use non-fluoridated toothpaste, you might also be paranoid enough to avoid fish (which... apparently?!? is a source of fluoride?...). And, if you avoid all three of those, you will actually make a dent in your daily amount of fluoride.&lt;br /&gt;&lt;br /&gt;However, my only sample for someone that paranoid is me, and I had never heard of the fish thing (not that a sample size of 1 is meaningful, hehe). That might not be relevant, however, as we could include a variable C) fish could have nothing to do with it. In that case, the truth is being hidden by the statistical error. It would be interesting to see if the non-tea drinkers were, in fact, in the non-fluoridated toothpaste category. That would clear a lot of this debate up.&lt;br /&gt;&lt;br /&gt;Although, even as I write that paragraph, I realize that frankly I don't feel that toothpaste _should_ correlate with the amount of fluoride found in hair. Toothpaste is a non-systemic source of fluoride. The goal is to apply fluoride to your teeth and, without eating the toothpaste, rinse it out along with whatever you dislodged by brushing. Tea, however, _is_ systemic. (As a side note, the flipside of this shows that, even if fluoride was good for your teeth, taking fluoride suppliment pills, which many people were subjected to as youths, _wouldn't help your teeth_.) So really, if just A and C were true then we'd have a significant effect.&lt;br /&gt;&lt;br /&gt;Regardless, I still hate the taste of tea (the main reason I don't drink it), so this doesn't end up affecting me much.&lt;br /&gt;&lt;br /&gt;[Edit: replaced an occurance of 'fluoride' with 'tea']</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:9813</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/9813.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=9813"/>
    <title>Java's Wrong Attitude</title>
    <published>2004-08-19T08:20:17Z</published>
    <updated>2004-08-19T08:22:56Z</updated>
    <content type="html">From &lt;a href="http://www.radwin.org/jeske/2004/02/100_pure_java_id_rather_100_viab.html"&gt;an article&lt;/a&gt; I read today:&lt;br /&gt;&lt;br /&gt;"SWT folks have felt the pain, and are trying to make Java viable as one of the ways to write the best Windows gui application. The fact that any of the Java community resists this is unfathomable to me. It is tantamount to saying, 'we don't want Java to meet your goals because they are wrong, our goals are better'. To which I say, 'great, then Java is a religion not a development tool and I don't have time for religion, I have an application to ship'."</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:9542</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/9542.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=9542"/>
    <title>I need to stop being so nosy...</title>
    <published>2004-06-12T11:26:19Z</published>
    <updated>2004-06-12T11:26:43Z</updated>
    <content type="html">So tonight, as I left campus (at around 3am, a perfectly respectable time to leave campus if you ask me) &lt;a name="cutid1"&gt;&lt;/a&gt;I got pulled over. When the officer came to my car I asked him meakly "what did I do?" and he responded that I hadn't done anything specific, but that they were wondering where I was coming from. I told him I was just in I.V. with some friends, and was coming from Freebirds. I pointed out specifically that I wasn't drunk. I continued that I had parked my car on campus and was driving to Ralph's because I was very thirsty (hehe). He went back to the police car to talk on his little squalky talky thing. I could hear him say that I was seen leaving "carillo" or something like that... definitely with a C. It's then I realized that he probably thought I was stealing plants from the CCS.&lt;br /&gt;&lt;br /&gt;See, there's this extra part of the story that I had forgotten. So I yelled out my window something like "oh, I forgot that I just now stopped at the CCS to pick up these plants!". So he talked for another few moments and came back to my car. I showed him the plants, which were all arranged on a sheet in the legroom of the passenger side of my car. He then asked me for the story with the plants. I explained that my friend Seth was leaving for Maine today, and I drove him to the train station and helped him move his stuff. But, we didn't have enough room to move some of his things. I then explained that College of Creative Studies students have keys to the CCS building, so we arranged that the plants would be left there in the computer lab (hehe) where I would come to pick them up later.&lt;br /&gt;&lt;br /&gt;He asked why we made this arrangement (which I already vaguely explained, but I guess he wanted more clarification), so I went over in more detail how we hadn't enough room to move the plants, a bag of books, and a surf board (which I said snowboard for at first, then thought about it a second, correcting myself and explaining that I really don't know much about those things... although it wasn't for the obvious reason... Seth had both and it took me a while to think which one would have been bigger). I pointed out that I had stopped by the CCS to visit Kian and had noticed the plants, remembering that I should get them some light tomorrow, and made sure to bring them with me.&lt;br /&gt;&lt;br /&gt;Somewhere in all of there I had explained my whole educational status: having graduated in December, but being here a lot as I commenced last week and will be starting the PhD program in the Fall. I showed him my student ID card to verify that I was, in fact, a student (at least ex- so). I gave him Seth's phone number, which he wanted me to try calling, but I got his voice mail. (I explained to the officer as I called that Seth would probably be on a plane or asleep as he was heading back to Maine, where it was then 6am.) I also gave him Kian's number, as Kian had helped me move the plants into the car and was still in the computer lab.&lt;br /&gt;&lt;br /&gt;The officer then took a quick glance in my trunk and let me leave, saying that my story seemed to be ok.&lt;br /&gt;&lt;br /&gt;Now, here's why he really pulled me over. I didn't think of it until about five minutes after I was driving away. (I was thinking _really_ slowly, which was even shown at Ralph's where it was taking me forever to find simple things... not even things like "soda water" but things like "isle two".) When I drove from San Rafael's lot to the CCS to visit Kian I parked in the lot across from CCS. I didn't go directly to the CCS, though. I heard a fire alarm from San Nicholas and decided to go over there and see who all was standing outside in case I knew someone. (I'm also just plain nosy when it comes to large events like this.) I went over, and even _realized_ I was looking kind of suspicious.&lt;br /&gt;&lt;br /&gt;I then walked through the crowd of people, looking around. Out of the blue, I asked one person how long it had been since the alarm started. He gave me a funny look and then said about fifteen minutes. Having satisfied my curiosity, I walked back to CCS, where I was "seen leaving carillo" (which I believe is the dining commons right there?). A few minutes later, I was driving off campus onto 217.&lt;br /&gt;&lt;br /&gt;I wonder if I'm still a prime suspect ;P.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:9281</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/9281.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=9281"/>
    <title>The Making of Change</title>
    <published>2004-06-07T15:13:54Z</published>
    <updated>2004-06-07T16:06:37Z</updated>
    <content type="html">Everyone wants an electronic copy of my speech, so here it is. I did end up making last minute changes and edits. I was practicing the speech in the parking lot, scratching stuff out with a fingernail clipper, when I decided "I need a pen.". I looked around. "That old woman over there... she would have a pen!" Lo and behold, I was right: she did. As I was sitting there making my additions she asked me if I was graduating, to which I responded affirmative. "Consider it your first graduation gift." She came up to the stage later before the actual ceremony to get my picture.&lt;br /&gt;&lt;br /&gt;I added the lead-in right before while wandering the stage talking with people, and I finally got the end of one of the sentences working (one that I had just cut the night before as I didn't want to have to deal with it anymore) while I was on stage. Nothing quite like Danna, however, who apparently had a pen on stage and was scratching away at her's _during_ my speech ;P.&lt;br /&gt;&lt;br /&gt;The version presented here includes all edits. But, seeing as I'm Jay, I can't just post something simple. I have to make a big deal out of it. So here's the "behind the scenes look at the making of change".&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;I was originally thinking of doing "The Building of Community". The focus would have been the building of the computer lab and how that's changed CCS over the last four years. I also wanted to mention the online communities that had been forming, such as LiveJournal. But somehow I never figured out good angles to attack that topic that didn't sound more like a news story than a graduation speech, and to get in the various sub-stories that I felt necessary would likely also have taken longer than "five to six minutes", which was my limit.&lt;br /&gt;&lt;br /&gt;(Although as writing this I may have just gotten it. I should have talked about the physical object "The Building of Community" with 'Building' as a noun in there... to show how the CCS building itself has undergone changes throughout the years, both purposeful and makeshift, both functional and artistic, using that as a connection with the story of the lab. It would still be too long, though... I'd have to figure out the minimal subset of the point and cut out most of the meat. Oh well ;P. Maybe next life.)&lt;br /&gt;&lt;br /&gt;I almost had a lot more on my connections with the people who were graduating (and an extended sequence starting from "a third of the people graduating" that would have paralleled &lt;a href="http://www.livejournal.com/community/494/6634.html?thread=39658#t39658"&gt;my response&lt;/a&gt; to &lt;a href="http://www.livejournal.com/community/494/6634.html"&gt;Mika's question to 494&lt;/a&gt;), but then decided to drop it. It wasn't really neccessary (as I felt it sufficient to emphasize the strong connection to the third and leave everyone else more vague) and would have wasted more time on "my story", which I felt was out of place in a graduation speech unless it _really_ showed off something that could be applied to everyone's shared mental state.&lt;br /&gt;&lt;br /&gt;Probably most importantly (as I actually got it kicked back to me at the end as one of the few complaints about my speech from Dan), I didn't leave the audience with a strong recommendation. I was thinking about it. In "The Building of Community" I was going to recommend more people come to the online communities, especially those graduating, in order to hope that the CCS could maintain as a weird meme even as people left. I also wanted to implore people who hadn't graduated yet to spend more time at the building participating in events like Coffee Hour, if not just sitting in the hallway or randomly attending classes (which I consider the more ideal level of participation ;P).&lt;br /&gt;&lt;br /&gt;The vague recollection I ended my speech with was only that "change can be good", that we can technically feel good about leaving, but you should probably be depressed out of your mind anyway. I don't know. I think this was the main failing of my speech. Shine's talk from last year was really, really good at this. (I just read over it again quickly now.) He managed to toy with peoples' emotions _and_ leave them with something to take home at the end.&lt;br /&gt;&lt;br /&gt;Oh, I had also wanted to include a comment about the stereotypical Nexus person in my head and had "randomly" asked Seth if he could remember the guys name, but that effort failed. I thought it would be interesting to point out how now, my stereotypical Nexus person is Jamie, and how that change just occured gracefully without my actually noticing it at the time. It's these kinds of smooth transitions that let change occur without disrupting the whole system *thought truncated as it was about to delve into irritating economic theory on how capitalism solves a similar problem*.&lt;br /&gt;&lt;a name="cutid2"&gt;&lt;/a&gt;&lt;br /&gt;Other than that question, however, I'm proud to say that I practiced the speech in front of no one and took no direct input what-so-ever. (For indirect input there were the vague grunts of "I guess that wouldn't be lame" that I'd get when I'd summarize my topic as "the ghosts that we leave behind" during the days before.)&lt;br /&gt;&lt;br /&gt;I pretty much sequestered myself in my apartment for a few days writing this. (On Saturday I had to close all my web browsers and disconnect myself from all online chat systems to increase focus.) I think Jake was somewhat worried about it ;P. He called me on Saturday (after I had refused to come look at the Eschaton video because I was too busy working on my speech) to see if I needed any help with my speech, either writing or just a practice audience. I refused, hehe.&lt;br /&gt;&lt;a name="cutid3"&gt;&lt;/a&gt;&lt;br /&gt;In general I was trying to avoid humor, but I did end up with three-and-a-half jokes. The first was the thought of me living in Room 143 to stop change from occurring. I felt it personalized the beginning of the speech for people that knew me, and connected it back with the short introduction speech I had given at last year's all-college meeting where I claimed to "hail from Room 143".&lt;br /&gt;&lt;br /&gt;The second was the wording and cadence of the extended description of Steve. I added this because I felt it important that at least one of these people I mentioned would be appreciated on his own without even needing to know them. I got a laugh from most of the audience, so I hope it worked.&lt;br /&gt;&lt;br /&gt;It wasn't _intended_ as a joke (and isn't counted in my three-and-a-half), but the audience seemed to love the thought of discussing cannibalism with Morgana during coffee hour. It got a laugh, even though I hadn't intended to it (which really works anyway, as it helps the case of people not knowing Rob or Jenn in the "people who are leaving" category). I had wondered about who else I might add to this, but I ended up going for "short list". I'm sorry to the people who aren't on it ;P.&lt;br /&gt;&lt;br /&gt;The "and-a-half" comes from the usage of the full title "Networked Virtual Environments / Real-Time Computer Graphics/Rendering" for the course of Jake and Sean's that merged into a single class. I could easily have shortened it, but thought it might be humorous to leave. I have a vague recollection of a chuckle, but I want to say I got no reaction from this.&lt;br /&gt;&lt;br /&gt;The last was more of an easter egg than anything else. I don't remember getting any reaction from it at all. If you know of &lt;a href="http://www.demotivators.com/"&gt;Demotivators&lt;/a&gt;, you've probably seen how all of their posters, no matter what about, mention "disaffectd college student" as one of their target audiences. When I was discussing replacing each person at CCS, one at a time, their replacement was "a younger, less disaffected student".&lt;br /&gt;&lt;br /&gt;What follows is unofficially named (and thank God I was avoiding humor, as I would have _had_ to include this title somewhere and it's damned cheesy... and for some reason even slightly familiar): &lt;a name="cutid4"&gt;&lt;/a&gt;I See Graduated People.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I See Graduated People&lt;br /&gt;&lt;br /&gt;There are some points in everyone's life when change is inevitable. No matter how hard you fight it, your life is going to be drastically different than it was before. Graduation, whether it be from high school or college, is one of these times.&lt;br /&gt;&lt;br /&gt;I've been forced to accept that, even if I stay... even if I move into the CCS and live in Room 143, I can't continue to hold on to the same experiences that I've had here over the last five years. That no amount of fighting on my part will maintain this small slice of time.&lt;br /&gt;&lt;br /&gt;Every year's commencement gets harder. More people I know and care about are lost, and more new strangers come in to replace them. I try. I go to the first year Computer Science class and play the role of a makeshift adviser, an older peer who co-teaches the class with Murat. I even go back and sit in on some of the same biology and CS classes that I've already taken two or three times before in order to meet new students. Whenever I arrive in the morning, I pop my head into the computer writing lab and do a once over of the building to see who else might be there.&lt;br /&gt;&lt;br /&gt;But after a while, that game starts being tiring. When you look back, you see an almost endless trail of ghosts that were left behind. Specters on your mind. You hear sounds, or walk into rooms, and have expectations. Expectations of people who should be there, or activities that should be going on.&lt;br /&gt;&lt;br /&gt;When I walk up to the building in the morning, a part of me still expects to see Roni Feldman, his shirt tied around his waist or being used as a paint rag, carrying one of his latest works to his studio from the gallery. When I go to coffee hour I still expect to see Jeff Reineke explaining quantum mechanics in analogy to anyone who would listen. Every time I see a game of Go, I wonder where Ryan Smith is to explain why every move is being played wrong. The sound of roller blades still reminds me of Anna Salamon gracefully maneuvering around classrooms. As I walk through the hall I expect to see Adria Le Boeuf hosting her improv acting club in Room 136. And I bemoan the loss of Steve Rayhawk, who would sit quietly in the corner, with an extra shirt tied into a blindfold... almost Zen-like and seemingly asleep until he would break into your conversation, predict where your argument was going, and indicate who you should consult for more information.&lt;br /&gt;&lt;br /&gt;Sometimes the ghost is a class instead of a person. A class that was so striking that it's difficult to not reference it again and again. I continually find myself feeling sorry for someone who was unable to attend Shine Ling's The Nature of the Mind. And I don't think anyone who participated in Robert Desmond's packed Cyberpunk Literature class (a class that so completely filled room 143 that Robby stood atop the table and preached his points to us on the first day) will ever forget it. And at least among us Computer Science majors, Jake Cannell and Sean Montgomery's Networked Virtual Environments / Real-Time Computer Graphics/Rendering continues to be deferred to.&lt;br /&gt;&lt;br /&gt;Even more memories are simply lost. Names of people I knew from years back. Experiences that I never recorded and am only left with a vague impression of. But these impressions _do_ remain, and I feel their weight during my stay at the CCS.&lt;br /&gt;&lt;br /&gt;And now I have to ask where CCS will be next year. Without Robert Wechsler's "perpetrations" to startle students each week as they arrive at the building? Without Jennifer Osgood in the computer lab frantically maintaining her hundreds of online personae? Without Morgana Mongraw-Chaffin to discuss cannibalism with during coffee hour?&lt;br /&gt;&lt;br /&gt;Every year the memories build, and part of me wishes it would just stop. That these punctuated points of massive change could be done away with, leaving only the gradual adjustments that occur during the rest of the year. I've thought about this a lot, wondering what situation I'd really want to be in for the remainder of my life. Do I want to find a group of people I'm happy with, and continue being with them until I die, enjoying a form of stable consistency? Or is it, in fact, _superior_ in some sense to be the only constant, where everything else in my life is in a state of continual flux... something destined to pass away into the darkness once it is done affecting me?&lt;br /&gt;&lt;br /&gt;And then my thoughts turn to the staff here at CCS. I think of Frank, and Leslie, and how they have to deal with these same issues every year, and have been since they've arrived. Do they find themselves skipping a year occasionally, taking a break from learning new faces, new life stories, in order to break the monotony of change? Bill always likes to joke that Frank is the collective memory of the CCS, having been here longer than anyone else. Does this mean that the specters haunt him even greater? Does he look at each of us and find a weak impersonation of someone he already knew?&lt;br /&gt;&lt;br /&gt;I think the core issue comes back to the age-old question, "How much of something can you take away, and still preserve the essential essence of what was there?". Can the CCS still be the CCS without all of these people? Can any class still be the same class if it.s taught by a different professor before a different audience? If we were to go through all of the people attending CCS and replace them, one at a time, with a younger, less disaffected student, at what point do we need to come up with a new name for the college?&lt;br /&gt;&lt;br /&gt;Obviously the replacement of even one piece makes the whole different, but that doesn't have to take away its identity. From another viewpoint, the CCS is the embodiment of a set of ideals. It's a mindset unique to it's participants that gets passed on from class to class, and only changes slightly in the retelling.&lt;br /&gt;&lt;br /&gt;This ideal _can_ live on, even when a fourth of the students are replaced, and even when that happens four times. But what I really want to say here is that in a way it's _necessary_ that this replacement occurs. The CCS is about having a place where Creativity can flourish. Without the infusion of new blood, groups stagnate. The same concepts come up time and time again. You start being able to predict what is going to happen on a day to day basis. And without outside checks, local cultures tend to quickly run away to intellectual dead-ends. This fact is so important that it is embodied in the very principles of our college, being one of the reasons why we don't keep our own select clique of permanent faculty, instead borrowing from the other colleges.&lt;br /&gt;&lt;br /&gt;For me, at least, this year comes as a sort of culmination. Every year the feeling of loss at the time of commencement has been getting worse: I always feel like I'm losing even more than the year before. This year about a third of the people graduating are people I consider part of my everyday life. These are the people I live with and the people I care about. I not only spend my in-class time with them, I spend most of my out-of-class time with them as well. And now, I find myself part of the celebration. Here I am on the same stage where I've lost most everyone else I've known for the last five years. In a way, I'm losing myself.&lt;br /&gt;&lt;br /&gt;And the CCS will be different without me, without us. But I can rejoice knowing that it just as important that we leave as that we were here, and that the CCS will continue.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:9194</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/9194.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=9194"/>
    <title>Just under the wire!</title>
    <published>2004-06-06T07:42:50Z</published>
    <updated>2004-06-06T07:42:50Z</updated>
    <content type="html">This week's fortune: "you would be wise not to seek too much from others, at this time".&lt;br /&gt;&lt;br /&gt;I've _finally_ finished writing my speech. (With only 10 hours, 20 minutes to go before showtime!) Although the perfectionist in me will probably still be rewriting stuff up until the last possible second.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I've become so numb I can't feel you there&lt;br /&gt;I've become so tired so much more aware&lt;br /&gt;I'm becoming this all I want to do&lt;br /&gt;Is be more like me and be less like you&lt;br /&gt;  - Numb&lt;/i&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:8825</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/8825.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=8825"/>
    <title>Consider Me Helpful</title>
    <published>2004-06-05T09:43:13Z</published>
    <updated>2004-06-05T19:10:07Z</updated>
    <content type="html">If anyone's moving (and I don't have some rather fixed prior arrangement on said day), I'd love to help. Seriously. I _want_ to help. I frankly don't understand why people hate helping other people move. And I've done some hairy moves.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;I've helped Jake/Travis move a zillion times, bouncing between different apartments in rapid succession, stripping and rebuilding an entire office setup.&lt;br /&gt;&lt;br /&gt;On almost no sleep the night before (probably none, actually; I caught about 20 minutes on the floor while Chris went to pick up the U-Haul), I helped Pete move out of his ex-wife's house, with his ex-wife watching us, carrying massive pieces of wood furniture out and up to the second floor of his new house.&lt;br /&gt;&lt;br /&gt;I've done the online suitcase packing problem (in real-time) while helping Morgana move Dan out of his previous apartment and into his friend's truck (and then bringing it all to be dumped outside his mother's under a tarp), [Edit]behind the back of his roommate, and almost entirely into trash bags as we had no cardboard boxes and nothing was organized anyway[/Edit].&lt;br /&gt;&lt;br /&gt;I think it comes from not having had to move myself much. I've moved twice in my life. I don't even remember the first time, but it was easy. We had both of our houses for at least a few months of overlap as we remodeled it, so stuff got to be moved over slowly. The second time was when I moved here to California. Since then I've been living in the same place. I found an apartment I liked and stuck with it. Story of my life, really.&lt;br /&gt;&lt;br /&gt;And I'm largely _still_ moving in. Every half a year or so I bring another big box of stuff from Chicago. I don't even have a table to eat off of yet. And I only got any ornamentation around here a few months ago when Pat decided to renovate his living condition.&lt;br /&gt;&lt;br /&gt;So really. Call me. I'll come and carry something. Or pack something. Or whatever you need me to do. And even if you don't need me to do anything, call me anyway and give me something to do for the hell of it ;P.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:8457</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/8457.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=8457"/>
    <title>I Love Google Sometimes...</title>
    <published>2004-04-09T15:31:42Z</published>
    <updated>2004-04-09T15:34:43Z</updated>
    <content type="html">Hot! I somehow got Google to index my journal. If you search for &lt;a href="http://www.google.com/search?hl=en&amp;amp;lr=&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;safe=off&amp;amp;q=glr+barcelona"&gt;'glr barcelona'&lt;/a&gt;, I'm hit #6 (why did Google remove the numbers...). #2 for &lt;a href="http://www.google.com/search?hl=en&amp;amp;lr=&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&amp;amp;safe=off&amp;amp;q=%22barcelona+stinks%22"&gt;'"barcelona stinks"'&lt;/a&gt; (not that all that much comes up for the latter, hehe).</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:8232</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/8232.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=8232"/>
    <title>Barcelona Stinks... In the Literal "Sense"</title>
    <published>2004-04-05T19:38:11Z</published>
    <updated>2004-04-05T19:38:40Z</updated>
    <content type="html">(Local Time: 22:35.) Barcelona smells horrible. I'm quite serious. The entire city smells like a combination of cigarette smoke, car fumes, and shit (I'm not sure what from, but there _does_ tend to be a lot of it on the ground). You'll be walking down a side street and suddenly a gust of foul smelling wind will gush past you from an alley. It's quite horrible.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;I ran across another Bob Marley infestation. This time in a store called "Indika Spliff": one of those "look at me, I'm all earth-friendly" stores (you know, with the incense and the thick weave handbags and such). They had Bob Marley drums and Bob Marley "cigarette papers".&lt;br /&gt;&lt;br /&gt;I spent some time today looking through really old books at not one, not two, but three really-old-book stores. I found only a few books of any interesting. Two of them were in English: One of them was "Goldsmith's History of England", which was way too expensive for what it was (150 Euro). I think that particular store was a little crazy.&lt;br /&gt;&lt;br /&gt;I liked the first store I had been to better, and ended up going back there as I hadn't been looking for long when they shut down for lunch. They had a book called "The Book of Days" (by Chambers), which looked _really_ cool and I was actually contemplating buying it. It was like 90 Euro, though. I just wrote down the title and author and decided I'd look it up online for other opinions of it.&lt;br /&gt;&lt;br /&gt;It turns out that University of Wisconsin (Goguls university...) has &lt;a href="http://www.library.wisc.edu/etext/BookofDays/"&gt;the _entire thing_ online&lt;/a&gt;, so no need to buy that one ;). It's quite interesting. If you have some time to burn I recommend reading through parts of it. I actually think I've run into it before... probably while researching wedding rings for some reason (I actually ran into that section of the book while I was flipping through it and it seemed somewhat familiar).&lt;br /&gt;&lt;a name="cutid2"&gt;&lt;/a&gt;&lt;br /&gt;The keyboard issues are getting _really_ confusing now. This Internet cafe only has two language settings installed for Windows: "Spanish (Traditional Sort)" and "English (British)". English (British) is the same horrible layout I was complaining about from the airport lounge at Hethro. So now my physical keyboard is Spanish, my mental layout is American, and the half-way approximation I've been stuck with is British. I think I've finally managed to randomly find most of the keys I could possibly need, *sigh*. (Ok, I take that back... I just needed a pipe and couldn't find it so I switched back to Spanish to type it.)&lt;br /&gt;&lt;br /&gt;And it doesn't matter what your language setting is or what computer you connect from, Google does it's stupid language setting _based on IP_ so I need to start remembering to type "&lt;a href="http://www.google.ca/"&gt;http://www.google.ca/&lt;/a&gt;", per Mika's suggestion, to get English. I keep forgetting so I've just been putting up with Spanish.&lt;br /&gt;&lt;br /&gt;Most of the music I've heard here is in English. It reminds me of that funny video with the Japanese people bopping along in the car to the rap music, having no idea what's being said. The restaurant Mark and I went to on the first day was playing U2. The music playing at the Internet cafe as I am typing this paragraph is one of my favorites: Sting's Mad About You.&lt;br /&gt;&lt;br /&gt;Ok, I think it's finally time for me to find some dinner :). (Spanish people eat late, so I was waiting for it to get a little later before going anywhere today. Yesterday, most of the few other few people at the restaurant at the same time I were other Americans or Brits.) Actually... damn... I just noticed as I put together my local timestamp thing for this entry that the entire Internet cafe is on London time for some reason. *Wonders if restaurants will even still be open, hehe.*</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:8174</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/8174.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=8174"/>
    <title>A Morning in Old Town Barcelona</title>
    <published>2004-04-05T12:58:43Z</published>
    <updated>2004-04-05T13:06:40Z</updated>
    <content type="html">(Local time: 15:58.) So I just ran into an example of a system that should have been run through a model checker such as SPIN (a la the conference I was just attending). I'm at an Internet cafe, and I went to buy a ticket using the little machine. I read all the instructions and futzed around in my pockets and put in two Euro. The machine showed my credit, and then a second or two later went back to the start screen. What happened is the damned thing timed out. The people who designed the system failed to make sure that all states where money was entered would eventually lead to a state where either a ticket was produced, the money is returned, or the user explicitely presses the "screw it, I'm sick of this, take my money" button (a property that would be very easy to express using simple temporal logic operators). I had absolutely no way to prove what just happened, and even if I did I don't know enough Spanish to really explain it, so I just sighed and put in another two Euro.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;Today has been pretty interesting. All the little shops that I walked by with Mark were closed yesterday, it being the weekend and it being Spain and these shops being rather small. Much as Mark is treating his entire trip as a recon mission for the next visit, yesterday was my recon trip for today. I got the lay of the land and started to understand how to get around the city center (including where most of the alleys lead, as most of the transportation and most of the shops are along them).&lt;br /&gt;&lt;br /&gt;One of the first stores I went in was this little store called Camden that was pretty much goth-central. I actually fit in quite well as I'm wearing mostly black today (my shirt isn't black, but it's mostly under my black-denim overshirt anyway). They had all the standard stuff like spiked belts and collars and little necklace trinkets and the such. The weird part, however, was there seemed to be an entire section of the store dedicated to Bob Marley merchandise. Bob Marley?!? O... K...&lt;br /&gt;&lt;br /&gt;Note that this store was _right nextdoor to_ a shop called "Bijou Brigette", with lots of pink trimming. It's pretty much the "I'm a pretty teenager" store. It sells bracelets and little skirts and cute purses... in other words an incredible contrast to the dark... Bob Marley... shop that it neighbored.&lt;br /&gt;&lt;a name="cutid2"&gt;&lt;/a&gt;&lt;br /&gt;To my friends who don't drink bottled water, I'm going to note that _everyone_ here does. If you go to a restaurant and say "agua" (or "aigua", which seems to be the Catalan variation) they come back with a little bottle of water for you. All the fancy restaurants don't come around with pitchers of water, they have large bottles of mineral water at the table (and come around bringing more if neccessary). I think if you asked for tap water everyone would think you were insane.&lt;br /&gt;&lt;br /&gt;There are a lot of beggars hanging around the cathedral, and a rather striking number of amputees just in the general area of downtown trying to get money from people. It felt weird entering the door of a church and simultaneously ignoring someone asking for aide, but I know that that isn't the most effective way to help them anyway. I don't know, when I got inside I donated some coins to the church.&lt;br /&gt;&lt;br /&gt;In retrospect I think I remember one person asking for money to buy water. I don't even think the bums drink tap water.&lt;br /&gt;&lt;br /&gt;Gambling may or may not be popular. I am not sure yet. Most of the bars have slot machines here, but I haven't seen anyone actually _using_ them. They may just be for show. *Shrug.*&lt;br /&gt;&lt;a name="cutid3"&gt;&lt;/a&gt;&lt;br /&gt;I ended up spending about 20 minutes today trying to catch a stray dog. My mother and I are just like this, we see a stray dog and we have to help (even though the owners often don't even care). This was actually the third day in a row that I've seen this dog. I first saw him trying to cross the street, almost getting hit by two cars, while Murat and I were walking around waiting for Lumina. I saw him again yesterday, wandering around still lost. When I saw him _again_ today I decided "ok, I'm going to try to do something". The dog _has tags_ and has a little leash attached to him as if it just got away from someone.&lt;br /&gt;&lt;br /&gt;The dog was _much_ more maneuverable than I was through a crowd of people. I ended up coming around at him from a different direction through another set of alleys and managed to get close to him. He ran away when I tried to get his collar, though. The second time I managed to be in a position to get his tags he walked away, turned around, and started barking at me and making a scene. He really didn't want to be helped. I finally had to just let him be.&lt;br /&gt;&lt;a name="cutid4"&gt;&lt;/a&gt;&lt;br /&gt;As I mentioned before, pidgeons are everywhere. Today I was looking at them overhead, thought "damned flying rodents", and not three seconds later my hand (which was in front of me almost in a "give it to me position") was covered in bird shit. I really, really hate pidgeons. My next stop was at a little restaurant where I washed my hands and had lunch.&lt;br /&gt;&lt;br /&gt;Which actually reminds me. Yesterday, I had the best fried calimari I've ever had. To the extent that &lt;span class='ljuser  ljuser-name_devilfish' lj:user='devilfish' style='white-space: nowrap;'&gt;&lt;a href='http://devilfish.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://devilfish.livejournal.com/'&gt;&lt;b&gt;devilfish&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; really need not worry about me eating any anymore when I get home as it's really ruined Santa Barbara's already rather low-end calimari for good.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:7923</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/7923.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=7923"/>
    <title>Random Spanish Notes</title>
    <published>2004-04-05T08:13:51Z</published>
    <updated>2004-04-05T18:46:04Z</updated>
    <content type="html">(Local Time: 12:38.) Many of the restaurants have English menus, but I swear they are _horribly_ translated. I went to a restaurant last night that decided to just give me an _only_ English menu and I wish they had just given me the Spanish one. I actually found myself asking the waitress "Is 'potatos with spicy sauce' 'potatas bravas'?". I ended up telling her my order in Spanish, hehe. One restaurant whose menu was posted outside actually translated "potatas bravas" as "spicy hot" with no mention of potatos.&lt;br /&gt;&lt;br /&gt;I also keep seeing various seafood dishes done "fisherman's style" which I actually think is a horrible, widespread mistranslation of either "in marinara sauce" or "marinated". The Spanish version is like "[clams] marinar" or "[clams] marinara" or something (I forgot which), and the English becomes either "fisherman style clams", or the really, really weird "clams in a seamanlike way".&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;There are pidgeons everywhere here. And people seem to actually _like_ them. I saw people happily playing with pidgeons, letting them fly up and land on their arms, not being at all concerned when they land on their head... I'm sorry, but coming from Chicago I view pidgeons as large flying rodents.&lt;br /&gt;&lt;br /&gt;Fast food is ubiquitous here. Every block or so you find a McDonald's. Mark had actually commented that he thinks there was one place on Las Ramblas where he could see three of them at once in different directions. And the fast food places are large. It's not like the issue seems to be a core one of capacity. I stopped at a little fast food sandwich shop today named Bocatta that I had been seeing on pretty much every side street to find it was two stories inside.&lt;br /&gt;&lt;br /&gt;Street performers here are actually useful and good. I tend to hate most street performers, but I've actually found myself giving money to some of these people as they really did add something. That's not to say they are _all_ good. There were a few people with some instruments who decided to come onto the subway the night before last who really should have paid _us_ to interrupt our conversation by making it impossible to hear each other over the racket. Oh, and I'm sick of hearing Aye Aye Carumba played on an accordian.&lt;br /&gt;&lt;br /&gt;A common form of street performance here are human statues. You will be walking around and see someone whose face and clothing are all painted with metallic paint standing perfectly still. If you give them some money they do some little action that shows off their props and costume. They're quite random: everything from a stone miner to a marble Elvis.&lt;br /&gt;&lt;br /&gt;Everyone seems to smoke here. And it's legal to smoke almost everywhere here. Many of the restaurants actually have cigarette machines in the dining area. The packages of cigarettes have massive notices on them, though, that take up one half of an entire face of the package, that say: Fumar Acorta La Vida ("Smoking Shortens Life"). The ground everywhere in the city is covered in cigarette butts.&lt;br /&gt;&lt;br /&gt;The magazine stands here (the ones out on the street, in the middle of the crowd) sell porn. And I don't just mean porn magazines, I mean DVDs and videos. [Edit]This is like _half the stand_. And not just this stand, but the stand across the street that's owned by the same company and the one down the street under different management, too. Do they really sell this much? Fast food and porn seem the staples here.[/Edit]&lt;br /&gt;&lt;br /&gt;I stopped at an Arcade to find "Dance Dance Revolution" is named "Dancing Stage" here. There were a lot of people crouded around it and I watched people for a whilee, but none of them (including the ones people seemed to look up to at it) were very good. I've seen Colin play too much, hehe. They had a _full size_ version of Ridge Racer (aptly named "Ridge Racer Full Scale"). They had an entire car there that you got in with a partial wrap around screen out in front of the car. The game was still Ridge Racer, though, with horrible resolution. And the "wrap around screen" was simulated with projector tricks and didn't actually have the right spatial projection for rendering.&lt;br /&gt;&lt;br /&gt;I saw a street clock here that was quite interesting. It was built into the sidewalk and used little inset lights for the endpoints of the hands.&lt;br /&gt;&lt;br /&gt;[Edit]I forgot the little local time indicator and I also managed to forget to type the punchline to the magazine stand porn commentary.[/Edit]</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:7496</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/7496.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=7496"/>
    <title>Final Conference Update</title>
    <published>2004-04-04T11:59:22Z</published>
    <updated>2004-04-05T13:10:01Z</updated>
    <content type="html">(Local Time: 14:58.)&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;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.&lt;br /&gt;&lt;br /&gt;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.)&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;a name="cutid2"&gt;&lt;/a&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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".&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;a name="cutid3"&gt;&lt;/a&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;a name="cutid4"&gt;&lt;/a&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;a name="cutid5"&gt;&lt;/a&gt;&lt;br /&gt;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.)&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;a name="cutid6"&gt;&lt;/a&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. :)&lt;br /&gt;&lt;br /&gt;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.*</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:7386</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/7386.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=7386"/>
    <title>C++, C--, and CCS</title>
    <published>2004-04-03T00:42:57Z</published>
    <updated>2004-04-03T09:35:21Z</updated>
    <content type="html">(Local time: 02:42.) Sometime in the middle of tomorrow I'm going to go through here and edit this to add the names of the talks as I managed to leave my schedule at Murat's hotel so I don't remember exactly what everything was today. :(&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;I ended up sleeping in a little this morning and then spent an hour working on the Internet rather than heading out for talks, so I ended up showing up almost at the end of the second actual talk today (not counting the invited lecture), "?elimating partial redundant flow graphs?". It had something to do with finding redundant code sections that weren't lexically or even instructionaly identical but still happened to evaluate to the same values. They compared their technique to something called Global Value Numbering, which got mentioned by someone else later in the day, but I unfortunately can't say much about as I'm not sure what it is.&lt;br /&gt;&lt;br /&gt;The next talk I saw was on "?scalar replacement?". It was done by a rather well spoken graduate student and covered taking rather complex looping structures and removing all possible redundant loads from them. This technique works not only for things that can be brought out of a loop, but values that are used, for example, during two consecutive loop runs. Imagine an array implementation of fibonacci: each loop reads two elements and writes one. If you burned two extra registers on it, you could half one register for the last two entries in the array. Then you add the second onto the first, store that value to memory, and swap the registers. Repeaing this would perform the entire sequence with no more loads.&lt;br /&gt;&lt;br /&gt;Taken to the extreme, however, this can burn many, many registers. He was showing it's usage mainly for FPGAs or other architectures were you might have 64 registers available for doing work. Then you might take multiply nested loop structures and a set of 30-some registers and keep rotating the registers in a loop feeding new data in on one end. He had quite good numbers, but people were questioning how he measured the number of registers that were used by the various algorithms tested. I can't say that I entirely understood or even remember what little I did, what the issues were that people were complaining about.&lt;br /&gt;&lt;br /&gt;After this was a talk on optimization of value-type genericity. In many generics implementations, rather than doing multiple expansions a la C++, they will simply copy all the value-types to the heap and then have a single instantiation that really is internally working off of Object and doing casts along the border interface. (Java 1.5 is an example of this scheme.) The speaker (a graduate student) is just finishing his thesis work on writing a small object-oriented language that had generics that worked in this fashion but did lazy boxing in order to gain a performance advantage when the boxing operation wasn't actually neccessary (such as you declared some value types on the stack and then called some generic object implementation to do some work on them before leaving your stack frame, where the algorithm died before the objects did).&lt;br /&gt;&lt;br /&gt;He managed to get some interesting speedup numbers with a single case of slowdown that was explainable to something he simply hadn't gotten around to implementing in the algorithm (i.e., it was fixable). It worked by allowing stack pointers to data earlier on the stack without doing any copying (as that is a safe operation as the pointer will unwind before the data does) and only doing box operations when the pointer is stored into the field of some heap object. I had a complaint involving his algorithm causing multiple copies of the object to exist behind the backs of people operating on it, but I got a chance to talk with him a lot afterwards about the implementation of value-types in various languages (he, being a graduate student, ended up being a nice person to talk to), and he was making an assumption (that was in his paper but that he had forgotten to mention in the talk) that value types would be immutable that I wasn't (my coming from a background in C++ and low-level .NET, where value types are definitely mutable).&lt;br /&gt;&lt;br /&gt;It turns out the main developer of C--, Norman Ramsey, is at this conference and seemed rather interested in what garbage collector this language used and had a few issues that were brought up during question and answer period and then that he followed up with after the talk was over. In general I got a rather negative impression of Norman. When I asked my question involving the semantics of the object copy operations he was making this kind of disgruntled shaking of his head motion (he evidently was also in the "immutable value type camp") and then he kept being rather actively hostile towards me afterwards while we were all talking to the speaker. Example: he made a comment about usage statistics tracking in Boehm's garbage collector and how it might have it, so I commented that Boehm actually did just implement that about a month and a half ago for the gcj project and Norman gave me an evil look and just ignored the comment. He spent most of the time I saw him going on about how wonderful C-- is and how everyone should be using it for all their compiler backends... it was just irritating how he kept coopting every discussion into that.&lt;br /&gt;&lt;br /&gt;I also got to talking with another graduate student (one who was also talking with the same speaker) afterwards and walked with him to the evil sandwich boxes (which I didn't even bother to get today). He asked what I was working on and why I was there, so I gave him the entire explanation of what jMonitor was and how it fit into everything and how it was different than just aspect-oriented programming (as he asked about that and I consider it a general concern of the work). Once again, graduate student == nice. The pattern just goes on like this for quite a while. After he got his sandwich box I split off and went to eat lunch at the same little on-campus restaurant I did yesterday and got the same meal.&lt;br /&gt;&lt;a name="cutid2"&gt;&lt;/a&gt;&lt;br /&gt;After lunch I went to the SPIN conference for a while to listen to a few presentations of SPIN-related tools. I really didn't get much about of this as I'm not nearly enough into model checking for it, but it was at least fun to watch the first guy talk (the second two were rather boring to me, and one of them completely seemed to not understand memory maps even though they really should have been considered crucial to the heavily file-as-array I/O that he was doing). Turns out one of his unexplanables in his graphs probably got explained by one of the people in the audience who had seen similar kinds of results before in things that he had done. The talk was on a parallel model checker where states of the program were checked simultaneously on multiple computers, but there was a weird distribution of work loads that would cause most of the CPUs to finish long before the last few did, thereby causing the time to be drastically inflated. The explanation was that there was a problem with the hashing algorithm causing too much locking between multiple computers due to some particular quirk in the particular algorithm that it seemed only model checking people probably used, so I can't explain it, hehe.&lt;br /&gt;&lt;br /&gt;The craziest part of that explanation, though, was the beginning of the talk describing how the tool was "extensible". I actually couldn't tell if it was a joke or not. The gist was that it was all written in C++ and if you wanted to extend anything you A) should think about it first as it might be a waste of time, think for a few hours to save weeks worth of coding, B) determined what code you needed to modify, C) derived a class from the class that contained that code, D) added the virtual keyword as required to make the methods you needed to change overridable, and E) override the methods with your new implementation. So in other words: you retrofit the codebase as you would any other C++ program to use inheritence. No one laughed, though, and he did it with a perfectly straight face, so I don't think it was a joke... oh well.&lt;br /&gt;&lt;a name="cutid3"&gt;&lt;/a&gt;&lt;br /&gt;When the tool presentations were over I ran back to the Compiler Construction conference and caught the end of a talk called "" on what sounded like (from the very end of the talk and the _long_ q/a session afterwards) a CPU architecture that used much less CPU power but sometimes caused errors and didn't check important conditions. I wasn't sure if it that was because it would actually run out of power if too many wires were active or what, but he got reamed by the audience. Some of the complaints weren't all that valid (and actually caused small arguments within the audience), but a killer one was the author didn't understand what random number distributions were. All his distributions were uniform, which when interrogated he said was fine as that's why people used random number generators for these kinds of tests. I didn't see the talk, but I think the issue might have been that the architecture would rely on not needing too much power for too long a time, and if you got unlucky and kept getting rather large numbers you'd get very screwed very fast.&lt;br /&gt;&lt;br /&gt;The talk after this was by someone from Cambridge. The talk was done with good old fashioned projector slide technology. The work was covered by a grant from ARM, but I guess they didn't have enough money for a laptop. This guy seemed interesting but he was pretty much reading his slides which got very boring very fast. His work was on an optimization for the "ARM Thumb" CPUs (a compressed instruction set version of ARM) to better utilize a specific instruction that lets you do multiple load/store operations from consecutive memory operations at once into monotonically increasing registers. (So like load the memory from 4h to 12h into registers 4, 6, and 7.) He managed to beat gcc by a bit on code size (which is the main reason people use the Thumb and therefor the most important consideration) and usually beat the ARM commercial compiler. However what was weird was that his optimization seemed to only save him a few instructions. I hadn't even noticed that when he went through his talk but someone in the audience did and asked him about it. I think the audience concensus (he disagrees) was that he just got lucky with his register allocator algorithm and chose one much better than gcc or ARM and therefor got good instruction counts regardless of this optimization.&lt;br /&gt;&lt;a name="cutid4"&gt;&lt;/a&gt;&lt;br /&gt;During the coffee break I headed back to the Vertex building in order to pick up a copy of a book I had bought a few days earlier at the Springer publishing stand. I ended up getting into a rather long conversation with the guy working there, an editor for Springer named Ronan Nugent, about education and programs like CCS. He was quite interested in it and felt it was a program that fostering creativity was incredibly important, and the kind of atmosphere I was describing at CCS would really only end up happening in America due to silly social aspects in academia in Europe.&lt;br /&gt;&lt;br /&gt;Another person I spent time talking to about CCS was Mark last night. He apparently went to a liberal arts college in Washington named Evergreen that had a somewhat similar system involving students doing a lot of independant study work and being able to build their own curiculumms. I find the story of CCS tends to interest a lot of people. :)&lt;br /&gt;&lt;br /&gt;I headed back to CC then to find out I had spent over and hour talking with Ronan and had missed the next talk and most of the last talk. I went in and sat next to Mark, who was falling asleep. The presentation was on using Lua to due dynamic stack frame allocation, but as I missed most of I don't really understand what the usage cases are. It's technology that has been integrated into C--, however, I do know.&lt;br /&gt;&lt;a name="cutid5"&gt;&lt;/a&gt;&lt;br /&gt;When that talk was over and the CC conference officially concluded I headed back to the computer rooms until they closed and the last few of us got kicked out. One of the other couple people was the person whom I thought had worked on C-Front from the day before (who had been talking with Scott). I took the opportunity to start a conversation with him. It turns out I had misheard that conversation snippet and he was working on the gcc C++ compiler. I had a _lot_ to talk to him about and we got along really well. His name was Gabriel DOS REIS (his capitalization, not mine) and he's been doing some papers with Bjarne Stroustroup about the future of C++ and where it's going. I brought up some of my really weird issues I had with using templates in hairy situations and we traded some examples of intersting C++isms back and forth.&lt;br /&gt;&lt;br /&gt;Now, you might way to jump and say "Hah! A professor you get along with!", but my response will be "He isn't a CS professor, though; his work is in differential geometry. So there.". So now I only believe that _CS_ professors who attend this conference are generally snooty and mean. :) It turns out he got into C++ because no one had a good implementation of std::valarray a while back (a super, super fast templated array type designed for usage in numerical computing and largely added to the standard as a response to Fortran; an addition that largely got _ignored_ later because all the numerical computation people on the standards committee stopped contributing and never finished some key standards work that needs to go into it before it is actually useful) so he implemented it and gave it to gcc. While doing that he kept trying to use partial template specialization for various reasons and kept breaking gcc so he then moved to improving the compiler.&lt;br /&gt;&lt;br /&gt;He asked for my e-mail address and I got his, so I hope we will be talking occasionally. When I get back to SB I'm probably going to go through and write up a list of all the issues I currently have with C++ that I haven't seen addressed by enhancement proposals yet and see what he thinks about them.&lt;br /&gt;&lt;br /&gt;One thing I've been really irritated with is a recent issue I've had (and spent some time describing to Colin) involving the inability to pass template templates through standard templates without coding up a combinitorial explosion of different implementations for different number of template template arguments. It turns out that the new usage of the "auto" keyword I had already read about is, in even newer proposals (specifically that he and Bjarne had done), capable of solving this problem. When I get back I'm going to be reading over those papers. I had actually seen them but didn't get around to spending time looking at the details of them.&lt;br /&gt;&lt;a name="cutid6"&gt;&lt;/a&gt;&lt;br /&gt;After Gabriel and I parted ways I called Murat again (he hadn't been in his hotel room earlier) and arranged to meet him there to do some preparatory work for our presentation tomorrow. I got on the subway and met him. Talking to a familiar person in English was _so_ nice. :) I can't wait to get home, hehe. I talked with him up until when I absolutely needed to leave for the SPIN dinner I had registered for, and then got directions to that from the hotel desk downstairs. I decided it was far enough away that I got a taxi to go there.&lt;br /&gt;&lt;br /&gt;The taxi ride was the most enjoyable I've had. The driver and I spent most of the time talking to each other. I was talking to him in broken Spanish, sometimes furiously looking things up in my English to... Catalan (not Spanish I noticed)... dictionary, and he was speaking to me in broken English. He is 35 years old and his name is Gabriel. :) Our conversation was largely us telling each other how horrible our learn-a-foriegn-language experiences had been. For me it was my whole story of spending 4 years on French and switching to Spanish. For him it was the corriculum switching out from under him, changing from French to English. ;)&lt;br /&gt;&lt;br /&gt;Ok, I'm going to cut it here before I describe the dinner as I'm really tired and I want to go to bed. (Yes, I realize I'm falling behind, but tomorrow is the end of the busy part of the conference so I'll be able to catch up in time for the end of the conference the day after, hehe.)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:6980</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/6980.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=6980"/>
    <title>To Make Something More Clear</title>
    <published>2004-04-02T12:08:25Z</published>
    <updated>2004-04-02T12:12:43Z</updated>
    <content type="html">I mentioned it before, but I think I want to reiterate it:&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;Most of the people here are rather unfriendly. _Especially_ to the American "graduate" student that I am. There's definitely a correlation involving professors. I got along with Mark (from Microsoft), Bob (from DataPower) and the guy on the bus whose name I unfortunately forgot (from the company I also forgot... I think I saw him in the other room, will have stop by there right after I'm done typing this and get his name again).&lt;br /&gt;&lt;br /&gt;As for academics, I've talked with a few graduate students and that tends to go well. Gogul is a graduate student, not a professor; and I just met another one a little earlier who started asking me questions about jMonitor and what it's purpose is and how it relates to aspect-oriented programming.&lt;br /&gt;&lt;br /&gt;That leaves professors. I managed to get along with the people from Berkely (possibly because I was also from California) and the one guy from Belgium who was interested in American politics. Most people either give me weird looks or just try to ignore me (i.e., avoid looking directly at me and only respond to me when directly asked a question, and then promptly avert their eyes and stance).&lt;br /&gt;&lt;br /&gt;This is a _very_ different atmosphere than all previous conferences I've been to. At Conference.NET there was this continual jovial nature to _everything_. You almost weren't allowed to not join in and talk and play games with other people. With GDC everyone tends to be interested in what everyone else is doing as everyone is working on similar issues and have things to talk about so there's never an issue approaching anyone.&lt;br /&gt;&lt;br /&gt;Yet even TOOLS, the academic conference I went to back in Santa Barbara because it had a .NET-oriented conference held as part of it that year and I had been invited to talk about my decompiler, involved a number of really friendly people. Everyone was doing stuff I didn't really care anything about, but everyone was approachable and if you didn't approach someone they'd approach you. I met a _number_ of fun professors there.&lt;br /&gt;&lt;br /&gt;I don't know... frankly, if anyone was thinking about doing it in the future, I disrecommend they attend this conference. The main reason to bother actually going to an academic conference rather than just reading the papers in the proceedings is to get to talk with the people at the conference about related topics, or to ask them questions, and this is just not a good atmosphere to do that in.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid2"&gt;&lt;/a&gt;I am definitely going to PDC (Microsoft's Professial Developer's Conference) next year, though. Mark was telling me about it during dinner last night. I almost don't care how much it costs (I don't think it could possibly end up being as much as I've spent to go to this conference), but Mark was telling me they had student discounts.&lt;br /&gt;&lt;br /&gt;Apparently the format is like GDC but less "let's screw everyone out of their money" (a property that E3, GDC, and this conference all share). There are lots of different simultaneous tracks ranging the entire gamut from lectures to round tables to birds-of-a-feather (a category missed by GDC, a category that is more of a directed panel discussion that's still open to audience participation).&lt;br /&gt;&lt;br /&gt;Pretty much _all_ Microsoft developers are there, so all work at Microsoft pretty much dies during that week. There's soda and coffee and food out continually during the day. Otherwise, everyone would pass out as the conference starts each day at 8am and sessions don't end until _1am_.&lt;br /&gt;&lt;br /&gt;Well, I'm off to walk over to the building the SPIN conference is being held in. I'm going to watch all the Tool presentations there. *Will cover the two talks he saw this morning in a later post.*</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:6687</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/6687.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=6687"/>
    <title>Finally Got Around Town Some</title>
    <published>2004-04-02T07:38:42Z</published>
    <updated>2004-04-02T08:17:11Z</updated>
    <content type="html">(Local time: 09:37.) Ahhhh... *is typing on the FK-2001 that he brought with him from the US rather than the evil, evil European keyboards he's been relagated to for most of this voyage*.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;So today I managed to miss the other really good-sounding talk this morning that I had wanted to see at the conference (and which was the main reason I even bothered to register for the SPIN sub-conference): "Directed Error Detection in C++ with the Assembly-Level Model Checker StEAM". I've been glancing through the conference proceedings from SPIN (which I apparently got even though I didn't think I would at the student price for that conference) and it really seemed like it would have been a good talk.&lt;br /&gt;&lt;br /&gt;The idea has something to do with modifying a virtual machine that's designed to safely execute sandboxed C++ code (in this particular instance, ICVM, the Internet C Virtual Machine, something I've run into before) in order to analyze how the program operates for purposes of extracting a model to do exaustive model checking on. The latter part isn't so interesting to me, but how they accomplished the former is the meat of the work and definitely something I need to spend more time reading.&lt;br /&gt;&lt;a name="cutid2"&gt;&lt;/a&gt;&lt;br /&gt;This afternoon's talks ended up being amazing. The first was "Elkhound: a fast, practical GLR parser generator". GLR stands for "Generalized" LR. Rather than have a fixed amount of lookahead to determine your options, with GLR you just do them all and then require the developer to implement functions to disambiguate or merge multiple cases (although it is perfectly legal for it to just punt and return a syntax item that contains both possibilities).&lt;br /&gt;&lt;br /&gt;After he explained the process a little bit he started to explain why anyone would care, and his example was C++ and the two standard "ambiguous grammar" samples that I always give people (templates and types). He had a slightly cooler example of the ambiguous type sample, however:  "(a) &amp; (b)", which might be a cast of the address of b to a or the expression a and b. Also brought up is that the general rule in C++ is "if it could be a declaration then it is a declaration", hehe.&lt;br /&gt;&lt;br /&gt;The speaker's name was Scott McPeak, and he's from UC Berkeley. His co-author, also from Berkeley, was George Necula. Elkhound is the name of his _C++ grammer in GLR form_. Just before this talk began I was actually thinking to myself how to solve the very problem that GLR managed to _cut to shreds_. The talk was _definitely_ enlightening.&lt;br /&gt;&lt;br /&gt;The general solutions are you just parse it both ways and then disambiguate at the end of the parsing as a second pass over the parse tree. The standard solution involves only doing partial parsing and then storing the actual symbols of the stuff you couldn't parse and going back over it later to parse it, which is much much more of a pain than what GLR lets you do.&lt;br /&gt;&lt;br /&gt;During his talk there was a man, whom I later overheard worked on the C-Front C++ compiler, who complained that a particular example _should_ have caused an error and not be a tricky example of ambiguous parsing. It was _awesome_. The guy made the mistake of backing himself up by saying "gcc would throw an error on that" and rattled off the top of his head what the error was. Another person in the audience broke in and said rather deadpan: "g++ is not the C++ standard".&lt;br /&gt;&lt;br /&gt;The question got punted but a few minutes later the guy had the _C++ standard out on his laptop_ and was reading the sentence that backed his position up, and then the argument turned into what the correct interpretation of the scripture was. I had wished I had brought my tablet today as I could have pulled _my_ copy of the standard out and joined the argument. :P I think Scott ended up winning in the end, but the question wasn't entirely resolved during the talk and I didn't get to be part of the discussion that they had during the coffee break.&lt;br /&gt;&lt;br /&gt;The talk right after his was "Generalized parsing: Some engineering costs", which was given by a rather humerous speaker from the UK. Apparently Eiffel also has some interesting language parsing issues. He paraphrased the Eiffel spec as saying "if you don't need to put a comma in then don't bother". Another gem from that talk was the explanation of what happened to Earley, a professor who designed a particular form of parsing. The speaker got in touch with him, and now he's into psycho-harmony or something like that, giving self improvement and team-building type talks. "Earley is no longer working in compiler theory and he wished me well."&lt;br /&gt;&lt;br /&gt;This speaker also won me over with a little aside he made about the term "Graph-Structured Stack", which was used during the Elkhound talk and apparently comes up a lot while doing work on generalized parsing. The term pretty much means what might happen to a stack in a purely functional environment: you keep a linked list and rather than continually copying the entire stack when you add an element to it and then want to clone it you just give people subsets of your stack and rely on garbage collection or reference counting or something to remove all the nodes that are no longer being used at the tops of your stacks. As you don't need to keep back references most of your stack is just constant data anyway so you can share it. His point was that as far as he's concerned the term should be "Stack-Structured Graph", and he gave a quick exasperated argument that I didn't quite follow, but it was rather endearing anyway. ;P&lt;br /&gt;&lt;a name="cutid3"&gt;&lt;/a&gt;&lt;br /&gt;During the coffee break Scott was talking with the C-Front person, but right afterwards I got a chance to talk to him for a minute and ask him some questions about his parser. He hasn't done much standards testing on it yet, largely because it's just a parser and not a compiler. It probably accepts some things that aren't legal, but it seems to correctly parse all things that _are_ legal. He designed it for usage with program analysis frameworks, so you could look over a program and try to understand properties or invariants of it (which I later found out is work that George is doing).&lt;br /&gt;&lt;br /&gt;I then left him to talk to someone else and went into the conference room to realize that I had already decided the next talks were all boring for the rest of the day. I had just walked in on "An automata-theoretic algorithm for counting solutions to Presburger formulas", attendence was _quite_ down... and the follow up to that was going to be "A symbolic approach to Bernstein expansion for program analysis and optimization". As I no longer had a reason to stay as I had gotten to talk to Scott, so I went right back out and got into a conversation with a grad student named Andy who was talking with Scott and a few other people. Scott and George went outside and were talking for a minute, and then Scott leaned his head in and said to Andy that they were going to walk a little around Barcelona. Andy asked if he could tag along, so I asked as well and we all headed off.&lt;br /&gt;&lt;br /&gt;On the way I started a conversation on the super-specialized store phenomenon I brought up before here, which then transitioned to mad cow disease and the state of beef in the United States. George is from Italy and he was complaining about how beef seems to just have something fundamentally wrong with it in the US. I believe he described it as being the wrong color and how it shouldn't A) have water come out and B) clump together as you cook it.&lt;br /&gt;&lt;br /&gt;Somewhere along here, I realized that all three of these people were from Berkeley, and Andy was one of Scott's graduate students, so I had managed to just tack myself onto this excursion as an overly friendly also-Californian, hehe. We stopped at their hotel to drop off some of their stuff (at which point I was _glad_ that I didn't have my tablet with me today as I was only carrying around a really small binder) and then headed for the metro to go to the pier.&lt;br /&gt;&lt;br /&gt;In the metro station we ran into another person from ETAPS named Mark Lewin, who works at Microsoft Research. He's always wanted to come to Barcelona, but got in yesterday and has to leave tomorrow for a conference in India, so has decided he needs to go out and treat this as a "recon mission" for a later visit. He ended up joining us on our trek to the pier.&lt;br /&gt;&lt;br /&gt;I ended up talking a lot with Mark about .NET, language interop and the usage of meta programming and the such, and when he wanted to enact his original plan to go into town and walk down the Ronda de Dalt and the Berkeley crew was going to go around the water front some more I went with Mark. We spent the next two hours or so wandering around the downtown shopping area of Barcelona, waiting for restaurants to open up (as no self-respecting restaurant here opens for dinner before 7:30).&lt;br /&gt;&lt;br /&gt;There were various street performers outside, each of which had attracted rather large crowds. One was a group of people dressed as American Indians playing... polynesian music. But by far the _largest_ croud had been gathered around the Spanish rendition of Michael Jackson doing the moonwalk. On the way up to that I had actually seen a few people doing it and had wondered why, hehe.&lt;br /&gt;&lt;br /&gt;One of the stops we made was to the Cathedral, which reminded me of one I'd been to before. I'm guessing in Rome.&lt;br /&gt;&lt;a name="cutid4"&gt;&lt;/a&gt;&lt;br /&gt;Some of the cooler speciality shops from the day:&lt;br /&gt;&lt;br /&gt;o anything and everything related to fishing, from tackle to pictures of fishing boats&lt;br /&gt;o anything and everything that clucks or chirps, from parakeets to a roosters (who were crowing every now and again); note that this one was out in the open air and wasn't actually inside a store&lt;br /&gt;o "aparells de precisio", or anything and everything that can be used for a technical measurement, from telescopes to clocks&lt;br /&gt;o anything and everything that can be used as a doll or action figure by a small child (this store was _jam packed_ with little things)&lt;br /&gt;o anything and everything neon, from shirts to frisbees (this store was a little bare, however, but I'm pretty sure neon was it's theme)&lt;br /&gt;o anything and everything bought by the stereotypical female, from shoes to handbags and not much inbetween&lt;br /&gt;o anything and everything fried, from churros to french fries&lt;br /&gt;o anything and everything related to woman's legware, from stockings to pantyhose&lt;br /&gt;&lt;br /&gt;While going through one of the longer shop-alleys we passed by an open-air coffee shop. It was quite surprising, as at first you thought there was just a cutout section of the wall to your right and then you notice there are tables and couches there and an almost indoor-looking setting... yet almost right onss the street outside.&lt;br /&gt;&lt;br /&gt;*At this point in writing I fell asleep on the couch, got woken up by a phone call by Murat, and continued the next morning, so the caliber or style of the writing may change drastically. Although, really, some of the text above here was also written this morning as I tend to go back and add paragraphs and edit stuff constantly.*&lt;br /&gt;&lt;br /&gt;Occasionally, I would get this intersting feeling of what other people around us were perceiving: two foreigners walking through the city, speaking gibberish to each other quite rapidly and getting excited about who knows what (as foreigners can be weird). I managed to mentally shift perspective for a minute to try to feel like I was one of the many Norwegians I've met in Santa Barbara walking through a sea of English-only speakers.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid5"&gt;&lt;/a&gt;For dinner, Mark and I went to a place called something like American Soda, which served tapas and a bunch of rather Spanish-specific dishes despite it's name. Tapas, Mark explained to me, are small appetizer-like dishes of random food items that people will often buy a set of in order to cosntruct a meal. I will put it forward as the Spanish analogue to dimsum.&lt;br /&gt;&lt;br /&gt;The menu had a rather badly translated English section, which made it somewhat easier, but much less fun, to order. As far as I could tell Mark couldn't speak _any_ Spanish and kept taking English solutions to problems, thereby counteracting my so-far strategy of using broken Spanish for most things and a British accent for the remaining few. (Like I am damned sure I could have asked the waiter for the specific kind of menu that we wanted without having had to resort to English, hehe.)&lt;br /&gt;&lt;br /&gt;Mark bought the "grilled octopus", which were a number of whole, seemingly baby, octopi (no more than a cm across the head and maybe an inch across the tenticals) that had just been cooked with no other special preparation and served in a little bowl of ten or so. I just couldn't look at that little bowl of doom without getting this horrible feeling inside and imagining &lt;span class='ljuser  ljuser-name_devilfish' lj:user='devilfish' style='white-space: nowrap;'&gt;&lt;a href='http://devilfish.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://devilfish.livejournal.com/'&gt;&lt;b&gt;devilfish&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; here screaming and killing people. Needless to say, I didn't have any.&lt;br /&gt;&lt;a name="cutid6"&gt;&lt;/a&gt;&lt;br /&gt;Afterwards, we took the metro back to the area of the University, and I stopped at Los Cortes Ingles before taking a taxi back to my hotel. Los Cortes Ingles is a massive, massive shopping mall that George had talked about a little earlier in the day. It's one of the few non-speciality shops that has so far infultrated. (Quick comment: apparently Costco has worked out a deal to put a few stores on the outskirts of London, so it will be interesting to see how that changes things there. They apparently have some larger stores, but nothing quite as general as a Costco.)&lt;br /&gt;&lt;br /&gt;The first floor felt like you had just entered a Marshal Fields, or a Sears (with a number of tables and islands for selling perfume and makeup, with clothing visible in the distance). But that's not the end of the journey. I didn't explore the entire store, but I _did_ go through the area that felt like a Barnes and Nobels. I stopped to buy myself a "Espanol-Ingles" dictionary (they don't have "Spanish/English" ones here, of course) so I could finally look up "sorry!", which I was in drastic need up, as well as whatever other words might come up during the remainder of the trip. Mark had made the rather intelligent decision to buy a Barcelona map/travel guide at Hethro while he was still in English speaking territory. I wish I had thought of that as buying one here is almost as bad as going to the US and trying to buy a Chicago travel guide in German at your average store... it's just not really in demand enough to be carried.&lt;br /&gt;&lt;br /&gt;Well, today was quite fun, largely because I managed to actual spend time other other people rather than just wander around alone and isolated in a sea of people whom I can't effectively talk to, hehe. It also gave me an opportunity to get a feel for the area and learn how to use the Metro, so when I come back on Monday/Tuesday after the conference to wander around all the shopping areas and spend more time browsing I'll be in a better position to not get horribly lost. ;P&lt;br /&gt;&lt;br /&gt;*Goes off to logon to the Internet, do some administrivia, and try calling Murat at his hotel to see where we can meet up today.*</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:6545</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/6545.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=6545"/>
    <title>Status Back Home...</title>
    <published>2004-04-01T12:29:39Z</published>
    <updated>2004-04-01T12:29:39Z</updated>
    <content type="html">(Local time: 14:25.) So what's happening with our class? I've so far heard nothing. You guys need to keep me up-to-date with what's going on back there! Did the course get rescheduled? Did anyone even show up? Did David assign any reading? *Is trapped in the box and can't get out.* David isn't signing onto the IRC channel anymore, either... *wonders if David's avoiding him*.&lt;br /&gt;&lt;br /&gt;Mika: Could you poke David for me? ;P&lt;br /&gt;&lt;br /&gt;Also, anyone who wants mailing lists (David: *hint hint*... course list?), I can somewhat easily give them to people whenever I login (which I am doing quite often, as is apparent, hehe).</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:6264</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/6264.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=6264"/>
    <title>Rubik's Cube and Error Bars</title>
    <published>2004-04-01T12:06:52Z</published>
    <updated>2004-04-03T09:32:28Z</updated>
    <content type="html">(Local time: 14:04.) Oh my god this keyboard is _mean_. It has taught me some interesting things about the way that I type, though. Like I want to press '*', so I seem to glance down at the keyboard to verify where it is and go for it. I never noticed that I did that before. But now, when I go to do it, and _don't find a * key on the keyboard_ (as the keys are printed in ES and I've remapped them with software back to EN) my algorithm deadlocks and I don't press any keys. Yet, if I explicitly tell myself "don't look, just Zen it", then I find the * just fine and it all works out.&lt;br /&gt;&lt;br /&gt;So this morning I went to an invited talk entitled "What the Small Rubik's Cube Taught Me on Data Structures, Information Theory and Randomisation". Turned out that I might actually be able to use something he talked about in Menes's dictionary structures, but I'll need to read his paper to really make sure.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;He started with a point involving the complexity of the state space of a tiny 2x2x2 Rubik's cube. Apparently it has 3.6 million states (I tried to independantly verify this but I couldn't figure out (7! * 3^7) on paper without spending more time than I considered it worth). Regardless, he talked about naive ways to store subsets of the powerset of that set (for the non-mathematic programmers I know, pretty much an std::set of the things, where the "thing" is a configuration of the cube).&lt;br /&gt;&lt;br /&gt;His point was that "naive" analysis showed a particular minimum amount of memory needed by such a storage system, worst case, and that his method was much, much smaller than that, which initially made him think he had run into some weird contradiction. I quite wanted to see Steve's reaction to this talk. My initial one was "I think he calculated this wrong..." followed by "no, he is just assuming the rest of the world is incredibly stupid?...". Aka, his "naive" analysis was quite naive indeed.&lt;br /&gt;&lt;br /&gt;Today marked the beginning of the Compiler Construction conference, a part of ETAPS. The first talk there was Gogul's "Analyzing memory accesses in x86 executables". It turns out his method is quite simple, but still quite interesting. He also mentioned an algorithm I hadn't heard of before: Reduced Integral Convergence. That and a good Binary Decision Diagram have been added to Menes's todo list today.&lt;br /&gt;&lt;br /&gt;After that came "The limits of alias analysis for scalar optimizations", which was well presented but I don't think left many people feeling very satisfied. The issue comes from a typical complaint about C: that because you have pointers you can cause "aliasing" and be unable to make simple optimizations. "Aliasing" is where the value of one variable may or may not be changed through a pointer indirection before it's next use. In this case the variable must be reloaded from memory and cannot be stored in a register or considered a constant. Languages without pointers don't have these problems, and often can be optimized much more beneficially.&lt;br /&gt;&lt;br /&gt;He made the argument that alias analysis seems like a waste of time because little gains are actually had from doing any more than a simple linear time scan. His technique was quite interesting: he established an upper bound on the number of optimizations that could possibly have been performed by just doing a labotomy on the compiler and forcing it to always assume nothing is aliased. He had some solid numbers and largely had an interesting point. I was a little concerned that he was assuming that the compiler developers were making good usage of the alias information, but from a practical perspective it's at least good information for where to direct your research time immediately to improve compiled performance.&lt;br /&gt;&lt;br /&gt;It turns out that there were a bunch of things I didn't catch, though, and there were a flurry of questions. Someone noticed that the two languages he had looked at were C and Fortran, neither of which is object oriented and whether he had looked at the results for any OO languages. He said that he hadn't, which quite undermined his data as many people use OO languages and they tend to have _much_ worse problems with pointer aliasing as you are often working with pointers to objects and references to their fields at the same time.&lt;br /&gt;&lt;br /&gt;The next question had to do with whether he had tried to establish a lower bound, as based on the numbers it almost seemed as if alias analysis wasn't really being used anyway. That way you could have determined how many of the optimizations that were performed actually might have been stopped if there was an alias found (which would be a good way of addressing my vague complaint).&lt;br /&gt;&lt;br /&gt;But I want to say the coolest question was someone who asked why he counted the _number of optimizations_ that were done as opposed to the _increase in performance_ of the running system, as it might be that the few optimizations that weren't performed were actually critical. It hadn't even occured to me that that's what he was doing, and it really _was_ weird.&lt;br /&gt;&lt;br /&gt;Next came "Pruning interference and ready dependance for slicing concurrent Java programs", which I didn't really understand and didn't end up paying much attention to. I did note that his graphs were very misleading, though: it looked like there were amazing gains when really the y-axis started 90% of the way through his range. So for example, one graph went from 75000 to 105000, and he was showing what seemed at a glance to be a massive improvement from 76000 to two largely-controlled sets of 84000 and 86000.&lt;br /&gt;&lt;br /&gt;Finally was "Data dependence profiling for speculative optimizations", which got _destroyed_ by one questioner. It was _HOT_! He asked why error bars weren't shown on the graphs and whether the results were significant. The speaker asked for clarification. The questioner asked what the variance of the set was and reiterated asking what the error bars would have looked like. The speaker kind of mumbled "error bars...". The questioner explained what an error bar was and how it related to variance. The speaker then asked "is this an error bar?" pointing at one of his data bars. He also didn't know what variance was. The questioner walked him through it.&lt;br /&gt;&lt;br /&gt;It turned out the data came from the average of 5 runs of a set of programs and was only showing a few percent performance increase. The typical variation on runs of a computer program in studies like this is a few percent. As the speaker still continued to fail to understand the moderator finally asked if the discussion could be taken offline. :P&lt;br /&gt;&lt;br /&gt;Afterwards I got my horrible sandwich box for the day and went to lunch at another little cafe-type restaurant on campus. This one was much better. The tenderloin was really a tenderloin and had meat on it. That's got to count for something. I mean these are both small little places on a University, but the last place was almost not even serving me _food_. I think the vinegar was watered down today, though...</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:5933</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/5933.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=5933"/>
    <title>The ETAPS Banquet</title>
    <published>2004-04-01T00:21:46Z</published>
    <updated>2004-04-01T00:25:00Z</updated>
    <content type="html">(Local time: 02:20.) The last event to happen today was the ETAPS Banquet. They closed down the Internet room I was in so I headed to the busses early as that's something I tend to do. &lt;a name="cutid1"&gt;&lt;/a&gt;Ended up meeting a similarly minded person at the bus's stop named Bob Morgan from &lt;a href="http://www.datapower.com/"&gt;DataPower Technology&lt;/a&gt;. Apparently he had done work in the same field that Gogul and I do: interesting compiler after-effects.&lt;br /&gt;&lt;br /&gt;He told me a tool they used to have at Compaq (his ex-job... although I swear he told me he used to work for HP and quit _before_ the merger... oh well) that could be used to instrument x86 programs pretty easily using little scripts. It was called Atom.&lt;br /&gt;&lt;br /&gt;However, the more interesting thing I learned from his is that apparently the Purify people have a patent on binary modification or some such. I need to look into this as it might effect the work that I do. He said it was one of the reasons they had such a lock-in on their market space: they kept hassling other companies that tried to compete (including Compaq for Atom).&lt;br /&gt;&lt;br /&gt;When time finally arrived (Spanish people seem to scowl at you for arriving to anything early) we finally left on the busses to Codorniu, &lt;a href="http://www.cellartours.com/index.php?menu=67"&gt;one of the oldest wineries in Spain&lt;/a&gt;, for a wine tasting tour. We got taken around the massive cellars to see millions of bottles of wine. Apparently they have 30km worth of tunnels filled with them.&lt;br /&gt;&lt;br /&gt;One thing I had never known is that the bubbles in Champagne come from yeast. They add yeast and some sugar to the bottle and let the yeast produce gas which bubbles the wine. Apparently, however, this is _all_ that our tour guide (who kept speaking as if she was one of the family who owned the winery) _really_ understood about the process. She kept repeating it over and over... how "the sugar is the element of the yeast", that "the yeast eat the sugar and produce the... the... bubbles". I swear she kept getting briefed on the next paragraph she was going to say by the silent short spanish male tour guide that was with her who never spoke to us directly but would only speak through her.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid2"&gt;&lt;/a&gt;We ended up going through 4 floors of bottles and took a little tram ride for part of it. Then we all crammed into this tiny little room where all of the oxygen was slowly depleting as we waited around for that part of the tour to finish. Apparently Gaudi _almost_ did most of the architecture for the winery, but instead decided to punt the project to one of his associates. Our tour guide reassured us that Gaudi had said that this other guy "would do it just as well as he would have".&lt;br /&gt;&lt;br /&gt;After this we went back upstairs to "the old cellar" and everyone drank their fill of "Cava" (they can't call it "Champagne" anymore because of the EU banning the usage except for wines that come from that region of France so Spain had to make up a new name) while I had a "Fanta" (an overly sugary soda drink).&lt;br /&gt;&lt;br /&gt;We had hors d'oeuvres (oh my _god_ that word was hard) in the form of little bits of sausage and sticks of cheese and olives and bacon wrapped dates and potato pastries and a few other things I'm forgetting. In general we had a lot of food. Enough that when we actually had dinner I wasn't even hungry anymore.&lt;br /&gt;&lt;br /&gt;The first course were "air fried beans" (it's weird but I actually remember it saying "air fried baked beans", but that makes no sense... does it?) with little bits of ham in it. It was about here that I started to fall sleep. Regardless ;), I jjust picked the little bits of ham out of it as the beans weren't so great. The main course was duck with little free-standing figs (they didn't say "free-standing" but they had an equally humerous expression for the extra figs that weren't actually integrated into the meal).&lt;br /&gt;&lt;br /&gt;So, apparently my favorite person from the conference (Gogul, CodeSurfer/x86 guy) actually won an award from one of the three commitees (they weren't very clear what these commitees were or why _each_ of them were choosing a best paper from the conference). One of the awards was prefixed by a little speech talking about how one of the papers considered had to be thrown out due to conflict of interests, but the rest of them were strong competitors and they had chosen a winner... almost to indicate that the other paper _would_ have won and the award was instead going to the second best paper. Oh... Well...&lt;br /&gt;&lt;br /&gt;I ended up seated in the middle of a bunch of Francophones, so I got to listen to a bunch of French for extended periods of time (which I actually enjoy as I like being immersed in that language... of all languages it bothers me the least; Chinese bothers me so much I almost can't stand hearing it at all).&lt;br /&gt;&lt;br /&gt;I spent most of my time either falling asleep or in an extremely long conversation on politics with the person to my left who was from Belgium named Alex Ksomething. Apparently Alex knows Tevik and mentioned that when he saw I was from UCSB. I went off on some subjects like voting and how party systems work and the tradeoffs involved in gun control as he kept asking me questions about what Americans thought about X; to which I'd always reply "most Americans probably don't even know about X", or "...who X is" as "Americans tend not to care much about international politics, and then give him "my" opinion (which is usually just a less informed version of &lt;span class='ljuser  ljuser-name_danopato' lj:user='danopato' style='white-space: nowrap;'&gt;&lt;a href='http://danopato.livejournal.com/profile'&gt;&lt;img src='http://l-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://danopato.livejournal.com/'&gt;&lt;b&gt;danopato&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;'s opinion, except in a few specific cases).&lt;br /&gt;&lt;br /&gt;One of the questions he asked me, though, was where I had heard of Belgium, to which I replied "chocolate". He said that was "a good thing to have heard them about" and then started asking me questions about France, and what had been on the news about Belgium was in relation to the war with Iraq. Was there _anything_ on the news about Belgium?!? I had to tell him that I don't think anyone cared much about Belgium. Apparently they were taking the same stance that France was and was curious what the average American thought over that. I'm guessing that while they were in a huff  over "freedom fries" everyone was still buying their belgium chocolate without issue.&lt;br /&gt;&lt;br /&gt;The evening ended a little past midnight when people finally started filing out towards our busses, and I went there and tried to avoid falling asleep lest I get taken way past the first stop and make it that much more difficult for me to find a taxi.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:saurik:5851</id>
    <link rel="alternate" type="text/html" href="http://saurik.livejournal.com/5851.html"/>
    <link rel="self" type="text/xml" href="http://saurik.livejournal.com/data/atom/?itemid=5851"/>
    <title>Friendly Indian People Rock</title>
    <published>2004-03-31T16:08:48Z</published>
    <updated>2004-03-31T23:21:08Z</updated>
    <content type="html">(Local time: 18:12.) &lt;a name="cutid1"&gt;&lt;/a&gt;Sweet! I just realized that I can use the localization setting on the computer to flip the keyboard layout back to the usual American layout I'm used to. I can't look at the keyboard, though, or I become hopelessly confused. The two extraneous keys on the board have gotten remapped to the nefarious \ key. So now the only thing that's weird to type are |s and \s as they are in places I've never seen before (which isn't an experience that's all too foreign given that key...).&lt;br /&gt;&lt;br /&gt;This doesn't help Ctrl-U, though, and it doesn't stop Google from continually shunting me over to &lt;a href="http://www.google.es/"&gt;http://www.google.es/&lt;/a&gt;, which is entirely in Spanish. Even if I type &lt;a href="http://www.google.us/"&gt;http://www.google.us/&lt;/a&gt;, btw (and google.uk doesn't exist).&lt;br /&gt;&lt;br /&gt;( Damn... I looked at the keyboard and it _destroyed_ me. And I'm actually somewhat worried that I accidentally damaged some of the well designed keymaps in my brain now... *sigh*. Ok, that kind of worked... I remembered where * is without having to deal with it. :( )&lt;br /&gt;&lt;br /&gt;So before coming to this conference there were like two talks that I was really interested in seeing. I don't remember what the second was, but the first was "Analyzing memory accesses in x86 executables.": obviously something anyone I know would realize "Jay would want to see this". That's tomorrow. In the mean time is more horrible stuff like "A Class of Polynomially Solvable Range Constraints for Interval Analysis without Widenings and Narrowings"... the title is so boring I can barely get through _it_, I won't be able to handle the talk.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid2"&gt;&lt;/a&gt;Well, a little bit earlier I walked into one of the Internet rooms and saw &lt;a href="http://www.cs.wisc.edu/~mihai/my_play/travel/harpers_ferry_wv_july_2002/images/harpers_ferry-july_2002-23.jpg"&gt;this really friendly looking Indian fellow&lt;/a&gt; working on a presentation in PowerPoint on his laptop. Between the fact that that is the first person I've seen who seemed to have that essential spark of "interesting" and that the slide he was looking at was talking about generalized models of common compilers (i.e., things that deal with classes and methods and parameters and such) I asked him what his talk was about, as "whatever talk was around that slide _had_ to be good".&lt;br /&gt;&lt;br /&gt;Turns out he's the guy giving the talk on "Analyzing memory accesses in x86 executables". Leave it to me to pick the only other practical-concerns person out of a crowd. ;) Turns out he is a graduate student at the University of Michigan (ok, &lt;a href="http://www.cs.wisc.edu/~bgogul/"&gt;his website&lt;/a&gt; is at University of Wisconsin, which is confusing me... will have to ask him tomorrow). His name is Gogul Balakrishnan.&lt;br /&gt;&lt;br /&gt;If anyone's interested in this talk, &lt;a href="http://www.cs.wisc.edu/~bgogul/talks/2003.Oct.10.Dagstuhl.pdf"&gt;an older version of the slides are available&lt;/a&gt;, as is &lt;a href="http://www.cs.wisc.edu/~bgogul/papers/cc04.html"&gt;the paper he's presenting&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;His tool, CodeSurfer/x86, sounds _hot_, btw. Accourding to his website he also has written the simplistic beginnings of an Operating System.</content>
  </entry>
</feed>
