When I attempt to publish my blog I get the backtrace below. Sometimes
it happens, sometimes it doesn't. As far as I can tell, org-blog is
working ok, and I haven't made changes to it recently.
I'm on org 5.05 and you can find org-blog at
http://dto.freeshell.org/e/org-blog.el
---------------------------
byte-code("ÆÇ\n\"fÈ ÉÈ\"\f ÊËÌ\"(ÍO
= ÍOPÍÆO ÍOÈ
OÎÏÉÈ\"\"ÎÐÑÉÒ\"!ÈÓO\"RÍÆO n PÇÔP\" ÕP *" [b r org-maybe-keyword-time-regexp s org-clock-string org-export-with-timestamps nil string-match 1 match-string throw exit "" 0 format "@
"] 9)
org-html-handle-time-stamps("")
byte-code("ÆÇ \"ÈcÉ Ê !˱ÌÍÉ\"\nTÆÎ \"T4ÏÐcÊÑÒ \"!˱\fOÆÓ\f@\"OÉÈcÌÍÉ\"ÔÕÖ #É×Ø`ÙZÏ#pÑÒ!ÚÛ! ˱\fÔÕÖ\f@#\fA@˱u
Üc)ÌÍÉ\"ÆÝ \"ªÞcÌÍÉ\"Æß \"ýàÈÚáâÑÒ \"!ãQÏ $ª@åä !ååÚæÑÒ \"çQÏ $ªÚáâÑÒ \"!èÑÒ \"é°Ï $ªê !ë !ÕAÆB A#WÕAà\"Ñà \"#ìCÑí \"Dî
4Ñî \"EàDCïDQFDFESEF?GE\\FHGðH!ñ IòÆóH\"HÕÉOH*ôHõQHCìªöâñ I÷øD!*J\"ùHú°KDCûíLÏ=ÂL×G×ðD!×ôCïDõ°KDCïDQMüMùHú°KDCý\nCïDQMüMùHú°KDCþ!DNÿN!OÉPQÉRñ IrÆsN\"HÑÒN\"RÚtÏÉN$NuS![SNT\"\\ÏUðN!QOrvN!tNPVêÆwP\"êPÕOxPPRÂÆyR\"ÂÆzR\"ÂÆ{R\"ÂP|âøR!!QPÆóH\"êÚtÏH$HÆwH\"êÚtÏH$H*Q LÏ=L G ôPõQüPùHú°KUHK-DC}D~Cïñ IøD!*°KÚKÏ $AKG\\AÆW \"à ÕàOÑà \"X| ùÑà \" àÉO°Y¼Æ
\"¼Ñà \"ZÚ ÑÒ \"Z%Ï $)Æ \"\\ ÒÒZ![Ñà \"\\Æ]\\\"êÚtÏ\\$\\[^_]Xú`T`a+b% b@ cbAb@ÿÉcad1`d[\\^@F[^X`%Æe \"R cÏRf²Æ \"²gxÏgÉhi hBhjiBi\fÆ\f@\"RÉghhii hi\"cRÆkÏ=À åkUÏ åkUÞ å ! \"ô !lmà
Ñà \"ÕOn îÉOÆ \")oÕ'c@&ÒTlÉpaylc@U?nHlc@WyÏp b@\\ _ cbAb@cAc@ca1nµalc@Vµ m cmbBblcBcÏaÑnÇ cÑpÑ Æ¡ \"ôÚÑÒ \"¢ì£ï¤Ï $Æ¥ \" Y-Ʀ \"- ÑÒ \"ZÚ§Z$Ï $)ƨ \"BÚ©Ï $MqM ©P ˱É" [inquote line org-export-with-fixed-width infixed lines par string-match "^\\*+ " "\n" nil org-html-protect "\n" throw nextline "^[ ]*:\\(.*\\)" t "
\n" match-string 1 "^[ ]*\\(:.*\\)" get-text-property 0 org-protected re-search-backward "\\(\n" nil org-html-protect "\n" throw nextline "^[ ]*:\\(.*\\)" t "\\)\\([ \n]*\\)\\=" 100 replace-match "\\2\n" "
\n" "^[ ]*-\\{5,\\}[ ]*$" "\n
\n" "<<\\([^<>]*\\)>>>?\\((INVISIBLE)\\)?[ ]*\n?" 2 "@\\nbsp@" string-to-char 42 "@" "@ " "\" class=\"target\">" "@ " org-html-handle-time-stamps org-html-expand "internal" 3 5 ":" org-file-image-p match-data ...] 10) org-export-as-html(nil nil nil string :body-only) org-export-region-as-html(1 4562 :body-only string) (save-current-buffer (set-buffer temp-buffer) (insert description) (org-export-region-as-html (point-min) (point-max) :body-only (quote string))) (with-current-buffer temp-buffer (insert description) (org-export-region-as-html (point-min) (point-max) :body-only (quote string))) (unwind-protect (with-current-buffer temp-buffer (insert description) (org-export-region-as-html ... ... :body-only ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (let ((temp-buffer ...)) (unwind-protect (with-current-buffer temp-buffer ... ...) (and ... ...))) (with-temp-buffer (insert description) (org-export-region-as-html (point-min) (point-max) :body-only (quote string))) (let ((description-html ...)) (format "- \n
\n" title description-html pubdate permalink)) org-blog-rss-item("deep into the zone" "http://dto.freeshell.org/blog/blog-2007-08-31-0328.html" "\n\nI've been coding a bit this evening, and making a few\nmuch-needed changes to my setup.\n\nFor example, I will stop using the arrow keys. This will be a\nchallenge because I have been trained to use the arrow keys basically\nsince birth. I'm using them right now, and I hate how tiny they are on\nthis machine. But I've heard that switching to the \"real\" cursor\nmotion keys Emacs provides, however painful the process, is much\nbetter for a user's long-term agility and joint health.\n\nI'm also going to make capslock into an extra control key. I hear it's\na good thing, and closer to the spirit of Emacs because of\nthose [[http://en.wikipedia.org/wiki/Space-cadet_keyboard][old-fashioned keyboards.]] While my new \"thin client\" laptop\n(i.e. cheap X terminal) is the best computer input/output device I\nhave ever used, its keyboard layout does have a few cramped\nareas---especially in the corners. (Besides, capslock-as-control is\nthe only way I can actually imagine myself using the standard cursor\nmotion keys.)\n\nNext, I would like to learn about the various structural movement and\nmanipulation facilities of Emacs. After almost four years as a gung-ho\nemacs-for-everything student at Emacs University, I still navigate\naround mostly with just C-a, C-e, and the arrow keys. So I took a\nlook at what's out there and found a project called [[http://emacs-versor.sourceforge.net/][emacs-versor]] (for\n\"versatile cursor\"). Apparently it's funded by something called the\nScience Foundation Ireland. They have a slideshow and I was quite\nintrigued. I will try it out and let you know what I think.\n\nI've been quite impressed with some of the [[http://emacs-versor.sourceforge.net/][emacs screencasts]] out\nthere. I've decided to start making my own. There's a program called\n[[http://recordmydesktop.iovar.org/about.php][recordmydesktop]] that can create ogg videos with synced audio from a\nmicrophone and it looks simple to set up. I think making a few\nscreencasts could make it really easy for people to discover and\nevaluate the zillions of different Emacs packages out there, because\nscreencasts show you how it will look /after/ you have invested the\ntime to learn the package in question. For example I never really knew\nhow cool [[http://emacswiki.org/cgi-bin/wiki/ArtistMode][artist-mode]] was until I saw [[http://www.cinsk.org/emacs/emacs-artist.html][this screencast]].\n\nAnd if they want to download the package it would be great if they\ncould get it from [[http://tromey.com/elpa/][the Emacs Lisp Package Archive.]] I'll be putting all\nmy code in there soon, and I hope other developers to support them.\n\nYes this is a big todo-list. But that's what org-mode and caffiene are\nfor.\n\nIn other news, I have switched to [[http://en.wikipedia.org/wiki/Stumpwm][the stump window manager]]. It's\nmodeled after Emacs (it even has a mode-line!) and I can use\n [[http://en.wikipedia.org/wiki/Common_Lisp][Common Lisp]] to make it do whatever I want. \nStep one would be making it behave properly with [[http://en.wikipedia.org/wiki/Ardour_%28audio_processor%29][Ardour]].\n\nI use org-mode and tramp to publish my website to the server. I\nrecently updated my Emacs installation from CVS HEAD and noticed that\nthe tramp stuff is suddenly a lot faster. It used to take several\nminutes to publish my site when I had a lot of changes, especially if\nbinaries had been updated. Now it usually finishes in less than thirty\nseconds. It's great to see this.\n\nI can only listen to certain types of music while programming. I can't\ndeal with any vocals at all, and the more hypnotic it is, the\nbetter. Right now I'm listening to a record called /Snd./ (This is\nalso the name of a powerful [[http://ccrma.stanford.edu/software/snd/][emacs-like audio processing system]].) The\nartists are known as /Microstoria./ I would describe their music as\n\"intimate multilayered envelopes of sound being spun by a punched-card\nloom\". The melodies shift and evolve instead of repeating. There is no\npercussion and no reverberation. (The lack of reverb sets this album\napart from most ambient music.)\n\nEven more difficult to explain are the band [[http://en.wikipedia.org/wiki/Main_(band)][Main]]. Instead of intimacy,\nthey evoke a quite intriguing sense of open space (not necessarily\ninhabited.) Harmonium-like drones appear, but melodies and harmonies\nare scarce on their double-album /Hz./ Instead they play contrasting\ntimbres off one another and confront the listener with unrecognizable\nsounds.\n\nThis post was too long half an hour ago. I think I'll quit here and\nget some hacking done...\n" "Fri, 31 Aug 2007 03:28:00 -0400") (cons (org-blog-rss-item post-title (concat blog-base-url ... ".html") post-content post-time) blog-rss-feed) (setq blog-rss-feed (cons (org-blog-rss-item post-title ... post-content post-time) blog-rss-feed)) (push (org-blog-rss-item post-title (concat blog-base-url ... ".html") post-content post-time) blog-rss-feed) (progn (push (org-blog-rss-item post-title ... post-content post-time) blog-rss-feed)) (if rss (progn (push ... blog-rss-feed))) (when rss (push (org-blog-rss-item post-title ... post-content post-time) blog-rss-feed)) (progn (when rss (push ... blog-rss-feed)) (if (< count num-posts) (progn ... ... ...) (progn ... ... ...))) (if (not (string= basename index-filename)) (progn (when rss ...) (if ... ... ...))) (when (not (string= basename index-filename)) (when rss (push ... blog-rss-feed)) (if (< count num-posts) (progn ... ... ...) (progn ... ... ...))) (let ((basename ...) (post-title nil) (post-time ...) (post-description nil)) (with-temp-buffer (insert-file-contents p) (let ... ...) (goto-char ...) (re-search-forward "#\\+TITLE: \\(.*\\)$" nil t) (setf post-title ...) (re-search-forward "#\\+DESCRIPTION: \\(.*\\)$" nil t) (setf post-description ...) (setf post-content ...)) (when (not ...) (when rss ...) (if ... ... ...)) (setq count (+ 1 count))) (while (setq p (pop posts)) (let (... ... ... ...) (with-temp-buffer ... ... ... ... ... ... ... ...) (when ... ... ...) (setq count ...))) (save-current-buffer (set-buffer temp-buffer) (while (setq p ...) (let ... ... ... ...)) (when rss (push ... blog-rss-feed) (with-temp-buffer ... ... ...)) (goto-char (point-min)) (while (search-forward "#+TITLE: " nil t) (replace-match "** " nil t)) (when index-title (goto-char ...) (insert ...)) (write-file index-file) (kill-buffer (current-buffer))) (with-current-buffer temp-buffer (while (setq p ...) (let ... ... ... ...)) (when rss (push ... blog-rss-feed) (with-temp-buffer ... ... ...)) (goto-char (point-min)) (while (search-forward "#+TITLE: " nil t) (replace-match "** " nil t)) (when index-title (goto-char ...) (insert ...)) (write-file index-file) (kill-buffer (current-buffer))) (unwind-protect (with-current-buffer temp-buffer (while ... ...) (when rss ... ...) (goto-char ...) (while ... ...) (when index-title ... ...) (write-file index-file) (kill-buffer ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (let ((temp-buffer ...)) (unwind-protect (with-current-buffer temp-buffer ... ... ... ... ... ... ...) (and ... ...))) (with-temp-buffer (while (setq p ...) (let ... ... ... ...)) (when rss (push ... blog-rss-feed) (with-temp-buffer ... ... ...)) (goto-char (point-min)) (while (search-forward "#+TITLE: " nil t) (replace-match "** " nil t)) (when index-title (goto-char ...) (insert ...)) (write-file index-file) (kill-buffer (current-buffer))) (let* ((posts ...) (base-directory ...) (blog-base-url ...) (blog-title ...) (publishing-directory ...) (blog-description ...) (blog-rss-feed nil) (rss ...) (post-content nil) (index-file ...) (index-buffer ...) (num-posts ...) (index-title ...) (count 0) (p nil)) (message "RSS = %S" rss) (if index-buffer (kill-buffer index-buffer)) (when rss (push ... blog-rss-feed)) (with-temp-buffer (while ... ...) (when rss ... ...) (goto-char ...) (while ... ...) (when index-title ... ...) (write-file index-file) (kill-buffer ...))) org-publish-blog-index((:base-directory "~/blog/" :base-extension "org" :preamble " " :blog-base-url "http://dto.freeshell.org/blog/" :blog-title "dto.freeshell.org blog" :blog-description "David O'Toole's web log." :blog-export-rss t :publishing-directory "/ssh:dto@tty.freeshell.org:~/html/blog/" :publishing-function org-publish-org-to-html :auto-preamble t :auto-postamble nil :auto-index t :index-function org-publish-blog-index :index-filename "index.org" :index-title "Welcome to the dto.freeshell.org blog" :index-posts 8) "index.org") funcall(org-publish-blog-index (:base-directory "~/blog/" :base-extension "org" :preamble " " :blog-base-url "http://dto.freeshell.org/blog/" :blog-title "dto.freeshell.org blog" :blog-description "David O'Toole's web log." :blog-export-rss t :publishing-directory "/ssh:dto@tty.freeshell.org:~/html/blog/" :publishing-function org-publish-org-to-html :auto-preamble t :auto-postamble nil :auto-index t :index-function org-publish-blog-index :index-filename "index.org" :index-title "Welcome to the dto.freeshell.org blog" :index-posts 8) "index.org") (if index-p (funcall index-function plist index-filename)) (let* ((exclude-regexp ...) (publishing-function ...) (index-p ...) (index-filename ...) (index-function ...) (preparation-function ...) (f nil)) (when preparation-function (funcall preparation-function)) (if index-p (funcall index-function plist index-filename)) (let (...) (while ... ...))) org-publish-plist((:base-directory "~/blog/" :base-extension "org" :preamble " " :blog-base-url "http://dto.freeshell.org/blog/" :blog-title "dto.freeshell.org blog" :blog-description "David O'Toole's web log." :blog-export-rss t :publishing-directory "/ssh:dto@tty.freeshell.org:~/html/blog/" :publishing-function org-publish-org-to-html :auto-preamble t :auto-postamble nil :auto-index t :index-function org-publish-blog-index :index-filename "index.org" :index-title "Welcome to the dto.freeshell.org blog" :index-posts 8)) mapcar(org-publish-plist ((:base-directory "~/blog/" :base-extension "org" :preamble " " :blog-base-url "http://dto.freeshell.org/blog/" :blog-title "dto.freeshell.org blog" :blog-description "David O'Toole's web log." :blog-export-rss t :publishing-directory "/ssh:dto@tty.freeshell.org:~/html/blog/" :publishing-function org-publish-org-to-html :auto-preamble t :auto-postamble nil :auto-index t :index-function org-publish-blog-index :index-filename "index.org" :index-title "Welcome to the dto.freeshell.org blog" :index-posts 8))) (let ((org-publish-use-timestamps-flag ...) (plists ...)) (mapcar (quote org-publish-plist) plists)) (save-window-excursion (let (... ...) (mapcar ... plists))) org-publish("blog" nil) call-interactively(org-publish) execute-extended-command(nil) call-interactively(execute-extended-command) recursive-edit() byte-code("Æ @Ç=!ÈÉÊ\"ËÉ!A@)¢Ì=!ÈÍÊ\"Î!Ï Ð !\fcÑed\"VWebÒ¥y`dbÒ¥Zy`|)ÓcebÔÕÖ \"× ÔØ!ÙÊÔØ!Ú +Ù" [unread-command-char debugger-args x debugger-buffer noninteractive debugger-batch-max-lines -1 debug backtrace-debug 4 t backtrace-frame lambda 5 pop-to-buffer debugger-mode debugger-setup-buffer count-lines 2 "...\n" message "%s" buffer-string kill-emacs "" nil recursive-edit middlestart buffer-read-only standard-output] 4) debug(error (wrong-type-argument stringp nil)) string-match(nil "") byte-code("ÆÇ\n\"fÈ ÉÈ\"\f ÊËÌ\"(ÍO = ÍOPÍÆO ÍOÈ OÎÏÉÈ\"\"ÎÐÑÉÒ\"!ÈÓO\"RÍÆO n PÇÔP\" ÕP *" [b r org-maybe-keyword-time-regexp s org-clock-string org-export-with-timestamps nil string-match 1 match-string throw exit "" 0 format "@ " " @ " org-translate-time 3 -1 "\\S-" "@%s \n%s \n%s \n%s \n
"] 9) org-html-handle-time-stamps("") byte-code("ÆÇ \"ÈcÉ Ê !˱ÌÍÉ\"\nTÆÎ \"T4ÏÐcÊÑÒ \"!˱\fOÆÓ\f@\"OÉÈcÌÍÉ\"ÔÕÖ #É×Ø`ÙZÏ#pÑÒ!ÚÛ! ˱\fÔÕÖ\f@#\fA@˱u Üc)ÌÍÉ\"ÆÝ \"ªÞcÌÍÉ\"Æß \"ýàÈÚáâÑÒ \"!ãQÏ $ª@åä !ååÚæÑÒ \"çQÏ $ªÚáâÑÒ \"!èÑÒ \"é°Ï $ªê !ë !ÕAÆB A#WÕAà\"Ñà \"#ìCÑí \"Dî 4Ñî \"EàDCïDQFDFESEF?GE\\FHGðH!ñ IòÆóH\"HÕÉOH*ôHõQHCìªöâñ I÷øD!*J\"ùHú°KDCûíLÏ=ÂL×G×ðD!×ôCïDõ°KDCïDQMüMùHú°KDCý\nCïDQMüMùHú°KDCþ!DNÿN!OÉPQÉRñ IrÆsN\"HÑÒN\"RÚtÏÉN$NuS![SNT\"\\ÏUðN!QOrvN!tNPVêÆwP\"êPÕOxPPRÂÆyR\"ÂÆzR\"ÂÆ{R\"ÂP|âøR!!QPÆóH\"êÚtÏH$HÆwH\"êÚtÏH$H*Q LÏ=L G ôPõQüPùHú°KUHK-DC}D~Cïñ IøD!*°KÚKÏ $AKG\\AÆW \"à ÕàOÑà \"X| ùÑà \" àÉO°Y¼Æ \"¼Ñà \"ZÚ ÑÒ \"Z%Ï $)Æ \"\\ ÒÒZ![Ñà \"\\Æ]\\\"êÚtÏ\\$\\[^_]Xú`T`a+b% b@ cbAb@ÿÉcad1`d[\\^@F[^X`%Æe \"R cÏRf²Æ \"²gxÏgÉhi hBhjiBi\fÆ\f@\"RÉghhii hi\"cRÆkÏ=À åkUÏ åkUÞ å ! \"ô !lmà Ñà \"ÕOn îÉOÆ \")oÕ'c@&ÒTlÉpaylc@U?nHlc@WyÏp b@\\ _ cbAb@cAc@ca1nµalc@Vµ m cmbBblcBcÏaÑnÇ cÑpÑ Æ¡ \"ôÚÑÒ \"¢ì£ï¤Ï $Æ¥ \" Y-Ʀ \"- ÑÒ \"ZÚ§Z$Ï $)ƨ \"BÚ©Ï $MqM ©P ˱É" [inquote line org-export-with-fixed-width infixed lines par string-match "^\\*+ " "
\n" match-string 1 "^[ ]*\\(:.*\\)" get-text-property 0 org-protected re-search-backward "\\(\\)\\([ \n]*\\)\\=" 100 replace-match "\\2\n" "
\n" "^[ ]*-\\{5,\\}[ ]*$" "\n
\n" "<<\\([^<>]*\\)>>>?\\((INVISIBLE)\\)?[ ]*\n?" 2 "@\\nbsp@" string-to-char 42 "@" "@ " "\" class=\"target\">" "@ " org-html-handle-time-stamps org-html-expand "internal" 3 5 ":" org-file-image-p match-data ...] 10) org-export-as-html(nil nil nil string :body-only) org-export-region-as-html(1 4562 :body-only string) (save-current-buffer (set-buffer temp-buffer) (insert description) (org-export-region-as-html (point-min) (point-max) :body-only (quote string))) (with-current-buffer temp-buffer (insert description) (org-export-region-as-html (point-min) (point-max) :body-only (quote string))) (unwind-protect (with-current-buffer temp-buffer (insert description) (org-export-region-as-html ... ... :body-only ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (let ((temp-buffer ...)) (unwind-protect (with-current-buffer temp-buffer ... ...) (and ... ...))) (with-temp-buffer (insert description) (org-export-region-as-html (point-min) (point-max) :body-only (quote string))) (let ((description-html ...)) (format "- \n
\n" title description-html pubdate permalink)) org-blog-rss-item("deep into the zone" "http://dto.freeshell.org/blog/blog-2007-08-31-0328.html" "\n\nI've been coding a bit this evening, and making a few\nmuch-needed changes to my setup.\n\nFor example, I will stop using the arrow keys. This will be a\nchallenge because I have been trained to use the arrow keys basically\nsince birth. I'm using them right now, and I hate how tiny they are on\nthis machine. But I've heard that switching to the \"real\" cursor\nmotion keys Emacs provides, however painful the process, is much\nbetter for a user's long-term agility and joint health.\n\nI'm also going to make capslock into an extra control key. I hear it's\na good thing, and closer to the spirit of Emacs because of\nthose [[http://en.wikipedia.org/wiki/Space-cadet_keyboard][old-fashioned keyboards.]] While my new \"thin client\" laptop\n(i.e. cheap X terminal) is the best computer input/output device I\nhave ever used, its keyboard layout does have a few cramped\nareas---especially in the corners. (Besides, capslock-as-control is\nthe only way I can actually imagine myself using the standard cursor\nmotion keys.)\n\nNext, I would like to learn about the various structural movement and\nmanipulation facilities of Emacs. After almost four years as a gung-ho\nemacs-for-everything student at Emacs University, I still navigate\naround mostly with just C-a, C-e, and the arrow keys. So I took a\nlook at what's out there and found a project called [[http://emacs-versor.sourceforge.net/][emacs-versor]] (for\n\"versatile cursor\"). Apparently it's funded by something called the\nScience Foundation Ireland. They have a slideshow and I was quite\nintrigued. I will try it out and let you know what I think.\n\nI've been quite impressed with some of the [[http://emacs-versor.sourceforge.net/][emacs screencasts]] out\nthere. I've decided to start making my own. There's a program called\n[[http://recordmydesktop.iovar.org/about.php][recordmydesktop]] that can create ogg videos with synced audio from a\nmicrophone and it looks simple to set up. I think making a few\nscreencasts could make it really easy for people to discover and\nevaluate the zillions of different Emacs packages out there, because\nscreencasts show you how it will look /after/ you have invested the\ntime to learn the package in question. For example I never really knew\nhow cool [[http://emacswiki.org/cgi-bin/wiki/ArtistMode][artist-mode]] was until I saw [[http://www.cinsk.org/emacs/emacs-artist.html][this screencast]].\n\nAnd if they want to download the package it would be great if they\ncould get it from [[http://tromey.com/elpa/][the Emacs Lisp Package Archive.]] I'll be putting all\nmy code in there soon, and I hope other developers to support them.\n\nYes this is a big todo-list. But that's what org-mode and caffiene are\nfor.\n\nIn other news, I have switched to [[http://en.wikipedia.org/wiki/Stumpwm][the stump window manager]]. It's\nmodeled after Emacs (it even has a mode-line!) and I can use\n [[http://en.wikipedia.org/wiki/Common_Lisp][Common Lisp]] to make it do whatever I want. \nStep one would be making it behave properly with [[http://en.wikipedia.org/wiki/Ardour_%28audio_processor%29][Ardour]].\n\nI use org-mode and tramp to publish my website to the server. I\nrecently updated my Emacs installation from CVS HEAD and noticed that\nthe tramp stuff is suddenly a lot faster. It used to take several\nminutes to publish my site when I had a lot of changes, especially if\nbinaries had been updated. Now it usually finishes in less than thirty\nseconds. It's great to see this.\n\nI can only listen to certain types of music while programming. I can't\ndeal with any vocals at all, and the more hypnotic it is, the\nbetter. Right now I'm listening to a record called /Snd./ (This is\nalso the name of a powerful [[http://ccrma.stanford.edu/software/snd/][emacs-like audio processing system]].) The\nartists are known as /Microstoria./ I would describe their music as\n\"intimate multilayered envelopes of sound being spun by a punched-card\nloom\". The melodies shift and evolve instead of repeating. There is no\npercussion and no reverberation. (The lack of reverb sets this album\napart from most ambient music.)\n\nEven more difficult to explain are the band [[http://en.wikipedia.org/wiki/Main_(band)][Main]]. Instead of intimacy,\nthey evoke a quite intriguing sense of open space (not necessarily\ninhabited.) Harmonium-like drones appear, but melodies and harmonies\nare scarce on their double-album /Hz./ Instead they play contrasting\ntimbres off one another and confront the listener with unrecognizable\nsounds.\n\nThis post was too long half an hour ago. I think I'll quit here and\nget some hacking done...\n" "Fri, 31 Aug 2007 03:28:00 -0400") (cons (org-blog-rss-item post-title (concat blog-base-url ... ".html") post-content post-time) blog-rss-feed) (setq blog-rss-feed (cons (org-blog-rss-item post-title ... post-content post-time) blog-rss-feed)) (push (org-blog-rss-item post-title (concat blog-base-url ... ".html") post-content post-time) blog-rss-feed) (progn (push (org-blog-rss-item post-title ... post-content post-time) blog-rss-feed)) (if rss (progn (push ... blog-rss-feed))) (when rss (push (org-blog-rss-item post-title ... post-content post-time) blog-rss-feed)) (progn (when rss (push ... blog-rss-feed)) (if (< count num-posts) (progn ... ... ...) (progn ... ... ...))) (if (not (string= basename index-filename)) (progn (when rss ...) (if ... ... ...))) (when (not (string= basename index-filename)) (when rss (push ... blog-rss-feed)) (if (< count num-posts) (progn ... ... ...) (progn ... ... ...))) (let ((basename ...) (post-title nil) (post-time ...) (post-description nil)) (with-temp-buffer (insert-file-contents p) (let ... ...) (goto-char ...) (re-search-forward "#\\+TITLE: \\(.*\\)$" nil t) (setf post-title ...) (re-search-forward "#\\+DESCRIPTION: \\(.*\\)$" nil t) (setf post-description ...) (setf post-content ...)) (when (not ...) (when rss ...) (if ... ... ...)) (setq count (+ 1 count))) (while (setq p (pop posts)) (let (... ... ... ...) (with-temp-buffer ... ... ... ... ... ... ... ...) (when ... ... ...) (setq count ...))) (save-current-buffer (set-buffer temp-buffer) (while (setq p ...) (let ... ... ... ...)) (when rss (push ... blog-rss-feed) (with-temp-buffer ... ... ...)) (goto-char (point-min)) (while (search-forward "#+TITLE: " nil t) (replace-match "** " nil t)) (when index-title (goto-char ...) (insert ...)) (write-file index-file) (kill-buffer (current-buffer))) (with-current-buffer temp-buffer (while (setq p ...) (let ... ... ... ...)) (when rss (push ... blog-rss-feed) (with-temp-buffer ... ... ...)) (goto-char (point-min)) (while (search-forward "#+TITLE: " nil t) (replace-match "** " nil t)) (when index-title (goto-char ...) (insert ...)) (write-file index-file) (kill-buffer (current-buffer))) (unwind-protect (with-current-buffer temp-buffer (while ... ...) (when rss ... ...) (goto-char ...) (while ... ...) (when index-title ... ...) (write-file index-file) (kill-buffer ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))) (let ((temp-buffer ...)) (unwind-protect (with-current-buffer temp-buffer ... ... ... ... ... ... ...) (and ... ...))) (with-temp-buffer (while (setq p ...) (let ... ... ... ...)) (when rss (push ... blog-rss-feed) (with-temp-buffer ... ... ...)) (goto-char (point-min)) (while (search-forward "#+TITLE: " nil t) (replace-match "** " nil t)) (when index-title (goto-char ...) (insert ...)) (write-file index-file) (kill-buffer (current-buffer))) (let* ((posts ...) (base-directory ...) (blog-base-url ...) (blog-title ...) (publishing-directory ...) (blog-description ...) (blog-rss-feed nil) (rss ...) (post-content nil) (index-file ...) (index-buffer ...) (num-posts ...) (index-title ...) (count 0) (p nil)) (message "RSS = %S" rss) (if index-buffer (kill-buffer index-buffer)) (when rss (push ... blog-rss-feed)) (with-temp-buffer (while ... ...) (when rss ... ...) (goto-char ...) (while ... ...) (when index-title ... ...) (write-file index-file) (kill-buffer ...))) org-publish-blog-index((:base-directory "~/blog/" :base-extension "org" :preamble " " :blog-base-url "http://dto.freeshell.org/blog/" :blog-title "dto.freeshell.org blog" :blog-description "David O'Toole's web log." :blog-export-rss t :publishing-directory "/ssh:dto@tty.freeshell.org:~/html/blog/" :publishing-function org-publish-org-to-html :auto-preamble t :auto-postamble nil :auto-index t :index-function org-publish-blog-index :index-filename "index.org" :index-title "Welcome to the dto.freeshell.org blog" :index-posts 8) "index.org") funcall(org-publish-blog-index (:base-directory "~/blog/" :base-extension "org" :preamble " " :blog-base-url "http://dto.freeshell.org/blog/" :blog-title "dto.freeshell.org blog" :blog-description "David O'Toole's web log." :blog-export-rss t :publishing-directory "/ssh:dto@tty.freeshell.org:~/html/blog/" :publishing-function org-publish-org-to-html :auto-preamble t :auto-postamble nil :auto-index t :index-function org-publish-blog-index :index-filename "index.org" :index-title "Welcome to the dto.freeshell.org blog" :index-posts 8) "index.org") (if index-p (funcall index-function plist index-filename)) (let* ((exclude-regexp ...) (publishing-function ...) (index-p ...) (index-filename ...) (index-function ...) (preparation-function ...) (f nil)) (when preparation-function (funcall preparation-function)) (if index-p (funcall index-function plist index-filename)) (let (...) (while ... ...))) org-publish-plist((:base-directory "~/blog/" :base-extension "org" :preamble " " :blog-base-url "http://dto.freeshell.org/blog/" :blog-title "dto.freeshell.org blog" :blog-description "David O'Toole's web log." :blog-export-rss t :publishing-directory "/ssh:dto@tty.freeshell.org:~/html/blog/" :publishing-function org-publish-org-to-html :auto-preamble t :auto-postamble nil :auto-index t :index-function org-publish-blog-index :index-filename "index.org" :index-title "Welcome to the dto.freeshell.org blog" :index-posts 8)) mapcar(org-publish-plist ((:base-directory "~/blog/" :base-extension "org" :preamble " " :blog-base-url "http://dto.freeshell.org/blog/" :blog-title "dto.freeshell.org blog" :blog-description "David O'Toole's web log." :blog-export-rss t :publishing-directory "/ssh:dto@tty.freeshell.org:~/html/blog/" :publishing-function org-publish-org-to-html :auto-preamble t :auto-postamble nil :auto-index t :index-function org-publish-blog-index :index-filename "index.org" :index-title "Welcome to the dto.freeshell.org blog" :index-posts 8))) (let ((org-publish-use-timestamps-flag ...) (plists ...)) (mapcar (quote org-publish-plist) plists)) (save-window-excursion (let (... ...) (mapcar ... plists))) org-publish("blog" nil) call-interactively(org-publish) execute-extended-command(nil) call-interactively(execute-extended-command) -- David O'Toole dto@gnu.org http://dto.freeshell.org/notebook/%s \n%s \n%s \n%s \n