DrScheme is very, very close to its 4.0 release. I wanted to try out the newest bits on my OLPC XO using one of the nightly builds, but ran into the same problem as I did last time:
/home/olpc/apps/plt-3.99.0.25/bin/mred: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory
Some folks have resolved this dependency using Mesa for OpenGL emulation, but I found it easier to prepare a build that doesn’t depend OpenGL.
Here is the tarball and the md5sum for a trunk build that I made at revision 10030.
Here is how I did the build:
./configure --prefix=$WORKDIR/$DESTDIR --disable-gl --disable-shared --enable-origtree
make
make install
Programming the Sony AIBO in Scheme
This post on the PLT discussion list shares some research into programming the Sony AIBO with Scheme, with this followup post providing additional details on a Scheme interpreter (STk) that provides a foreign function interface for the Sony AIBO C++ API.
Perhaps one day those STk libraries will be ported to PLT!
STk
STk is a free R4RS Scheme interpreter which can access the Tk graphical package. Concretely, it can be seen as the standard Tk package where Tcl has been replaced by a Scheme interpreter. STk embeds also an efficient CLOS like object oriented system, called STklos, which provides:
- multiple inheritance
- generic functions
- multi-methods
- a MOP (Meta Object Protocol)
The LaTeX Beamer Class
(via SourceForge)
The beamer class is a LaTeX class for creating presentations using a video projector. It offers incremental display, prearranged themes, automatic table of contents, navigation bars, bibliographies, and other features.
Check out the home page, it has some nice examples.
The LaTeX Beamer Class lets you prepare beautiful presentations!
A history of macro systems
This is a great post explaining the history of macro systems.
Scheme Boston
Scheme Boston is a group of Scheme users who are located in and around Boston, Massachusetts. The group meets monthly, more or less, and usually on the third Wednesday of the month.
Lucida Console Font on Emacs
Folks running Emacs on Windows (like me) might like to set their font to Lucida Console.
Until I find a tool or documentation on how to write X style font lines, I’ve copied some font-lines from other folks websites.
; (set-default-font "-outline-Lucida Console-normal-r-normal-normal-11-82-96-96-c-*-iso8859-1")
; (set-default-font "-*-Lucida Console-normal-r-*-*-11-82-*-*-c-*-*-ansi-")
; (set-default-font "-*-Lucida Console-normal-r-*-*-11-82-*-*-c-*-*-#204-")
; (set-default-font "-outline-Lucida Console-normal-r-normal-normal-12-90-96-96-c-*-iso8859-1")
; (set-default-font "-*-Lucida Console-normal-r-*-*-12-90-*-*-c-*-*-ansi- ")
; (set-default-font "-outline-Lucida Console-normal-r-normal-normal-13-78-120-120-c-*-iso10646-1")
; (set-default-font "-*-Lucida Console-normal-r-*-*-13-97-*-*-c-*-*-ansi-")
; (set-default-font "-*-Lucida Console-normal-r-*-*-14-*-96-96-c-*-iso8859-1")
; (set-default-font "*-Lucida Console-normal-r-*-*-15-*-96-96-c-*-iso8859-1")
; (set-default-font "-*-Lucida Console-normal-r-*-*-16-120-96-96-c-*-iso8859-1")
On Windows XP Pro, the difference in the font-line settings between font-sizes doesn’t seem to make any difference.
References:
http://www.crsr.net/Notes/Emacs.html
http://angg.twu.net/.emacs.local.w32.html
http://www.emacswiki.org/cgi-bin/wiki/JonathanArnoldDotEmacs
http://www.opensubscriber.com/message/emacs-devel@gnu.org/8995847.html
http://www.charlescurley.com/emacs.html
http://www.dotemacs.de/dotfiles/AndreyAKulaga.emacs.html
Addendum 05/30/08:
Here is the answer.
Programming with Functional Objects in Scala
At the JavaOne 08 presentation “Programming with Functional Objects in Scala”, Scala‘s creator Martin Odersky summed up Scala’s mission statement for the audience:
Scala is the perfect mixture of Object Oriented (OO) and Functional Programming (FP). You get the flexibility of FP along with the familiarity of OO; along with the awesome power of the Actor model. Combine that will full speed execution on the JVM (in contrast to JRuby for example) along with seamless integration with existing Java libraries and you’ve got a platform that is tough to beat”.
Well said Martin.
Exposing the Depth JDK 7.0 Applications with DTrace
“Exposing the Depth JDK 7.0 Applications with DTrace” was the only lab that I attended at JavaOne 08. As you can imagine, it was all about dtrace.
dtrace is a no-overhead, highly dynamic, powerful programming language used to report on running systems. It runs on Solaris, FreeBSD, Mac OS X, and sorely neither Linux nor AIX (the two latter camps will roll their own clones on this one).
The tool itself is really delightful; in the right hands it can really work wonders.
I wish we had this on Windows, Linux, OS/400, and AIX.
Memes are Brainwashing
From Wikipedia:
A meme consists of any unit of cultural information, such as a practice or idea, that gets transmitted verbally or by repeated action from one mind to another.
Whether or not you agree in the validity of memes as a science (I don’t); the term is often used in authoratively in pop culture. They typically represent some bit information, usually in the form of a frequently repeated phrase, that spreads around and around the community. In the programming community, there are plenty. For example, here are a few: “convention over configuration”, “don’t write code just to make the compiler happy”, or “every developer must learn how to program concurrently: it is the future”.
The interesting things about memes are that they often have an element of truth behind them. For example:
- “Convention over configuration”: Abstract away often repeated work
- “Don’t write code just to make the compiler happy”: Use the right language for the task at hand
- “Every developer must learn how to program concurrently: it is the future”: Use the right problem solving approach for the task at hand
- “[My programming language] is purely functional“: For the type of program I am writing, side-effects are not welcome
The idea of memes is to pass around the interesting idea so that we can all benefit from it. The problem with them, though, is that they don’t. Instead, they sort of pass around a half-truth whose only intention is to further, most probably, some individual’s agenda. For example:
- Lisp is convention or configuration taken to the extreme, but you never hear anyone saying that (If you hear me saying it, slap me), and they shouldn’t. Ruby on Rails is to Ruby as Struts was to Java; the only and therefore best of its time.
- “Don’t write code just to make the compiler happy” is pretty silly. Use a statically typed language for a reason. Use dynamically typed language for a reason. There is a difference. You should understand the difference and its impact to your development process.
- The IEEE, ACM, and nearly every presenter at JavaOne 08 preached fear of the multicore future without expounding on why every developer needs to master multi-core programming (solution looking for a problem?). That said: if every programmer learned how to program really well in the first place, we might not need 64 cores.
- “Haskell is purely functional, so it is better than all other impure languages”: Please help me, the reader, understand why!
Because memes are half-truths, people often don’t get to the meaty goodness of the truths behind them. Perhaps at some gut-level they know there is a very good truth hiding back there. If, like most people, though, they don’t explore it further, then they will instead assume the meaty truthful goodness to be the ugly, half-truth of the meme. Since the community largely supports the meme; it becomes common knowledge that the individual must accept it in order to keep his place in the community.
Therein lays the danger of memes, whenever the meme is reintroduced, the individual sort of experiences the behavior modification reaction much like a Skinner pigeon; they have to buy into nonsensical statements about which everyone agrees. Sprinkle any article or blog post or discussion with any number of such memes and you have instant gold for making your point unbeatable. It is a strange and disappointing phenomenon that draws into question much of what is written in the tech world today.
Addendum: 12/10/08
Today I fixed typos, revised the grammar, and altered the content to reflect what I actually meant. As such, I believe this to be a “good faith” modification that didn’t merit change-tracking for the reader’s sake.