Tuesday, 21 February 2006

CLIM Screencast - Installation and Hello World

Finally, I was able to do my first CLIM screencast. It's about installation and writing a little hello world program to give the viewer a starting point for exploring McCLIM.

The intended audience are developers that have never seen McCLIM in action before and that need guidance with the Installation and their first Hello World steps.

Get it via bittorrent: CLIM Screencast - Installation and Hello World.torrent. (Please do not link to this torrent directly, as I might change the way I intend to distribute it, please link to the permalink below. I will update this entry when I move things around.)

In the video, I forgot to mention that you can use:

(define-key slime-doc-map "g" 'clim-lookup)
to bind clim-lookup to a key in Slime. Typing "C-c C-d g" will then invoke clim-lookup. And also here is the code fragment to run hello-world without the SLIME object pasting magic I unintentionally used in the video:
(run-frame-top-level (make-application-frame 'hello-world))
Update on video codec: I'm using a regular ISO MPEG-4 encoder. You will be able to decode this video with any MPEG-4 decoder, but sometimes (older player have that issue) they do not recognize the video as MPEG-4 as it contains the new fourcc for ffmpeg. (Background story here.) Windows users should install a recent version of ffdshow. *nix user can grab a recent version of mplayer. VLC should work as of version 0.8.4.

cryptsetup-luks 1.0.2 out

A new version of cryptsetup-luks is out. Get 1.0.2 at http://luks.endorphin.org.

Saturday, 18 February 2006

New LUKS spec

http://luks.endorphin.org/spec has an update to the LUKS specification. Changes:

  • Added precise AFsplit specification.
  • Removed lrw-plain mode spec as the LRW standardization process is not about to be finished any time soon; will be reintroduced when a normative documentation is released by SISWG.
  • Extended introduction text.
Thanks to Sarah Dean for providing valuable feedback with respect to the AFsplit specification.

Thursday, 16 February 2006

Beautiful XEmacs

XEmacs becomes beautiful. Courtesy of Stephen J. Turnbull, we enjoy beautiful subpixel rendered fonts in XEmacs. 21.5.24 is the first release after the sjt-xft branch was merged MAIN.

I suggest to read the release notes to get an idea how to enable Xft. It's not on per default. You can also cut&paste my configure "line":

  '--with-cflags=-march=i686 -fno-strict-aliasing -O2'               \
  '--disable-error-checking' '--with-png' '--disable-debug'          \
  '--with-jpeg' '--with-tiff' '--without-gnome' '--with-xpm'         \
  '--with-xft=emacs,gauges,menubars' '--with-zlib' '--with-xface'    \
  '--with-athena=3d' '--enable-pdump' '--enable-dump-in-exec'        \
  '--enable-bignum=gmp' '--enable-menubars=lucid'                    \
  '--enable-scrollbars=lucid' '--enable-dialogs=athena'              \
  '--enable-widgets=athena' '--without-gtk' '--enable-mule'
To get the same look as on the screenshot, drop that into your .xresources (and make sure they are "xrdb -merge"-ed).
XEmacs.modeline.attributeFont:       Bitstream Charter-12
XEmacs.modeline.attributeBackground: gray
XEmacs.default.attributeFont:        Bitstream Vera Sans Mono-12
XEmacs.default.attributeBackground:  white

Wednesday, 15 February 2006

Screencasting for X11: an FFmpeg screen recorder

vnc2swf, vncrec, xvidcap. Either they can't record audio (vnc2swf, vncrec) or they can't keep audio in sync (xvidcap). xvidcap is the most advanced utility but it seem rather unmaintained and I also dislike the internal code structure (amorphic functions that behaviours strongly depend on semi-global state variables).

ffmpeg already comes with grabbing code, but only for V4L. The requirements are not so different from X11 grabbing, so I decided to hack a new X11 grabber into ffmpeg (after verifying that ffmpeg does correct A/V syncing).

The result is a working mixture of videograb.c of ffmpeg and capture.c/xtoffmpeg.c of xvidcap. I'm now able to do screencasts from X11 where I'm able to comment the things I'm doing via microphone.

Here is the patch for ffmpeg-0.4.9-p20051216: ffmpeg-x11-screen-recorder.diff. Compile like:

./configure --enable-x11grab --enable-gpl
Run like:
./ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -s 1280x1024 test.avi
The -vd option is required. The two values following the colon describe the left upper coordinate of the grabbing region. The -s option describes the grabbing size. I'm using a frame rate of 10fps (-r 10) and a group size of 300 frames (so you have an intra frame every 30 seconds).

Thursday, 9 February 2006

#cl-gardeners: a channel for Lisp newcomers!

#lisp on FreeNode is home for many experienced CL wizard, and not primarily a place for asking trivial lisp newcomer questions. Of course, not all of these questions are valid. Some of those people joining #lisp simply want to get their homework done (preferably by others). But sometimes there are people that seriously want to learn Lisp. Every single one that is not sucked into the Common Lisp community is a loss that might not be quantified. And selfish as I am, I simply dislike the idea that there are any obstacles for lisp newcomers to start writing lisp code that someday I might be able to use :).

Now we have a channel, where newcomers can ask question and eventually get answer by newcomers. It is #cl-gardeners. You don't have to fortuneteller to predict that sometimes newbies can answer questions by other newbies better than an experienced CL. And in most cases, both parties gain knowledge. The unexperienced newbie by getting an answer, the semi-experienced newbie by repeating his partially acquired knowledge; you'll find that learning technique in every serious "teachers handbook".

However, CL wizards that are in a mood for providing help to newcomers are invited to join #cl-gardeners to share their experience. This gives #lisp the opportunity to send help seekers to #cl-gardeners when #lisp is busy with more important stuff or simply doesn't want to give an answer. (This is also the reason why #cl-gardeners should be on the same net as #lisp.)

So, if you are interested join #cl-gardeners on FreeNode. Lurking and idling is totally ok, and actually desired. Please consider #cl-gardeners as candidate for your autojoin list.

Monday, 6 February 2006

A Guided Tour of CLIM (draft)

Here is my update to A guided Tour of CLIM, an article that was published in ACM's Lisp Pointers in 1991. This is a draft, so feedback is appreciated. The latex source of this article is maintained in the McCLIM CVS.