March 8, 2004

Bulk view

Finite automata in LaTeX

  sachac: hey, remember I asked for something to draw FA's
 [finite automata] with, that was closely connected to LaTeX?
  sachac: well, I found something that seems to beat both
 xypic and metapost, "dot" from graphviz

Display subject on the first line, dynamically

;;; gnus-summary-update-subject.el --- Display subject on the first line, dynamically

;;; Time-stamp: <2004-03-07 18:02:03 bojohan>
;; 

;; Modified by Sacha to work with subjects anywhere in the summary line.

;;; Code:

(defvar gnus-summary-update-subject-overlay nil)
(defvar gnus-summary-update-subject-hide-overlay nil)
(setq gnus-summary-same-subject (propertize " " 'gnus-summary-same-subject t))

(defvar gnus-summary-update-subject-thread-marker ">")

(defun gnus-summary-update-subject (&optional window start)
  (when gnus-summary-update-subject-overlay
    (save-excursion
      (goto-char (or start (window-start)))
      (when (re-search-forward gnus-summary-update-subject-thread-marker (line-end-position) t)
        (if (not (text-property-any (line-beginning-position)
                                    (line-end-position)
                                    'gnus-summary-same-subject t))
            (progn
              (delete-overlay gnus-summary-update-subject-overlay)
              (delete-overlay gnus-summary-update-subject-hide-overlay))
          (let ((subject (gnus-summary-subject-string
                          (gnus-summary-article-number))))
            (move-overlay gnus-summary-update-subject-hide-overlay
                          (+ (point) 2) (+ (point) 2 (length subject)))
            (move-overlay gnus-summary-update-subject-overlay
                          (point) (1+ (point)))
          ;;(overlay-put gnus-summary-subject-overlay 'window (selected-window))
            (overlay-put gnus-summary-update-subject-hide-overlay
                         'invisible t)
            (overlay-put gnus-summary-update-subject-hide-overlay
                         'intangible t)
            (overlay-put gnus-summary-update-subject-overlay
                         'after-string subject)))))))


(defun gnus-summary-update-subject-setup ()
  (add-hook 'window-scroll-functions 'gnus-summary-update-subject nil t)
  (set (make-local-variable 'gnus-summary-update-subject-overlay)
       (make-overlay 0 0))
  (set (make-local-variable 'gnus-summary-update-subject-hide-overlay)
       (make-overlay 0 0)))
(add-hook 'gnus-summary-prepared-hook 'gnus-summary-update-subject-setup)

(defadvice gnus-summary-position-point (after summary-update-subject activate)
  (gnus-summary-update-subject))

(provide 'gnus-summary-update-subject)

;;; gnus-summary-update-subject.el ends here

../../notebook/emacs/gnus-summary-update-subject.el

C-u M-x planner-create-task-from-buffer

dto on #emacs suggested a way to create tasks associated with planner pages. Arch repository and dev snapshot should have working version of this.

Adding a prefix argument to M-x planner-create-task-from-buffer will make it prompt for the plan page. If the plan page is different from the current annotation, it will move the annotation into the description of the task. Any other suggestions? =)

../../notebook/emacs/emacs-wiki/planner.el

DARN!

Just remembered why I had those planner compatibility functions in the first place. Mumble mumble. That's it, I'm packaging a deb...

Hotshot — 55 words

Hotshot programmer fresh from college thinks he can do everything, eh? I keep particularly nasty COBOL code for these special occasions. Just because it's on a computer doesn't mean it's legible. Looks like English, but it's worse than the Gordian knot. That'll show him his place - then maybe he'll be willing to learn something.