Yet another man’s vision of how to master Emacs.
Category: Link
An ICFP 2008 Programming Contest Solution in TeX
Here is a solution to the 2008 ICFP Programming Contest in TeX.
(via expandrive blog)
tufte-latex
The tufte-handout document class defines a style similar to the style Edward Tufte uses in his books and handouts. Tufte’s style is known for its extensive use of sidenotes, tight integration of graphics with text, and well-set typography
(via comp.text.tex)
Source Code for Various Old Scheme Implementations
The source code for various, older, Scheme implementations can be found here. It is pretty interesting to read about the differing interests of the implementers.
(via comp.lang.scheme)
Toggle between Vertical and Horizontal Windows Splitting
On gnu.emacs.help:
Requested: Function that toggles between vertical and horizontal split layout of currently defined windows preferrably preserving splitting ratio.
(defun my-toggle-window-split ()
"Vertical split shows more of each line, horizontal split shows
more lines. This code toggles between them. It only works for
frames with exactly two windows."
(interactive)
(if (= (count-windows) 2)
(let* ((this-win-buffer (window-buffer))
(next-win-buffer (window-buffer (next-window)))
(this-win-edges (window-edges (selected-window)))
(next-win-edges (window-edges (next-window)))
(this-win-2nd (not (and (<= (car this-win-edges)
(car next-win-edges))
(<= (cadr this-win-edges)
(cadr next-win-edges)))))
(splitter
(if (= (car this-win-edges)
(car (window-edges (next-window))))
'split-window-horizontally
'split-window-vertically)))
(delete-other-windows)
(let ((first-win (selected-window)))
(funcall splitter)
(if this-win-2nd (other-window 1))
(set-window-buffer (selected-window) this-win-buffer)
(set-window-buffer (next-window) next-win-buffer)
(select-window first-win)
(if this-win-2nd (other-window 1))))))
Thanks Fabrice.
PLT Web Server Changes
Jay, maintainer of the PLT Web Server, has recently made a lot of changes to make it easier for folks to get started with the app server. The latest change is in the documentation, per this post:
The PLT Web Server manual was organized too much like a reference manual with little guide to a user to understand how some modules fits in to the big picture. I’ve reorganized the documentation with the following paradigm:
— Running the Web Server
— Writing Servlets
— Extending the Web Server
Other improvement related to this: I’ve added examples to almost every servlet function. I have integrated the stateless and non-stateless servlet documentation to put stateless servlets on a more secure footing and make it clear that they are usable in real applications. I’ve created an HTTP sub-module that encapsulates most of the HTTP handling. (This will limit the need to use what used to be considered internal Web Server functions.)
Links: Docs, Writing Servlets, Stateless, and HTTP module.
Bazaar Marketing Practice
I recently cut over from Subversion to Bazaar. Happy to see that a new, improved version, 1.9, was released; I headed over to the download area only to find a RC1 version available. There were only two 1.9 releases available: source code or a Mac installer. Apparently the Windows installer will be available in a few days. How disappointing.
Why drum up everyone’s excitement on the 7th of November only to tell them that they need to wait around for another five days before they can use it? It is a bizarre marketing practice!
A Theory for Language Design
No amount of language design can force a programmer to write clear programs. If the programmer’s conception of the problem is badly organized, then his programs will also be badly organized. The extent to which a programming language can help a programmer to organize his problem is precisely the extent to which it provides features appropriate to his problem domain. The emphasis should not be on eliminating “bad” language constructs, but on discovering or inventing helpful ones.
— AIM-353: LAMBDA: The Ultimate Imperative
IronScheme does CPS
Helium for learning Haskell
Helium is a user-friendly compiler designed especially for learning the functional programming language Haskell. The quality of the error messages has been the main concern both in the choice of the language features and in the implementation of the compiler. Helium implements almost full Haskell, where the most notable difference is the absence of type classes. Our goal is to let students learn functional programming more quickly and with more fun. The compiler has been successfully employed in two introductory programming courses at Utrecht University.
(mentioned on the PLT discussion list)