<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Armando Fox &#187; admin</title>
	<atom:link href="http://www.armandofox.com/geek/author/admin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.armandofox.com/geek</link>
	<description>A breadth-first traversal of life</description>
	<lastBuildDate>Fri, 13 Aug 2010 16:28:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Programming Language Cross-Training</title>
		<link>http://www.armandofox.com/geek/2007/08/programming-language-cross-training/</link>
		<comments>http://www.armandofox.com/geek/2007/08/programming-language-cross-training/#comments</comments>
		<pubDate>Sun, 19 Aug 2007 05:18:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://radlab.cs.berkeley.edu/people/fox/wp/?p=13</guid>
		<description><![CDATA[How about a late-curriculum CS course that gives you some kind of nontrivial exposure to a whole bunch of languages, and makes you implement a program that uses bits of all of them?  (ie learn about cross-language programming issues and also get exposed to completely different ways of thinking about problems)
Anyone done this at [...]]]></description>
			<content:encoded><![CDATA[<p>How about a late-curriculum CS course that gives you some kind of nontrivial exposure to a whole bunch of languages, and makes you implement a program that uses bits of all of them?  (ie learn about cross-language programming issues and also get exposed to completely different ways of thinking about problems)</p>
<p>Anyone done this at other schools?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2007/08/programming-language-cross-training/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The original, original Adventure!</title>
		<link>http://www.armandofox.com/geek/2007/08/the-original-original-adventure/</link>
		<comments>http://www.armandofox.com/geek/2007/08/the-original-original-adventure/#comments</comments>
		<pubDate>Fri, 17 Aug 2007 06:41:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://radlab.cs.berkeley.edu/people/fox/wp/?p=11</guid>
		<description><![CDATA[i am just barely old enough to be familiar with the original ADVENTURE.
the source code to the ORIGINAL version has been found!  not the Don Woods enhanced version, which looms large in hacker lore and whose source can be found here and which was the basis of early text-based adventures like Zork on the [...]]]></description>
			<content:encoded><![CDATA[<p>i am just barely old enough to be familiar with the original ADVENTURE.</p>
<p>the <a href="http://jerz.setonhill.edu/if/crowther/">source code to the ORIGINAL version</a> has been found!  not the Don Woods enhanced version, which looms large in hacker lore and whose source can be found <a href="http://www.rickadams.org/adventure/e_downloads.html">here</a> and which was the basis of early text-based adventures like Zork on the Apple II, but the earlier version (1975-76) that Will Crowther wrote based on the real-life Colossal Cave in kentucky. There&#8217;s a corresponding <a href="http://brain.lis.uiuc.edu:2323/opencms/export/sites/default/dhq/vol/001/2/000009.html">scholarly article in a humanities journal</a> (possibly it has moved <a href="http://brain.lis.uiuc.edu:2323/opencms/export/sites/default/dhq/vol/001/2/000009.html">here</a>) about the source code.</p>
<p>The source code was found in an archived copy of Crowther&#8217;s account at stanford AI lab about a year ago.</p>
<p>It is neat to peruse.  it&#8217;s in Fortran IV, the total source code is 13K with an additional 19K file of text data (game messages, numbers describing the connectivity graph of the areas in the game, etc.)  I couldn&#8217;t get it to compile using g77, i assume because of syntactic differences between Fortran 77 and Fortran IV.</p>
<p>It&#8217;s our heritage as hackers!  I think of it as the equivalent of trying to read Chaucer in the original (which, by the way, is another fascinating exercise i recommend if you haven&#8217;t tried it).</p>
<p>UPDATE: Someone has <a href="http://www.russotto.net/~russotto/ADVENT/">ported the code</a> to compile under g77!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2007/08/the-original-original-adventure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Computing history comes alive</title>
		<link>http://www.armandofox.com/geek/2007/08/computing-history-comes-alive/</link>
		<comments>http://www.armandofox.com/geek/2007/08/computing-history-comes-alive/#comments</comments>
		<pubDate>Wed, 15 Aug 2007 18:02:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://radlab.cs.berkeley.edu/people/fox/wp/?p=10</guid>
		<description><![CDATA[So I&#8217;ve been reading more about the history of early computers&#8211; particularly interesting is The First Computers: History and Architecture (ed. Rojas) because it&#8217;s written for a technical audience and describes the hardware/software architecture of early machines (including the Mark I, ENIAC, EDSAC, etc.), early work in what we would now call theoretical CS, etc.
It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve been reading more about the history of early computers&#8211; particularly interesting is <a href="http://www.amazon.com/First-Computers-History-Architectures-History-Computing/dp/0262681374/ref=sr_1_1/104-9399270-1383124?ie=UTF8&amp;s=books&amp;qid=1187200861&amp;sr=8-1">The First Computers: History and Architecture</a> (ed. Rojas) because it&#8217;s written for a technical audience and describes the hardware/software architecture of early machines (including the Mark I, ENIAC, EDSAC, etc.), early work in what we would now call theoretical CS, etc.<br />
It&#8217;s fascinating to read about the architecture of ENIAC, which (from our modern perspective, with an understanding of instruction sets, compilers, and microarchitecture) looks like an incredible collection of hacks. &#8220;Programming&#8221; it is a tour de force.  But truly revealing is reading about the operation of its special-purpose multiply, divide and square-root units, which basically had to inherit techniques of doing those operations such as those that human computers would have been able to do using simple mechanical adding machines. In particular, the square root algorithm is based on the fact that for an integer a, a^2 = sum_{i=1}^{a}(2i-1), playing various tricks with this to hone in on the square root of a fixed-point number.<br />
Which leads me to my other thought&#8230;Notwithstanding its name, and unsurprisingly for its time, BASIC is really a language for expressing simple numerical algorithms first, and &#8220;general purpose&#8221; stuff second. (From the perspective of 1964, what did &#8220;general purpose&#8221; mean besides &#8220;slinging strings&#8221;?)  At the same time, I recall David Brin&#8217;s Salon article bemoaning the loss of simple built-in languages for PC&#8217;s that kids could use to start learning how to think about computing.<br />
So here&#8217;s my proposal for a homework in a computer history type of class, which would be Good For Today&#8217;s Youngsters(tm): research the algorithms used by human computers (and therefore, by the first mechanical and electronic computers) to do numerical tasks like square root, and implement them in an &#8220;early high-level&#8221; language like BASIC or Fortran. No namby-pamby objects here, no managed memory, none of that crap. If assembly language is like programming on bare metal, then BASIC and Fortran programming are like welding the metal with only cheap goggles and no gloves&#8211;it builds character, and would provide a &#8220;what must it have been like&#8221; insight besides.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2007/08/computing-history-comes-alive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft, Google and the Declarative Datacenter</title>
		<link>http://www.armandofox.com/geek/2007/07/microsoft-google-and-the-declarative-datacenter/</link>
		<comments>http://www.armandofox.com/geek/2007/07/microsoft-google-and-the-declarative-datacenter/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 21:47:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://radlab.cs.berkeley.edu/people/fox/wp/?p=9</guid>
		<description><![CDATA[Both MS and Google (whose respective faculty summits I attended these last 2 weeks) seem quite interested in Declarative Datacenter kinds of ideas.
Michael Isard at MSR Silicon Valley wrote about Autopilot in the most recent Operating Systems Review. It seems to deal with lower-level configuration aspects &#8211; ie it does not attempt to make policy [...]]]></description>
			<content:encoded><![CDATA[<p>Both MS and Google (whose respective faculty summits I attended these last 2 weeks) seem quite interested in Declarative Datacenter kinds of ideas.</p>
<p>Michael Isard at MSR Silicon Valley wrote about <a href="http://research.microsoft.com/users/misard/abstracts/osr2007.html">Autopilot</a> in the most recent Operating Systems Review. It seems to deal with lower-level configuration aspects &#8211; ie it does not attempt to make policy decisions, nor (necesarily) provide a representation specifically designed to make representing those decisions easy.</p>
<p>Bob Coughran at Google says he&#8217;s very interested in this stuff and wants to visit us (RAD Lab) in fall to learn more about DDC. In particular, I was surprised that although they have some great machine-learning people, substantially all of them are working on apps (mostly search) but none(?) on using SML to improve datacenter operations. This isn&#8217;t to say they haven&#8217;t done interesting statistical analyses of data from their datacenters &#8211; the recent disk failures paper (FAST) and power management paper (ISCA) show this &#8211; but they don&#8217;t seem to be a part of a systematic framework for the &#8220;always-instrumented, always-analyzed&#8221; datacenter.  An opportunity for us to engage Google better here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2007/07/microsoft-google-and-the-declarative-datacenter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brewster Kahle&#8217;s talk on &#8220;Universal access to all knowledge&#8221;</title>
		<link>http://www.armandofox.com/geek/2007/07/brewster-kahles-talk-on-universal-access-to-all-knowledge/</link>
		<comments>http://www.armandofox.com/geek/2007/07/brewster-kahles-talk-on-universal-access-to-all-knowledge/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 00:14:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://radlab.cs.berkeley.edu/people/fox/wp/?p=4</guid>
		<description><![CDATA[I love Brewster&#8217;s talks and  his enthusiasm. Makes me think there are good things going on in the world despite others&#8217; efforts to thwart them.
Question he asks is: In our generation/lifetime, can we provide universal (online) access to all knowledge ever?
Can we put all the world&#8217;s text online?
LoC ~26M volumes, costs about $30/book (10c/pg) [...]]]></description>
			<content:encoded><![CDATA[<p>I love Brewster&#8217;s talks and  his enthusiasm. Makes me think there are good things going on in the world despite others&#8217; efforts to thwart them.</p>
<p>Question he asks is: In our generation/lifetime, can we provide universal (online) access to all knowledge ever?</p>
<p>Can we put all the world&#8217;s text online?</p>
<p>LoC ~26M volumes, costs about $30/book (10c/pg) to do the whole chain<br />
from scanning to putting up on spinning storage w.metadata<br />
=&gt; $800M scans entrie LoC and puts on spinning storage &#8211; would require<br />
&lt;100TB in ASCII format.</p>
<p>Audio?  biggest cooperation from (eg) Grateful Dead and their tribute<br />
bands!  Open audio costs $10/disc &#8211; $10/hr (for vinyl or cassettes) =&gt;<br />
2-3M discs = $20-30M to digitize.</p>
<p>Video?  archival films and some old films.  Eg, govt propaganda/ads, old<br />
classroom documentaries, &#8220;social training&#8221; videos (&#8220;Duck and Cover&#8221;),<br />
stuff in the TV archive&#8230;  $15/video-hour to digitize.</p>
<p>Software? about 50k commercial SW titles ever.  Threatened by DMCA, not<br />
technology</p>
<p>Web?  lifetime of a page (before change/del) is ~100 days.  Wayback<br />
snapshots every ~2mo.</p>
<p>Open Content Alliance building open collections among univesrities, with<br />
support from MS, HP, Adobe, others.  Internet Archive datacenters being<br />
setup in Europe to build up their own collections and then swap among<br />
themselves.  (Lots of classical recordings that are legal to download in<br />
Europe are blocked to US visitors &#8220;due to copyright laws&#8221;.)</p>
<p>Opportunity they are looking for help with: front ends for searching,<br />
browsing, etc the Archive.  &#8220;Can 1 person build a whole search engine<br />
given the underlying infrsatructure of the Internet Archive?&#8221;  We should<br />
take him up on this challenge in the RoR class and RAD Lab apps!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2007/07/brewster-kahles-talk-on-universal-access-to-all-knowledge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>STM panel at MS Research Fac Summit 07</title>
		<link>http://www.armandofox.com/geek/2007/07/stm-panel-at-ms-research-fac-summit-07/</link>
		<comments>http://www.armandofox.com/geek/2007/07/stm-panel-at-ms-research-fac-summit-07/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 21:24:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[parallel language programming]]></category>

		<guid isPermaLink="false">http://radlab.cs.berkeley.edu/people/fox/wp/?p=3</guid>
		<description><![CDATA[There&#8217;s no consensus currently in language community on how to
&#8220;approach&#8221; STM: libraries only?  extend existing lang?  new lang?  use
it to improve implementation of existing abstractions in existing
langs, or need new lang to express abstractions uniquely matched to the
use of STM?
TRANSACT workshops at PODC, PPoPP may be worth keeping an eye on from
PARlab [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s no consensus currently in language community on how to<br />
&#8220;approach&#8221; STM: libraries only?  extend existing lang?  new lang?  use<br />
it to improve implementation of existing abstractions in existing<br />
langs, or need new lang to express abstractions uniquely matched to the<br />
use of STM?</p>
<p>TRANSACT workshops at PODC, PPoPP may be worth keeping an eye on from<br />
PARlab perspective.  (www.cs.rochester.edu/meetings/TRANSACT07) ;<br />
TRANSACT08 will be colocated with HPCA-14/PPoPP in Salt Lake City</p>
<p>Christos: features like iterators, retry, abstract locks, etc being<br />
exposed to HLLs and implemented using STM.  (Analogy: datbase<br />
&#8220;programmers&#8221; think about atomicity  but program in SQL)</p>
<p>Implicit hypothesis: STM programming langs/models will be declarative,<br />
more like SQL than like Java</p>
<p>I/O within STM: better idea might be system level txns, coordinate txns<br />
across multiple resources.  (Quicksilver did this but was hairy)</p>
<p>Christos: not enough exp. yet with STM to have tried to solve all the<br />
parallelism problems it could potentially solve.</p>
<p>Good news; STM useful for more than managing concurrency.  eg: debugging<br />
(deterministic replay), profiling/tuning (contention/locality<br />
monitoring), security (isolation), F/T&#8230;maybe these will be &#8220;killer<br />
apps&#8221; for STM?  (=&gt; maybe, but doesn&#8217;t nec. help manycore research)</p>
<p>Maurice Herlihy: interested in integrating STM with *managed* languages<br />
(implicit memory mgt, bounds checking, etc) =&gt; discuss synchronization<br />
at object level, not addresses or other low-level structures</p>
<p>Declare a class or obj as &#8216;atomic&#8217;- compiler (Phoenix) does whole-object<br />
dataflow analysis to figure out where STM can be used to enforce</p>
<p>&#8220;Libraries either low-oevrhead but hard to use, or inefficient but easy<br />
to use; compiler support combines best of both worlds including the<br />
opportunity for nonlocal optimization&#8221;</p>
<p>Mike Scott, U Rochester: RSTM library (result of 3+ yrs doing TM<br />
libraries for Java, C&#8230;) + Delaunay mesh app</p>
<p>&#8220;Smart pointer&#8221; API (callback at initialize &amp; dereference; design<br />
pattern from C++).  Needed because you want to be able to distinguish<br />
between initial &amp; subsequent accesses (in a STM environment).</p>
<p>Can also check for conditions like trying to access a txnl object<br />
outside of txn code.</p>
<p>&#8220;Programming model provided by library doomed to be too cumbersome for<br />
naive users&#8230;compiler support will be essential for<br />
semantics/programmer understandability as well<br />
as performance&#8221;</p>
<p>&#8220;Awkwardnesses&#8221; such as having to define accessors (in C++; C# avoids<br />
this, as does Ruby)</p>
<p>Can&#8217;t share code templates between txnl and non-txnl code (due to<br />
explicit labeling of txnl types)  &#8211; so can&#8217;t share code.  (Ruby &#8220;duck<br />
typing&#8221; might solve this!)</p>
<p>Can&#8217;t use this-&gt; dereference for typing reasons (have to explicitly pass<br />
a smartpointer to a method&#8230;.ugh)</p>
<p>These things could be fixed in a compiler &#8211; but not in a library.<br />
(except in Ruby, whre Modules might serve?)</p>
<p>Deeper challenges that can&#8217;t be plastered over by compiler:</p>
<p>What reverts when you abort a txn?  In library approach, only the things<br />
labeled as txn are rolled back.  Other stuff doesn&#8217;t.  Major gotcha<br />
because goes against your intuition of how txn abort &#8220;should&#8221; work.</p>
<p>Class-level txn typing probably will be obsoleted by per-object.</p>
<p>FORTRESS &#8211; a new lang design (from Sun?) that emphasizes &#8220;high level<br />
control constructs&#8221; like Mapreduce that are tightly integrated with<br />
transactional support in those languages, but also designed as a<br />
&#8220;FORTRAN replacement&#8221; for manycore scientific programming</p>
<p>http://www.pervasivedatarush.com/node/42</p>
<p>From a critique/summary of FORTRESS:<br />
&#8220;I am not convinced Fortress will be a better foundation for DSELs than<br />
a functional language like Scheme or Haskell. In both of these<br />
languages, any code you write seems to be a very natural extension of<br />
the provided base language. Fortress allows arbitrary specification of<br />
its abstract syntax, but in a way that does not feel as natural and<br />
simplistic. &#8221;</p>
<p>From another commentary &#8211; this echoes my own view:</p>
<p>http://alblue.blogspot.com/2007/06/programming-languages-and-multi-core.html</p>
<p>&#8220;Maybe what&#8217;s needed is parallelism at a higher level. Instead of<br />
insisting on a functional language through-and-through, it may be<br />
possible to do some parts in a functional style but then break that (in<br />
a controlled way) in smaller segments.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2007/07/stm-panel-at-ms-research-fac-summit-07/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
