{"id":537,"date":"2003-11-12T22:08:45","date_gmt":"2003-11-13T02:08:45","guid":{"rendered":"http:\/\/wordpress.cephas.net\/?p=537"},"modified":"2003-11-12T22:08:45","modified_gmt":"2003-11-13T02:08:45","slug":"2003-lightweight-languages-workshop-notes","status":"publish","type":"post","link":"https:\/\/cephas.net\/blog\/2003\/11\/12\/2003-lightweight-languages-workshop-notes\/","title":{"rendered":"2003 Lightweight Languages Workshop notes"},"content":{"rendered":"<p><a href=\"http:\/\/www.joecheng.com\/blog\/\">Joe<\/a> and I went to the Lightweight Languages Workshop at MIT this past Saturday.  In short, a bunch of nerds got together for the entire day to talk about stuff like <a href=\"http:\/\/www.haskell.org\/\">haskell<\/a>, <a href=\"http:\/\/www.apl.jhu.edu\/~hall\/lisp.html\">lisp<\/a>, <a href=\"http:\/\/www.lua.org\/\">lua<\/a>, <a href=\"http:\/\/www.swiss.ai.mit.edu\/projects\/scheme\/\">scheme<\/a>, and boundaries.  If you&#8217;re at all interested, you can watch the webcasts (which are of surprisingly good quality) in Real Media or Windows Media <a href=\"http:\/\/ll3.ai.mit.edu\/\">here<\/a> and Joe wrote up his <a href=\"http:\/\/www.joecheng.com\/blog\/entries\/Usinginstantmessagingasah.html\">notes<\/a> already. I&#8217;m behind a bit, so here&#8217;s mine a couple days late.<\/p>\n<p>The initial session &#8220;<i>Toward a LL Testing Framework for Large Distributed Systems<\/i>&#8221; was especially interesting to me for a couple reasons: a) it was based on technology deployed for DARPA called <a href=\"http:\/\/www.ultralog.net\/\">UltraLog<\/a>, b) ultralog is an &#8220;<i>&#8230; ultra-survivable multi-agent society<\/i>&#8221; and c) it uses <a href=\"http:\/\/www.jabber.org\/\">Jabber<\/a>, <a href=\"http:\/\/www.python.org\/\">Python<\/a> and <a href=\"http:\/\/www.ruby-lang.org\/en\/\">Ruby<\/a>.  Specifically, they used the above technologies to enable them to get an up close and personal look at how their entire system (in this case 1000&#8217;s of agents) was performing.  Said another way, they created a way to quickly and unobtrusively gather information from a variety of datapoints while the program is running.  If you have a single website on 1 server, this problem doesn&#8217;t matter to you much.  But imagine a system of 5000 servers (which is something I was asked to imagine this past Monday, more on that at a later time). An application running on 5000 servers would generate an unuseable amount of information; simple logging statements won&#8217;t help you. I&#8217;m rambling though.  The interesting takeaway from all this is the idea of <b>creating instrumentation for your applications<\/b> [google search for <a href=\"http:\/\/www.google.com\/search?hl=en&amp;ie=UTF-8&amp;oe=UTF-8&amp;q=code+instrumentation\">&#8216;code instrumentation&#8217;<\/a>]. <\/p>\n<p>URLs harvested from the other sessions:<\/p>\n<p>&middot; <a href=\"http:\/\/www.informatik.uni-freiburg.de\/~thiemann\/haskell\/WASH\/\">Web Authoring System Haskell (WASH)<\/a><\/p>\n<p>&middot; XS: <a href=\"http:\/\/www.xslisp.com\/\">Lisp on Lego MindStorms<\/a><\/p>\n<p>&middot; the idea of <a href=\"http:\/\/www.ps.uni-sb.de\/~duchier\/python\/continuations.html\">continuations<\/a>, where:<br \/>\n<code><br \/>\ndef foo(x):<br \/>\n&nbsp;&nbsp;return x+1<br \/>\n<\/code><br \/>\nbecomes:<br \/>\n<code><br \/>\ndef foo(x,c):<br \/>\n&nbsp;&nbsp;c(x+1)<br \/>\n<\/code><\/p>\n<p>&middot; dynamic proxies [<a href=\"http:\/\/www.google.com\/search?hl=en&amp;lr=&amp;ie=UTF-8&amp;oe=UTF-8&amp;q=dynamic+proxies+java\">googled<\/a>] [<a href=\"http:\/\/www.javaworld.com\/javaworld\/jw-02-2002\/jw-0215-dbcproxy.html\">javaworld.com<\/a>] [<a href=\"http:\/\/www.onjava.com\/pub\/a\/onjava\/2003\/08\/20\/memoization.html\">onjava.com<\/a>]<\/p>\n<p>&middot; <a href=\"http:\/\/www.bagley.org\/~doug\/shootout\/\">The Great Computer Language Shootout<\/a><\/p>\n<p>&middot; lua: embeddable in C\/C++, Java, Fortran, Ruby, OPL, C#&#8230;. runs in Palm OS, Brew, Playstation II, XBox and Symbian.<\/p>\n<p>&middot; <a href=\"http:\/\/www.cminusminus.org\/\">c minus minus<\/a><\/p>\n<p>&middot; <a href=\"http:\/\/plt-scheme.org\/\">scheme<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Joe and I went to the Lightweight Languages Workshop at MIT this past Saturday. In short, a bunch of nerds got together for the entire day to talk about stuff like haskell, lisp, lua, scheme, and boundaries. If you&#8217;re at all interested, you can watch the webcasts (which are of surprisingly good quality) in Real &hellip; <a href=\"https:\/\/cephas.net\/blog\/2003\/11\/12\/2003-lightweight-languages-workshop-notes\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">2003 Lightweight Languages Workshop notes<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/cephas.net\/blog\/wp-json\/wp\/v2\/posts\/537"}],"collection":[{"href":"https:\/\/cephas.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cephas.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cephas.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cephas.net\/blog\/wp-json\/wp\/v2\/comments?post=537"}],"version-history":[{"count":0,"href":"https:\/\/cephas.net\/blog\/wp-json\/wp\/v2\/posts\/537\/revisions"}],"wp:attachment":[{"href":"https:\/\/cephas.net\/blog\/wp-json\/wp\/v2\/media?parent=537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cephas.net\/blog\/wp-json\/wp\/v2\/categories?post=537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cephas.net\/blog\/wp-json\/wp\/v2\/tags?post=537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}