; simple podcast script to generate the file boston-lisp-podcast.xml ; uses Peter Scott's Common Lisp xml-emitter (asdf:oos 'asdf:load-op 'xml-emitter) (in-package :xml-emitter) (defvar *basedir* "/home/rob/Talks/boston-lisp/") (defvar *baseurl* "http://www.robertplevy.net/boston-lisp/") ; pod-item is similar to already function rss-item, except it also generates an enclosure tag and gets the length of the file (defun pod-item (title &key link description author category comments guid pubDate source file) (with-tag ("item") (emit-simple-tags :title title :link link :description description :author author :category category :comments comments "pubDate" pubDate :source source) (with-simple-tag ("enclosure" (list (list "url" (concatenate 'string *baseurl* file)) (list "length" (with-open-file (in (concatenate 'string *basedir* file) :direction :input) (file-length in))) '("type" "audio/mpeg")))))) (defun gen-podcast-xml (xmlfile header url description items) (with-open-file (xml xmlfile :direction :output :if-exists :supersede :if-does-not-exist :create) (with-rss2 (xml) (rss-channel-header header url :description description) (dolist (item items) (apply #'pod-item item))))) (gen-podcast-xml "/var/www/boston-lisp/boston-lisp-podcast.xml" "Boston Lisp Podcast" "http://boston-lisp.org/" "Audio of talks given at Boston Lisp Users Group" '( ("Report back from OOPSLA Lisp50" :link "http://robertplevy.net/boston-lisp/2008-10-27b-Greg-Pfeil-oopsla-lisp50.mp3" :description "For description, details, and other related media, please visit boston-lisp.org" :author "Greg Pfeil" :file "2008-10-27b-Greg-Pfeil-oopsla-lisp50.mp3" :category "Lisp" :pubDate "Mon, 27 October 2008 18:00:00 EDT") ("Verifying the Correctness of Compiler Transformations on Basic Blocks using Abstract Interpretation" :link "http://robertplevy.net/boston-lisp/2008-10-27-Tim-McNerney-connection-machine.mp3" :description "notes: no questions were asked in the QA session, but Gerald Jay Sussman contributes comments throughout. For description, details, and other related media, please visit boston-lisp.org" :author "Tim McNerney" :file "2008-10-27-Tim-McNerney-connection-machine.mp3" :category "Lisp" :pubDate "Mon, 27 October 2008 18:00:00 EDT") ("Clojure for Lisp Programmers (Part II)" :link "http://clojure.blip.tv/file/1313398" :description "notes: downloaded from http://clojure.blip.tv/file/1313398. For description, details, and other related media, please visit boston-lisp.org" :author "Rich Hickey" :file "Richhickey-ClojureForLispProgrammersPart2.mov" :category "Lisp" :pubDate "Mon, 29 September 2008 18:00:00 EDT") ("Clojure For Lisp Programmers (Part I)" :link "http://clojure.blip.tv/file/1313503" :description "notes: downloaded from http://clojure.blip.tv/file/1313503. For description, details, and other related media, please visit boston-lisp.org" :author "Rich Hickey" :file "Richhickey-ClojureForLispProgrammersPart1.mov" :category "Lisp" :pubDate "Mon, 29 September 2008 18:00:00 EDT") ("Cryptographic Protocol Explication and End-Point Projection" :link "http://robertplevy.net/boston-lisp/2008-07-21-Jay-McCarthy-cryptographic-protocol-explication.mp3" :description "For description, details, and other related media, please visit boston-lisp.org" :author "Jay McCarthy" :file "2008-07-21-Jay-McCarthy-cryptographic-protocol-explication.mp3" :category "Lisp" :pubDate "Mon, 21 June 2008 18:00:00 EDT") ("Relationally-Parametric Polymorphic Contracts" :link "http://robertplevy.net/boston-lisp/2008-06-25b-Shriram-Krishnamurthi-relationally-parametric-polymorphic-contracts.mp3" :description "For description, details, and other related media, please visit boston-lisp.org" :author "Shriram Krishnamurthi" :file "2008-06-25b-Shriram-Krishnamurthi-relationally-parametric-polymorphic-contracts.mp3" :category "Lisp" :pubDate "Tue, 25 June 2008 18:00:00 EDT") ("DivaScheme" :link "http://robertplevy.net/boston-lisp/2008-06-25a-Danny-Yoo-DivaScheme.mp3" :description "For description, details, and other related media, please visit boston-lisp.org" :author "Danny Yoo" :file "2008-06-25a-Danny-Yoo-DivaScheme.mp3" :category "Lisp" :pubDate "Tue, 25 June 2008 18:00:00 EDT") ("FrTime: A Dataflow Extension of DrScheme." :link "http://boston-lisp.org/" :description "A 1-hour talk about FrTime: A Dataflow Extension of DrScheme. Dataflow programming extends functional programming with time-varying values called signals. Signals provide a simple, declarative mechanism for expressing event-driven programs without callbacks or explicit side-effects. This talk will present FrTime, an extension of PLT Scheme with dataflow evaluation. The language's distinguishing features include an event-driven evaluation model, transparent reuse of Scheme code, support for reactive data structures, and integration with the DrScheme programming environment. The talk will include a demonstration of the language and programming environment, along with a discussion of the key design decisions and main ideas underlying the implementation strategy. Greg Cooper developed FrTime while he was a graduate student at Brown University, working with Shriram Krishnamurthi. He now works for ITA Software." :author "Greg Cooper" :file "2008-05-27-Greg-Cooper-FrTime.mp3" :category "Lisp" :pubDate "Tue, 27 May 2008 18:00:00 EDT") ("The BKNR Common Lisp web application development environment." :link "http://boston-lisp.org/" :description "BKNR is a one-stop repository of open source Common Lisp modules used to develop and deploy web applications, featuring a pure Lisp transaction based persistence layer. Hans Hubner has been a hacker for over 20 years, and has discovered Common Lisp as his favourite programming language in 2001. He is a freelance consultant whose research interests include persistence systems and hardware to support dynamic programming" :author "Hans Hubner" :file "2008-04-22b-Hans-Hubner-BKNR.mp3" :category "Lisp" :pubDate "Tue, 22 Apr 2008 18:00:00 EDT") ("Theorem proving with ACL2s" :link "http://boston-lisp.org/" :description "A Computational Logic for Applicative Common Lisp was recognized with the 2005 ACM Software System Award for its power and usefulness in verifying safety-critical applications. New users, however, found it difficult to use for a variety of reasons. ACL2s is an Eclipse-based development environment we have made to make ACL2 easier to learn and use. Peter C. Dillinger is a Ph.D. Student at Northeastern University, Panagiotis Manolios, advisor." :author "Peter Dillinger" :file "2008-04-22a-Peter-Dillinger-ACL2s.mp3" :category "Lisp" :pubDate "Tue, 22 Apr 2008 18:00:00 EDT") ("DefDoc" :link "http://boston-lisp.org/" :description "DefDoc is a lisp-based document description and processing system. Both macros and object-orientation are available so that the description of a document can be focused as much as possible on content and structure. Rahul Jain is a New York based consultant who programs in Common Lisp for fun and profit." :author "Rahul Jain" :file "2008-03-31b-Rahul-Jain-DefDoc.mp3" :category "Lisp" :pubDate "Mon, 31 Mar 2008 18:00:00 EDT") ("What I Hate Most About Scheme. What I'm Doing About It." :link "http://boston-lisp.org/" :description "Alexey Radul is a graduate student at MIT. He uses the Scheme programming language, for which he has written an extension for probabilistic programming." :author "Alexey Radul" :file "2008-03-31a-Alexey-Radul-test-scheme-differences.mp3" :category "Lisp" :pubDate "Mon, 31 Mar 2008 18:00:00 EDT")))