diff options
author | Russ Allbery <rra@cpan.org> | 2021-09-09 21:51:10 -0700 |
---|---|---|
committer | Russ Allbery <rra@cpan.org> | 2021-09-09 21:58:08 -0700 |
commit | 5ef33789b16f7f0a8049394d348f19377358da67 (patch) | |
tree | b76444284d708ebb8c6aa8460e28d4a2524b9a8c /t | |
parent | f10136446102ccd9159ee3d40168ea99dca97301 (diff) |
Rework spin-rss as a module
Rename spin-rss to App::DocKnot::Spin::RSS, add an API, and update
the documentation accordingly. Call App::DocKnot::Spin::Thread
instead of running spin. Add a basic test for RSS and thread
generation from .rss files. Call the new module instead of
spin-rss from App::DocKnot::Spin.
This has a few horrible hacks to deal with the working directory
of thread spinning that will need a better solution later.
Diffstat (limited to 't')
-rwxr-xr-x | t/cli/spin.t | 28 | ||||
-rw-r--r-- | t/data/generate/docknot/output/thread | 2 | ||||
-rw-r--r-- | t/data/perl.conf | 12 | ||||
-rw-r--r-- | t/data/spin/input/.rss | 474 | ||||
-rw-r--r-- | t/data/spin/input/journal/.navbar | 212 | ||||
-rw-r--r-- | t/data/spin/input/journal/.rss | 39 | ||||
-rw-r--r-- | t/data/spin/output/changes.html | 558 | ||||
-rw-r--r-- | t/data/spin/output/changes.rss | 161 | ||||
-rw-r--r-- | t/data/spin/output/journal/debian.rss | 381 | ||||
-rw-r--r-- | t/data/spin/output/journal/index.html | 807 | ||||
-rw-r--r-- | t/data/spin/output/journal/index.rss | 520 | ||||
-rw-r--r-- | t/data/spin/output/journal/reviews.rss | 154 | ||||
-rw-r--r-- | t/lib/Test/DocKnot/Spin.pm | 5 | ||||
-rwxr-xr-x | t/spin/tree.t | 74 |
14 files changed, 3388 insertions, 39 deletions
diff --git a/t/cli/spin.t b/t/cli/spin.t index 00e2458..2f46d62 100755 --- a/t/cli/spin.t +++ b/t/cli/spin.t @@ -13,8 +13,10 @@ use warnings; use lib 't/lib'; use Capture::Tiny qw(capture_stdout); -use File::Temp; -use File::Spec; +use Cwd qw(getcwd); +use File::Copy::Recursive qw(dircopy); +use File::Spec (); +use File::Temp (); use Test::RRA qw(is_file_contents); use Test::DocKnot::Spin qw(is_spin_output is_spin_output_tree); @@ -47,11 +49,29 @@ print {$output_fh} $stdout or BAIL_OUT("Cannot write to $output: $!"); close($output_fh); is_spin_output($output, $expected, 'spin-thread (standard output)'); +# Copy the input tree to a new temporary directory since .rss files generate +# additional thread files. Replace the rpod pointer since it points to a +# relative path in the source tree. +my $indir = File::Temp->newdir(); +$input = File::Spec->catfile($datadir, 'input'); +dircopy($input, $indir->dirname) + or die "Cannot copy $input to $indir: $!\n"; +my $rpod_source = File::Spec->catfile(getcwd(), 'lib', 'App', 'DocKnot.pm'); +my $rpod_path = File::Spec->catfile( + $indir->dirname, 'software', 'docknot', 'api', + 'app-docknot.rpod', +); +open(my $fh, '>', $rpod_path); +print {$fh} "$rpod_source\n" or die "Cannot write to $rpod_path: $!\n"; +close($fh); + # Spin a tree of files. -$input = File::Spec->catfile($datadir, 'input'); $expected = File::Spec->catfile($datadir, 'output'); capture_stdout { - $docknot->run('spin', '-s', '/~eagle/styles', $input, $tempdir->dirname); + $docknot->run( + 'spin', '-s', '/~eagle/styles', $indir->dirname, + $tempdir->dirname, + ); }; my $count = is_spin_output_tree($tempdir->dirname, $expected, 'spin'); diff --git a/t/data/generate/docknot/output/thread b/t/data/generate/docknot/output/thread index cb8c5d0..839d688 100644 --- a/t/data/generate/docknot/output/thread +++ b/t/data/generate/docknot/output/thread @@ -191,7 +191,7 @@ license: \block[ - Copyright 1999-2011, 2013-2021 + Copyright 1999-2021 Russ Allbery <rra@cpan.org> Permission is hereby granted, free of charge, to any person obtaining diff --git a/t/data/perl.conf b/t/data/perl.conf index 3c4adcc..d46848e 100644 --- a/t/data/perl.conf +++ b/t/data/perl.conf @@ -5,10 +5,20 @@ # SPDX-License-Identifier: MIT # The level of coverage achieved by the test suite. -$COVERAGE_LEVEL = 85; +$COVERAGE_LEVEL = 75; # Default minimum version requirement. $MINIMUM_VERSION = '5.024'; +# Ignore App::DocKnot::Spin:RSS for now. +@CRITIC_IGNORE = qw(blib/lib/App/DocKnot/Spin/RSS.pm); + +# Additional regexes that match methods that should be considered private and +# therefore don't have to be documented in POD coverage. +@POD_COVERAGE_EXCLUDE = ( + qr{ \A ( intersect | absolute_url | relative_url | parse_changes ) \z }xms, + qr{ \A ( xml_escape | rss_ .* | thread_output | index_ .* ) \z }xms, +); + # File must end with this line. 1; diff --git a/t/data/spin/input/.rss b/t/data/spin/input/.rss new file mode 100644 index 0000000..c304c7a --- /dev/null +++ b/t/data/spin/input/.rss @@ -0,0 +1,474 @@ +Base: https://www.eyrie.org/~eagle/ +RSS-Base: https://www.eyrie.org/~eagle/ +Title: Changes to Russ Allbery's Web Pages +Description: Recent changes to Russ Allbery's web pages. +Language: en-us +Output: *:thread:changes.th *:rss:changes.rss +Thread-Prefix: + \rss[changes.rss][Changes to Russ Allbery's Web Pages] + . + \heading[Recent Changes][indent] + . + \h1[Recent Changes] + . + \quote(broken)[ + Put up in a place + where it's easy to see + the cryptic admonishment + T.T.T. + When you feel how depressingly + slowly you climb, + it's well to remember that + Things Take Time. + ][Piet Hein][] + . + This page lists all recent changes to my web site except for new + \link[journal/][journal entries], along with a brief description. Some + of this information will be repeated in my journal, but more minor + changes will only be noted here. An \class(feed)[\link[changes.rss] + [\image[journal/feed.png][]] \link[changes.rss][RSS feed]] of this + information is also available. + . + Also see changes from \link[changes/2020.html][2020], + \link[changes/2019.html][2019], \link[changes/2018.html][2018], + \link[changes/2017.html][2017], \link[changes/2016.html][2016], + \link[changes/2015.html][2015], \link[changes/2014.html][2014], + \link[changes/2013.html][2013], \link[changes/2012.html][2012], + \link[changes/2011.html][2011], \link[changes/2010.html][2010], + \link[changes/2009.html][2009], and \link[changes/2008.html][2008]. + +Date: 2021-08-30 21:25 +Title: kstart 4.3 +Link: software/kstart/ +Description: + Add support for kafs by continuing with -t behavior if kafs is present. + Use libkeyutils if available to isolate a command's keyring from the + invoking program if running a specific command with -t. Use a better + exit status when a command is killed with a signal. Use explicit_bzero + to clear the password for k5start -s. Other portability fixes and + updates. + +Date: 2021-08-18 21:30 +Title: Review: The Past is Red +Link: reviews/books/1-250-30112-2.html +Description: Review of The Past is Red by Catherynne M. Valente. + +Date: 2021-08-16 20:58 +Title: Review: Black Sun +Link: reviews/books/1-5344-3769-X.html +Description: Review of Black Sun by Rebecca Roanhorse. + +Date: 2021-08-15 19:21 +Title: Review: The Galaxy, and the Ground Within +Link: reviews/books/0-06-293605-0.html +Description: Review of The Galaxy, and the Ground Within by Becky Chambers. + +Date: 2021-08-08 19:39 +Title: Review: The Last Battle +Link: reviews/books/0-02-044210-6.html +Description: Review of The Last Battle by C.S. Lewis. + +Date: 2021-08-07 17:24 +Title: Broken link cleanup +Link: / +Description: + Another periodic cleanup of broken links. + +Date: 2021-08-01 21:12 +Title: Review: Piranesi +Link: reviews/books/1-63557-564-8.html +Description: Review of Piranesi by Susanna Clarke. + +Date: 2021-07-31 21:26 +Title: Review: Fugitive Telemetry +Link: reviews/books/1-250-76538-2.html +Description: Review of Fugitive Telemetry by Martha Wells. + +Date: 2021-07-24 08:23 +Title: Add finalists for the World Fantasy Award +Link: reviews/awards.html +Description: + Add the finalists for the 2021 World Fantasy Award for best novel. + +Date: 2021-07-24 08:22 +Title: Broken link cleanup +Link: / +Description: + Another periodic cleanup of broken links. + +Date: 2021-07-03 17:21 +Title: Add Clarke Award nominees and Locus Award Winners +Link: reviews/awards.html +Description: + Add the nominees for the 2021 Arthur C. Clarke Award, and the winners of + the 2021 Locus Awards (Network Effect by Martha Wells for best SF novel, + The City We Became by N.K. Jemisin for best fantasy novel, and Elatsoe by + Darcie Little Badger for best first novel). + +Date: 2021-06-27 19:55 +Title: control-archive 1.9.1 +Link: software/control-archive/ +Description: + A data-only release that updates the Big Eight control signing key and + removes some obsolete information about net.*. + +Date: 2021-06-27 15:23 +Title: Added web page for Big Eight control information +Link: big-8/ +Description: + New web page summarizing control information for the Big Eight + hierarchies with links to the control message signing keys and the PGP + Moose key. + +Date: 2021-06-20 20:57 +Title: Review: Demon Lord of Karanda +Link: reviews/books/0-345-36331-0.html +Description: Review of Demon Lord of Karanda by David Eddings. + +Date: 2021-06-19 21:03 +Title: Review: The Magician's Nephew +Link: reviews/books/0-02-044230-0.html +Description: Review of The Magician's Nephew by C.S. Lewis. + +Date: 2021-06-06 21:56 +Title: Review: Stoneskin +Link: reviews/books/stoneskin.html +Description: Review of Stoneskin by K.B. Spangler. + +Date: 2021-06-05 20:18 +Title: Add winner of 2021 Nebula Award for best novel +Link: reviews/awards.html +Description: + Add the winner of the 2021 Nebula Award for best novel (Network Effect by + Martha Wells). + +Date: 2021-06-05 19:37 +Title: Broken link cleanup +Link: / +Description: + Another periodic cleanup of broken links. + +Date: 2021-05-31 21:14 +Title: Review: The Horse and His Boy +Link: reviews/books/0-02-044200-9.html +Description: Review of The Horse and His Boy by C.S. Lewis. + +Date: 2021-05-30 22:40 +Title: Review: The Relentless Moon +Link: reviews/books/1-250-23648-7.html +Description: Review of The Relentless Moon by Mary Robinette Kowal. + +Date: 2021-05-29 22:53 +Title: Review: The Silver Chair +Link: reviews/books/0-02-044250-5.html +Description: Review of The Silver Chair by C.S. Lewis. + +Date: 2021-05-29 20:51 +Title: Broken link cleanup +Link: / +Description: + Another periodic cleanup of broken links. + +Date: 2021-05-15 21:16 +Title: Review: A Desolation Called Peace +Link: reviews/books/1-250-18648-X.html +Description: Review of A Desolation Called Peace by Arkady Martine. + +Date: 2021-05-02 20:03 +Title: Review: The Voyage of the Dawn Treader +Link: reviews/books/0-02-044260-2.html +Description: Review of The Voyage of the Dawn Treader by C.S. Lewis. + +Date: 2021-04-27 20:10 +Title: Review: Beyond Shame +Link: reviews/books/beyond-shame.html +Description: Review of Beyond Shame by Kit Rocha. + +Date: 2021-04-24 22:15 +Title: Review: Learning React +Link: reviews/books/1-4920-5172-1.html +Description: Review of Learning React by Alex Banks & Eve Porcello. + +Date: 2021-04-24 22:12 +Title: Add nominees for the 2021 Hugo Award +Link: reviews/awards.html +Description: + Add the nominees for the 2021 Hugo Award for best novel. + +Date: 2021-04-10 19:24 +Title: Broken link cleanup +Link: / +Description: + Another periodic cleanup of broken links. + +Date: 2021-04-05 18:59 +Title: Add 2021 winner of the BSFA award +Link: reviews/awards.html +Description: + Add 2021 winner of the BSFA award for best novel (The City We Became, by + N.K. Jemisin). + +Date: 2021-04-05 18:56 +Title: Add 2021 winner of the Philip K. Dick Award +Link: reviews/awards.html +Description: + Add 2021 winner of the Philip K. Dick Award for best novel (The Road out + of Winter, by Alison Stine). + +Date: 2021-04-03 19:21 +Title: Review: Prince Caspian +Link: reviews/books/0-02-044240-8.html +Description: Review of Prince Caspian by C.S. Lewis. + +Date: 2021-03-30 22:53 +Title: Review: Paladin's Strength +Link: reviews/books/paladins-strength.html +Description: Review of Paladin's Strength by T. Kingfisher. + +Date: 2021-03-29 10:11 +Title: Add series information to Paladin's Grace +Link: reviews/books/paladins-grace.html +Description: + Paladin's Grace by T. Kingfisher is the first of a series. Add the + series information and a mention of the sequel. + +Date: 2021-03-28 21:55 +Title: Review: JavaScript: The Definitive Guide +Link: reviews/books/1-4919-5202-4.html +Description: Review of JavaScript: The Definitive Guide by David Flanagan. + +Date: 2021-03-28 17:07 +Title: Add sample INN init script and systemd unit file +Link: software/inn/ +Description: + In the documentation pages for INN CURRENT, 2.6, and 2.5, add the sample + init script and systemd unit. + +Date: 2021-03-28 09:21 +Title: Pod::Thread 2.00 +Link: software/pod-thread/ +Description: + Handle the navbar and table of contents internally in the module rather + than via a pre-scanning pass. Honor CVS Id strings found anywhere in the + document. Don't title-case words in section titles in the navbar that + contain an underscore. + +Date: 2021-03-21 19:58 +Title: cvs2xhtml 1.15 +Link: software/web/ +Description: + Convert to Python 3. Update my email address. + +Date: 2021-03-21 19:57 +Title: cl2xhtml 1.12 +Link: software/web/ +Description: + Convert to Python 3. Update my email address. + +Date: 2021-03-21 19:56 +Title: faq2html 1.36 +Link: software/web/ +Description: + Support formatting of dense bullet lists with line continuations but no + blank lines between bullets. Update my email address. + +Date: 2021-03-21 19:03 +Title: Remove DocKnot from my personal Debian repository list +Link: software/debian.html +Description: DocKnot has now been uploaded to Debian proper. + +Date: 2021-03-21 18:57 +Title: Add separate web pages for Pod::Thread +Link: software/pod-thread/ +Description: + As the first step in cleaning up my static site generator pages, and in + prepration for uploading it to CPAN in its own right, move Pod::Thread to + its own separate web pages. + +Date: 2021-03-20 13:35 +Title: pam-krb5 4.10 +Link: software/pam-krb5/ +Description: + Fix use-after-free if krb5_cc_get_principal fails on the newly-created + ticket cache. + +Date: 2021-03-20 13:16 +Title: rra-c-util 9.0 +Link: software/rra-c-util/ +Description: + Rename SQLite Autoconf macros and their outputs from SQLITE to SQLITE3. + Fix support for optional libraries. Rename KRB5_CPPFLAGS_GCC to + KRB5_CPPFLAGS_WARNINGS. Stop defining AM_CONDITIONAL in Autoconf + macros. Check for working Kerberos headers as well as libraries. Add C + stubs for sd_notify and sd_notifyf and a preprocessor stub for + sd_is_socket. Fix portable/sd-daemon.h to include prerequisite headers. + Fix RRA_PROG_PYTHON with Python 3.0 and older Python 2.x versions. Fix + problems with the util/fdflag test. Use AS_ECHO where possible. Fix + perlcritic with YAML::XS. + +Date: 2021-03-20 11:38 +Title: Clean GnuPG key +Link: personal/contact.html +Description: + Refresh the expiration on my signing key and re-export my key with the + export-clean flag, which cleans up a bunch of duplicate and expired + signatures. + +Date: 2021-03-20 09:36 +Title: Add nominees for 2021 Nebula Award for best novel +Link: reviews/awards.html +Description: + Add the nominees for the 2021 Nebula Award for best novel. + +Date: 2021-03-14 11:03 +Title: New experimental Big Eight control message signing key +Link: journal/2021-03/001.html +Description: + Published a new experimental signing key for Big Eight control messages + that was generated with a modern GnuPG. + +Date: 2021-03-13 09:17 +Title: Add 2020 British Fantasy Award winner +Link: reviews/awards.html +Description: + Add winner of the 2020 British Fantasy Robert Holdstock Award for best + fantasy novel (The Bone Ships, by RJ Barker). + +Date: 2021-03-01 19:36 +Title: Review: The Lion, the Witch and the Wardrobe +Link: reviews/books/0-02-044220-3.html +Description: Review of The Lion, the Witch and the Wardrobe by C.S. Lewis. + +Date: 2021-02-28 19:29 +Title: Review: Architects of Memory +Link: reviews/books/1-250-21546-3.html +Description: Review of Architects of Memory by Karen Osborne. + +Date: 2021-02-27 13:11 +Title: DocKnot 4.01 +Link: software/docknot/ +Description: + Add support for a global user configuration file. Allow the distribution + directory to be specified in it. Add support for GnuPG signing of + generated tarballs. Fix docknot --help. Remove the obsolete + load_appdata_json helper. Fix some documentation bugs left over from the + 4.00 release. + +Date: 2021-02-21 20:06 +Title: Review: Finder +Link: reviews/books/0-7564-1511-X.html +Description: Review of Finder by Suzanne Palmer. + +Date: 2021-02-20 20:43 +Title: Review: The Fated Sky +Link: reviews/books/0-7653-9893-1.html +Description: Review of The Fated Sky by Mary Robinette Kowal. + +Date: 2021-02-17 21:19 +Title: Review: Solutions and Other Problems +Link: reviews/books/1-9821-5694-5.html +Description: Review of Solutions and Other Problems by Allie Brosh. + +Date: 2021-02-14 20:35 +Title: Review: Spheres of Influence +Link: reviews/books/1-4516-3937-6.html +Description: Review of Spheres of Influence by Ryk E. Spoor. + +Date: 2021-02-14 19:20 +Title: Add winner of 2020 Mythopoeic Award +Link: reviews/mythopoeic.html +Description: + Add the winner of the (delayed) 2020 Mythopoeic Fantasy Award for Adult + Literature (Snow White Learns Witchcraft, by Theodora Goss). + +Date: 2021-02-13 09:53 +Title: Broken link cleanup +Link: / +Description: + Another periodic cleanup of broken links. + +Date: 2021-02-07 19:31 +Title: Review: The Future of Another Timeline +Link: reviews/books/0-7653-9212-7.html +Description: Review of The Future of Another Timeline by Annalee Newitz. + +Date: 2021-02-01 20:57 +Title: Remove changes from December 2020 +Link: changes.html +Description: Remove the changes from December 2020 from the recent changes + page. + +Date: 2021-01-30 15:12 +Title: Broken link cleanup +Link: / +Description: + Another periodic cleanup of broken links. + +Date: 2021-01-28 22:23 +Title: INN 2.6.4 +Link: software/inn/ +Description: + Added support for systemd notifications and socket activation. Adapt the + length of the DH parameter during DHE key exchanges in nnrpd. Return + information about retired CNFS buffers from cnfsstat. Externalize the + CSS information from generated innreport reports. Support storing wire + format articles with sm. Add a flag to rnews to disallow additional + unpackers, a flag to save rejected articles, and a flag to log the + message ID of duplicate articles. Add a compile-time option to enable + hardening flags. + +Date: 2021-01-26 20:12 +Title: Review: A Deadly Education +Link: reviews/books/0-593-12849-4.html +Description: Review of A Deadly Education by Naomi Novik. + +Date: 2021-01-25 20:11 +Title: Review: The City We Became +Link: reviews/books/0-316-50985-X.html +Description: Review of The City We Became by N.K. Jemisin. + +Date: 2021-01-24 21:00 +Title: Review: Laziness Does Not Exist +Link: reviews/books/1-9821-4013-5.html +Description: Review of Laziness Does Not Exist by Devon Price. + +Date: 2021-01-18 20:00 +Title: Review: The Secret Barrister +Link: reviews/books/1-5098-4115-6.html +Description: Review of The Secret Barrister by The Secret Barrister. + +Date: 2021-01-04 22:13 +Title: Update some blog roll links +Link: journal/ +Description: + Update URL to Nicola Griffith's blog, and switch Karl Schroeder's blog to + https. + +Date: 2021-01-03 18:49 +Title: Review: The Once and Future Witches +Link: reviews/books/0-316-42202-9.html +Description: Review of The Once and Future Witches by Alix E. Harrow. + +Date: 2021-01-01 19:01 +Title: Update award winners +Link: reviews/awards.html +Description: + Add links to all award pages that have good award web sites. Add notes + where the 2020 award was canceled or delayed. Add the winner of the 2020 + Prix Aurora Award for best adult novel (The Gossamer Mage by Julie + E. Czerneda) and the Sunburst award for adults (Gods of Jade and Shadow + by Silvia Moreno-Garcia). + +Date: 2021-01-01 13:53 +Title: Rotate 2020 changes +Link: changes/2020.html +Description: + Move all web site changes from 2020 to a separate page and remove all + entries older than December of 2020 from the current changes page. + +Date: 2021-01-01 11:12 +Title: 2020 reading in review +Link: reviews/year/2020.html +Description: + Add an overview of my 2020 reading, main book recommendations, and + reading statistics. diff --git a/t/data/spin/input/journal/.navbar b/t/data/spin/input/journal/.navbar new file mode 100644 index 0000000..7f1b7ee --- /dev/null +++ b/t/data/spin/input/journal/.navbar @@ -0,0 +1,212 @@ +\==[archive] [2] [\link[/~eagle/journal/\1][\2]] +\==[feed] [2] + [\class(feed)[\link[/~eagle/journal/\1] + [\image[/~eagle/journal/feed.png][RSS]] + \link[/~eagle/journal/\1][\2]\break]] + +\div(sidebar)[ + \h2[Syndication] + + \feed[index.rss] [All posts] + \feed[reviews.rss] [Only reviews] + \feed[software.rss] [Only software releases] + \feed[debian.rss] [Debian-focused] + \feed[../changes.rss] [Web site changes] + \class(feed)[DW: + \link[https://eaglespath-feed.dreamwidth.org/] + [\image[/~eagle/journal/feed.png][]] + \link[https://eaglespath-feed.dreamwidth.org/][eaglespath_feed]] \break + + \h2[Comments] + + This journal does not support comments. + \link[/~eagle/faqs/comments.html][Read why]. + + \h2[Archives] + + \div(archives)[ + \class(text)[ + Book and magazine reviews are not included in the journal + archives. For older book reviews, see + \link[/~eagle/reviews/date.html][all book reviews sorted by + date] and \link[/~eagle/reviews/magazines.html][all magazine + reviews]. + ] + + 2021: + \archive[2021-01/][01] \archive[2021-02/][02] \archive[2021-03/][03] + \archive[2021-04/][04] \archive[2021-05/][05] \archive[2021-06/][06] + \archive[2021-07/][07] \archive[2021-08/][08] + + 2020: + \archive[2020-01/][01] \archive[2020-02/][02] \archive[2020-03/][03] + \archive[2020-04/][04] \archive[2020-05/][05] \archive[2020-06/][06] + \archive[2020-07/][07] \archive[2020-08/][08] \archive[2020-09/][09] + \archive[2020-10/][10] \archive[2020-11/][11] \archive[2020-12/][12] + + 2019: + \archive[2019-01/][01] \archive[2019-02/][02] \archive[2019-03/][03] + \archive[2019-04/][04] \archive[2019-05/][05] \archive[2019-06/][06] + \archive[2019-07/][07] \archive[2019-08/][08] \archive[2019-09/][09] + \archive[2019-10/][10] \archive[2019-11/][11] \archive[2019-12/][12] + + 2018: + \archive[2018-01/][01] \archive[2018-02/][02] \archive[2018-03/][03] + \archive[2018-04/][04] \archive[2018-05/][05] \archive[2018-06/][06] + \archive[2018-07/][07] \archive[2018-08/][08] \archive[2018-09/][09] + \archive[2018-10/][10] 11 \archive[2018-12/][12] + + 2017: + \archive[2017-01/][01] \archive[2017-02/][02] \archive[2017-03/][03] + \archive[2017-04/][04] \archive[2017-05/][05] \archive[2017-06/][06] + \archive[2017-07/][07] 08 \archive[2017-09/][09] + \archive[2017-10/][10] \archive[2017-11/][11] \archive[2017-12/][12] + + 2016: + \archive[2016-01/][01] \archive[2016-02/][02] \archive[2016-03/][03] + \archive[2016-04/][04] \archive[2016-05/][05] 06 + \archive[2016-07/][07] \archive[2016-08/][08] \archive[2016-09/][09] + \archive[2016-10/][10] \archive[2016-11/][11] \archive[2016-12/][12] + + 2015: + \archive[2015-01/][01] 02 \archive[2015-03/][03] + \archive[2015-04/][04] \archive[2015-05/][05] 06 + \archive[2015-07/][07] \archive[2015-08/][08] \archive[2015-09/][09] + \archive[2015-10/][10] \archive[2015-11/][11] \archive[2015-12/][12] + + 2014: + \archive[2014-01/][01] \archive[2014-02/][02] \archive[2014-03/][03] + \archive[2014-04/][04] \archive[2014-05/][05] \archive[2014-06/][06] + \archive[2014-07/][07] \archive[2014-08/][08] \archive[2014-09/][09] + \archive[2014-10/][10] \archive[2014-11/][11] \archive[2014-12/][12] + + 2013: + \archive[2013-01/][01] \archive[2013-02/][02] \archive[2013-03/][03] + \archive[2013-04/][04] \archive[2013-05/][05] \archive[2013-06/][06] + \archive[2013-07/][07] \archive[2013-08/][08] \archive[2013-09/][09] + \archive[2013-10/][10] \archive[2013-11/][11] \archive[2013-12/][12] + + 2012: + \archive[2012-01/][01] \archive[2012-02/][02] \archive[2012-03/][03] + \archive[2012-04/][04] \archive[2012-05/][05] \archive[2012-06/][06] + \archive[2012-07/][07] \archive[2012-08/][08] \archive[2012-09/][09] + \archive[2012-10/][10] \archive[2012-11/][11] \archive[2012-12/][12] + + 2011: + \archive[2011-01/][01] \archive[2011-02/][02] \archive[2011-03/][03] + \archive[2011-04/][04] \archive[2011-05/][05] \archive[2011-06/][06] + \archive[2011-07/][07] \archive[2011-08/][08] \archive[2011-09/][09] + \archive[2011-10/][10] 11 \archive[2011-12/][12] + + 2010: + \archive[2010-01/][01] \archive[2010-02/][02] \archive[2010-03/][03] + \archive[2010-04/][04] \archive[2010-05/][05] \archive[2010-06/][06] + \archive[2010-07/][07] \archive[2010-08/][08] \archive[2010-09/][09] + \archive[2010-10/][10] \archive[2010-11/][11] \archive[2010-12/][12] + + 2009: + \archive[2009-01/][01] \archive[2009-02/][02] \archive[2009-03/][03] + \archive[2009-04/][04] \archive[2009-05/][05] \archive[2009-06/][06] + \archive[2009-07/][07] \archive[2009-08/][08] \archive[2009-09/][09] + \archive[2009-10/][10] \archive[2009-11/][11] \archive[2009-12/][12] + + 2008: + \archive[2008-01/][01] \archive[2008-02/][02] \archive[2008-03/][03] + \archive[2008-04/][04] \archive[2008-05/][05] \archive[2008-06/][06] + \archive[2008-07/][07] \archive[2008-08/][08] \archive[2008-09/][09] + \archive[2008-10/][10] \archive[2008-11/][11] \archive[2008-12/][12] + + 2007: + \archive[2007-01/][01] \archive[2007-02/][02] \archive[2007-03/][03] + \archive[2007-04/][04] \archive[2007-05/][05] \archive[2007-06/][06] + \archive[2007-07/][07] \archive[2007-08/][08] \archive[2007-09/][09] + \archive[2007-10/][10] \archive[2007-11/][11] \archive[2007-12/][12] + + 2006: + \archive[2006-01/][01] \archive[2006-02/][02] \archive[2006-03/][03] + \archive[2006-04/][04] \archive[2006-05/][05] \archive[2006-06/][06] + \archive[2006-07/][07] \archive[2006-08/][08] \archive[2006-09/][09] + \archive[2006-10/][10] \archive[2006-11/][11] \archive[2006-12/][12] + + 2005: + \archive[2005-01/][01] \archive[2005-02/][02] \archive[2005-03/][03] + \archive[2005-04/][04] \archive[2005-05/][05] \archive[2005-06/][06] + \archive[2005-07/][07] \archive[2005-08/][08] \archive[2005-09/][09] + \archive[2005-10/][10] \archive[2005-11/][11] \archive[2005-12/][12] + + 2004: + \archive[2004-01/][01] \archive[2004-02/][02] \archive[2004-03/][03] + \archive[2004-04/][04] \archive[2004-05/][05] \archive[2004-06/][06] + \archive[2004-07/][07] \archive[2004-08/][08] \archive[2004-09/][09] + \archive[2004-10/][10] \archive[2004-11/][11] \archive[2004-12/][12] + + 2003: + \archive[2003-03/][03] + \archive[2003-04/][04] \archive[2003-05/][05] \archive[2003-06/][06] + \archive[2003-07/][07] \archive[2003-08/][08] \archive[2003-09/][09] + \archive[2003-10/][10] \archive[2003-11/][11] \archive[2003-12/][12] + ] + + \h2[Other Book Reviews] + + \link[https://lightreads.dreamwidth.org/][lightreads] \break + \link[https://stevereads.com/][Stephen Laniel] \break + \link[https://jamesdavisnicoll.com/][James Davis Nicoll] \break + \link[http://cloggie.org/books2/][Martin's Booklog] \break + \link[https://steelypips.org/weblog/][Outside of a Dog] \break + \link[https://rushthatspeaks.dreamwidth.org/][rushthatspeaks] \break + \link[http://sff180.com/][SFF180] \break + \link[https://www-users.cs.york.ac.uk/~susan/books/pages/] + [Susan Stepney] \break + \link[https://www.tor.com/][Tor.com] \break + \link[http://booklog.klio.org/][Weasel Words] + + \h2[Fiction Authors] + + \link[https://matociquala.dreamwidth.org/][Elizabeth Bear] \break + \link[https://dreamcafe.com/][Steven Brust] \break + \link[https://nicolagriffith.com/blog/][Nicola Griffith] \break + \link[https://ansible.uk/][David Langford] \break + \link[https://yhlee.dreamwidth.org/][Yoon Ha Lee] \break + \link[https://nkjemisin.com/blog/][N.K. Jemisin] \break + \link[https://www.rosemarykirstein.com/][Rosemary Kirstein] \break + \link[https://seanan-mcguire.dreamwidth.org/][Seanan MacGuire] \break + \link[https://kenmacleod.blogspot.com/][Ken MacLeod] \break + \link[https://truepenny.dreamwidth.org/][Sarah Monette] \break + \link[http://elizabethmoon.com/blog/][Elizabeth Moon] \break + \link[https://lydamorehouse.dreamwidth.org/][Lyda Morehouse] \break + \link[https://whatever.scalzi.com/][John Scalzi] \break + \link[https://www.kschroeder.com/weblog][Karl Schroeder] \break + \link[https://tkingfisher.dreamwidth.org/][Ursula Vernon] \break + \link[http://www.jowaltonbooks.com/blog-2/][Jo Walton] + + \h2[Social Commentary] + + \link[https://www.askamanager.org/][Ask A Manager] \break + \link[https://www.badscience.net/][Bad Science] \break + \link[https://captainawkward.com/][Captain Awkward] \break + \link[https://www.theatlantic.com/author/ta-nehisi-coates/] + [Ta-Nehisi Coates] \break + \link[https://www.patheos.com/blogs/daylightatheism/] + [Daylight Atheism] \break + \link[https://www.nytimes.com/column/paul-krugman][Paul Krugman] \break + \link[https://loweringthebar.net/][Lowering the Bar] \break + \link[https://nielsenhayden.com/makinglight/][Making Light] \break + \link[https://james-davis-nicoll.dreamwidth.org/][James Nicoll] \break + \link[https://www.schneier.com/blog/][Bruce Schneier] \break + \link[https://www.patheos.com/blogs/slacktivist/] + [Slacktivist (Fred Clark)] + + \h2[Gaming] + + \link[https://majornelson.com/][Major Nelson (Xbox Live)] \break + \link[https://www.penny-arcade.com/][Penny Arcade] \break + \link[https://www.trueachievements.com/][TrueAchievements] + + \h2[Other] + + \link[https://www.dnalounge.com/backstage/log/][DNA Lounge] \break + \link[https://xkcd.com/][XKCD] \break + \link[https://what-if.xkcd.com/][XKCD What If?] \break + \link[https://www.jwz.org/blog/][Jamie Zawinski] +] diff --git a/t/data/spin/input/journal/.rss b/t/data/spin/input/journal/.rss new file mode 100644 index 0000000..62f7c63 --- /dev/null +++ b/t/data/spin/input/journal/.rss @@ -0,0 +1,39 @@ +Base: https://www.eyrie.org/~eagle/ +Index-Base: https://www.eyrie.org/~eagle/journal/ +RSS-Base: https://www.eyrie.org/~eagle/journal/ +Title: Eagle's Path +Description: "Passion and dispassion. Choose two." -- Larry Wall +Language: en-us +Output: *:index:index.th *:rss:index.rss debian:rss:debian.rss + review:rss:reviews.rss +Index-Prefix: + \rss[index.rss][Eagle's Path] + \rss[debian.rss][Eagle's Path (Debian focused)] + \rss[reviews.rss][Eagle's Path (reviews only)] + . + \==[date][1][\class(date)[\1]] + . + \heading[Eagle's Path][journal-set] + . + \h1[Eagle's Path] + . + \quote(short)[ + Passion and dispassion. Choose two. + ][Larry Wall][] + . + \include[.navbar] + . + \div(journal)[ +Index-Suffix: + ] + +Date: 2011-08-13 00:09 +Title: NPR Top 100 SFF meme +Link: journal/2011-08/006.html +Journal: journal/2011-08/006.th +Tags: debian + +Date: 2007-01-14 21:30 +Title: Review: Fermat's Enigma +Link: reviews/books/1-250-30112-2.html +Review: reviews/books/0-385-49362-2.th diff --git a/t/data/spin/output/changes.html b/t/data/spin/output/changes.html new file mode 100644 index 0000000..77947a4 --- /dev/null +++ b/t/data/spin/output/changes.html @@ -0,0 +1,558 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <title>Recent Changes</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <link rel="stylesheet" href="/~eagle/styles/indent.css" type="text/css" /> + <link rel="alternate" type="application/rss+xml" href="changes.rss" + title="Changes to Russ Allbery's Web Pages" /> +</head> + +<!-- Spun from changes.th by spin %VERSION% on %DATE% --> + +<body> + +<h1>Recent Changes</h1> + +<blockquote class="quote"><p class="broken"> + Put up in a place<br /> + where it's easy to see<br /> + the cryptic admonishment<br /> + T.T.T.<br /> + When you feel how depressingly<br /> + slowly you climb,<br /> + it's well to remember that<br /> + Things Take Time. +</p><p class="attribution"> + Piet Hein +</p></blockquote> + +<p> +This page lists all recent changes to my web site except for new +<a href="journal/">journal entries</a>, along with a brief description. Some +of this information will be repeated in my journal, but more minor +changes will only be noted here. An <span class="feed"><a href="changes.rss"><img src="journal/feed.png" alt="" /></a> <a href="changes.rss">RSS feed</a></span> of this +information is also available. +</p> + +<p> +Also see changes from <a href="changes/2020.html">2020</a>, +<a href="changes/2019.html">2019</a>, <a href="changes/2018.html">2018</a>, +<a href="changes/2017.html">2017</a>, <a href="changes/2016.html">2016</a>, +<a href="changes/2015.html">2015</a>, <a href="changes/2014.html">2014</a>, +<a href="changes/2013.html">2013</a>, <a href="changes/2012.html">2012</a>, +<a href="changes/2011.html">2011</a>, <a href="changes/2010.html">2010</a>, +<a href="changes/2009.html">2009</a>, and <a href="changes/2008.html">2008</a>. +</p> + +<h2>August 2021</h2> + +<dl> +<dt>2021-08-30 — + <a href="https://www.eyrie.org/~eagle/software/kstart/">kstart 4.3</a></dt> +<dd><p> + Add support for kafs by continuing with -t behavior if kafs is present. + Use libkeyutils if available to isolate a command's keyring from the + invoking program if running a specific command with -t. Use a better + exit status when a command is killed with a signal. Use explicit_bzero + to clear the password for k5start -s. Other portability fixes and + updates. +</p></dd> + +<dt>2021-08-18 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-250-30112-2.html">Review: The Past is Red</a></dt> +<dd><p> + Review of The Past is Red by Catherynne M. Valente. +</p></dd> + +<dt>2021-08-16 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-5344-3769-X.html">Review: Black Sun</a></dt> +<dd><p> + Review of Black Sun by Rebecca Roanhorse. +</p></dd> + +<dt>2021-08-15 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-06-293605-0.html">Review: The Galaxy, and the Ground Within</a></dt> +<dd><p> + Review of The Galaxy, and the Ground Within by Becky Chambers. +</p></dd> + +<dt>2021-08-08 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-02-044210-6.html">Review: The Last Battle</a></dt> +<dd><p> + Review of The Last Battle by C.S. Lewis. +</p></dd> + +<dt>2021-08-07 — + <a href="https://www.eyrie.org/~eagle/">Broken link cleanup</a></dt> +<dd><p> + Another periodic cleanup of broken links. +</p></dd> + +<dt>2021-08-01 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-63557-564-8.html">Review: Piranesi</a></dt> +<dd><p> + Review of Piranesi by Susanna Clarke. +</p></dd> +</dl> + +<h2>July 2021</h2> + +<dl> +<dt>2021-07-31 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-250-76538-2.html">Review: Fugitive Telemetry</a></dt> +<dd><p> + Review of Fugitive Telemetry by Martha Wells. +</p></dd> + +<dt>2021-07-24 — + <a href="https://www.eyrie.org/~eagle/reviews/awards.html">Add finalists for the World Fantasy Award</a></dt> +<dd><p> + Add the finalists for the 2021 World Fantasy Award for best novel. +</p></dd> + +<dt>2021-07-24 — + <a href="https://www.eyrie.org/~eagle/">Broken link cleanup</a></dt> +<dd><p> + Another periodic cleanup of broken links. +</p></dd> + +<dt>2021-07-03 — + <a href="https://www.eyrie.org/~eagle/reviews/awards.html">Add Clarke Award nominees and Locus Award Winners</a></dt> +<dd><p> + Add the nominees for the 2021 Arthur C. Clarke Award, and the winners of + the 2021 Locus Awards (Network Effect by Martha Wells for best SF novel, + The City We Became by N.K. Jemisin for best fantasy novel, and Elatsoe by + Darcie Little Badger for best first novel). +</p></dd> +</dl> + +<h2>June 2021</h2> + +<dl> +<dt>2021-06-27 — + <a href="https://www.eyrie.org/~eagle/software/control-archive/">control-archive 1.9.1</a></dt> +<dd><p> + A data-only release that updates the Big Eight control signing key and + removes some obsolete information about net.*. +</p></dd> + +<dt>2021-06-27 — + <a href="https://www.eyrie.org/~eagle/big-8/">Added web page for Big Eight control information</a></dt> +<dd><p> + New web page summarizing control information for the Big Eight + hierarchies with links to the control message signing keys and the PGP + Moose key. +</p></dd> + +<dt>2021-06-20 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-345-36331-0.html">Review: Demon Lord of Karanda</a></dt> +<dd><p> + Review of Demon Lord of Karanda by David Eddings. +</p></dd> + +<dt>2021-06-19 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-02-044230-0.html">Review: The Magician's Nephew</a></dt> +<dd><p> + Review of The Magician's Nephew by C.S. Lewis. +</p></dd> + +<dt>2021-06-06 — + <a href="https://www.eyrie.org/~eagle/reviews/books/stoneskin.html">Review: Stoneskin</a></dt> +<dd><p> + Review of Stoneskin by K.B. Spangler. +</p></dd> + +<dt>2021-06-05 — + <a href="https://www.eyrie.org/~eagle/reviews/awards.html">Add winner of 2021 Nebula Award for best novel</a></dt> +<dd><p> + Add the winner of the 2021 Nebula Award for best novel (Network Effect by + Martha Wells). +</p></dd> + +<dt>2021-06-05 — + <a href="https://www.eyrie.org/~eagle/">Broken link cleanup</a></dt> +<dd><p> + Another periodic cleanup of broken links. +</p></dd> +</dl> + +<h2>May 2021</h2> + +<dl> +<dt>2021-05-31 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-02-044200-9.html">Review: The Horse and His Boy</a></dt> +<dd><p> + Review of The Horse and His Boy by C.S. Lewis. +</p></dd> + +<dt>2021-05-30 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-250-23648-7.html">Review: The Relentless Moon</a></dt> +<dd><p> + Review of The Relentless Moon by Mary Robinette Kowal. +</p></dd> + +<dt>2021-05-29 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-02-044250-5.html">Review: The Silver Chair</a></dt> +<dd><p> + Review of The Silver Chair by C.S. Lewis. +</p></dd> + +<dt>2021-05-29 — + <a href="https://www.eyrie.org/~eagle/">Broken link cleanup</a></dt> +<dd><p> + Another periodic cleanup of broken links. +</p></dd> + +<dt>2021-05-15 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-250-18648-X.html">Review: A Desolation Called Peace</a></dt> +<dd><p> + Review of A Desolation Called Peace by Arkady Martine. +</p></dd> + +<dt>2021-05-02 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-02-044260-2.html">Review: The Voyage of the Dawn Treader</a></dt> +<dd><p> + Review of The Voyage of the Dawn Treader by C.S. Lewis. +</p></dd> +</dl> + +<h2>April 2021</h2> + +<dl> +<dt>2021-04-27 — + <a href="https://www.eyrie.org/~eagle/reviews/books/beyond-shame.html">Review: Beyond Shame</a></dt> +<dd><p> + Review of Beyond Shame by Kit Rocha. +</p></dd> + +<dt>2021-04-24 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-4920-5172-1.html">Review: Learning React</a></dt> +<dd><p> + Review of Learning React by Alex Banks & Eve Porcello. +</p></dd> + +<dt>2021-04-24 — + <a href="https://www.eyrie.org/~eagle/reviews/awards.html">Add nominees for the 2021 Hugo Award</a></dt> +<dd><p> + Add the nominees for the 2021 Hugo Award for best novel. +</p></dd> + +<dt>2021-04-10 — + <a href="https://www.eyrie.org/~eagle/">Broken link cleanup</a></dt> +<dd><p> + Another periodic cleanup of broken links. +</p></dd> + +<dt>2021-04-05 — + <a href="https://www.eyrie.org/~eagle/reviews/awards.html">Add 2021 winner of the BSFA award</a></dt> +<dd><p> + Add 2021 winner of the BSFA award for best novel (The City We Became, by + N.K. Jemisin). +</p></dd> + +<dt>2021-04-05 — + <a href="https://www.eyrie.org/~eagle/reviews/awards.html">Add 2021 winner of the Philip K. Dick Award</a></dt> +<dd><p> + Add 2021 winner of the Philip K. Dick Award for best novel (The Road out + of Winter, by Alison Stine). +</p></dd> + +<dt>2021-04-03 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-02-044240-8.html">Review: Prince Caspian</a></dt> +<dd><p> + Review of Prince Caspian by C.S. Lewis. +</p></dd> +</dl> + +<h2>March 2021</h2> + +<dl> +<dt>2021-03-30 — + <a href="https://www.eyrie.org/~eagle/reviews/books/paladins-strength.html">Review: Paladin's Strength</a></dt> +<dd><p> + Review of Paladin's Strength by T. Kingfisher. +</p></dd> + +<dt>2021-03-29 — + <a href="https://www.eyrie.org/~eagle/reviews/books/paladins-grace.html">Add series information to Paladin's Grace</a></dt> +<dd><p> + Paladin's Grace by T. Kingfisher is the first of a series. Add the + series information and a mention of the sequel. +</p></dd> + +<dt>2021-03-28 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-4919-5202-4.html">Review: JavaScript: The Definitive Guide</a></dt> +<dd><p> + Review of JavaScript: The Definitive Guide by David Flanagan. +</p></dd> + +<dt>2021-03-28 — + <a href="https://www.eyrie.org/~eagle/software/inn/">Add sample INN init script and systemd unit file</a></dt> +<dd><p> + In the documentation pages for INN CURRENT, 2.6, and 2.5, add the sample + init script and systemd unit. +</p></dd> + +<dt>2021-03-28 — + <a href="https://www.eyrie.org/~eagle/software/pod-thread/">Pod::Thread 2.00</a></dt> +<dd><p> + Handle the navbar and table of contents internally in the module rather + than via a pre-scanning pass. Honor CVS Id strings found anywhere in the + document. Don't title-case words in section titles in the navbar that + contain an underscore. +</p></dd> + +<dt>2021-03-21 — + <a href="https://www.eyrie.org/~eagle/software/web/">cvs2xhtml 1.15</a></dt> +<dd><p> + Convert to Python 3. Update my email address. +</p></dd> + +<dt>2021-03-21 — + <a href="https://www.eyrie.org/~eagle/software/web/">cl2xhtml 1.12</a></dt> +<dd><p> + Convert to Python 3. Update my email address. +</p></dd> + +<dt>2021-03-21 — + <a href="https://www.eyrie.org/~eagle/software/web/">faq2html 1.36</a></dt> +<dd><p> + Support formatting of dense bullet lists with line continuations but no + blank lines between bullets. Update my email address. +</p></dd> + +<dt>2021-03-21 — + <a href="https://www.eyrie.org/~eagle/software/debian.html">Remove DocKnot from my personal Debian repository list</a></dt> +<dd><p> + DocKnot has now been uploaded to Debian proper. +</p></dd> + +<dt>2021-03-21 — + <a href="https://www.eyrie.org/~eagle/software/pod-thread/">Add separate web pages for Pod::Thread</a></dt> +<dd><p> + As the first step in cleaning up my static site generator pages, and in + prepration for uploading it to CPAN in its own right, move Pod::Thread to + its own separate web pages. +</p></dd> + +<dt>2021-03-20 — + <a href="https://www.eyrie.org/~eagle/software/pam-krb5/">pam-krb5 4.10</a></dt> +<dd><p> + Fix use-after-free if krb5_cc_get_principal fails on the newly-created + ticket cache. +</p></dd> + +<dt>2021-03-20 — + <a href="https://www.eyrie.org/~eagle/software/rra-c-util/">rra-c-util 9.0</a></dt> +<dd><p> + Rename SQLite Autoconf macros and their outputs from SQLITE to SQLITE3. + Fix support for optional libraries. Rename KRB5_CPPFLAGS_GCC to + KRB5_CPPFLAGS_WARNINGS. Stop defining AM_CONDITIONAL in Autoconf + macros. Check for working Kerberos headers as well as libraries. Add C + stubs for sd_notify and sd_notifyf and a preprocessor stub for + sd_is_socket. Fix portable/sd-daemon.h to include prerequisite headers. + Fix RRA_PROG_PYTHON with Python 3.0 and older Python 2.x versions. Fix + problems with the util/fdflag test. Use AS_ECHO where possible. Fix + perlcritic with YAML::XS. +</p></dd> + +<dt>2021-03-20 — + <a href="https://www.eyrie.org/~eagle/personal/contact.html">Clean GnuPG key</a></dt> +<dd><p> + Refresh the expiration on my signing key and re-export my key with the + export-clean flag, which cleans up a bunch of duplicate and expired + signatures. +</p></dd> + +<dt>2021-03-20 — + <a href="https://www.eyrie.org/~eagle/reviews/awards.html">Add nominees for 2021 Nebula Award for best novel</a></dt> +<dd><p> + Add the nominees for the 2021 Nebula Award for best novel. +</p></dd> + +<dt>2021-03-14 — + <a href="https://www.eyrie.org/~eagle/journal/2021-03/001.html">New experimental Big Eight control message signing key</a></dt> +<dd><p> + Published a new experimental signing key for Big Eight control messages + that was generated with a modern GnuPG. +</p></dd> + +<dt>2021-03-13 — + <a href="https://www.eyrie.org/~eagle/reviews/awards.html">Add 2020 British Fantasy Award winner</a></dt> +<dd><p> + Add winner of the 2020 British Fantasy Robert Holdstock Award for best + fantasy novel (The Bone Ships, by RJ Barker). +</p></dd> + +<dt>2021-03-01 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-02-044220-3.html">Review: The Lion, the Witch and the Wardrobe</a></dt> +<dd><p> + Review of The Lion, the Witch and the Wardrobe by C.S. Lewis. +</p></dd> +</dl> + +<h2>February 2021</h2> + +<dl> +<dt>2021-02-28 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-250-21546-3.html">Review: Architects of Memory</a></dt> +<dd><p> + Review of Architects of Memory by Karen Osborne. +</p></dd> + +<dt>2021-02-27 — + <a href="https://www.eyrie.org/~eagle/software/docknot/">DocKnot 4.01</a></dt> +<dd><p> + Add support for a global user configuration file. Allow the distribution + directory to be specified in it. Add support for GnuPG signing of + generated tarballs. Fix docknot --help. Remove the obsolete + load_appdata_json helper. Fix some documentation bugs left over from the + 4.00 release. +</p></dd> + +<dt>2021-02-21 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-7564-1511-X.html">Review: Finder</a></dt> +<dd><p> + Review of Finder by Suzanne Palmer. +</p></dd> + +<dt>2021-02-20 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-7653-9893-1.html">Review: The Fated Sky</a></dt> +<dd><p> + Review of The Fated Sky by Mary Robinette Kowal. +</p></dd> + +<dt>2021-02-17 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-9821-5694-5.html">Review: Solutions and Other Problems</a></dt> +<dd><p> + Review of Solutions and Other Problems by Allie Brosh. +</p></dd> + +<dt>2021-02-14 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-4516-3937-6.html">Review: Spheres of Influence</a></dt> +<dd><p> + Review of Spheres of Influence by Ryk E. Spoor. +</p></dd> + +<dt>2021-02-14 — + <a href="https://www.eyrie.org/~eagle/reviews/mythopoeic.html">Add winner of 2020 Mythopoeic Award</a></dt> +<dd><p> + Add the winner of the (delayed) 2020 Mythopoeic Fantasy Award for Adult + Literature (Snow White Learns Witchcraft, by Theodora Goss). +</p></dd> + +<dt>2021-02-13 — + <a href="https://www.eyrie.org/~eagle/">Broken link cleanup</a></dt> +<dd><p> + Another periodic cleanup of broken links. +</p></dd> + +<dt>2021-02-07 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-7653-9212-7.html">Review: The Future of Another Timeline</a></dt> +<dd><p> + Review of The Future of Another Timeline by Annalee Newitz. +</p></dd> + +<dt>2021-02-01 — + <a href="https://www.eyrie.org/~eagle/changes.html">Remove changes from December 2020</a></dt> +<dd><p> + Remove the changes from December 2020 from the recent changes + page. +</p></dd> +</dl> + +<h2>January 2021</h2> + +<dl> +<dt>2021-01-30 — + <a href="https://www.eyrie.org/~eagle/">Broken link cleanup</a></dt> +<dd><p> + Another periodic cleanup of broken links. +</p></dd> + +<dt>2021-01-28 — + <a href="https://www.eyrie.org/~eagle/software/inn/">INN 2.6.4</a></dt> +<dd><p> + Added support for systemd notifications and socket activation. Adapt the + length of the DH parameter during DHE key exchanges in nnrpd. Return + information about retired CNFS buffers from cnfsstat. Externalize the + CSS information from generated innreport reports. Support storing wire + format articles with sm. Add a flag to rnews to disallow additional + unpackers, a flag to save rejected articles, and a flag to log the + message ID of duplicate articles. Add a compile-time option to enable + hardening flags. +</p></dd> + +<dt>2021-01-26 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-593-12849-4.html">Review: A Deadly Education</a></dt> +<dd><p> + Review of A Deadly Education by Naomi Novik. +</p></dd> + +<dt>2021-01-25 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-316-50985-X.html">Review: The City We Became</a></dt> +<dd><p> + Review of The City We Became by N.K. Jemisin. +</p></dd> + +<dt>2021-01-24 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-9821-4013-5.html">Review: Laziness Does Not Exist</a></dt> +<dd><p> + Review of Laziness Does Not Exist by Devon Price. +</p></dd> + +<dt>2021-01-18 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-5098-4115-6.html">Review: The Secret Barrister</a></dt> +<dd><p> + Review of The Secret Barrister by The Secret Barrister. +</p></dd> + +<dt>2021-01-04 — + <a href="https://www.eyrie.org/~eagle/journal/">Update some blog roll links</a></dt> +<dd><p> + Update URL to Nicola Griffith's blog, and switch Karl Schroeder's blog to + https. +</p></dd> + +<dt>2021-01-03 — + <a href="https://www.eyrie.org/~eagle/reviews/books/0-316-42202-9.html">Review: The Once and Future Witches</a></dt> +<dd><p> + Review of The Once and Future Witches by Alix E. Harrow. +</p></dd> + +<dt>2021-01-01 — + <a href="https://www.eyrie.org/~eagle/reviews/awards.html">Update award winners</a></dt> +<dd><p> + Add links to all award pages that have good award web sites. Add notes + where the 2020 award was canceled or delayed. Add the winner of the 2020 + Prix Aurora Award for best adult novel (The Gossamer Mage by Julie + E. Czerneda) and the Sunburst award for adults (Gods of Jade and Shadow + by Silvia Moreno-Garcia). +</p></dd> + +<dt>2021-01-01 — + <a href="https://www.eyrie.org/~eagle/changes/2020.html">Rotate 2020 changes</a></dt> +<dd><p> + Move all web site changes from 2020 to a separate page and remove all + entries older than December of 2020 from the current changes page. +</p></dd> + +<dt>2021-01-01 — + <a href="https://www.eyrie.org/~eagle/reviews/year/2020.html">2020 reading in review</a></dt> +<dd><p> + Add an overview of my 2020 reading, main book recommendations, and + reading statistics. +</p></dd> +</dl> + +<address> + Last <a href="https://www.eyrie.org/~eagle/software/web/">spun</a> + %DATE% from thread modified %DATE% +</address> +</body> +</html> diff --git a/t/data/spin/output/changes.rss b/t/data/spin/output/changes.rss new file mode 100644 index 0000000..a4fdac7 --- /dev/null +++ b/t/data/spin/output/changes.rss @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>Changes to Russ Allbery's Web Pages</title> + <link>https://www.eyrie.org/~eagle/</link> + <description>Recent changes to Russ Allbery's web pages.</description> + <language>en-us</language> + <pubDate>%DATE%</pubDate> + <lastBuildDate>%DATE%</lastBuildDate> + <generator>spin-rss 1.25</generator> + <atom:link href="https://www.eyrie.org/~eagle/changes.rss" rel="self" + type="application/rss+xml" /> + + <item> + <title>kstart 4.3</title> + <link>https://www.eyrie.org/~eagle/software/kstart/</link> + <description><![CDATA[ + <p>Add support for kafs by continuing with -t behavior if kafs is present. + Use libkeyutils if available to isolate a command's keyring from the + invoking program if running a specific command with -t. Use a better + exit status when a command is killed with a signal. Use explicit_bzero + to clear the password for k5start -s. Other portability fixes and + updates.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1630383900</guid> + </item> + <item> + <title>Review: The Past is Red</title> + <link>https://www.eyrie.org/~eagle/reviews/books/1-250-30112-2.html</link> + <description><![CDATA[ + <p>Review of The Past is Red by Catherynne M. Valente.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1629347400</guid> + </item> + <item> + <title>Review: Black Sun</title> + <link>https://www.eyrie.org/~eagle/reviews/books/1-5344-3769-X.html</link> + <description><![CDATA[ + <p>Review of Black Sun by Rebecca Roanhorse.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1629172680</guid> + </item> + <item> + <title>Review: The Galaxy, and the Ground Within</title> + <link>https://www.eyrie.org/~eagle/reviews/books/0-06-293605-0.html</link> + <description><![CDATA[ + <p>Review of The Galaxy, and the Ground Within by Becky Chambers.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1629080460</guid> + </item> + <item> + <title>Review: The Last Battle</title> + <link>https://www.eyrie.org/~eagle/reviews/books/0-02-044210-6.html</link> + <description><![CDATA[ + <p>Review of The Last Battle by C.S. Lewis.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1628476740</guid> + </item> + <item> + <title>Broken link cleanup</title> + <link>https://www.eyrie.org/~eagle/</link> + <description><![CDATA[ + <p>Another periodic cleanup of broken links.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1628382240</guid> + </item> + <item> + <title>Review: Piranesi</title> + <link>https://www.eyrie.org/~eagle/reviews/books/1-63557-564-8.html</link> + <description><![CDATA[ + <p>Review of Piranesi by Susanna Clarke.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1627877520</guid> + </item> + <item> + <title>Review: Fugitive Telemetry</title> + <link>https://www.eyrie.org/~eagle/reviews/books/1-250-76538-2.html</link> + <description><![CDATA[ + <p>Review of Fugitive Telemetry by Martha Wells.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1627791960</guid> + </item> + <item> + <title>Add finalists for the World Fantasy Award</title> + <link>https://www.eyrie.org/~eagle/reviews/awards.html</link> + <description><![CDATA[ + <p>Add the finalists for the 2021 World Fantasy Award for best novel.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1627140180</guid> + </item> + <item> + <title>Broken link cleanup</title> + <link>https://www.eyrie.org/~eagle/</link> + <description><![CDATA[ + <p>Another periodic cleanup of broken links.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1627140120</guid> + </item> + <item> + <title>Add Clarke Award nominees and Locus Award Winners</title> + <link>https://www.eyrie.org/~eagle/reviews/awards.html</link> + <description><![CDATA[ + <p>Add the nominees for the 2021 Arthur C. Clarke Award, and the winners of + the 2021 Locus Awards (Network Effect by Martha Wells for best SF novel, + The City We Became by N.K. Jemisin for best fantasy novel, and Elatsoe by + Darcie Little Badger for best first novel).</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1625358060</guid> + </item> + <item> + <title>control-archive 1.9.1</title> + <link>https://www.eyrie.org/~eagle/software/control-archive/</link> + <description><![CDATA[ + <p>A data-only release that updates the Big Eight control signing key and + removes some obsolete information about net.*.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1624848900</guid> + </item> + <item> + <title>Added web page for Big Eight control information</title> + <link>https://www.eyrie.org/~eagle/big-8/</link> + <description><![CDATA[ + <p>New web page summarizing control information for the Big Eight + hierarchies with links to the control message signing keys and the PGP + Moose key.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1624832580</guid> + </item> + <item> + <title>Review: Demon Lord of Karanda</title> + <link>https://www.eyrie.org/~eagle/reviews/books/0-345-36331-0.html</link> + <description><![CDATA[ + <p>Review of Demon Lord of Karanda by David Eddings.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1624247820</guid> + </item> + <item> + <title>Review: The Magician's Nephew</title> + <link>https://www.eyrie.org/~eagle/reviews/books/0-02-044230-0.html</link> + <description><![CDATA[ + <p>Review of The Magician's Nephew by C.S. Lewis.</p> + ]]></description> + <pubDate>%DATE%</pubDate> + <guid isPermaLink="false">1624161780</guid> + </item> + </channel> +</rss> diff --git a/t/data/spin/output/journal/debian.rss b/t/data/spin/output/journal/debian.rss new file mode 100644 index 0000000..ad3a8d3 --- /dev/null +++ b/t/data/spin/output/journal/debian.rss @@ -0,0 +1,381 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>Eagle's Path</title> + <link>https://www.eyrie.org/~eagle/</link> + <description>"Passion and dispassion. Choose two." -- Larry Wall</description> + <language>en-us</language> + <pubDate>%DATE%</pubDate> + <lastBuildDate>%DATE%</lastBuildDate> + <generator>spin-rss 1.25</generator> + <atom:link href="https://www.eyrie.org/~eagle/journal/debian.rss" rel="self" + type="application/rss+xml" /> + + <item> + <title>NPR Top 100 SFF meme</title> + <link>https://www.eyrie.org/~eagle/journal/2011-08/006.html</link> + <description><![CDATA[ +<p> +By way of <a href="http://firecat.dreamwidth.org/profile"><img src="https://www.eyrie.org/~eagle/journal/dw.png" alt="" /></a><a href="http://firecat.dreamwidth.org/"><strong>firecat</strong></a>, this is the result of a public nomination process, +panel review, and Internet voting on the NPR web site: an attempt at the +top 100 works of science fiction or fantasy. Series are counted as single +works for the purposes of the list. +</p> + +<p> +This list has a ton of problems, like any list of this sort will have. It +leans rather more heavily towards white male than the actual literature, +and certainly than my reading. The lack of non-white writers is +particularly troubling. But it's still an interesting selection. (For +those wondering about some obvious omissions, young adult was explicitly +excluded.) +</p> + +<p> +The rules are to bold the works one has read in their entirety and +italicize the ones you've read part of but not finished. I'll add +underlining the works that I own, which provides some indication of the +things that I've not read but that are on my to-read list. +</p> + +<ol> +<li class="packed"><strong><u>The Lord Of The Rings Trilogy, by J.R.R. Tolkien</u></strong>: + It's a boring winner because it always wins, but it's an amazing book + and I can't argue with it. I'll probably never review this one since + I'm not sure I have anything original to say about it.</li> +<li class="packed"><strong><u>The Hitchhiker's Guide To The Galaxy, by Douglas Adams</u></strong>: + Probably the best humorous SF. I've read the entire series except for + <cite>The Salmon of Doubt</cite>, the unfinished book left when Adams died. + Will re-read them all at some point.</li> +<li class="packed"><strong><u>Ender's Game, by Orson Scott Card</u></strong>: + I intensely dislike Card's politics, but this book is still very good. + It's on my re-read list so that I can write a proper review of it.</li> +<li class="packed"><strong>The Dune Chronicles, by Frank Herbert</strong>: + I've read the whole series, but only own the first, which is by far + the best. I'm tempted to re-read the whole series at some point, + since I don't remember it well enough to analyze it, but I'll probably + stop after re-reading just the first.</li> +<li class="packed"><em><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-57340-3.html">A Song Of Ice And Fire + Series</a>, by George R. R. Martin</em>: + I own the first couple and have read and reviewed the first four. I + think they're somewhat overrated, but will probably read the latest. + I'm not sure if I'll re-read the previous books to remember what the + heck was going on.</li> +<li class="packed"><u>1984, by George Orwell</u>: + I've somehow never read this. I keep meaning to, particularly since I + generally love Orwell.</li> +<li class="packed"><strong>Fahrenheit 451, by Ray Bradbury</strong>: + Massively overrated, or perhaps just made unoriginal by subsequent + history. I found it boring and uninteresting.</li> +<li class="packed"><strong><u>The Foundation Trilogy, by Isaac Asimov</u></strong>: + Thoroughly enjoyed this when I was a teenager. I suspect I'll like it + less as an adult, but definitely on my to-read list.</li> +<li class="packed"><u>Brave New World, by Aldous Huxley</u>: Another classic I've never read.</li> +<li class="packed"><strong><u>American Gods, by Neil Gaiman</u></strong>: + Great book. Need to re-read to review.</li> +<li class="packed"><u>The Princess Bride, by William Goldman</u>: + On the list to read. Apparently significantly better than the movie, + which I liked less than everyone else on the planet.</li> +<li class="packed"><em>The Wheel Of Time Series, by Robert Jordan</em>: + I read up to book eight (<cite>The Path of Daggers</cite>) and bailed + halfway through it. It started as somewhat interesting fantasy with + deep world building and fun world surprises, but the writing got worse + and worse and the characters became miserably unlikeable. I'm still + occasionally tempted to re-read and finish it, but it's a bad + temptation.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/animal-farm.html">Animal Farm</a>, by George + Orwell</u></strong>: + Great book, and a political and historical classic. Best read in + combination with a good history.</li> +<li class="packed"><strong><u>Neuromancer, by William Gibson</u></strong>: Meh.</li> +<li class="packed"><strong><u>Watchmen, by Alan Moore</u></strong>: Brilliant. On my list to re-read.</li> +<li class="packed"><strong><u>I, Robot, by Isaac Asimov</u></strong>: + Okay, but I generally find Asimov a bit overrated. Good for + intellectual puzzle stories, but not that deep of ones, and the + characters are essentially nonentities.</li> +<li class="packed"><strong>Stranger In A Strange Land, by Robert Heinlein</strong>: + The only book that I've ever put down within fifteen pages of the end + and could never muster enough caring to pick up again. I should + re-read it at some point to review it, but I don't think it's very + good.</li> +<li class="packed"><u>The Kingkiller Chronicles, by Patrick Rothfuss</u>: + Well, I own the first one at least.</li> +<li class="packed">Slaughterhouse-Five, by Kurt Vonnegut: Need to read.</li> +<li class="packed">Frankenstein, by Mary Shelley: + I've never actually read this, but I'm not sure there's much point in + reading it. I've been so thoroughly exposed to the angles and + interpretations of it that reading it at this point would be an odd + experience. I probably should for completion's sake at some point. + (This is the first woman on the list, and of course she's long-dead + and not writing in the modern SF tradition.)</li> +<li class="packed"><u>Do Androids Dream Of Electric Sheep?, by Philip K. Dick</u>: + I do need to read more Dick. I don't think this is as good as its + placement on the list; everyone just knows <cite>Blade Runner</cite> (which + was based on this).</li> +<li class="packed"><u>The Handmaid's Tale, by Margaret Atwood</u>: + I have a bunch of Atwood, but haven't yet read any of it.</li> +<li class="packed">The Dark Tower Series, by Stephen King: + It's rare for me to find any horror I actually like, but my + understanding is that this is less horror than a lot of King. I may + give it a try someday (but probably won't).</li> +<li class="packed"><strong>2001: A Space Odyssey, by Arthur C. Clarke</strong>: + Much better than the movie since it actually explained what was going + on, although it wasn't as atmospheric. Not actually as good as its + position on lists like this would indicate. Mostly it's just a book + everyone has heard of.</li> +<li class="packed"><u>The Stand, by Stephen King</u>: See above about horror.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-56261-4.html">Snow Crash</a>, by Neal + Stephenson</u></strong>: + One of my favorite humorous SF books, plus features the trademark + Stephenson infodumping and some neat bits about building a virtual + world.</li> +<li class="packed"><u>The Martian Chronicles, by Ray Bradbury</u>: On the list to read.</li> +<li class="packed">Cat's Cradle, by Kurt Vonnegut: Need to track down and read.</li> +<li class="packed"><strong><u>The Sandman Series, by Neil Gaiman</u></strong>: + Quite possibly the best comic book series ever written. Utterly + brilliant. The one set of graphic novels that everyone should read at + some point in their life.</li> +<li class="packed">A Clockwork Orange, by Anthony Burgess: + Huh. Not really on my radar to read, although of course I've heard of + it.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-441-78358-9.html">Starship Troopers</a>, by + Robert Heinlein</u></strong>: + Also overrated, particularly since it's not much of a story. It's an + extended and multifaceted political essay, which isn't as simple as it + appears to be. The movie, quite contrary to the negative impression + people have of it, is a delightful parody of how the book comes across + on its surface reading.</li> +<li class="packed"><u>Watership Down, by Richard Adams</u>: Yeah, yeah, I know I should read it.</li> +<li class="packed"><strong><u>Dragonflight, by Anne McCaffrey</u></strong>: + I loved the Pern books as a teenager up until the point when the just + became retellings of the same book from a new perspective. I'm afraid + to re-read them.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-425-03436-4.html">The Moon Is A Harsh + Mistress</a>, by Robert Heinlein</u></strong>: + Much, much better than <cite>Starship Troopers</cite>. One of the better + non-juvenile Heinleins. Still not as good as people think it is.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-37926-7.html">A Canticle For + Leibowitz</a>, by Walter M. Miller</u></strong>: + I was disappointed in this given how much people like it, but it + deserves some credit for being foundational to post-apocalyptic SF.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-517-26188-Xa.html">The Time Machine</a>, by + H.G. Wells</u></strong>: + More interesting than you might think it would be, given when it was + written and the emphasis on description rather than characterization. + But it still suffers from a lack of characters for me. Hard to come + to this fresh now, since the ideas have been so used elsewhere.</li> +<li class="packed">20,000 Leagues Under The Sea, by Jules Verne: + I've seen the movie take on it. I've not felt a strong urge to read + the book, although I probably "should."</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-27450-3.html">Flowers For Algernon</a>, + by Daniel Keys</u></strong>: + Unforgettable and very strongly affecting (and depressing).</li> +<li class="packed"><u>The War Of The Worlds, by H.G. Wells</u>: Will read at some point.</li> +<li class="packed"><u>The Chronicles Of Amber, by Roger Zelazny</u>: Will probably read soon.</li> +<li class="packed"><strong><u>The Belgariad, by David Eddings</u></strong>: + Yeah, I read this as a teenager and quite liked it. But I have no + idea what it's doing on this list; it is in absolutely no way one of + the best 100 SFF works of all time. (Well, that's not true; I know + what it's doing on this list. People have heard of it and read it. + But it shouldn't be on this list.)</li> +<li class="packed"><u>The Mists Of Avalon, by Marion Zimmer Bradley</u>: On the list.</li> +<li class="packed">The Mistborn Series, by Brandon Sanderson: Want to read this.</li> +<li class="packed"><strong><u>Ringworld, by Larry Niven</u></strong>: + Interesting idea fiction with a great sense of scale. Shame the + characters aren't as good as the background. But it's a good book, + worth reading.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-441-47812-3.html">The Left Hand Of + Darkness</a>, by Ursula K. LeGuin</u></strong>: + A deserved classic of anthropological SF with profound things to say + about how culture and friendship are constructed.</li> +<li class="packed"><strong><u>The Silmarillion, by J.R.R. Tolkien</u></strong>: + I love this book, but the first section is hard going if you don't + like reading mythology. Skip ahead if you're struggling; the gems are + later.</li> +<li class="packed"><u>The Once And Future King, by T.H. White</u>: Definitely on the list to read.</li> +<li class="packed"><strong><u>Neverwhere, by Neil Gaiman</u></strong>: + I'm not sure I'd put it on this list, as there are better Gaiman (and + Gaiman is already overrepresented), but it's a solid "urban" fantasy + in the old sense of that term. Inventive, with a feel similar to some + of the <cite>Sandman</cite> stories.</li> +<li class="packed"><strong><u>Childhood's End, by Arthur C. Clarke</u></strong>: + I read this eons ago and can barely remember it. I definitely need to + re-read it.</li> +<li class="packed">Contact, by Carl Sagan: + Liked the movie, have never had any particular urge to read the book.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-28368-5.html">The Hyperion Cantos</a>, by + Dan Simmons</u></strong>: + Some of my favorite SF novels ever. The third book is the weakest, + and the fourth book has problems, but I adore it.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/1-56389-470-X.html">Stardust</a>, by Neil + Gaiman</u></strong>: + Really far too much Gaiman on this list. But also a good book.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-380-78862-4.html">Cryptonomicon</a>, by Neal + Stephenson</u></strong>: + Fantastic stuff. Not SF in any traditional sense. It's a combination + of secret history and contemporary thriller. But it's written in the + Stephenson massive entertaining infodumping style, so it feels like SF + and makes it onto lists like this. It's very long, but I've read it + twice and don't regret it.</li> +<li class="packed">World War Z, by Max Brooks: + Have a hard time believing this really belongs here, but I haven't + read it so I couldn't say for sure.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-345-27505-5.html">The Last Unicorn</a>, by + Peter S. Beagle</u></strong>: + Eh, it's not a bad book, but I'm not sure it really belongs on this + list. But it does have an aesthetic that's hard to find in any other + book.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-380-70821-3.html">The Forever War</a>, by Joe + Haldeman</u></strong>: + A very important response to the whole sub-genre of military SF, and + very influential.</li> +<li class="packed"><u>Small Gods, by Terry Pratchett</u>: Getting to it.</li> +<li class="packed"><em><u>The Chronicles Of Thomas Covenant, The Unbeliever, by Stephen + R. Donaldson</u></em>: + Read the first book, wasn't much of a fan. I might get back to it at + some point, but I'm not particularly eager.</li> +<li class="packed"><strong><a href="https://www.eyrie.org/~eagle/reviews/books/0-671-87749-6a.html">The Vorkosigan Saga</a>, by + Lois McMaster Bujold</strong>: + I don't like the early books as much as some, but I love some of the + later books. The last few have been disappointing, but overall very + much worth reading, and belongs around here on the list.</li> +<li class="packed">Going Postal, by Terry Pratchett: Getting to it.</li> +<li class="packed"><strong>The Mote In God's Eye, by Larry Niven & Jerry Pournelle</strong>: + Read many years ago and barely remember it. I need to re-read it, + particularly since there's a new sequal by Pournelle's daughter that + looks well worth reading.</li> +<li class="packed"><em>The Sword Of Truth, by Terry Goodkind</em>: + I read way too many books in this series. Others should not repeat my + mistake. Generic fantasy about incredibly stupid people that turns + into libertarian political ravings.</li> +<li class="packed">The Road, by Cormac McCarthy: Not my thing.</li> +<li class="packed"><strong><a href="https://www.eyrie.org/~eagle/reviews/books/1-58234-416-7.html">Jonathan Strange & Mr + Norrell</a>, by Susanna Clarke</strong>: + A nearly unique reading experience, and the best footnoted fantasy + that I've ever read (and that includes Pratchett). Great stuff if you + don't mind the slow pace. I'm eagerly hoping for an actual sequel.</li> +<li class="packed">I Am Legend, by Richard Matheson: + Having a hard time getting interested enough in a book about zombies. + But I've been wrong about that + <a href="https://www.eyrie.org/~eagle/reviews/books/0-316-12246-7.html">before</a>.</li> +<li class="packed">The Riftwar Saga, by Raymond E. Feist: + Heard of it, but not enough to get it onto my want list.</li> +<li class="packed">The Shannara Trilogy, by Terry Brooks: + Heard enough about it to not put it on my want list.</li> +<li class="packed">The Conan The Barbarian Series, by R.E. Howard: + Something that I feel like I "should" read, but usually I'm not a big + fan of pulp.</li> +<li class="packed"><u>The Farseer Trilogy, by Robin Hobb</u>: + Own the first, which has been on my to-read list for a very long time. + Someday I'll get to it. I should probably buy all of the trilogy + before starting it.</li> +<li class="packed"><strong><a href="https://www.eyrie.org/~eagle/reviews/books/1-931561-64-8.html">The Time Traveler's + Wife</a>, by Audrey Niffenegger</strong>: + Surprisingly good for a literary fantasy, with some fantastic moments + of description.</li> +<li class="packed">The Way Of Kings, by Brandon Sanderson: Want to read at some point.</li> +<li class="packed">A Journey To The Center Of The Earth, by Jules Verne: + As above, uninspired to read Verne.</li> +<li class="packed"><em><a href="https://www.eyrie.org/~eagle/reviews/books/0-88038-905-2.html">The Legend Of Drizzt + Series</a>, by R.A. Salvatore</em>: + Read the first one, and unless they get substantially better, I have + no interest in reading more. Very stock power fantasy with + one-dimensional characters.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-765-31524-6.html">Old Man's War</a>, by John + Scalzi</u></strong>: + The later books in the series are better than the first one. An + interesting take on military SF, but I'm not sure it really rises to + the level of this sort of list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-57331-4.html">The Diamond Age</a>, by + Neil Stephenson</u></strong>: + One too many Stephenson for this list, plus <cite>Anathem</cite> is probably + more deserving of this place, but there are some neat bits about + computation theory.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-28789-3.html">Rendezvous With Rama</a>, + by Arthur C. Clarke</u></strong>: + Completely overrated. A bad book that just happens to be foundational + in a particular sub-genre of SF. Done much better by other people.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-765-34298-7.html">The Kushiel's Legacy + Series</a>, by Jacqueline Carey</u></strong>: + By far my favorite epic fantasy series. Lush, involved, very + creative, and with a truly unusual heroine. Wonderful stuff.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-06-105488-7.html">The Dispossessed</a>, by + Ursula K. LeGuin</u></strong>: + Great, thoughtful SF. Probably the best in the utopia genre, even + though it isn't a utopia.</li> +<li class="packed">Something Wicked This Way Comes, by Ray Bradbury: Horror. Eh.</li> +<li class="packed"><u>Wicked, by Gregory Maguire</u>: + On the list, but after a general Oz re-read.</li> +<li class="packed"><u>The Malazan Book Of The Fallen Series, by Steven Erikson</u>: + Own the first. Completely intimidated by the length of the series.</li> +<li class="packed"><u>The Eyre Affair, by Jasper Fforde</u>: On the list.</li> +<li class="packed"><em><u><a href="https://www.eyrie.org/~eagle/reviews/books/1-85723-138-4.html">The Culture Series</a>, by + Iain M. Banks</u></em>: + Brilliant stuff, highly recommended. I only haven't read it all + because I'm slowly digesting it. Should be higher on the list than + this.</li> +<li class="packed"><u>The Crystal Cave, by Mary Stewart</u>: On the list.</li> +<li class="packed"><u>Anathem, by Neal Stephenson</u>: On the list.</li> +<li class="packed">The Codex Alera Series, by Jim Butcher: + I'll read the Dresden series, or least part of it, first, and see if + that inspires me to read more Butcher. Dubious that this belongs on + this list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-671-45070-0.html">The Book Of The New + Sun</a>, by Gene Wolfe</u></strong>: + Incredibly influential and important fantasy-flavored SF that should + be much higher on the list than this.</li> +<li class="packed"><strong><u>The Thrawn Trilogy, by Timothy Zahn</u></strong>: + This is a <cite>Star Wars</cite> media tie-in series, and one of the few of + that type that I've read. I remember quite enjoying it a long time + ago, and it's on the list to re-read at some point.</li> +<li class="packed">The Outlander Series, by Diana Gabaldan: + The only thing on this list that I've never even heard of.</li> +<li class="packed">The Elric Saga, by Michael Moorcock: + Definitely want to read this at some point, once I figure out the + right place to start and probably after I've read some other + Moorcock.</li> +<li class="packed">The Illustrated Man, by Ray Bradbury: + Waiting to see if I like the better-known Bradbury first.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-515-13881-9.html">Sunshine</a>, by Robin + McKinley</u></strong>: + Quite possibly the best urban fantasy (in the modern definition) that + I've ever read.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-812-51528-5.html">A Fire Upon The Deep</a>, + by Vernor Vinge</u></strong>: + A little overrated, but it has a fun rendition of Usenet and some + neat aliens.</li> +<li class="packed"><strong>The Caves Of Steel, by Isaac Asimov</strong>: + Read long ago. Enjoyed it, but don't remember being grabbed by it. + There's a bit too much Asimov on this list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-56073-5.html">The Mars Trilogy</a>, by + Kim Stanley Robinson</u></strong>: + The most detailed and in-depth politics that you'll find in SF, even + more than Le Guin, at the cost of being mind-numbingly boring. Very + ambitious, but just doesn't move fast enough or have enough plot. + Robinson is less a novelist than a political and hard science essayist + in the form of a novel.</li> +<li class="packed"><strong><u>Lucifer's Hammer, by Larry Niven & Jerry Pournelle</u></strong>: + Large-screen disaster novel with a heavy helping of libertarian + utopian politics. Does not belong anywhere near this list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-56273-8.html">Doomsday Book</a>, by + Connie Willis</u></strong>: + The best of Willis's time travel novels, with fewer communication + failures and frantic faffing about than the other ones. Borderline + for this list, but probably deserves to be here.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-345-45940-7.html">Perdido Street Station</a>, + by China Mieville</u></strong>: + Revolutionary fantasy. The founding book of New Weird. I think + <a href="https://www.eyrie.org/~eagle/reviews/books/0-345-44438-8.html">The Scar</a> is a better + book, but I can't argue with this being here.</li> +<li class="packed">The Xanth Series, by Piers Anthony: I've been warned off these.</li> +<li class="packed"><strong><u>The Space Trilogy, by C.S. Lewis</u></strong>: + I need to re-read this and write long reviews of them, since I have a + lot to say about them. But they need to be read in the context of the + Christian faith to make any sense.</li> + + ]]></description> + <pubDate>%DATE%</pubDate> + <guid>https://www.eyrie.org/~eagle/journal/2011-08/006.html</guid> + </item> + </channel> +</rss> diff --git a/t/data/spin/output/journal/index.html b/t/data/spin/output/journal/index.html new file mode 100644 index 0000000..5db5156 --- /dev/null +++ b/t/data/spin/output/journal/index.html @@ -0,0 +1,807 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <title>Eagle's Path</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <link rel="stylesheet" href="/~eagle/styles/journal-set.css" type="text/css" /> + <link rel="alternate" type="application/rss+xml" href="index.rss" + title="Eagle's Path" /> + <link rel="alternate" type="application/rss+xml" href="debian.rss" + title="Eagle's Path (Debian focused)" /> + <link rel="alternate" type="application/rss+xml" href="reviews.rss" + title="Eagle's Path (reviews only)" /> +</head> + +<!-- Spun from index.th by spin %VERSION% on %DATE% --> + +<body> + +<h1>Eagle's Path</h1> + +<blockquote class="quote"><p class="short"> + Passion and dispassion. Choose two. +</p><p class="attribution"> + Larry Wall +</p></blockquote> + +<div class="sidebar"> + <h2>Syndication</h2> + +<p> + <span class="feed"><a href="/~eagle/journal/index.rss"><img src="/~eagle/journal/feed.png" alt="RSS" /></a> + <a href="/~eagle/journal/index.rss">All posts</a><br /></span> + <span class="feed"><a href="/~eagle/journal/reviews.rss"><img src="/~eagle/journal/feed.png" alt="RSS" /></a> + <a href="/~eagle/journal/reviews.rss">Only reviews</a><br /></span> + <span class="feed"><a href="/~eagle/journal/software.rss"><img src="/~eagle/journal/feed.png" alt="RSS" /></a> + <a href="/~eagle/journal/software.rss">Only software releases</a><br /></span> + <span class="feed"><a href="/~eagle/journal/debian.rss"><img src="/~eagle/journal/feed.png" alt="RSS" /></a> + <a href="/~eagle/journal/debian.rss">Debian-focused</a><br /></span> + <span class="feed"><a href="/~eagle/journal/../changes.rss"><img src="/~eagle/journal/feed.png" alt="RSS" /></a> + <a href="/~eagle/journal/../changes.rss">Web site changes</a><br /></span> + <span class="feed">DW: + <a href="https://eaglespath-feed.dreamwidth.org/"><img src="/~eagle/journal/feed.png" alt="" /></a> + <a href="https://eaglespath-feed.dreamwidth.org/">eaglespath_feed</a></span> <br /> +</p> + + <h2>Comments</h2> + +<p> + This journal does not support comments. + <a href="/~eagle/faqs/comments.html">Read why</a>. +</p> + + <h2>Archives</h2> + + <div class="archives"> <p class="text"> + Book and magazine reviews are not included in the journal + archives. For older book reviews, see + <a href="/~eagle/reviews/date.html">all book reviews sorted by + date</a> and <a href="/~eagle/reviews/magazines.html">all magazine + reviews</a>. + </p> + +<p> + 2021: + <a href="/~eagle/journal/2021-01/">01</a> <a href="/~eagle/journal/2021-02/">02</a> <a href="/~eagle/journal/2021-03/">03</a> + <a href="/~eagle/journal/2021-04/">04</a> <a href="/~eagle/journal/2021-05/">05</a> <a href="/~eagle/journal/2021-06/">06</a> + <a href="/~eagle/journal/2021-07/">07</a> <a href="/~eagle/journal/2021-08/">08</a> +</p> + +<p> + 2020: + <a href="/~eagle/journal/2020-01/">01</a> <a href="/~eagle/journal/2020-02/">02</a> <a href="/~eagle/journal/2020-03/">03</a> + <a href="/~eagle/journal/2020-04/">04</a> <a href="/~eagle/journal/2020-05/">05</a> <a href="/~eagle/journal/2020-06/">06</a> + <a href="/~eagle/journal/2020-07/">07</a> <a href="/~eagle/journal/2020-08/">08</a> <a href="/~eagle/journal/2020-09/">09</a> + <a href="/~eagle/journal/2020-10/">10</a> <a href="/~eagle/journal/2020-11/">11</a> <a href="/~eagle/journal/2020-12/">12</a> +</p> + +<p> + 2019: + <a href="/~eagle/journal/2019-01/">01</a> <a href="/~eagle/journal/2019-02/">02</a> <a href="/~eagle/journal/2019-03/">03</a> + <a href="/~eagle/journal/2019-04/">04</a> <a href="/~eagle/journal/2019-05/">05</a> <a href="/~eagle/journal/2019-06/">06</a> + <a href="/~eagle/journal/2019-07/">07</a> <a href="/~eagle/journal/2019-08/">08</a> <a href="/~eagle/journal/2019-09/">09</a> + <a href="/~eagle/journal/2019-10/">10</a> <a href="/~eagle/journal/2019-11/">11</a> <a href="/~eagle/journal/2019-12/">12</a> +</p> + +<p> + 2018: + <a href="/~eagle/journal/2018-01/">01</a> <a href="/~eagle/journal/2018-02/">02</a> <a href="/~eagle/journal/2018-03/">03</a> + <a href="/~eagle/journal/2018-04/">04</a> <a href="/~eagle/journal/2018-05/">05</a> <a href="/~eagle/journal/2018-06/">06</a> + <a href="/~eagle/journal/2018-07/">07</a> <a href="/~eagle/journal/2018-08/">08</a> <a href="/~eagle/journal/2018-09/">09</a> + <a href="/~eagle/journal/2018-10/">10</a> 11 <a href="/~eagle/journal/2018-12/">12</a> +</p> + +<p> + 2017: + <a href="/~eagle/journal/2017-01/">01</a> <a href="/~eagle/journal/2017-02/">02</a> <a href="/~eagle/journal/2017-03/">03</a> + <a href="/~eagle/journal/2017-04/">04</a> <a href="/~eagle/journal/2017-05/">05</a> <a href="/~eagle/journal/2017-06/">06</a> + <a href="/~eagle/journal/2017-07/">07</a> 08 <a href="/~eagle/journal/2017-09/">09</a> + <a href="/~eagle/journal/2017-10/">10</a> <a href="/~eagle/journal/2017-11/">11</a> <a href="/~eagle/journal/2017-12/">12</a> +</p> + +<p> + 2016: + <a href="/~eagle/journal/2016-01/">01</a> <a href="/~eagle/journal/2016-02/">02</a> <a href="/~eagle/journal/2016-03/">03</a> + <a href="/~eagle/journal/2016-04/">04</a> <a href="/~eagle/journal/2016-05/">05</a> 06 + <a href="/~eagle/journal/2016-07/">07</a> <a href="/~eagle/journal/2016-08/">08</a> <a href="/~eagle/journal/2016-09/">09</a> + <a href="/~eagle/journal/2016-10/">10</a> <a href="/~eagle/journal/2016-11/">11</a> <a href="/~eagle/journal/2016-12/">12</a> +</p> + +<p> + 2015: + <a href="/~eagle/journal/2015-01/">01</a> 02 <a href="/~eagle/journal/2015-03/">03</a> + <a href="/~eagle/journal/2015-04/">04</a> <a href="/~eagle/journal/2015-05/">05</a> 06 + <a href="/~eagle/journal/2015-07/">07</a> <a href="/~eagle/journal/2015-08/">08</a> <a href="/~eagle/journal/2015-09/">09</a> + <a href="/~eagle/journal/2015-10/">10</a> <a href="/~eagle/journal/2015-11/">11</a> <a href="/~eagle/journal/2015-12/">12</a> +</p> + +<p> + 2014: + <a href="/~eagle/journal/2014-01/">01</a> <a href="/~eagle/journal/2014-02/">02</a> <a href="/~eagle/journal/2014-03/">03</a> + <a href="/~eagle/journal/2014-04/">04</a> <a href="/~eagle/journal/2014-05/">05</a> <a href="/~eagle/journal/2014-06/">06</a> + <a href="/~eagle/journal/2014-07/">07</a> <a href="/~eagle/journal/2014-08/">08</a> <a href="/~eagle/journal/2014-09/">09</a> + <a href="/~eagle/journal/2014-10/">10</a> <a href="/~eagle/journal/2014-11/">11</a> <a href="/~eagle/journal/2014-12/">12</a> +</p> + +<p> + 2013: + <a href="/~eagle/journal/2013-01/">01</a> <a href="/~eagle/journal/2013-02/">02</a> <a href="/~eagle/journal/2013-03/">03</a> + <a href="/~eagle/journal/2013-04/">04</a> <a href="/~eagle/journal/2013-05/">05</a> <a href="/~eagle/journal/2013-06/">06</a> + <a href="/~eagle/journal/2013-07/">07</a> <a href="/~eagle/journal/2013-08/">08</a> <a href="/~eagle/journal/2013-09/">09</a> + <a href="/~eagle/journal/2013-10/">10</a> <a href="/~eagle/journal/2013-11/">11</a> <a href="/~eagle/journal/2013-12/">12</a> +</p> + +<p> + 2012: + <a href="/~eagle/journal/2012-01/">01</a> <a href="/~eagle/journal/2012-02/">02</a> <a href="/~eagle/journal/2012-03/">03</a> + <a href="/~eagle/journal/2012-04/">04</a> <a href="/~eagle/journal/2012-05/">05</a> <a href="/~eagle/journal/2012-06/">06</a> + <a href="/~eagle/journal/2012-07/">07</a> <a href="/~eagle/journal/2012-08/">08</a> <a href="/~eagle/journal/2012-09/">09</a> + <a href="/~eagle/journal/2012-10/">10</a> <a href="/~eagle/journal/2012-11/">11</a> <a href="/~eagle/journal/2012-12/">12</a> +</p> + +<p> + 2011: + <a href="/~eagle/journal/2011-01/">01</a> <a href="/~eagle/journal/2011-02/">02</a> <a href="/~eagle/journal/2011-03/">03</a> + <a href="/~eagle/journal/2011-04/">04</a> <a href="/~eagle/journal/2011-05/">05</a> <a href="/~eagle/journal/2011-06/">06</a> + <a href="/~eagle/journal/2011-07/">07</a> <a href="/~eagle/journal/2011-08/">08</a> <a href="/~eagle/journal/2011-09/">09</a> + <a href="/~eagle/journal/2011-10/">10</a> 11 <a href="/~eagle/journal/2011-12/">12</a> +</p> + +<p> + 2010: + <a href="/~eagle/journal/2010-01/">01</a> <a href="/~eagle/journal/2010-02/">02</a> <a href="/~eagle/journal/2010-03/">03</a> + <a href="/~eagle/journal/2010-04/">04</a> <a href="/~eagle/journal/2010-05/">05</a> <a href="/~eagle/journal/2010-06/">06</a> + <a href="/~eagle/journal/2010-07/">07</a> <a href="/~eagle/journal/2010-08/">08</a> <a href="/~eagle/journal/2010-09/">09</a> + <a href="/~eagle/journal/2010-10/">10</a> <a href="/~eagle/journal/2010-11/">11</a> <a href="/~eagle/journal/2010-12/">12</a> +</p> + +<p> + 2009: + <a href="/~eagle/journal/2009-01/">01</a> <a href="/~eagle/journal/2009-02/">02</a> <a href="/~eagle/journal/2009-03/">03</a> + <a href="/~eagle/journal/2009-04/">04</a> <a href="/~eagle/journal/2009-05/">05</a> <a href="/~eagle/journal/2009-06/">06</a> + <a href="/~eagle/journal/2009-07/">07</a> <a href="/~eagle/journal/2009-08/">08</a> <a href="/~eagle/journal/2009-09/">09</a> + <a href="/~eagle/journal/2009-10/">10</a> <a href="/~eagle/journal/2009-11/">11</a> <a href="/~eagle/journal/2009-12/">12</a> +</p> + +<p> + 2008: + <a href="/~eagle/journal/2008-01/">01</a> <a href="/~eagle/journal/2008-02/">02</a> <a href="/~eagle/journal/2008-03/">03</a> + <a href="/~eagle/journal/2008-04/">04</a> <a href="/~eagle/journal/2008-05/">05</a> <a href="/~eagle/journal/2008-06/">06</a> + <a href="/~eagle/journal/2008-07/">07</a> <a href="/~eagle/journal/2008-08/">08</a> <a href="/~eagle/journal/2008-09/">09</a> + <a href="/~eagle/journal/2008-10/">10</a> <a href="/~eagle/journal/2008-11/">11</a> <a href="/~eagle/journal/2008-12/">12</a> +</p> + +<p> + 2007: + <a href="/~eagle/journal/2007-01/">01</a> <a href="/~eagle/journal/2007-02/">02</a> <a href="/~eagle/journal/2007-03/">03</a> + <a href="/~eagle/journal/2007-04/">04</a> <a href="/~eagle/journal/2007-05/">05</a> <a href="/~eagle/journal/2007-06/">06</a> + <a href="/~eagle/journal/2007-07/">07</a> <a href="/~eagle/journal/2007-08/">08</a> <a href="/~eagle/journal/2007-09/">09</a> + <a href="/~eagle/journal/2007-10/">10</a> <a href="/~eagle/journal/2007-11/">11</a> <a href="/~eagle/journal/2007-12/">12</a> +</p> + +<p> + 2006: + <a href="/~eagle/journal/2006-01/">01</a> <a href="/~eagle/journal/2006-02/">02</a> <a href="/~eagle/journal/2006-03/">03</a> + <a href="/~eagle/journal/2006-04/">04</a> <a href="/~eagle/journal/2006-05/">05</a> <a href="/~eagle/journal/2006-06/">06</a> + <a href="/~eagle/journal/2006-07/">07</a> <a href="/~eagle/journal/2006-08/">08</a> <a href="/~eagle/journal/2006-09/">09</a> + <a href="/~eagle/journal/2006-10/">10</a> <a href="/~eagle/journal/2006-11/">11</a> <a href="/~eagle/journal/2006-12/">12</a> +</p> + +<p> + 2005: + <a href="/~eagle/journal/2005-01/">01</a> <a href="/~eagle/journal/2005-02/">02</a> <a href="/~eagle/journal/2005-03/">03</a> + <a href="/~eagle/journal/2005-04/">04</a> <a href="/~eagle/journal/2005-05/">05</a> <a href="/~eagle/journal/2005-06/">06</a> + <a href="/~eagle/journal/2005-07/">07</a> <a href="/~eagle/journal/2005-08/">08</a> <a href="/~eagle/journal/2005-09/">09</a> + <a href="/~eagle/journal/2005-10/">10</a> <a href="/~eagle/journal/2005-11/">11</a> <a href="/~eagle/journal/2005-12/">12</a> +</p> + +<p> + 2004: + <a href="/~eagle/journal/2004-01/">01</a> <a href="/~eagle/journal/2004-02/">02</a> <a href="/~eagle/journal/2004-03/">03</a> + <a href="/~eagle/journal/2004-04/">04</a> <a href="/~eagle/journal/2004-05/">05</a> <a href="/~eagle/journal/2004-06/">06</a> + <a href="/~eagle/journal/2004-07/">07</a> <a href="/~eagle/journal/2004-08/">08</a> <a href="/~eagle/journal/2004-09/">09</a> + <a href="/~eagle/journal/2004-10/">10</a> <a href="/~eagle/journal/2004-11/">11</a> <a href="/~eagle/journal/2004-12/">12</a> +</p> + +<p> + 2003: + <a href="/~eagle/journal/2003-03/">03</a> + <a href="/~eagle/journal/2003-04/">04</a> <a href="/~eagle/journal/2003-05/">05</a> <a href="/~eagle/journal/2003-06/">06</a> + <a href="/~eagle/journal/2003-07/">07</a> <a href="/~eagle/journal/2003-08/">08</a> <a href="/~eagle/journal/2003-09/">09</a> + <a href="/~eagle/journal/2003-10/">10</a> <a href="/~eagle/journal/2003-11/">11</a> <a href="/~eagle/journal/2003-12/">12</a> +</p></div> + + <h2>Other Book Reviews</h2> + +<p> + <a href="https://lightreads.dreamwidth.org/">lightreads</a> <br /> + <a href="https://stevereads.com/">Stephen Laniel</a> <br /> + <a href="https://jamesdavisnicoll.com/">James Davis Nicoll</a> <br /> + <a href="http://cloggie.org/books2/">Martin's Booklog</a> <br /> + <a href="https://steelypips.org/weblog/">Outside of a Dog</a> <br /> + <a href="https://rushthatspeaks.dreamwidth.org/">rushthatspeaks</a> <br /> + <a href="http://sff180.com/">SFF180</a> <br /> + <a href="https://www-users.cs.york.ac.uk/~susan/books/pages/">Susan Stepney</a> <br /> + <a href="https://www.tor.com/">Tor.com</a> <br /> + <a href="http://booklog.klio.org/">Weasel Words</a> +</p> + + <h2>Fiction Authors</h2> + +<p> + <a href="https://matociquala.dreamwidth.org/">Elizabeth Bear</a> <br /> + <a href="https://dreamcafe.com/">Steven Brust</a> <br /> + <a href="https://nicolagriffith.com/blog/">Nicola Griffith</a> <br /> + <a href="https://ansible.uk/">David Langford</a> <br /> + <a href="https://yhlee.dreamwidth.org/">Yoon Ha Lee</a> <br /> + <a href="https://nkjemisin.com/blog/">N.K. Jemisin</a> <br /> + <a href="https://www.rosemarykirstein.com/">Rosemary Kirstein</a> <br /> + <a href="https://seanan-mcguire.dreamwidth.org/">Seanan MacGuire</a> <br /> + <a href="https://kenmacleod.blogspot.com/">Ken MacLeod</a> <br /> + <a href="https://truepenny.dreamwidth.org/">Sarah Monette</a> <br /> + <a href="http://elizabethmoon.com/blog/">Elizabeth Moon</a> <br /> + <a href="https://lydamorehouse.dreamwidth.org/">Lyda Morehouse</a> <br /> + <a href="https://whatever.scalzi.com/">John Scalzi</a> <br /> + <a href="https://www.kschroeder.com/weblog">Karl Schroeder</a> <br /> + <a href="https://tkingfisher.dreamwidth.org/">Ursula Vernon</a> <br /> + <a href="http://www.jowaltonbooks.com/blog-2/">Jo Walton</a> +</p> + + <h2>Social Commentary</h2> + +<p> + <a href="https://www.askamanager.org/">Ask A Manager</a> <br /> + <a href="https://www.badscience.net/">Bad Science</a> <br /> + <a href="https://captainawkward.com/">Captain Awkward</a> <br /> + <a href="https://www.theatlantic.com/author/ta-nehisi-coates/">Ta-Nehisi Coates</a> <br /> + <a href="https://www.patheos.com/blogs/daylightatheism/">Daylight Atheism</a> <br /> + <a href="https://www.nytimes.com/column/paul-krugman">Paul Krugman</a> <br /> + <a href="https://loweringthebar.net/">Lowering the Bar</a> <br /> + <a href="https://nielsenhayden.com/makinglight/">Making Light</a> <br /> + <a href="https://james-davis-nicoll.dreamwidth.org/">James Nicoll</a> <br /> + <a href="https://www.schneier.com/blog/">Bruce Schneier</a> <br /> + <a href="https://www.patheos.com/blogs/slacktivist/">Slacktivist (Fred Clark)</a> +</p> + + <h2>Gaming</h2> + +<p> + <a href="https://majornelson.com/">Major Nelson (Xbox Live)</a> <br /> + <a href="https://www.penny-arcade.com/">Penny Arcade</a> <br /> + <a href="https://www.trueachievements.com/">TrueAchievements</a> +</p> + + <h2>Other</h2> + +<p> + <a href="https://www.dnalounge.com/backstage/log/">DNA Lounge</a> <br /> + <a href="https://xkcd.com/">XKCD</a> <br /> + <a href="https://what-if.xkcd.com/">XKCD What If?</a> <br /> + <a href="https://www.jwz.org/blog/">Jamie Zawinski</a> +</p></div> +<div class="journal"> +<h2>2011-08-13: NPR Top 100 SFF meme</h2> + +<p> +By way of <a href="http://firecat.dreamwidth.org/profile"><img src="dw.png" alt="" /></a><a href="http://firecat.dreamwidth.org/"><strong>firecat</strong></a>, this is the result of a public nomination process, +panel review, and Internet voting on the NPR web site: an attempt at the +top 100 works of science fiction or fantasy. Series are counted as single +works for the purposes of the list. +</p> + +<p> +This list has a ton of problems, like any list of this sort will have. It +leans rather more heavily towards white male than the actual literature, +and certainly than my reading. The lack of non-white writers is +particularly troubling. But it's still an interesting selection. (For +those wondering about some obvious omissions, young adult was explicitly +excluded.) +</p> + +<p> +The rules are to bold the works one has read in their entirety and +italicize the ones you've read part of but not finished. I'll add +underlining the works that I own, which provides some indication of the +things that I've not read but that are on my to-read list. +</p> + + + + + + + +<ol> +<li class="packed"><strong><u>The Lord Of The Rings Trilogy, by J.R.R. Tolkien</u></strong>: + It's a boring winner because it always wins, but it's an amazing book + and I can't argue with it. I'll probably never review this one since + I'm not sure I have anything original to say about it.</li> +<li class="packed"><strong><u>The Hitchhiker's Guide To The Galaxy, by Douglas Adams</u></strong>: + Probably the best humorous SF. I've read the entire series except for + <cite>The Salmon of Doubt</cite>, the unfinished book left when Adams died. + Will re-read them all at some point.</li> +<li class="packed"><strong><u>Ender's Game, by Orson Scott Card</u></strong>: + I intensely dislike Card's politics, but this book is still very good. + It's on my re-read list so that I can write a proper review of it.</li> +<li class="packed"><strong>The Dune Chronicles, by Frank Herbert</strong>: + I've read the whole series, but only own the first, which is by far + the best. I'm tempted to re-read the whole series at some point, + since I don't remember it well enough to analyze it, but I'll probably + stop after re-reading just the first.</li> +<li class="packed"><em><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-57340-3.html">A Song Of Ice And Fire + Series</a>, by George R. R. Martin</em>: + I own the first couple and have read and reviewed the first four. I + think they're somewhat overrated, but will probably read the latest. + I'm not sure if I'll re-read the previous books to remember what the + heck was going on.</li> +<li class="packed"><u>1984, by George Orwell</u>: + I've somehow never read this. I keep meaning to, particularly since I + generally love Orwell.</li> +<li class="packed"><strong>Fahrenheit 451, by Ray Bradbury</strong>: + Massively overrated, or perhaps just made unoriginal by subsequent + history. I found it boring and uninteresting.</li> +<li class="packed"><strong><u>The Foundation Trilogy, by Isaac Asimov</u></strong>: + Thoroughly enjoyed this when I was a teenager. I suspect I'll like it + less as an adult, but definitely on my to-read list.</li> +<li class="packed"><u>Brave New World, by Aldous Huxley</u>: Another classic I've never read.</li> +<li class="packed"><strong><u>American Gods, by Neil Gaiman</u></strong>: + Great book. Need to re-read to review.</li> +<li class="packed"><u>The Princess Bride, by William Goldman</u>: + On the list to read. Apparently significantly better than the movie, + which I liked less than everyone else on the planet.</li> +<li class="packed"><em>The Wheel Of Time Series, by Robert Jordan</em>: + I read up to book eight (<cite>The Path of Daggers</cite>) and bailed + halfway through it. It started as somewhat interesting fantasy with + deep world building and fun world surprises, but the writing got worse + and worse and the characters became miserably unlikeable. I'm still + occasionally tempted to re-read and finish it, but it's a bad + temptation.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/animal-farm.html">Animal Farm</a>, by George + Orwell</u></strong>: + Great book, and a political and historical classic. Best read in + combination with a good history.</li> +<li class="packed"><strong><u>Neuromancer, by William Gibson</u></strong>: Meh.</li> +<li class="packed"><strong><u>Watchmen, by Alan Moore</u></strong>: Brilliant. On my list to re-read.</li> +<li class="packed"><strong><u>I, Robot, by Isaac Asimov</u></strong>: + Okay, but I generally find Asimov a bit overrated. Good for + intellectual puzzle stories, but not that deep of ones, and the + characters are essentially nonentities.</li> +<li class="packed"><strong>Stranger In A Strange Land, by Robert Heinlein</strong>: + The only book that I've ever put down within fifteen pages of the end + and could never muster enough caring to pick up again. I should + re-read it at some point to review it, but I don't think it's very + good.</li> +<li class="packed"><u>The Kingkiller Chronicles, by Patrick Rothfuss</u>: + Well, I own the first one at least.</li> +<li class="packed">Slaughterhouse-Five, by Kurt Vonnegut: Need to read.</li> +<li class="packed">Frankenstein, by Mary Shelley: + I've never actually read this, but I'm not sure there's much point in + reading it. I've been so thoroughly exposed to the angles and + interpretations of it that reading it at this point would be an odd + experience. I probably should for completion's sake at some point. + (This is the first woman on the list, and of course she's long-dead + and not writing in the modern SF tradition.)</li> +<li class="packed"><u>Do Androids Dream Of Electric Sheep?, by Philip K. Dick</u>: + I do need to read more Dick. I don't think this is as good as its + placement on the list; everyone just knows <cite>Blade Runner</cite> (which + was based on this).</li> +<li class="packed"><u>The Handmaid's Tale, by Margaret Atwood</u>: + I have a bunch of Atwood, but haven't yet read any of it.</li> +<li class="packed">The Dark Tower Series, by Stephen King: + It's rare for me to find any horror I actually like, but my + understanding is that this is less horror than a lot of King. I may + give it a try someday (but probably won't).</li> +<li class="packed"><strong>2001: A Space Odyssey, by Arthur C. Clarke</strong>: + Much better than the movie since it actually explained what was going + on, although it wasn't as atmospheric. Not actually as good as its + position on lists like this would indicate. Mostly it's just a book + everyone has heard of.</li> +<li class="packed"><u>The Stand, by Stephen King</u>: See above about horror.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-56261-4.html">Snow Crash</a>, by Neal + Stephenson</u></strong>: + One of my favorite humorous SF books, plus features the trademark + Stephenson infodumping and some neat bits about building a virtual + world.</li> +<li class="packed"><u>The Martian Chronicles, by Ray Bradbury</u>: On the list to read.</li> +<li class="packed">Cat's Cradle, by Kurt Vonnegut: Need to track down and read.</li> +<li class="packed"><strong><u>The Sandman Series, by Neil Gaiman</u></strong>: + Quite possibly the best comic book series ever written. Utterly + brilliant. The one set of graphic novels that everyone should read at + some point in their life.</li> +<li class="packed">A Clockwork Orange, by Anthony Burgess: + Huh. Not really on my radar to read, although of course I've heard of + it.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-441-78358-9.html">Starship Troopers</a>, by + Robert Heinlein</u></strong>: + Also overrated, particularly since it's not much of a story. It's an + extended and multifaceted political essay, which isn't as simple as it + appears to be. The movie, quite contrary to the negative impression + people have of it, is a delightful parody of how the book comes across + on its surface reading.</li> +<li class="packed"><u>Watership Down, by Richard Adams</u>: Yeah, yeah, I know I should read it.</li> +<li class="packed"><strong><u>Dragonflight, by Anne McCaffrey</u></strong>: + I loved the Pern books as a teenager up until the point when the just + became retellings of the same book from a new perspective. I'm afraid + to re-read them.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-425-03436-4.html">The Moon Is A Harsh + Mistress</a>, by Robert Heinlein</u></strong>: + Much, much better than <cite>Starship Troopers</cite>. One of the better + non-juvenile Heinleins. Still not as good as people think it is.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-37926-7.html">A Canticle For + Leibowitz</a>, by Walter M. Miller</u></strong>: + I was disappointed in this given how much people like it, but it + deserves some credit for being foundational to post-apocalyptic SF.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-517-26188-Xa.html">The Time Machine</a>, by + H.G. Wells</u></strong>: + More interesting than you might think it would be, given when it was + written and the emphasis on description rather than characterization. + But it still suffers from a lack of characters for me. Hard to come + to this fresh now, since the ideas have been so used elsewhere.</li> +<li class="packed">20,000 Leagues Under The Sea, by Jules Verne: + I've seen the movie take on it. I've not felt a strong urge to read + the book, although I probably "should."</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-27450-3.html">Flowers For Algernon</a>, + by Daniel Keys</u></strong>: + Unforgettable and very strongly affecting (and depressing).</li> +<li class="packed"><u>The War Of The Worlds, by H.G. Wells</u>: Will read at some point.</li> +<li class="packed"><u>The Chronicles Of Amber, by Roger Zelazny</u>: Will probably read soon.</li> +<li class="packed"><strong><u>The Belgariad, by David Eddings</u></strong>: + Yeah, I read this as a teenager and quite liked it. But I have no + idea what it's doing on this list; it is in absolutely no way one of + the best 100 SFF works of all time. (Well, that's not true; I know + what it's doing on this list. People have heard of it and read it. + But it shouldn't be on this list.)</li> +<li class="packed"><u>The Mists Of Avalon, by Marion Zimmer Bradley</u>: On the list.</li> +<li class="packed">The Mistborn Series, by Brandon Sanderson: Want to read this.</li> +<li class="packed"><strong><u>Ringworld, by Larry Niven</u></strong>: + Interesting idea fiction with a great sense of scale. Shame the + characters aren't as good as the background. But it's a good book, + worth reading.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-441-47812-3.html">The Left Hand Of + Darkness</a>, by Ursula K. LeGuin</u></strong>: + A deserved classic of anthropological SF with profound things to say + about how culture and friendship are constructed.</li> +<li class="packed"><strong><u>The Silmarillion, by J.R.R. Tolkien</u></strong>: + I love this book, but the first section is hard going if you don't + like reading mythology. Skip ahead if you're struggling; the gems are + later.</li> +<li class="packed"><u>The Once And Future King, by T.H. White</u>: Definitely on the list to read.</li> +<li class="packed"><strong><u>Neverwhere, by Neil Gaiman</u></strong>: + I'm not sure I'd put it on this list, as there are better Gaiman (and + Gaiman is already overrepresented), but it's a solid "urban" fantasy + in the old sense of that term. Inventive, with a feel similar to some + of the <cite>Sandman</cite> stories.</li> +<li class="packed"><strong><u>Childhood's End, by Arthur C. Clarke</u></strong>: + I read this eons ago and can barely remember it. I definitely need to + re-read it.</li> +<li class="packed">Contact, by Carl Sagan: + Liked the movie, have never had any particular urge to read the book.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-28368-5.html">The Hyperion Cantos</a>, by + Dan Simmons</u></strong>: + Some of my favorite SF novels ever. The third book is the weakest, + and the fourth book has problems, but I adore it.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/1-56389-470-X.html">Stardust</a>, by Neil + Gaiman</u></strong>: + Really far too much Gaiman on this list. But also a good book.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-380-78862-4.html">Cryptonomicon</a>, by Neal + Stephenson</u></strong>: + Fantastic stuff. Not SF in any traditional sense. It's a combination + of secret history and contemporary thriller. But it's written in the + Stephenson massive entertaining infodumping style, so it feels like SF + and makes it onto lists like this. It's very long, but I've read it + twice and don't regret it.</li> +<li class="packed">World War Z, by Max Brooks: + Have a hard time believing this really belongs here, but I haven't + read it so I couldn't say for sure.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-345-27505-5.html">The Last Unicorn</a>, by + Peter S. Beagle</u></strong>: + Eh, it's not a bad book, but I'm not sure it really belongs on this + list. But it does have an aesthetic that's hard to find in any other + book.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-380-70821-3.html">The Forever War</a>, by Joe + Haldeman</u></strong>: + A very important response to the whole sub-genre of military SF, and + very influential.</li> +<li class="packed"><u>Small Gods, by Terry Pratchett</u>: Getting to it.</li> +<li class="packed"><em><u>The Chronicles Of Thomas Covenant, The Unbeliever, by Stephen + R. Donaldson</u></em>: + Read the first book, wasn't much of a fan. I might get back to it at + some point, but I'm not particularly eager.</li> +<li class="packed"><strong><a href="https://www.eyrie.org/~eagle/reviews/books/0-671-87749-6a.html">The Vorkosigan Saga</a>, by + Lois McMaster Bujold</strong>: + I don't like the early books as much as some, but I love some of the + later books. The last few have been disappointing, but overall very + much worth reading, and belongs around here on the list.</li> +<li class="packed">Going Postal, by Terry Pratchett: Getting to it.</li> +<li class="packed"><strong>The Mote In God's Eye, by Larry Niven & Jerry Pournelle</strong>: + Read many years ago and barely remember it. I need to re-read it, + particularly since there's a new sequal by Pournelle's daughter that + looks well worth reading.</li> +<li class="packed"><em>The Sword Of Truth, by Terry Goodkind</em>: + I read way too many books in this series. Others should not repeat my + mistake. Generic fantasy about incredibly stupid people that turns + into libertarian political ravings.</li> +<li class="packed">The Road, by Cormac McCarthy: Not my thing.</li> +<li class="packed"><strong><a href="https://www.eyrie.org/~eagle/reviews/books/1-58234-416-7.html">Jonathan Strange & Mr + Norrell</a>, by Susanna Clarke</strong>: + A nearly unique reading experience, and the best footnoted fantasy + that I've ever read (and that includes Pratchett). Great stuff if you + don't mind the slow pace. I'm eagerly hoping for an actual sequel.</li> +<li class="packed">I Am Legend, by Richard Matheson: + Having a hard time getting interested enough in a book about zombies. + But I've been wrong about that + <a href="https://www.eyrie.org/~eagle/reviews/books/0-316-12246-7.html">before</a>.</li> +<li class="packed">The Riftwar Saga, by Raymond E. Feist: + Heard of it, but not enough to get it onto my want list.</li> +<li class="packed">The Shannara Trilogy, by Terry Brooks: + Heard enough about it to not put it on my want list.</li> +<li class="packed">The Conan The Barbarian Series, by R.E. Howard: + Something that I feel like I "should" read, but usually I'm not a big + fan of pulp.</li> +<li class="packed"><u>The Farseer Trilogy, by Robin Hobb</u>: + Own the first, which has been on my to-read list for a very long time. + Someday I'll get to it. I should probably buy all of the trilogy + before starting it.</li> +<li class="packed"><strong><a href="https://www.eyrie.org/~eagle/reviews/books/1-931561-64-8.html">The Time Traveler's + Wife</a>, by Audrey Niffenegger</strong>: + Surprisingly good for a literary fantasy, with some fantastic moments + of description.</li> +<li class="packed">The Way Of Kings, by Brandon Sanderson: Want to read at some point.</li> +<li class="packed">A Journey To The Center Of The Earth, by Jules Verne: + As above, uninspired to read Verne.</li> +<li class="packed"><em><a href="https://www.eyrie.org/~eagle/reviews/books/0-88038-905-2.html">The Legend Of Drizzt + Series</a>, by R.A. Salvatore</em>: + Read the first one, and unless they get substantially better, I have + no interest in reading more. Very stock power fantasy with + one-dimensional characters.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-765-31524-6.html">Old Man's War</a>, by John + Scalzi</u></strong>: + The later books in the series are better than the first one. An + interesting take on military SF, but I'm not sure it really rises to + the level of this sort of list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-57331-4.html">The Diamond Age</a>, by + Neil Stephenson</u></strong>: + One too many Stephenson for this list, plus <cite>Anathem</cite> is probably + more deserving of this place, but there are some neat bits about + computation theory.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-28789-3.html">Rendezvous With Rama</a>, + by Arthur C. Clarke</u></strong>: + Completely overrated. A bad book that just happens to be foundational + in a particular sub-genre of SF. Done much better by other people.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-765-34298-7.html">The Kushiel's Legacy + Series</a>, by Jacqueline Carey</u></strong>: + By far my favorite epic fantasy series. Lush, involved, very + creative, and with a truly unusual heroine. Wonderful stuff.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-06-105488-7.html">The Dispossessed</a>, by + Ursula K. LeGuin</u></strong>: + Great, thoughtful SF. Probably the best in the utopia genre, even + though it isn't a utopia.</li> +<li class="packed">Something Wicked This Way Comes, by Ray Bradbury: Horror. Eh.</li> +<li class="packed"><u>Wicked, by Gregory Maguire</u>: + On the list, but after a general Oz re-read.</li> +<li class="packed"><u>The Malazan Book Of The Fallen Series, by Steven Erikson</u>: + Own the first. Completely intimidated by the length of the series.</li> +<li class="packed"><u>The Eyre Affair, by Jasper Fforde</u>: On the list.</li> +<li class="packed"><em><u><a href="https://www.eyrie.org/~eagle/reviews/books/1-85723-138-4.html">The Culture Series</a>, by + Iain M. Banks</u></em>: + Brilliant stuff, highly recommended. I only haven't read it all + because I'm slowly digesting it. Should be higher on the list than + this.</li> +<li class="packed"><u>The Crystal Cave, by Mary Stewart</u>: On the list.</li> +<li class="packed"><u>Anathem, by Neal Stephenson</u>: On the list.</li> +<li class="packed">The Codex Alera Series, by Jim Butcher: + I'll read the Dresden series, or least part of it, first, and see if + that inspires me to read more Butcher. Dubious that this belongs on + this list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-671-45070-0.html">The Book Of The New + Sun</a>, by Gene Wolfe</u></strong>: + Incredibly influential and important fantasy-flavored SF that should + be much higher on the list than this.</li> +<li class="packed"><strong><u>The Thrawn Trilogy, by Timothy Zahn</u></strong>: + This is a <cite>Star Wars</cite> media tie-in series, and one of the few of + that type that I've read. I remember quite enjoying it a long time + ago, and it's on the list to re-read at some point.</li> +<li class="packed">The Outlander Series, by Diana Gabaldan: + The only thing on this list that I've never even heard of.</li> +<li class="packed">The Elric Saga, by Michael Moorcock: + Definitely want to read this at some point, once I figure out the + right place to start and probably after I've read some other + Moorcock.</li> +<li class="packed">The Illustrated Man, by Ray Bradbury: + Waiting to see if I like the better-known Bradbury first.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-515-13881-9.html">Sunshine</a>, by Robin + McKinley</u></strong>: + Quite possibly the best urban fantasy (in the modern definition) that + I've ever read.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-812-51528-5.html">A Fire Upon The Deep</a>, + by Vernor Vinge</u></strong>: + A little overrated, but it has a fun rendition of Usenet and some + neat aliens.</li> +<li class="packed"><strong>The Caves Of Steel, by Isaac Asimov</strong>: + Read long ago. Enjoyed it, but don't remember being grabbed by it. + There's a bit too much Asimov on this list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-56073-5.html">The Mars Trilogy</a>, by + Kim Stanley Robinson</u></strong>: + The most detailed and in-depth politics that you'll find in SF, even + more than Le Guin, at the cost of being mind-numbingly boring. Very + ambitious, but just doesn't move fast enough or have enough plot. + Robinson is less a novelist than a political and hard science essayist + in the form of a novel.</li> +<li class="packed"><strong><u>Lucifer's Hammer, by Larry Niven & Jerry Pournelle</u></strong>: + Large-screen disaster novel with a heavy helping of libertarian + utopian politics. Does not belong anywhere near this list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-56273-8.html">Doomsday Book</a>, by + Connie Willis</u></strong>: + The best of Willis's time travel novels, with fewer communication + failures and frantic faffing about than the other ones. Borderline + for this list, but probably deserves to be here.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-345-45940-7.html">Perdido Street Station</a>, + by China Mieville</u></strong>: + Revolutionary fantasy. The founding book of New Weird. I think + <a href="https://www.eyrie.org/~eagle/reviews/books/0-345-44438-8.html">The Scar</a> is a better + book, but I can't argue with this being here.</li> +<li class="packed">The Xanth Series, by Piers Anthony: I've been warned off these.</li> +<li class="packed"><strong><u>The Space Trilogy, by C.S. Lewis</u></strong>: + I need to re-read this and write long reviews of them, since I have a + lot to say about them. But they need to be read in the context of the + Christian faith to make any sense.</li> +</ol> + +<p class="footer">2011-08-13 00:09 — + <a href="https://www.eyrie.org/~eagle/journal/2011-08/006.html">Permanent link</a></p> + +<h2>2007-01-14: Review: Fermat's Enigma</h2> + +<p> +Review: <cite>Fermat's Enigma</cite>, by Simon Singh +</p> + +<table> + <tr> + <td>Publisher</td> + <td>Anchor</td> + </tr> + + <tr> + <td>Copyright</td> + <td>1997</td> + </tr> + + <tr> + <td>Printing</td> + <td>October 1998</td> + </tr> + + <tr> + <td>ISBN</td> + <td>0-385-49362-2</td> + </tr> + + <tr> + <td>Format</td> + <td>Mass market</td> + </tr> + + <tr> + <td>Pages</td> + <td>305</td> + </tr></table> + +<p> +Fermat's Last Theorem is the infamous proposal that: +</p> + +<blockquote><p> + <i>x<sup>n</sup> + y<sup>n</sup> = z<sup>n</sup></i> +</p></blockquote> + +<p> +has no solutions for integer <i>x, y, z, n</i> and <i>n > 2</i>. It's +infamous for being very simple to state and understand, a variation on the +equation produced by the Pythagorean Theorem, but incredibly difficult to +prove. It's also infamous for Pierre de Fermat's maddening marginal note: +"I have discovered a truly marvelous demonstration of this proposition +which this margin is too narrow to contain." 350 years after Fermat wrote +this, the theorem was still unproven in the general case, although the +theorem for many specific values of <i>n</i> had since been proven. +</p> + +<p> +<cite>Fermat's Enigma</cite> is a popular history of Fermat's Last Theorem and +the attempts to prove it, the partial successes and famous failures. It's +also the story of Andrew Wiles, a Princeton mathematics professor who +finally proved the theorem in a complex, brilliant proof that builds on +much of the power of modern mathematics and almost certainly did not +follow the same path that Fermat himself did. If, in fact, Fermat had +truly proven the theorem at all, something that we will probably never +know. +</p> + +<p> +Singh comes to this subject with a serious structural problem: he's trying +to write a popular account that's accessible even to people who are hazy +on algebra and unfamiliar with basic proof technique, but he's trying to +tell the story of one of the most complex proofs in modern mathematics. +He tries to avoid the problem by talking about personalities instead of +mathematical details, mostly successfully. It helps that Fermat's Last +Theorem has been tackled by a collection of colorful geniuses, and even +the soft-spoken Wiles has a subtle dramatic charm. Still, he has to cover +enough of the mathematics for the reader to follow, and I found those +sections tedious and a little overdramatized. For example, I can see +using a domino analogy once to explain inductive proof, but Singh belabors +the analogy until it's painful and talks about infinite chains of infinite +dominos as if he doesn't understand that such setups are common in even +simple inductive proofs. +</p> + +<p> +An excess of drama, cliche, and reptition are the largest problems with +this book. Explaining why Fermat's Last Theorem is so interesting +requires diving into areas of math that many readers have never paid +attention to, and I got the impression that Singh felt he had to create as +much drama as possible to keep people reading. Occasionally this works. +The circumstances around Wiles's proof are inherently dramatic, a great +conclusion to the story. But at times it feels forced, such as when Singh +goes on about the wonder of absolute mathematical proof and the supposedly +unique way that mathematicians are more rigorous than any other +profession. I enjoyed the bits of history and connection he uncovers and +explains despite his tone, rather than because of it. The book is based +on a TV documentary, and I started wondering if some of the dramatic tone +of television carried over into the book where it's more obvious and less +useful. +</p> + +<p> +Another difficulty of aiming at such a broad audience is that Singh can't +dig too deeply into the aspects of this proof that make it so important to +modern mathematics. Too much background in very difficult math would be +needed, so his choice makes sense, but I have some of that background and +I was wanting more. Wiles proved Fermat's Last Theorem by proving the +Taniyama-Shimura conjecture, a fifty-year-old conjecture about a +connection between elliptic curves and modular forms that had previously +been shown to be equivalent to Fermat's Last Theorem, but which is +considerably more important to the structure of mathematics. The +Taniyama-Shimura conjecture covers a portion of the Langlands program, a +series of conjectures about a deep unity between very disparate sections +of mathematics that, if proven, would permit techniques of one branch of +mathematics to be used to attack problems in a very different branch. +Singh does cover this, but not in as much detail as I would have liked (I +would have loved a good description of modular forms, for instance), nor +does he talk much about the other aspects of the Langlands program or +about the usefulness of the other theorems Wiles proved in the course of +proving Taniyama-Shimura and Fermat's Last Theorem. +</p> + +<p> +More detail here is probably a difficult request. From a quick glance +through Wikipedia, it's not clear whether Singh could adequately explain +the impact of the math even to someone with my mathematical background, +and that would be abandoning much of his audience. Still, <cite>Fermat's +Enigma</cite> left me a bit unsatisfied. +</p> + +<p> +Worth reading, though, particularly for the last portion of the book. The +detailed story of Wiles's proof is engrossing, dramatic, and matters for +more reasons than just solving a long-standing puzzle. I'm not a big fan +of Singh's writing style, but he does make the story accessible and +includes several interesting nuggets of mathematical history. +</p> + +<p> +Rating: 6 out of 10 +</p> + +<p class="footer">2007-01-14 21:30 — + <a href="https://www.eyrie.org/~eagle/reviews/books/1-250-30112-2.html">Permanent link</a></p></div> + +<address> + Last <a href="https://www.eyrie.org/~eagle/software/web/">spun</a> + %DATE% from thread modified %DATE% +</address> +</body> +</html> diff --git a/t/data/spin/output/journal/index.rss b/t/data/spin/output/journal/index.rss new file mode 100644 index 0000000..5a8440f --- /dev/null +++ b/t/data/spin/output/journal/index.rss @@ -0,0 +1,520 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>Eagle's Path</title> + <link>https://www.eyrie.org/~eagle/</link> + <description>"Passion and dispassion. Choose two." -- Larry Wall</description> + <language>en-us</language> + <pubDate>%DATE%</pubDate> + <lastBuildDate>%DATE%</lastBuildDate> + <generator>spin-rss 1.25</generator> + <atom:link href="https://www.eyrie.org/~eagle/journal/index.rss" rel="self" + type="application/rss+xml" /> + + <item> + <title>NPR Top 100 SFF meme</title> + <link>https://www.eyrie.org/~eagle/journal/2011-08/006.html</link> + <description><![CDATA[ +<p> +By way of <a href="http://firecat.dreamwidth.org/profile"><img src="https://www.eyrie.org/~eagle/journal/dw.png" alt="" /></a><a href="http://firecat.dreamwidth.org/"><strong>firecat</strong></a>, this is the result of a public nomination process, +panel review, and Internet voting on the NPR web site: an attempt at the +top 100 works of science fiction or fantasy. Series are counted as single +works for the purposes of the list. +</p> + +<p> +This list has a ton of problems, like any list of this sort will have. It +leans rather more heavily towards white male than the actual literature, +and certainly than my reading. The lack of non-white writers is +particularly troubling. But it's still an interesting selection. (For +those wondering about some obvious omissions, young adult was explicitly +excluded.) +</p> + +<p> +The rules are to bold the works one has read in their entirety and +italicize the ones you've read part of but not finished. I'll add +underlining the works that I own, which provides some indication of the +things that I've not read but that are on my to-read list. +</p> + +<ol> +<li class="packed"><strong><u>The Lord Of The Rings Trilogy, by J.R.R. Tolkien</u></strong>: + It's a boring winner because it always wins, but it's an amazing book + and I can't argue with it. I'll probably never review this one since + I'm not sure I have anything original to say about it.</li> +<li class="packed"><strong><u>The Hitchhiker's Guide To The Galaxy, by Douglas Adams</u></strong>: + Probably the best humorous SF. I've read the entire series except for + <cite>The Salmon of Doubt</cite>, the unfinished book left when Adams died. + Will re-read them all at some point.</li> +<li class="packed"><strong><u>Ender's Game, by Orson Scott Card</u></strong>: + I intensely dislike Card's politics, but this book is still very good. + It's on my re-read list so that I can write a proper review of it.</li> +<li class="packed"><strong>The Dune Chronicles, by Frank Herbert</strong>: + I've read the whole series, but only own the first, which is by far + the best. I'm tempted to re-read the whole series at some point, + since I don't remember it well enough to analyze it, but I'll probably + stop after re-reading just the first.</li> +<li class="packed"><em><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-57340-3.html">A Song Of Ice And Fire + Series</a>, by George R. R. Martin</em>: + I own the first couple and have read and reviewed the first four. I + think they're somewhat overrated, but will probably read the latest. + I'm not sure if I'll re-read the previous books to remember what the + heck was going on.</li> +<li class="packed"><u>1984, by George Orwell</u>: + I've somehow never read this. I keep meaning to, particularly since I + generally love Orwell.</li> +<li class="packed"><strong>Fahrenheit 451, by Ray Bradbury</strong>: + Massively overrated, or perhaps just made unoriginal by subsequent + history. I found it boring and uninteresting.</li> +<li class="packed"><strong><u>The Foundation Trilogy, by Isaac Asimov</u></strong>: + Thoroughly enjoyed this when I was a teenager. I suspect I'll like it + less as an adult, but definitely on my to-read list.</li> +<li class="packed"><u>Brave New World, by Aldous Huxley</u>: Another classic I've never read.</li> +<li class="packed"><strong><u>American Gods, by Neil Gaiman</u></strong>: + Great book. Need to re-read to review.</li> +<li class="packed"><u>The Princess Bride, by William Goldman</u>: + On the list to read. Apparently significantly better than the movie, + which I liked less than everyone else on the planet.</li> +<li class="packed"><em>The Wheel Of Time Series, by Robert Jordan</em>: + I read up to book eight (<cite>The Path of Daggers</cite>) and bailed + halfway through it. It started as somewhat interesting fantasy with + deep world building and fun world surprises, but the writing got worse + and worse and the characters became miserably unlikeable. I'm still + occasionally tempted to re-read and finish it, but it's a bad + temptation.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/animal-farm.html">Animal Farm</a>, by George + Orwell</u></strong>: + Great book, and a political and historical classic. Best read in + combination with a good history.</li> +<li class="packed"><strong><u>Neuromancer, by William Gibson</u></strong>: Meh.</li> +<li class="packed"><strong><u>Watchmen, by Alan Moore</u></strong>: Brilliant. On my list to re-read.</li> +<li class="packed"><strong><u>I, Robot, by Isaac Asimov</u></strong>: + Okay, but I generally find Asimov a bit overrated. Good for + intellectual puzzle stories, but not that deep of ones, and the + characters are essentially nonentities.</li> +<li class="packed"><strong>Stranger In A Strange Land, by Robert Heinlein</strong>: + The only book that I've ever put down within fifteen pages of the end + and could never muster enough caring to pick up again. I should + re-read it at some point to review it, but I don't think it's very + good.</li> +<li class="packed"><u>The Kingkiller Chronicles, by Patrick Rothfuss</u>: + Well, I own the first one at least.</li> +<li class="packed">Slaughterhouse-Five, by Kurt Vonnegut: Need to read.</li> +<li class="packed">Frankenstein, by Mary Shelley: + I've never actually read this, but I'm not sure there's much point in + reading it. I've been so thoroughly exposed to the angles and + interpretations of it that reading it at this point would be an odd + experience. I probably should for completion's sake at some point. + (This is the first woman on the list, and of course she's long-dead + and not writing in the modern SF tradition.)</li> +<li class="packed"><u>Do Androids Dream Of Electric Sheep?, by Philip K. Dick</u>: + I do need to read more Dick. I don't think this is as good as its + placement on the list; everyone just knows <cite>Blade Runner</cite> (which + was based on this).</li> +<li class="packed"><u>The Handmaid's Tale, by Margaret Atwood</u>: + I have a bunch of Atwood, but haven't yet read any of it.</li> +<li class="packed">The Dark Tower Series, by Stephen King: + It's rare for me to find any horror I actually like, but my + understanding is that this is less horror than a lot of King. I may + give it a try someday (but probably won't).</li> +<li class="packed"><strong>2001: A Space Odyssey, by Arthur C. Clarke</strong>: + Much better than the movie since it actually explained what was going + on, although it wasn't as atmospheric. Not actually as good as its + position on lists like this would indicate. Mostly it's just a book + everyone has heard of.</li> +<li class="packed"><u>The Stand, by Stephen King</u>: See above about horror.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-56261-4.html">Snow Crash</a>, by Neal + Stephenson</u></strong>: + One of my favorite humorous SF books, plus features the trademark + Stephenson infodumping and some neat bits about building a virtual + world.</li> +<li class="packed"><u>The Martian Chronicles, by Ray Bradbury</u>: On the list to read.</li> +<li class="packed">Cat's Cradle, by Kurt Vonnegut: Need to track down and read.</li> +<li class="packed"><strong><u>The Sandman Series, by Neil Gaiman</u></strong>: + Quite possibly the best comic book series ever written. Utterly + brilliant. The one set of graphic novels that everyone should read at + some point in their life.</li> +<li class="packed">A Clockwork Orange, by Anthony Burgess: + Huh. Not really on my radar to read, although of course I've heard of + it.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-441-78358-9.html">Starship Troopers</a>, by + Robert Heinlein</u></strong>: + Also overrated, particularly since it's not much of a story. It's an + extended and multifaceted political essay, which isn't as simple as it + appears to be. The movie, quite contrary to the negative impression + people have of it, is a delightful parody of how the book comes across + on its surface reading.</li> +<li class="packed"><u>Watership Down, by Richard Adams</u>: Yeah, yeah, I know I should read it.</li> +<li class="packed"><strong><u>Dragonflight, by Anne McCaffrey</u></strong>: + I loved the Pern books as a teenager up until the point when the just + became retellings of the same book from a new perspective. I'm afraid + to re-read them.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-425-03436-4.html">The Moon Is A Harsh + Mistress</a>, by Robert Heinlein</u></strong>: + Much, much better than <cite>Starship Troopers</cite>. One of the better + non-juvenile Heinleins. Still not as good as people think it is.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-37926-7.html">A Canticle For + Leibowitz</a>, by Walter M. Miller</u></strong>: + I was disappointed in this given how much people like it, but it + deserves some credit for being foundational to post-apocalyptic SF.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-517-26188-Xa.html">The Time Machine</a>, by + H.G. Wells</u></strong>: + More interesting than you might think it would be, given when it was + written and the emphasis on description rather than characterization. + But it still suffers from a lack of characters for me. Hard to come + to this fresh now, since the ideas have been so used elsewhere.</li> +<li class="packed">20,000 Leagues Under The Sea, by Jules Verne: + I've seen the movie take on it. I've not felt a strong urge to read + the book, although I probably "should."</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-27450-3.html">Flowers For Algernon</a>, + by Daniel Keys</u></strong>: + Unforgettable and very strongly affecting (and depressing).</li> +<li class="packed"><u>The War Of The Worlds, by H.G. Wells</u>: Will read at some point.</li> +<li class="packed"><u>The Chronicles Of Amber, by Roger Zelazny</u>: Will probably read soon.</li> +<li class="packed"><strong><u>The Belgariad, by David Eddings</u></strong>: + Yeah, I read this as a teenager and quite liked it. But I have no + idea what it's doing on this list; it is in absolutely no way one of + the best 100 SFF works of all time. (Well, that's not true; I know + what it's doing on this list. People have heard of it and read it. + But it shouldn't be on this list.)</li> +<li class="packed"><u>The Mists Of Avalon, by Marion Zimmer Bradley</u>: On the list.</li> +<li class="packed">The Mistborn Series, by Brandon Sanderson: Want to read this.</li> +<li class="packed"><strong><u>Ringworld, by Larry Niven</u></strong>: + Interesting idea fiction with a great sense of scale. Shame the + characters aren't as good as the background. But it's a good book, + worth reading.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-441-47812-3.html">The Left Hand Of + Darkness</a>, by Ursula K. LeGuin</u></strong>: + A deserved classic of anthropological SF with profound things to say + about how culture and friendship are constructed.</li> +<li class="packed"><strong><u>The Silmarillion, by J.R.R. Tolkien</u></strong>: + I love this book, but the first section is hard going if you don't + like reading mythology. Skip ahead if you're struggling; the gems are + later.</li> +<li class="packed"><u>The Once And Future King, by T.H. White</u>: Definitely on the list to read.</li> +<li class="packed"><strong><u>Neverwhere, by Neil Gaiman</u></strong>: + I'm not sure I'd put it on this list, as there are better Gaiman (and + Gaiman is already overrepresented), but it's a solid "urban" fantasy + in the old sense of that term. Inventive, with a feel similar to some + of the <cite>Sandman</cite> stories.</li> +<li class="packed"><strong><u>Childhood's End, by Arthur C. Clarke</u></strong>: + I read this eons ago and can barely remember it. I definitely need to + re-read it.</li> +<li class="packed">Contact, by Carl Sagan: + Liked the movie, have never had any particular urge to read the book.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-28368-5.html">The Hyperion Cantos</a>, by + Dan Simmons</u></strong>: + Some of my favorite SF novels ever. The third book is the weakest, + and the fourth book has problems, but I adore it.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/1-56389-470-X.html">Stardust</a>, by Neil + Gaiman</u></strong>: + Really far too much Gaiman on this list. But also a good book.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-380-78862-4.html">Cryptonomicon</a>, by Neal + Stephenson</u></strong>: + Fantastic stuff. Not SF in any traditional sense. It's a combination + of secret history and contemporary thriller. But it's written in the + Stephenson massive entertaining infodumping style, so it feels like SF + and makes it onto lists like this. It's very long, but I've read it + twice and don't regret it.</li> +<li class="packed">World War Z, by Max Brooks: + Have a hard time believing this really belongs here, but I haven't + read it so I couldn't say for sure.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-345-27505-5.html">The Last Unicorn</a>, by + Peter S. Beagle</u></strong>: + Eh, it's not a bad book, but I'm not sure it really belongs on this + list. But it does have an aesthetic that's hard to find in any other + book.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-380-70821-3.html">The Forever War</a>, by Joe + Haldeman</u></strong>: + A very important response to the whole sub-genre of military SF, and + very influential.</li> +<li class="packed"><u>Small Gods, by Terry Pratchett</u>: Getting to it.</li> +<li class="packed"><em><u>The Chronicles Of Thomas Covenant, The Unbeliever, by Stephen + R. Donaldson</u></em>: + Read the first book, wasn't much of a fan. I might get back to it at + some point, but I'm not particularly eager.</li> +<li class="packed"><strong><a href="https://www.eyrie.org/~eagle/reviews/books/0-671-87749-6a.html">The Vorkosigan Saga</a>, by + Lois McMaster Bujold</strong>: + I don't like the early books as much as some, but I love some of the + later books. The last few have been disappointing, but overall very + much worth reading, and belongs around here on the list.</li> +<li class="packed">Going Postal, by Terry Pratchett: Getting to it.</li> +<li class="packed"><strong>The Mote In God's Eye, by Larry Niven & Jerry Pournelle</strong>: + Read many years ago and barely remember it. I need to re-read it, + particularly since there's a new sequal by Pournelle's daughter that + looks well worth reading.</li> +<li class="packed"><em>The Sword Of Truth, by Terry Goodkind</em>: + I read way too many books in this series. Others should not repeat my + mistake. Generic fantasy about incredibly stupid people that turns + into libertarian political ravings.</li> +<li class="packed">The Road, by Cormac McCarthy: Not my thing.</li> +<li class="packed"><strong><a href="https://www.eyrie.org/~eagle/reviews/books/1-58234-416-7.html">Jonathan Strange & Mr + Norrell</a>, by Susanna Clarke</strong>: + A nearly unique reading experience, and the best footnoted fantasy + that I've ever read (and that includes Pratchett). Great stuff if you + don't mind the slow pace. I'm eagerly hoping for an actual sequel.</li> +<li class="packed">I Am Legend, by Richard Matheson: + Having a hard time getting interested enough in a book about zombies. + But I've been wrong about that + <a href="https://www.eyrie.org/~eagle/reviews/books/0-316-12246-7.html">before</a>.</li> +<li class="packed">The Riftwar Saga, by Raymond E. Feist: + Heard of it, but not enough to get it onto my want list.</li> +<li class="packed">The Shannara Trilogy, by Terry Brooks: + Heard enough about it to not put it on my want list.</li> +<li class="packed">The Conan The Barbarian Series, by R.E. Howard: + Something that I feel like I "should" read, but usually I'm not a big + fan of pulp.</li> +<li class="packed"><u>The Farseer Trilogy, by Robin Hobb</u>: + Own the first, which has been on my to-read list for a very long time. + Someday I'll get to it. I should probably buy all of the trilogy + before starting it.</li> +<li class="packed"><strong><a href="https://www.eyrie.org/~eagle/reviews/books/1-931561-64-8.html">The Time Traveler's + Wife</a>, by Audrey Niffenegger</strong>: + Surprisingly good for a literary fantasy, with some fantastic moments + of description.</li> +<li class="packed">The Way Of Kings, by Brandon Sanderson: Want to read at some point.</li> +<li class="packed">A Journey To The Center Of The Earth, by Jules Verne: + As above, uninspired to read Verne.</li> +<li class="packed"><em><a href="https://www.eyrie.org/~eagle/reviews/books/0-88038-905-2.html">The Legend Of Drizzt + Series</a>, by R.A. Salvatore</em>: + Read the first one, and unless they get substantially better, I have + no interest in reading more. Very stock power fantasy with + one-dimensional characters.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-765-31524-6.html">Old Man's War</a>, by John + Scalzi</u></strong>: + The later books in the series are better than the first one. An + interesting take on military SF, but I'm not sure it really rises to + the level of this sort of list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-57331-4.html">The Diamond Age</a>, by + Neil Stephenson</u></strong>: + One too many Stephenson for this list, plus <cite>Anathem</cite> is probably + more deserving of this place, but there are some neat bits about + computation theory.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-28789-3.html">Rendezvous With Rama</a>, + by Arthur C. Clarke</u></strong>: + Completely overrated. A bad book that just happens to be foundational + in a particular sub-genre of SF. Done much better by other people.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-765-34298-7.html">The Kushiel's Legacy + Series</a>, by Jacqueline Carey</u></strong>: + By far my favorite epic fantasy series. Lush, involved, very + creative, and with a truly unusual heroine. Wonderful stuff.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-06-105488-7.html">The Dispossessed</a>, by + Ursula K. LeGuin</u></strong>: + Great, thoughtful SF. Probably the best in the utopia genre, even + though it isn't a utopia.</li> +<li class="packed">Something Wicked This Way Comes, by Ray Bradbury: Horror. Eh.</li> +<li class="packed"><u>Wicked, by Gregory Maguire</u>: + On the list, but after a general Oz re-read.</li> +<li class="packed"><u>The Malazan Book Of The Fallen Series, by Steven Erikson</u>: + Own the first. Completely intimidated by the length of the series.</li> +<li class="packed"><u>The Eyre Affair, by Jasper Fforde</u>: On the list.</li> +<li class="packed"><em><u><a href="https://www.eyrie.org/~eagle/reviews/books/1-85723-138-4.html">The Culture Series</a>, by + Iain M. Banks</u></em>: + Brilliant stuff, highly recommended. I only haven't read it all + because I'm slowly digesting it. Should be higher on the list than + this.</li> +<li class="packed"><u>The Crystal Cave, by Mary Stewart</u>: On the list.</li> +<li class="packed"><u>Anathem, by Neal Stephenson</u>: On the list.</li> +<li class="packed">The Codex Alera Series, by Jim Butcher: + I'll read the Dresden series, or least part of it, first, and see if + that inspires me to read more Butcher. Dubious that this belongs on + this list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-671-45070-0.html">The Book Of The New + Sun</a>, by Gene Wolfe</u></strong>: + Incredibly influential and important fantasy-flavored SF that should + be much higher on the list than this.</li> +<li class="packed"><strong><u>The Thrawn Trilogy, by Timothy Zahn</u></strong>: + This is a <cite>Star Wars</cite> media tie-in series, and one of the few of + that type that I've read. I remember quite enjoying it a long time + ago, and it's on the list to re-read at some point.</li> +<li class="packed">The Outlander Series, by Diana Gabaldan: + The only thing on this list that I've never even heard of.</li> +<li class="packed">The Elric Saga, by Michael Moorcock: + Definitely want to read this at some point, once I figure out the + right place to start and probably after I've read some other + Moorcock.</li> +<li class="packed">The Illustrated Man, by Ray Bradbury: + Waiting to see if I like the better-known Bradbury first.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-515-13881-9.html">Sunshine</a>, by Robin + McKinley</u></strong>: + Quite possibly the best urban fantasy (in the modern definition) that + I've ever read.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-812-51528-5.html">A Fire Upon The Deep</a>, + by Vernor Vinge</u></strong>: + A little overrated, but it has a fun rendition of Usenet and some + neat aliens.</li> +<li class="packed"><strong>The Caves Of Steel, by Isaac Asimov</strong>: + Read long ago. Enjoyed it, but don't remember being grabbed by it. + There's a bit too much Asimov on this list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-56073-5.html">The Mars Trilogy</a>, by + Kim Stanley Robinson</u></strong>: + The most detailed and in-depth politics that you'll find in SF, even + more than Le Guin, at the cost of being mind-numbingly boring. Very + ambitious, but just doesn't move fast enough or have enough plot. + Robinson is less a novelist than a political and hard science essayist + in the form of a novel.</li> +<li class="packed"><strong><u>Lucifer's Hammer, by Larry Niven & Jerry Pournelle</u></strong>: + Large-screen disaster novel with a heavy helping of libertarian + utopian politics. Does not belong anywhere near this list.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-553-56273-8.html">Doomsday Book</a>, by + Connie Willis</u></strong>: + The best of Willis's time travel novels, with fewer communication + failures and frantic faffing about than the other ones. Borderline + for this list, but probably deserves to be here.</li> +<li class="packed"><strong><u><a href="https://www.eyrie.org/~eagle/reviews/books/0-345-45940-7.html">Perdido Street Station</a>, + by China Mieville</u></strong>: + Revolutionary fantasy. The founding book of New Weird. I think + <a href="https://www.eyrie.org/~eagle/reviews/books/0-345-44438-8.html">The Scar</a> is a better + book, but I can't argue with this being here.</li> +<li class="packed">The Xanth Series, by Piers Anthony: I've been warned off these.</li> +<li class="packed"><strong><u>The Space Trilogy, by C.S. Lewis</u></strong>: + I need to re-read this and write long reviews of them, since I have a + lot to say about them. But they need to be read in the context of the + Christian faith to make any sense.</li> + + ]]></description> + <pubDate>%DATE%</pubDate> + <guid>https://www.eyrie.org/~eagle/journal/2011-08/006.html</guid> + </item> + <item> + <title>Review: Fermat's Enigma</title> + <link>https://www.eyrie.org/~eagle/reviews/books/1-250-30112-2.html</link> + <description><![CDATA[ +<p>Review: <cite>Fermat's Enigma</cite>, by Simon Singh</p> + +<table> + <tr> + <td>Publisher:</td> + <td>Anchor</td> + </tr> + <tr> + <td>Copyright:</td> + <td>1997</td> + </tr> + <tr> + <td>Printing:</td> + <td>October 1998</td> + </tr> + <tr> + <td>ISBN:</td> + <td>0-385-49362-2</td> + </tr> + <tr> + <td>Format:</td> + <td>Mass market</td> + </tr> + <tr> + <td>Pages:</td> + <td>305</td> + </tr></table> + +<p> +Fermat's Last Theorem is the infamous proposal that: +</p> + +<blockquote><p> + <i>x<sup>n</sup> + y<sup>n</sup> = z<sup>n</sup></i> +</p></blockquote> + +<p> +has no solutions for integer <i>x, y, z, n</i> and <i>n > 2</i>. It's +infamous for being very simple to state and understand, a variation on the +equation produced by the Pythagorean Theorem, but incredibly difficult to +prove. It's also infamous for Pierre de Fermat's maddening marginal note: +"I have discovered a truly marvelous demonstration of this proposition +which this margin is too narrow to contain." 350 years after Fermat wrote +this, the theorem was still unproven in the general case, although the +theorem for many specific values of <i>n</i> had since been proven. +</p> + +<p> +<cite>Fermat's Enigma</cite> is a popular history of Fermat's Last Theorem and +the attempts to prove it, the partial successes and famous failures. It's +also the story of Andrew Wiles, a Princeton mathematics professor who +finally proved the theorem in a complex, brilliant proof that builds on +much of the power of modern mathematics and almost certainly did not +follow the same path that Fermat himself did. If, in fact, Fermat had +truly proven the theorem at all, something that we will probably never +know. +</p> + +<p> +Singh comes to this subject with a serious structural problem: he's trying +to write a popular account that's accessible even to people who are hazy +on algebra and unfamiliar with basic proof technique, but he's trying to +tell the story of one of the most complex proofs in modern mathematics. +He tries to avoid the problem by talking about personalities instead of +mathematical details, mostly successfully. It helps that Fermat's Last +Theorem has been tackled by a collection of colorful geniuses, and even +the soft-spoken Wiles has a subtle dramatic charm. Still, he has to cover +enough of the mathematics for the reader to follow, and I found those +sections tedious and a little overdramatized. For example, I can see +using a domino analogy once to explain inductive proof, but Singh belabors +the analogy until it's painful and talks about infinite chains of infinite +dominos as if he doesn't understand that such setups are common in even +simple inductive proofs. +</p> + +<p> +An excess of drama, cliche, and reptition are the largest problems with +this book. Explaining why Fermat's Last Theorem is so interesting +requires diving into areas of math that many readers have never paid +attention to, and I got the impression that Singh felt he had to create as +much drama as possible to keep people reading. Occasionally this works. +The circumstances around Wiles's proof are inherently dramatic, a great +conclusion to the story. But at times it feels forced, such as when Singh +goes on about the wonder of absolute mathematical proof and the supposedly +unique way that mathematicians are more rigorous than any other +profession. I enjoyed the bits of history and connection he uncovers and +explains despite his tone, rather than because of it. The book is based +on a TV documentary, and I started wondering if some of the dramatic tone +of television carried over into the book where it's more obvious and less +useful. +</p> + +<p> +Another difficulty of aiming at such a broad audience is that Singh can't +dig too deeply into the aspects of this proof that make it so important to +modern mathematics. Too much background in very difficult math would be +needed, so his choice makes sense, but I have some of that background and +I was wanting more. Wiles proved Fermat's Last Theorem by proving the +Taniyama-Shimura conjecture, a fifty-year-old conjecture about a +connection between elliptic curves and modular forms that had previously +been shown to be equivalent to Fermat's Last Theorem, but which is +considerably more important to the structure of mathematics. The +Taniyama-Shimura conjecture covers a portion of the Langlands program, a +series of conjectures about a deep unity between very disparate sections +of mathematics that, if proven, would permit techniques of one branch of +mathematics to be used to attack problems in a very different branch. +Singh does cover this, but not in as much detail as I would have liked (I +would have loved a good description of modular forms, for instance), nor +does he talk much about the other aspects of the Langlands program or +about the usefulness of the other theorems Wiles proved in the course of +proving Taniyama-Shimura and Fermat's Last Theorem. +</p> + +<p> +More detail here is probably a difficult request. From a quick glance +through Wikipedia, it's not clear whether Singh could adequately explain +the impact of the math even to someone with my mathematical background, +and that would be abandoning much of his audience. Still, <cite>Fermat's +Enigma</cite> left me a bit unsatisfied. +</p> + +<p> +Worth reading, though, particularly for the last portion of the book. The +detailed story of Wiles's proof is engrossing, dramatic, and matters for +more reasons than just solving a long-standing puzzle. I'm not a big fan +of Singh's writing style, but he does make the story accessible and +includes several interesting nuggets of mathematical history. +</p> + +<p>Rating: 6 out of 10</p> + + ]]></description> + <pubDate>%DATE%</pubDate> + <guid>https://www.eyrie.org/~eagle/reviews/books/1-250-30112-2.html</guid> + </item> + </channel> +</rss> diff --git a/t/data/spin/output/journal/reviews.rss b/t/data/spin/output/journal/reviews.rss new file mode 100644 index 0000000..1720802 --- /dev/null +++ b/t/data/spin/output/journal/reviews.rss @@ -0,0 +1,154 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>Eagle's Path</title> + <link>https://www.eyrie.org/~eagle/</link> + <description>"Passion and dispassion. Choose two." -- Larry Wall</description> + <language>en-us</language> + <pubDate>%DATE%</pubDate> + <lastBuildDate>%DATE%</lastBuildDate> + <generator>spin-rss 1.25</generator> + <atom:link href="https://www.eyrie.org/~eagle/journal/reviews.rss" rel="self" + type="application/rss+xml" /> + + <item> + <title>Review: Fermat's Enigma</title> + <link>https://www.eyrie.org/~eagle/reviews/books/1-250-30112-2.html</link> + <description><![CDATA[ +<p>Review: <cite>Fermat's Enigma</cite>, by Simon Singh</p> + +<table> + <tr> + <td>Publisher:</td> + <td>Anchor</td> + </tr> + <tr> + <td>Copyright:</td> + <td>1997</td> + </tr> + <tr> + <td>Printing:</td> + <td>October 1998</td> + </tr> + <tr> + <td>ISBN:</td> + <td>0-385-49362-2</td> + </tr> + <tr> + <td>Format:</td> + <td>Mass market</td> + </tr> + <tr> + <td>Pages:</td> + <td>305</td> + </tr></table> + +<p> +Fermat's Last Theorem is the infamous proposal that: +</p> + +<blockquote><p> + <i>x<sup>n</sup> + y<sup>n</sup> = z<sup>n</sup></i> +</p></blockquote> + +<p> +has no solutions for integer <i>x, y, z, n</i> and <i>n > 2</i>. It's +infamous for being very simple to state and understand, a variation on the +equation produced by the Pythagorean Theorem, but incredibly difficult to +prove. It's also infamous for Pierre de Fermat's maddening marginal note: +"I have discovered a truly marvelous demonstration of this proposition +which this margin is too narrow to contain." 350 years after Fermat wrote +this, the theorem was still unproven in the general case, although the +theorem for many specific values of <i>n</i> had since been proven. +</p> + +<p> +<cite>Fermat's Enigma</cite> is a popular history of Fermat's Last Theorem and +the attempts to prove it, the partial successes and famous failures. It's +also the story of Andrew Wiles, a Princeton mathematics professor who +finally proved the theorem in a complex, brilliant proof that builds on +much of the power of modern mathematics and almost certainly did not +follow the same path that Fermat himself did. If, in fact, Fermat had +truly proven the theorem at all, something that we will probably never +know. +</p> + +<p> +Singh comes to this subject with a serious structural problem: he's trying +to write a popular account that's accessible even to people who are hazy +on algebra and unfamiliar with basic proof technique, but he's trying to +tell the story of one of the most complex proofs in modern mathematics. +He tries to avoid the problem by talking about personalities instead of +mathematical details, mostly successfully. It helps that Fermat's Last +Theorem has been tackled by a collection of colorful geniuses, and even +the soft-spoken Wiles has a subtle dramatic charm. Still, he has to cover +enough of the mathematics for the reader to follow, and I found those +sections tedious and a little overdramatized. For example, I can see +using a domino analogy once to explain inductive proof, but Singh belabors +the analogy until it's painful and talks about infinite chains of infinite +dominos as if he doesn't understand that such setups are common in even +simple inductive proofs. +</p> + +<p> +An excess of drama, cliche, and reptition are the largest problems with +this book. Explaining why Fermat's Last Theorem is so interesting +requires diving into areas of math that many readers have never paid +attention to, and I got the impression that Singh felt he had to create as +much drama as possible to keep people reading. Occasionally this works. +The circumstances around Wiles's proof are inherently dramatic, a great +conclusion to the story. But at times it feels forced, such as when Singh +goes on about the wonder of absolute mathematical proof and the supposedly +unique way that mathematicians are more rigorous than any other +profession. I enjoyed the bits of history and connection he uncovers and +explains despite his tone, rather than because of it. The book is based +on a TV documentary, and I started wondering if some of the dramatic tone +of television carried over into the book where it's more obvious and less +useful. +</p> + +<p> +Another difficulty of aiming at such a broad audience is that Singh can't +dig too deeply into the aspects of this proof that make it so important to +modern mathematics. Too much background in very difficult math would be +needed, so his choice makes sense, but I have some of that background and +I was wanting more. Wiles proved Fermat's Last Theorem by proving the +Taniyama-Shimura conjecture, a fifty-year-old conjecture about a +connection between elliptic curves and modular forms that had previously +been shown to be equivalent to Fermat's Last Theorem, but which is +considerably more important to the structure of mathematics. The +Taniyama-Shimura conjecture covers a portion of the Langlands program, a +series of conjectures about a deep unity between very disparate sections +of mathematics that, if proven, would permit techniques of one branch of +mathematics to be used to attack problems in a very different branch. +Singh does cover this, but not in as much detail as I would have liked (I +would have loved a good description of modular forms, for instance), nor +does he talk much about the other aspects of the Langlands program or +about the usefulness of the other theorems Wiles proved in the course of +proving Taniyama-Shimura and Fermat's Last Theorem. +</p> + +<p> +More detail here is probably a difficult request. From a quick glance +through Wikipedia, it's not clear whether Singh could adequately explain +the impact of the math even to someone with my mathematical background, +and that would be abandoning much of his audience. Still, <cite>Fermat's +Enigma</cite> left me a bit unsatisfied. +</p> + +<p> +Worth reading, though, particularly for the last portion of the book. The +detailed story of Wiles's proof is engrossing, dramatic, and matters for +more reasons than just solving a long-standing puzzle. I'm not a big fan +of Singh's writing style, but he does make the story accessible and +includes several interesting nuggets of mathematical history. +</p> + +<p>Rating: 6 out of 10</p> + + ]]></description> + <pubDate>%DATE%</pubDate> + <guid>https://www.eyrie.org/~eagle/reviews/books/1-250-30112-2.html</guid> + </item> + </channel> +</rss> diff --git a/t/lib/Test/DocKnot/Spin.pm b/t/lib/Test/DocKnot/Spin.pm index 0a20ea5..f9f3374 100644 --- a/t/lib/Test/DocKnot/Spin.pm +++ b/t/lib/Test/DocKnot/Spin.pm @@ -44,6 +44,9 @@ sub is_spin_output { [ ] \d{4}-\d\d-\d\d (?: [ ] \d\d:\d\d:\d\d [ ] -0000 )? }{ %DATE%}gxms; $results =~ s{ + \w{3}, [ ] \d\d [ ] \w{3} [ ] \d{4} [ ] \d\d:\d\d:\d\d [ ] -\d{4} + }{%DATE%}gxms; + $results =~ s{ Last [ ] modified [ ] and \s+ (<a[^>]+>spun</a>) [ ] [%]DATE[%] }{Last $1\n %DATE% from thread modified %DATE%}gxms; @@ -85,7 +88,7 @@ sub is_spin_output_tree { # Compare HTML output using is_spin_output and all other files as # copies. - if ($file =~ m{ [.] html \z }xms) { + if ($file =~ m{ [.] (?: html | rss ) \z }xms) { is_spin_output($file, $expected_file, "$message ($path)"); } else { is(compare($file, $expected_file), 0, "$message ($path)"); diff --git a/t/spin/tree.t b/t/spin/tree.t index 03d8ffd..b794b04 100755 --- a/t/spin/tree.t +++ b/t/spin/tree.t @@ -15,8 +15,8 @@ use lib 't/lib'; use Capture::Tiny qw(capture_stdout); use Cwd qw(getcwd); use File::Copy::Recursive qw(dircopy); -use File::Spec; -use File::Temp; +use File::Spec (); +use File::Temp (); use Perl6::Slurp qw(slurp); use POSIX qw(strftime); use Test::DocKnot::Spin qw(is_spin_output_tree); @@ -25,8 +25,26 @@ use Test::More; # Expected output when spinning our tree of input files. my $EXPECTED_OUTPUT = <<'OUTPUT'; +Generating thread file .../changes.th +Generating RSS file .../changes.rss +Updating .../changes.rss +Spinning .../changes.html Spinning .../index.html Updating .../names.png +Creating .../journal +Generating index file .../journal/index.th +Generating RSS file .../journal/index.rss +Generating RSS file .../journal/debian.rss +Generating RSS file .../journal/reviews.rss +Updating .../journal/debian.rss +Updating .../journal/index.rss +Spinning .../journal/index.html +Updating .../journal/reviews.rss +Creating .../journal/2011-08 +Spinning .../journal/2011-08/006.html +Creating .../reviews +Creating .../reviews/books +Spinning .../reviews/books/0-385-49362-2.html Creating .../software Spinning .../software/index.html Creating .../software/docknot @@ -38,26 +56,35 @@ Spinning .../usefor/index.html Creating .../usefor/drafts Updating .../usefor/drafts/draft-ietf-usefor-message-id-01.txt Updating .../usefor/drafts/draft-ietf-usefor-posted-mailed-01.txt -Updating .../usefor/drafts/draft-lindsey-usefor-signed-01.txt Updating .../usefor/drafts/draft-ietf-usefor-useage-01.txt -Creating .../reviews -Creating .../reviews/books -Spinning .../reviews/books/0-385-49362-2.html -Creating .../journal -Creating .../journal/2011-08 -Spinning .../journal/2011-08/006.html +Updating .../usefor/drafts/draft-lindsey-usefor-signed-01.txt OUTPUT require_ok('App::DocKnot::Spin'); +# Copy the input tree to a new temporary directory since .rss files generate +# additional thread files. Replace the rpod pointer since it points to a +# relative path in the source tree. +my $tmpdir = File::Temp->newdir(); +my $datadir = File::Spec->catfile('t', 'data', 'spin'); +my $input = File::Spec->catfile($datadir, 'input'); +dircopy($input, $tmpdir->dirname) + or die "Cannot copy $input to $tmpdir: $!\n"; +my $rpod_source = File::Spec->catfile(getcwd(), 'lib', 'App', 'DocKnot.pm'); +my $rpod_path = File::Spec->catfile( + $tmpdir->dirname, 'software', 'docknot', 'api', + 'app-docknot.rpod', +); +open(my $fh, '>', $rpod_path); +print {$fh} "$rpod_source\n" or die "Cannot write to $rpod_path: $!\n"; +close($fh); + # Spin a tree of files. my $output = File::Temp->newdir(); -my $datadir = File::Spec->catfile('t', 'data', 'spin'); -my $input = File::Spec->catfile($datadir, 'input'); my $expected = File::Spec->catfile($datadir, 'output'); my $spin = App::DocKnot::Spin->new({ 'style-url' => '/~eagle/styles/' }); my $stdout = capture_stdout { - $spin->spin($input, $output->dirname); + $spin->spin($tmpdir->dirname, $output->dirname); }; my $count = is_spin_output_tree($output, $expected, 'spin'); is($stdout, $EXPECTED_OUTPUT, 'Expected spin output'); @@ -66,14 +93,14 @@ is($stdout, $EXPECTED_OUTPUT, 'Expected spin output'); my $bogus = File::Spec->catfile($output->dirname, 'bogus'); my $bogus_file = File::Spec->catfile($bogus, 'some-file'); mkdir($bogus); -open(my $fh, '>', $bogus_file); +open($fh, '>', $bogus_file); print {$fh} "Some stuff\n" or die "Cannot write to $bogus_file: $!\n"; close($fh); # Spinning the same tree of files again should do nothing because of the # modification timestamps. $stdout = capture_stdout { - $spin->spin($input, $output->dirname); + $spin->spin($tmpdir->dirname, $output->dirname); }; is($stdout, q{}, 'Spinning again does nothing'); @@ -85,7 +112,7 @@ ok(-d $bogus, 'Stray file and directory not deleted'); $spin = App::DocKnot::Spin->new({ delete => 1, 'style-url' => '/~eagle/styles/' }); $stdout = capture_stdout { - $spin->spin($input, $output->dirname); + $spin->spin($tmpdir->dirname, $output->dirname); }; is( $stdout, @@ -94,23 +121,6 @@ is( ); ok(!-e $bogus, 'Stray file and directory was deleted'); -# Copy the input tree to a new temporary directory, replace the rpod pointer, -# and regenerate output files with the new timestamps. -my $tmpdir = File::Temp->newdir(); -dircopy($input, $tmpdir) - or die "Cannot copy $input to $tmpdir: $!\n"; -my $rpod_source = File::Spec->catfile(getcwd(), 'lib', 'App', 'DocKnot.pm'); -my $rpod_path = File::Spec->catfile( - $tmpdir->dirname, 'software', 'docknot', 'api', - 'app-docknot.rpod', -); -open($fh, '>', $rpod_path); -print {$fh} "$rpod_source\n" or die "Cannot write to $rpod_path: $!\n"; -close($fh); -capture_stdout { - $spin->spin($tmpdir->dirname, $output->dirname); -}; - # Now, update the .versions file at the top of the input tree to change the # timestamp to a second into the future. This should force regeneration of # only the software/docknot/index.html file. |