- aswiki
- usemod-wiki
- moin
- emacs-wiki
- phpwiki
- twiki
- zope-zwiki
-- |Like 'List.partition' but works on Monads. Uses 'Monad.filterM'. partitionM :: (Monad m) => (a -> m Bool) -> [a] -> m ([a], [a]) partitionM f l = do a <- filterM f l b <- filterM (notM . f) l return (a,b) -- |Like 'not' but works on monads. notM :: (Monad m) => m Bool -> m Bool notM n = do n' <- n return (not n')
(defun advogato-post-buffer-as-diary-get-info (buffername username &optional password in-index) "Post the current buffer as your diary entry" (interactive "bPost What Buffer: \nsUsername: ") (if (null password) (let ((password (comint-read-noecho "Password: " t))) (save-excursion (set-buffer (get-buffer buffername)) (advogato-post-string-as-diary (buffer-string) (advogato-get-cookie username password) in-index)))))
I'm planning to look through this site to find information about laptops and supported features since I definitely want a working DVD player and built in wireless.
Also, there was recently a slashdot thread on buying a linux laptop without paying the MS tax.
(setq advogato-username "SyntaxPolice") (setq advogato-url "http://www.advogato.org/XMLRPC") (defun advogato-get-most-recent (&optional in-user) "Gets the last diary entry" (interactive) (let ((user (if in-user in-user advogato-username))) (let ((lastIndex (- (xml-rpc-method-call advogato-url 'diary.len user) 1))) (xml-rpc-method-call advogato-url 'diary.get user lastIndex)))) (defun advogato-insert-most-recent (&optional in-user) "Inserts the most recent diary entry." (interactive) (let ((user (if in-user in-user advogato-username))) (insert-string (advogato-get-most-recent user)))) (defun advogato-post-string-as-diary (diary-str cookie &optional in-index) "Post the given string as the diary entry. Use -1 as an index for a new entry." (let ((index (if in-index in-index -1))) (xml-rpc-method-call advogato-url 'diary.set cookie index diary-str))) (defun advogato-post-buffer-as-diary (cookie &optional in-index) "Post the current buffer as your diary entry" (advogato-post-string-as-diary (buffer-string) cookie in-index)) (defun advogato-get-cookie (ad-username ad-password) ; (setq advogato-username username) (xml-rpc-method-call advogato-url 'authenticate ad-username ad-password)) ; ------------------------------------------------------------ ; Below is for testing: (setq foo (advogato-insert-most-recent "SyntaxPolice")) (advogato-post-buffer-as-diary cookie) (defun advogato-get-most-recent2 (user) "Gets the last diary entry" (interactive) (let ((lastIndex (- (xml-rpc-method-call advogato-url 'diary.len user) 1)) ) (xml-rpc-method-call advogato-url 'diary.get user lastIndex))) (advogato-get-most-recent2 "SyntaxPolice") (setq advogato-password "asdf") ;
(setq advogato-username "SyntaxPolice") (setq advogato-url "http://www.advogato.org/XMLRPC") (defun advogato-get-most-recent (&optional in-user) "Gets the last diary entry" (interactive) (let ((user (if in-user in-user advogato-username))) (let ((lastIndex (- (xml-rpc-method-call advogato-url 'diary.len user) 1))) (xml-rpc-method-call advogato-url 'diary.get user lastIndex)))) (defun advogato-insert-most-recent (&optional in-user) "Inserts the most recent diary entry." (interactive) (let ((user (if in-user in-user advogato-username))) (insert-string (advogato-get-most-recent user)))) (defun advogato-post-string-as-diary (diary-str cookie &optional in-index) "Post the given string as the diary entry. Use -1 as an index for a new entry." (let ((index (if in-index in-index -1))) (xml-rpc-method-call advogato-url 'diary.set cookie index diary-str))) (defun advogato-post-buffer-as-diary (cookie &optional in-index) "Post the current buffer as your diary entry" (advogato-post-string-as-diary (buffer-string) cookie in-index)) (defun advogato-get-cookie (ad-username ad-password) ; (setq advogato-username username) (xml-rpc-method-call advogato-url 'authenticate ad-username ad-password)) ; ------------------------------------------------------------ ; Below is for testing: (setq foo (advogato-insert-most-recent "SyntaxPolice")) (advogato-post-buffer-as-diary cookie) (defun advogato-get-most-recent2 (user) "Gets the last diary entry" (interactive) (let ((lastIndex (- (xml-rpc-method-call advogato-url 'diary.len user) 1)) ) (xml-rpc-method-call advogato-url 'diary.get user lastIndex))) (advogato-get-most-recent2 "SyntaxPolice") (setq advogato-password "asdf") ;
(setq advogato-username "SyntaxPolice") (setq advogato-url "http://www.advogato.org/XMLRPC") (defun advogato-get-most-recent (&optional in-user) "Gets the last diary entry" (interactive) (let ((user (if in-user in-user advogato-username))) (let ((lastIndex (- (xml-rpc-method-call advogato-url 'diary.len user) 1))) (xml-rpc-method-call advogato-url 'diary.get user lastIndex)))) (defun advogato-insert-most-recent (&optional in-user) "Inserts the most recent diary entry." (interactive) (let ((user (if in-user in-user advogato-username))) (insert-string (advogato-get-most-recent user)))) (defun advogato-post-string-as-diary (diary-str cookie &optional in-index) "Post the given string as the diary entry. Use -1 as an index for a new entry." (let ((index (if in-index in-index -1))) (xml-rpc-method-call advogato-url 'diary.set cookie index diary-str))) (defun advogato-post-buffer-as-diary (cookie &optional in-index) "Post the current buffer as your diary entry" (advogato-post-string-as-diary (buffer-string) cookie in-index)) (defun advogato-get-cookie (ad-username ad-password) ; (setq advogato-username username) (xml-rpc-method-call advogato-url 'authenticate ad-username ad-password)) ; ------------------------------------------------------------ ; Below is for testing: (setq foo (advogato-insert-most-recent "SyntaxPolice")) (advogato-post-buffer-as-diary cookie) (defun advogato-get-most-recent2 (user) "Gets the last diary entry" (interactive) (let ((lastIndex (- (xml-rpc-method-call advogato-url 'diary.len user) 1)) ) (xml-rpc-method-call advogato-url 'diary.get user lastIndex))) (advogato-get-most-recent2 "SyntaxPolice") (setq advogato-password "asdf") ;
; I'm going to attempt to post this buffer as a test of my elisp ; "advogato-post-buffer-as-diary" function. (setq advogato-username "SyntaxPolice") (setq advogato-url "http://www.advogato.org/XMLRPC") (defun advogato-get-most-recent (&optional in-user) "Gets the last diary entry" (interactive) (let ((user (if in-user in-user advogato-username))) (let ((lastIndex (- (xml-rpc-method-call advogato-url 'diary.len user) 1))) (xml-rpc-method-call advogato-url 'diary.get user lastIndex)))) (defun advogato-insert-most-recent (&optional in-user) "Inserts the most recent diary entry." (interactive) (let ((user (if in-user in-user advogato-username))) (insert-string (advogato-get-most-recent user)))) (defun advogato-post-string-as-diary (diary-str cookie &optional in-index) (let ((index (if in-index in-index -1))) (xml-rpc-method-call advogato-url 'diary.set cookie index diary-str))) (defun advogato-post-buffer-as-diary (cookie &optional in-index) (advogato-post-string-as-diary (buffer-string) cookie in-index)) (defun advogato-get-cookie (ad-username ad-password) ; (setq advogato-username username) (xml-rpc-method-call advogato-url 'authenticate ad-username ad-password)) ; ------------------------------------------------------------ ; Below is for testing: (setq foo (advogato-insert-most-recent "SyntaxPolice")) (advogato-post-buffer-as-diary cookie) (defun advogato-get-most-recent2 (user) "Gets the last diary entry" (interactive) (let ((lastIndex (- (xml-rpc-method-call advogato-url 'diary.len user) 1)) ) (xml-rpc-method-call advogato-url 'diary.get user lastIndex))) (advogato-get-most-recent2 "SyntaxPolice") (setq advogato-password "asdf") (advogato-get-cookie "SyntaxPolice" "asdf") diary.set(string cookie, int index, string html) Set a diary entry. Use -1 as the index to post a new entry, although the value returned by diary.len() is also acceptable. (buffer-string)
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!