<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dw="https://www.dreamwidth.org">
  <id>tag:dreamwidth.org,2009-05-01:185940</id>
  <title>Col</title>
  <subtitle>Col</subtitle>
  <author>
    <name>Col</name>
  </author>
  <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/"/>
  <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom"/>
  <updated>2024-09-06T11:40:08Z</updated>
  <dw:journal username="cjwatson" type="personal"/>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:67428</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/67428.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=67428"/>
    <title>Les Misérables, Sondheim Theatre</title>
    <published>2024-09-06T11:40:08Z</published>
    <updated>2024-09-06T11:40:08Z</updated>
    <category term="theatre"/>
    <category term="review"/>
    <dw:music>Can You Hear The People Sing</dw:music>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">We went to see &lt;a href="https://www.sondheimtheatre.co.uk/whats-on/les-miserables"&gt;Les Mis at the Sondheim&lt;/a&gt; in London yesterday, and had a thoroughly good time.&amp;nbsp; I'd watched the &lt;a href="https://en.wikipedia.org/wiki/Les_Mis%C3%A9rables_(2012_film)"&gt;2012 film adaptation&lt;/a&gt; some years back, but hadn't had a chance to see it on stage before.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;The staging was very impressive: fluid and energetic without ever feeling rushed.&amp;nbsp; There were lots of towers on wheels and such, and suitable pyrotechnics for the fighting at the barricades.&amp;nbsp; The moment early on where Valjean enters the court to save somebody who'd been mistaken for him had the stage suddenly opening up with light mid-song as if from a window above the judge's seat, which made me catch my breath; and in Javert's last scene they contrived to present the illusion of a 90-degree perspective flip using only convincing acting and projected river imagery at the back of the stage.&lt;br /&gt;&lt;br /&gt;Stewart Clarke as Javert was probably the stand-out piece of casting for me:&amp;nbsp;though his numbers aren't my favourites, the actor was magisterially severe and projected exactly the right sense of implacable menace.&amp;nbsp; Amena El-Kindy as &amp;Eacute;ponine was a close second, drawing attention despite muted lighting on her in the garden gate scene (&lt;em&gt;A Heart Full of Love&lt;/em&gt;) and delivering a magnificent performance of &lt;em&gt;On My Own&lt;/em&gt; near the start of Act 2.&amp;nbsp; And Milan van Waardenburg did a wonderful job with both the emotional and vocal ranges required for Valjean.&lt;br /&gt;&lt;br /&gt;I&amp;nbsp;had a few minor gripes.&amp;nbsp; There were a couple of places where I&amp;nbsp;felt the orchestra was rushing the singer slightly, and early in Act 1 a few pieces of sung dialogue were slightly difficult to hear (we were in the middle near the front of the Grand Circle, so the first-level balcony); but this didn't seriously detract from my enjoyment.&amp;nbsp; In general I&amp;nbsp;can take or leave the characters of the Th&amp;eacute;nardiers, and in this production they were played in a chirpy Cockney way which I admit I found a bit grating, but they're meant to be eminently hateable so fair enough.&lt;br /&gt;&lt;br /&gt;There was, I&amp;nbsp;strongly suspect, not a dry eye in the house through the second act.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=67428" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:65865</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/65865.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=65865"/>
    <title>Furniture repair</title>
    <published>2020-02-07T01:05:27Z</published>
    <updated>2020-02-07T01:05:27Z</updated>
    <dw:security>public</dw:security>
    <dw:reply-count>3</dw:reply-count>
    <content type="html">This week I&amp;nbsp;have been doing a fair bit of furniture repair:&amp;nbsp;I've fixed our own bed, mostly fixed Ben's bed (one more piece to go), and fixed the sofa which had been in a state where I mostly couldn't sit on it for most of a year. &amp;nbsp;All this has made me very happy.&amp;nbsp; For future reference the parts supplier that has been especially useful has been &lt;a href="https://www.bedslats.co.uk/"&gt;bedslats.co.uk&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=65865" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:65090</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/65090.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=65090"/>
    <title>Book giveaway</title>
    <published>2019-08-03T16:07:39Z</published>
    <updated>2019-08-04T12:30:27Z</updated>
    <category term="recycling"/>
    <category term="books"/>
    <dw:security>public</dw:security>
    <dw:reply-count>5</dw:reply-count>
    <content type="html">I&amp;nbsp;have not nearly enough bookshelf space for all my books, so I'm giving a load away that I&amp;nbsp;don't expect to read again.&amp;nbsp; (I&amp;nbsp;think I've managed to keep this to things that are unambiguously mine rather than &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://ghoti-mhic-uait.dreamwidth.org/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='https://ghoti-mhic-uait.dreamwidth.org/'&gt;&lt;b&gt;ghoti_mhic_uait&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;'s, but if not then I&amp;nbsp;might need to withdraw the odd one of these offers.)&amp;nbsp; Let me know if you're interested in any of these, otherwise I&amp;nbsp;plan to take them to a charity shop in a week or two.&amp;nbsp; Condition distinctly various (some covers damaged, spines generally broken, etc.), but they should all be readable enough.&lt;br /&gt;&lt;br /&gt;SF/fantasy:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;David Eddings:&amp;nbsp;The Hidden City (duplicate)&lt;/li&gt;&lt;li&gt;Raymond E. Feist:&amp;nbsp;Riftwar Saga series et seq (Magician; Silverthorn; A Darkness at Sethanon; Prince of the Blood)&lt;/li&gt;&lt;li&gt;Raymond E. Feist and Janny Wurts:&amp;nbsp;Empire Trilogy (Daughter of the Empire; Servant of the Empire; Mistress of the Empire)&lt;/li&gt;&lt;li&gt;Maggie Furey:&amp;nbsp;The Artefacts of Power series, book 1-4 (Aurian; Harp of Winds; The Sword of Flame; Dhiammara); The Eye of Eternity&lt;/li&gt;&lt;li&gt;Traci Harding:&amp;nbsp;The Ancient Future&lt;/li&gt;&lt;li&gt;Robin Hobb:&amp;nbsp;The Farseer Trilogy, book 1 (Assassin's Apprentice)&lt;/li&gt;&lt;li&gt;Robert Moore Williams:&amp;nbsp;Zanthar of the Many Worlds&lt;/li&gt;&lt;li&gt;Robert Shea and Robert Anton Wilson: The Illuminatus! Trilogy&lt;/li&gt;&lt;li&gt;Jane Welch:&amp;nbsp;Runespell Trilogy book 1 (The Runes of War)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Computing:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Moshe Bar and Karl Fogel:&amp;nbsp;Open Source Development with CVS, third edition&lt;/li&gt;&lt;li&gt;&lt;strike&gt;Silvia Hagen:&amp;nbsp;IPv6 Essentials&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;Stephen Lidie:&amp;nbsp;Perl/Tk Pocket Reference&lt;/li&gt;&lt;li&gt;Andy Oram and Greg Wilson (ed.): Beautiful Code&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Other:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Scott Adams:&amp;nbsp;The Joy of Work&lt;/li&gt;&lt;li&gt;Max Brooks:&amp;nbsp;The Zombie Survival Guide&lt;/li&gt;&lt;li&gt;Robin Cooper:&amp;nbsp;The Timewaster Letters&lt;/li&gt;&lt;li&gt;Ben Elton: Dead Famous&lt;/li&gt;&lt;li&gt;Tony Hawks: Round Ireland with a Fridge&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=65090" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:64828</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/64828.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=64828"/>
    <title>Reading: Worm</title>
    <published>2018-12-22T14:35:24Z</published>
    <updated>2018-12-22T14:35:24Z</updated>
    <category term="books"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">&lt;p&gt;I feel like I haven't been reading a lot recently, but that's probably because I've been reading a single enormous thing: &lt;a href="https://parahumans.wordpress.com/"&gt;Worm&lt;/a&gt;.  I've been describing it glibly as "grimdark superhero fic", but I'm not sure that's really very accurate, so let me try to do a better job.&lt;/p&gt;

&lt;a name="cutid1"&gt;&lt;/a&gt;
&lt;p&gt;Taylor is bullied at school, and nobody is doing anything about it.  Her escape is that she's planning to be a superhero.  She lives in a world where parahumans, or "capes", exist: people with a wide variety of powers, who've mostly sorted themselves into superheroes and supervillains.  More to the point, a few months ago she had her "trigger event": due to trauma induced by bullying, she developed her own power of controlling spiders, insects, and other creepy-crawlies within a certain distance of her.  So she does the whole Peter Parker thing, spends a couple of months making her own costume from spider silk, and heads out one night for a spot of solo crime-fighting.&lt;/p&gt;

&lt;p&gt;Rather than ending up as a hero, though, she falls in more or less accidentally with a local group of superpowered villains, the Undersiders: between them, Grue generates darkness, Bitch temporarily turns dogs into car-sized dog-monsters, Regent controls minds, and Tattletale has a kind of super-intuition that lets its wielder ferret out almost any secret.  Taylor is kind of intending to defect to the heroes eventually, but things keep getting in the way.&lt;/p&gt;

&lt;p&gt;Aside from the day-to-day hero and villain stuff, humanity is under threat from periodic "Endbringer" attacks: three enormous and almost invincible monsters each of whom occasionally turns up and attacks a human city with devastating effect.  The convention is that there's a truce between capes on those occasions, as it takes everything they've got between them to drive the Endbringers off or even just hold them to a standstill until Scion arrives.  Scion was the first and strongest powered individual to appear, and is kind of the Superman archetype: flies, is invulnerable, shoots beams of golden light, and has been spending the last decade or more fighting crises literally 24/7 and not communicating with anyone else.&lt;/p&gt;

&lt;p&gt;Along the way, Taylor (now "Skitter") encounters Dinah, a precognitive: she can determine the probability that a given event will come to pass.  Soon, she says that there is an 83% chance that a particularly nasty villain they've just run into is going to cause the world to end in two years.  And there's a shadowy organisation called Cauldron lurking around who seem to be giving people powers in exchange for money, whose motives are unclear.&lt;/p&gt;

&lt;p&gt;I said it was enormous: &lt;em&gt;Worm&lt;/em&gt; is about 1.75 million words, so about the same length as the five &lt;em&gt;A Song of Ice and Fire&lt;/em&gt; novels to date put together.  It's also in the format of a web-published serial (although the author is apparently working on getting it professionally published), so in some ways it's a first draft and there are signs of missing editing, points where it's clear that the author was trying to meet a self-imposed posting deadline, an opening that's noticeably less strong than the conclusion, and so on.  For all that, though, it's remarkably compelling and tightly plotted.  It's notable for having a huge cast with a prodigious variety of interesting superpowers and characters who try to find ways to combine them in useful ways.  One thing that sometimes doesn't work for me in ensemble-cast stories is that I find myself skimming past sections from points of view I'm not very interested in; &lt;em&gt;Worm&lt;/em&gt; avoids this by being structured with main arcs that are almost all from Taylor's point of view combined with interludes using other viewpoint characters.  And it has lots of very careful but subtle foreshadowing of the climaxes of its various plot arcs from early on, which is always delightful when done well.&lt;/p&gt;

&lt;p&gt;I really can't unconditionally recommend &lt;em&gt;Worm&lt;/em&gt;, because it comes with pretty much all the content warnings.  Bullying and creepy-crawlies are obvious from the start, and there's also mind control, outright torture in a few places, and very probably more.  If you're sensitive to anything along those lines it's probably best to give it a miss.  That said, it isn't torture porn or anything, and the author goes to considerable lengths to explore moral consequences.&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=64828" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:64540</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/64540.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=64540"/>
    <title>Hugo nomination idea for your consideration</title>
    <published>2018-03-15T17:09:41Z</published>
    <updated>2018-03-15T17:10:22Z</updated>
    <category term="books"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;a href="https://www.barnesandnoble.com/blog/sci-fi-fantasy/unexpected-honor-ursula-vernon/"&gt;Ursula Vernon's Hugo 2017 acceptance speech&lt;/a&gt;.  (I went for Best Related Work.)  Thanks to &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://ceb.dreamwidth.org/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='https://ceb.dreamwidth.org/'&gt;&lt;b&gt;ceb&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; for digging out the link.&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=64540" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:64272</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/64272.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=64272"/>
    <title>Reading: Crosstalk; The City of Brass</title>
    <published>2018-03-06T10:56:33Z</published>
    <updated>2018-03-06T10:56:33Z</updated>
    <category term="books"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;I haven't been finding a lot of time for reading lately, but here are a couple of short reviews.&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Crosstalk&lt;/em&gt;, by Connie Willis&lt;/h3&gt;

&lt;a name="cutid1"&gt;&lt;/a&gt;

&lt;p&gt;Briddey Flannigan works at a smartphone company and is about to embark on the latest relationship upgrade: an empathic implant that's touted as letting partners sense each other's emotions directly.  She already has an extended family who want to be in touch with her at every waking moment, and generally way too much communication.  When the implant turns out not to have quite the results she was expecting, she suddenly finds herself spending a lot more time with her weird coworker who hides out down in the basement all the time, who's the only one in a position to help her deal with the sudden frightening changes.&lt;/p&gt;

&lt;p&gt;There was an interesting story here, but unfortunately it was kind of buried.  I think part of it was Willis deliberately using stiflingly excessive communication for effect, but by half-way through the book nothing much seemed to have happened and I was wishing for an editor who did a better job of deleting things.  Fortunately the second half does pick up the pace, but then there's some seriously odd Irish exceptionalism going on which I had a hard time getting past (possibly it's Irish-American exceptionalism, which I never get on with; and pettily, "Briddey" is a name that just left me feeling like the author didn't know how to spell or pronounce Bridie/Bridey).  On the characterisation, I agree with most of &lt;a href="http://smartbitchestrashybooks.com/reviews/crosstalk-connie-willis/"&gt;this review by Carrie S&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It was definitely fun in its way: I'm an absolute sucker for stories about the discovery of psychic powers (to my mind Julian May's &lt;em&gt;Intervention&lt;/em&gt; is close to the pinnacle of the subgenre).  But I think part of the problem is that this couldn't really decide what kind of story it was trying to be.  Cut a good chunk of what was fairly flat characterisation anyway and it would make a rather good SF novella.  With better lead characters it would be a decent romantic comedy, or with a bit more of a screwball injection it would work as a farce.  But as it is, it's trying to be all three and it doesn't quite work.&lt;/p&gt;



&lt;h3&gt;&lt;em&gt;The City of Brass&lt;/em&gt;, by S. A. Chakraborty&lt;/h3&gt;

&lt;a name="cutid2"&gt;&lt;/a&gt;

&lt;p&gt;Nahri is a young woman on the streets of 18th-century Cairo who makes a living by telling fortunes, swindling nobles, and healing people: she's always had a particular gift for the last, but takes care not to make it look too strange.  One day she performs what she believes to be a harmless con of a ceremony and accidentally summons a djinn, or a daeva as he prefers to be called.  Forced to flee Cairo by the ifrit, she crosses the desert with the daeva to the magnificent hidden city of Daevabad, where she finds herself to be more than she'd thought and is drawn into the court politics of a civilisation of djinn that has been concealed since the days of King Suleiman.  Meanwhile, Ali, the young second son of Daevabad's king, is engaged in a dangerous exercise of his principles, channelling illicit funding to the djinn/human half-bloods who make up the city's underclass.&lt;/p&gt;

&lt;p&gt;At one level this is the classic structure of epic fantasy, especially the first volume of a trilogy as this is: naïve young protagonist (hobbit, farmboy, or whatever) is taken under the wing of an experienced but mysterious mentor and serves as a sink for exposition of the secondary world.  In those terms it's a competent execution of the form, though the interleaving of Nahri's clean-slate viewpoint with Ali's somewhat insider one makes it more interesting and allows for a useful extra angle on events.&lt;/p&gt;

&lt;p&gt;But oh, what a secondary world it is.  The author is a Muslim convert, and is intentionally drawing on mediaeval Arabic literary traditions such as the 1001 Nights (I bought this book after reading &lt;a href="https://twitter.com/SChakrabs/status/958376579717091329"&gt;this amazing Twitter thread by its author on the Nights&lt;/a&gt;).  I haven't read much Islamic fiction, though I keep meaning to, and this definitely leaves me wanting more.  It's intentionally representing people of colour and Muslims (it turns out that most of the djinn also adopted the human religion for internal political convenience), and there's a bunch of really good social commentary on the oppressed classes of Daevabad that's the kind of thing epic fantasy often somehow never quite gets round to.  The history of Suleiman stamping his authority on the djinn and their subsequent fractured politics is nicely developed with plenty of room for more.  Dara, the daeva Nahri summoned at the start, is a beautifully-textured character practically made of moral ambiguity.  And Nahri herself is a strong protagonist with some very hard choices to make.&lt;/p&gt;

&lt;p&gt;This was an absolute joy of a book, and goes straight on my Hugo-nominations list.&lt;/p&gt;

&lt;p&gt;Followed by &lt;em&gt;The Kingdom of Copper&lt;/em&gt;, expected to be published in 2019.&lt;/p&gt;

&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=64272" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:64206</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/64206.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=64206"/>
    <title>I'm not sure this is precisely in the true bardic tradition</title>
    <published>2017-09-17T22:16:47Z</published>
    <updated>2017-09-18T07:08:09Z</updated>
    <category term="gaeilge"/>
    <category term="poetry"/>
    <dw:mood>silly</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">&lt;p&gt;
is mise bó&lt;br /&gt;
tá mé an-caoin&lt;br /&gt;
léigh mé an dán&lt;br /&gt;
ar idirlíon&lt;br /&gt;
nuair is mian leat&lt;br /&gt;
canaim amhrán&lt;br /&gt;
fanaim rómhall&lt;br /&gt;
lím an t-arán
&lt;/p&gt;

&lt;a name="cutid1"&gt;&lt;/a&gt;
&lt;p&gt;An attempt at &lt;a href="http://knowyourmeme.com/memes/i-lik-the-bred"&gt;i lik the bred&lt;/a&gt; in Irish, inspired by &lt;a href="https://annleckie.tumblr.com/post/165433219156/could-you-tell-us-more-about-norse-mythology"&gt;this bit of excellence&lt;/a&gt;.  Google Translate may not help you.  Rough translation:&lt;/p&gt;
&lt;p&gt;
my name is cow&lt;br /&gt;
i am very gentle&lt;br /&gt;
i read the poem&lt;br /&gt;
on internet&lt;br /&gt;
whenever you want&lt;br /&gt;
i sing a song&lt;br /&gt;
i stay too late&lt;br /&gt;
i lick the bread
&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=64206" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:63857</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/63857.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=63857"/>
    <title>TG Lurgan, amhráin as Gaeilge</title>
    <published>2017-09-17T19:30:48Z</published>
    <updated>2017-09-17T19:51:18Z</updated>
    <category term="gaeilge"/>
    <category term="music"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">&lt;p&gt;Coláiste Lurgan (Lurgan College) is an Irish-language summer school in Connemara; it has a musical project called TG Lurgan which does lots of brilliant translated covers.  Here are a couple, worth watching even if you have little or no Irish 'cause they're obviously having such a good time with it!&lt;/p&gt;

&lt;a name="cutid1"&gt;&lt;/a&gt;
&lt;p&gt;Africa: &lt;iframe width="560" height="315" src="https://www.youtube.com/embed/lB7-5_FiZeU" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;

&lt;p&gt;Can't Stop the Feeling: &lt;iframe width="560" height="315" src="https://www.youtube.com/embed/4FGr-f2EC-w" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;/p&gt;


&lt;p&gt;(I'd run across them before, but &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://twitter.com/eyebrowsofpower'&gt;&lt;img src='https://p2.dreamwidth.org/e0caa790ec10/-/twitter.com/favicon.ico' alt='[twitter.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='16' height='16'/&gt;&lt;/a&gt;&lt;a href='http://twitter.com/eyebrowsofpower'&gt;&lt;b&gt;eyebrowsofpower&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; reminded me of them today.)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=63857" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:63516</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/63516.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=63516"/>
    <title>Web fiction rec: 17776</title>
    <published>2017-08-04T18:36:15Z</published>
    <updated>2017-08-04T18:36:15Z</updated>
    <category term="recommendation"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;I came across &lt;a href="https://www.sbnation.com/a/17776-football"&gt;17776&lt;/a&gt; a little while back via &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://twitter.com/shockproofbeats'&gt;&lt;img src='https://p2.dreamwidth.org/e0caa790ec10/-/twitter.com/favicon.ico' alt='[twitter.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='16' height='16'/&gt;&lt;/a&gt;&lt;a href='http://twitter.com/shockproofbeats'&gt;&lt;b&gt;shockproofbeats&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;.  It's a startlingly original piece of web fiction: it's partly about the far future, partly about American football, and partly about the human condition and its affinity for play.  I've heard it compared to &lt;a href="http://www.mspaintadventures.com/?s=6"&gt;Homestuck&lt;/a&gt;, although it's very much shorter - I think the main thing they have in common is that they're both making inventive use of the medium.&lt;/p&gt;&lt;p&gt;Some people mentioned they found it tough going at the start and gave up (the first episode is mostly a very long scrolling calendar, particularly bad on mobile, and there's quite a bit of embedded video and such; it may well work a bit better on desktop, although I read/watched the whole thing on my phone).  It's worth persevering.&lt;/p&gt;&lt;p&gt;I reckon this is on my list of Hugo nominees for next year, if only I can work out what category to put it in.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=63516" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:63395</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/63395.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=63395"/>
    <title>Liberal Democrat coalition rules</title>
    <published>2017-04-21T21:54:09Z</published>
    <updated>2019-05-09T10:30:12Z</updated>
    <category term="politics"/>
    <dw:security>public</dw:security>
    <dw:reply-count>7</dw:reply-count>
    <content type="html">&lt;p&gt;TL;DR: if you're concerned about another Con/LD coalition, you should know the Lib Dem constitution was changed a few years ago to make that harder.  Details follow.&lt;/p&gt;

&lt;p&gt;There was a &lt;a href="https://liv.dreamwidth.org/519732.html?thread=7149620"&gt;conversation&lt;/a&gt; over on &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://liv.dreamwidth.org/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='https://liv.dreamwidth.org/'&gt;&lt;b&gt;liv&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;'s journal about how the Liberal Democrats make the decision to go into a coalition, and in general lots of people have made comments along the lines of "I can't vote Lib Dem because they'll just go and prop up the Tories again".  In May 2010, just after the Tories made a coalition offer, I wrote to my newly-elected Lib Dem MP (Julian Huppert) to say how scared I was about it, including this:&lt;/p&gt;

&lt;blockquote&gt;
Their offer doesn't seem worth the price of a Conservative government with a working majority, and I'm concerned that if the Lib Dems accepted it we would not only alienate our base but also ruin our chances of electoral success for another generation by associating ourselves with the draconian spending cuts that seem inevitable.  I could only even start to support an LD/Con coalition if there were a clear and believable commitment towards PR, in which case there's just a chance that it might be worth the risk.  Otherwise, it seems like suicide.
&lt;/blockquote&gt;

&lt;p&gt;So, er, yeah.  But obviously I wasn't the only person in the party thinking this, and &lt;strong&gt;the rules were changed&lt;/strong&gt; in 2012 to make it harder for the parliamentary party to enter a coalition without the consent of the party as a whole.  It was really difficult to work out retrospectively what exactly had been changed, because Lib Dem data publication is not quite what it might be, but with a pointer from &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://miss-s-b.dreamwidth.org/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='https://miss-s-b.dreamwidth.org/'&gt;&lt;b&gt;miss_s_b&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; I was able to dig it out of old conference reports.  I'm reposting that here as a top-level journal entry so that I can point people to it without others having to deal with the resulting comments, and so that nobody else has to go through the effort of trying to dig it up.&lt;/p&gt;

&lt;p&gt;Here are my sources:&lt;/p&gt;

&lt;p&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="https://d3n8a8pro7vhmx.cloudfront.net/libdems/pages/2010/attachments/original/1390841183/Reports_to_Spring_Conference_2012.pdf?1390841183"&gt;reports to spring 2012 conference&lt;/a&gt;, pp. 24-30&lt;/li&gt;
&lt;li&gt;&lt;a href="https://d3n8a8pro7vhmx.cloudfront.net/libdems/pages/2010/attachments/original/1390841221/2012_Newcastle-Gateshead_Spring_Conference_Report.pdf?1390841221"&gt;report from spring 2012 conference&lt;/a&gt;, p. 22&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.libdems.org.uk/constitution"&gt;current federal constitution&lt;/a&gt;, Article 23&lt;/li&gt;
&lt;/ul&gt;&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;old&lt;/em&gt; rules, dating from 1998, were that "any substantial proposal which could affect the Party’s independence of political action" required:&lt;/p&gt;

&lt;p&gt;&lt;ol style="list-style-type: lower-latin;"&gt;
&lt;li&gt;A 75% (of the total number eligible to vote, not just of those voting) majority approval by both the Parliamentary Party in the House of Commons and the Federal Executive; or&lt;/li&gt;
&lt;li&gt;Failing a), a two-thirds majority approval by those present and voting at a Special Federal Conference; or&lt;/li&gt;
&lt;li&gt;Failing a) and b), a simple majority by those voting in a Membership Ballot.&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;new&lt;/em&gt; rules are that if the Commons Party after negotiation and consultation decides to support a coalition government, then it shall seek the approval of a special conference, and the motion requires a two-thirds majority of those present and voting at conference to pass.  (See Article 23 of the current constitution for the details.  Side note: Tim Farron moved the conference motion to add this article.)&lt;/p&gt;

&lt;p&gt;This is a significant tightening: a two-thirds majority of conference is now absolutely required, whereas previously MPs and Federal Executive could act alone if they had a 75% majority among themselves.  Even if Tim Farron is gung-ho to cosy up to the Tories (which I personally don't believe, but let's run with it), to think that another Con/LD coalition is likely under these rules, you have to not only believe that Farron and the rest of the parliamentary party would support it, but also that a supermajority of the most activist subset of Lib Dem party members - the sort who've spent the last couple of years working to claw things back from near-destruction at a national level - would want to do it all again after the last time with a party committed to exactly the opposite of our primary campaign message.  Being cynical about politicians who are only out for power or whatever is one thing, but this seems a whole lot less plausible to me.&lt;/p&gt;

&lt;p&gt;(Full disclosure: I'm a Lib Dem member and very low-level activist, i.e. I occasionally get sent out to deliver leaflets and such.  I have nowhere near enough time or energy to go to conferences or gets involved with party policy.  I have plenty to criticise in Lib Dems past and present, but I also want to make sure that my criticisms are accurate.)&lt;/p&gt;

&lt;p&gt;&lt;small&gt;Edited 2019-05-09 to update link to constitution, and to refer to Article 23 rather than Article 22 as a result of amendments.&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=63395" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:21454</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/21454.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=21454"/>
    <title>Small data hack: bin day calendar</title>
    <published>2016-12-28T15:34:51Z</published>
    <updated>2016-12-28T15:36:42Z</updated>
    <category term="programming"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">I'm very lazy.  Rather than having to keep track of Cambridge bin collection days manually, especially around holidays, I wrote a thing to convert it into an &lt;a href="https://en.wikipedia.org/wiki/ICalendar"&gt;iCalendar file&lt;/a&gt; for me so that I could import it into Google Calendar.  Here it is in case it's useful to anyone else:&lt;br /&gt;&lt;pre&gt;
#! /usr/bin/python3

from argparse import ArgumentParser
from datetime import datetime
import os.path
import re

from bs4 import BeautifulSoup
import dateutil.parser
from icalendar import (
    Calendar,
    Event,
    )
import requests


parser = ArgumentParser(
    description="Generate iCalendar file for Cambridge bin collection days.")
parser.add_argument(
    "id",
    help=(
        "Unique identifier for this calendar, normally your host name.  Make "
        "sure that this does not collide with any other calendars."))
parser.add_argument("address", help="Your street address in Cambridge.")
parser.add_argument("postcode", help="Your postcode.")
args = parser.parse_args()

now = datetime.now()
req = requests.get(
    "http://bins.cambridge.gov.uk/bins.php",
    params={"address": args.address, "postcode": args.postcode})
soup = BeautifulSoup(req.text)
cal = Calendar()
cal.add("prodid", "-//riva.pelham.vpn.ucam.org//bin-days//EN")
cal.add("version", "2.0")
cal.add("calscale", "GREGORIAN")
cal.add("x-wr-calname", "Bin days")
cal.add("x-wr-timezone", "Europe/London")
for div in soup.find_all("div", style=re.compile(r"^text-align:center")):
    desc = div.contents[0]
    when = dateutil.parser.parse(div.b.get_text(" ").rstrip("*"))
    while when &amp;lt; now:
        when = when.replace(year=when.year + 1)
    event = Event()
    event.add("uid", "bin-days/{:%Y%m%d}@{}".format(when, args.id))
    event.add("dtstart", when.date())
    event.add("summary", desc.capitalize())
    event.add("transp", "TRANSPARENT")
    cal.add_component(event)
with open(os.path.expanduser("~/public_html/bin-days.ics"), "wb") as out:
    out.write(cal.to_ical())&lt;/pre&gt;On Debian, this requires the python3-bs4, python3-dateutil, python3-icalendar, and python3-requests packages.  You'll probably want to change the output path to somewhere that your calendar software can see (so if it's a web service such as Google Calendar then it needs to be something that corresponds to an accessible URL).  The web-scraping is pretty gross, but it's the best I can do given the council's published data.  Ideally this would itself be a web service that could generate calendars on demand for a given address and postcode, but like I say I'm lazy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=21454" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:21099</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/21099.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=21099"/>
    <title>Counting on my fingers</title>
    <published>2016-12-25T14:12:03Z</published>
    <updated>2016-12-25T14:14:58Z</updated>
    <category term="music"/>
    <category term="maths"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">Happy Christmas and happy Hanukkah (they coincide this year)!   This is not especially festive except that I was reminded of it at Midnight Mass while counting verses of a rather long litany.&lt;br /&gt;&lt;br /&gt;When I was a teenager, I invented what as far as I know is an original method of finger-counting; at least I was unaware of having based it on anything else and I haven't seen it used anywhere since.   No, please stop backing away slowly, I promise I'm not dangerous.  I don't remember exactly why I bothered, but it may have had something to do with being a cellist and therefore occasionally having to count off long rests in a reasonably discreet way that was harder to lose track of than just counting in my head.   I still sometimes use it in similar circumstances.&lt;br /&gt;&lt;br /&gt;My method goes as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Begin by counting off the three segments of each finger on your left hand by touching the palmward side of them with your left thumb: 1, 2, 3 for the tip, middle, base of your index finger, 4, 5, 6 for your middle finger, and so on.   This takes you to 12.&lt;/li&gt;&lt;li&gt;Touch your left palm with your left thumb for 13.&lt;/li&gt;&lt;li&gt;Now return to your left fingers as before, but this time touch the backs of the segments: 14, 15, 16 for the tip, middle, base of your index finger, and so on.   This takes you to 25 on a single hand.&lt;/li&gt;&lt;li&gt;If you need more, use your right hand in the same way as a 25s place.   The upper limit is therefore 625.&lt;/li&gt;&lt;/ul&gt;I was certainly aware of binary and hexadecimal bases by that time and reasonably fluent in both, and I thought of &lt;a href="https://en.wikipedia.org/wiki/Finger_binary"&gt;finger binary&lt;/a&gt; independently, but converting between bases can take a bit of thought, and the point was to be easily usable in situations where I didn't have much spare brainpower available, for example when in the middle of an orchestral concert with lots of other stuff going on.  I basically wanted to be able to delegate the job of counting to a simple motor task and be reasonably sure of getting it right.&lt;br /&gt;&lt;br /&gt;This method has several nice properties:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;25 is very decimal-friendly, at least at smallish values.  It's pretty rare to have to "manually" count higher than 100, and that's just 0 on the left hand and 4 on the right.  Most numbers one is likely to need to count to come out easily.  &lt;a href="https://en.wikipedia.org/wiki/Finger-counting"&gt;Wikipedia tells me&lt;/a&gt; that there are Asian systems that use finger segments in a similar way to reach 12 on each hand, but that's not as decimal-friendly.&lt;/li&gt;&lt;li&gt;Only involves small movements, mostly within the natural crook of your hand.  You can quite easily count this way in a context where other methods would be awkward or gauche, and probably nobody will notice.&lt;/li&gt;&lt;li&gt;Reasonably useful upper limit with a single hand.  (As a cellist I was usually holding a bow with my right hand, but during rests my left hand was free.)&lt;/li&gt;&lt;/ul&gt;It is, I suspect, not at all useful for communication: distinguishing between two different sides of a finger is quite easy by touch but probably not by sight.&lt;br /&gt;&lt;br /&gt;Am I weird?  Is anyone aware of a previous base-25 system like this?  Feel free to only answer the second of those questions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=21099" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:20453</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/20453.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=20453"/>
    <title>Letter to my MP on the EU referendum results</title>
    <published>2016-06-24T18:07:59Z</published>
    <updated>2016-06-27T22:20:02Z</updated>
    <category term="politics"/>
    <dw:mood>crushed</dw:mood>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">I wrote this to my MP (Daniel Zeichner, Labour, Cambridge) today:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;Dear Mr. Zeichner,&lt;br /&gt;&lt;br /&gt;Thank you for your efforts on behalf of the Remain campaign.  Although I'm normally a Lib Dem voter, I'm quite in agreement with your &lt;a href="http://www.cambridge-news.co.uk/cambridge-mp-daniel-zeichner-britain-is-this-morning-a-poorer-more-vulnerable-country/story-29439198-detail/story.html"&gt;article&lt;/a&gt; in today's Cambridge News: this was likely a protest vote in many areas, it should never have been a referendum in the first place, and it is a disaster for the country.&lt;br /&gt;&lt;br /&gt;I'm scared now that parties of the Left will move sharply to the right in appeasing a perception of voters' intents.  We're already seeing signs of this kind of thing: the &amp;quot;Lexit&amp;quot; campaign focusing on the theoretical structure of the EU at the expense of the human costs of leaving it, the Shadow Home Secretary saying that this is a vote for &amp;quot;real change on migration policy&amp;quot;, and the constant refrain that politicians must do more to react to concerns about immigration rather than leading the national debate and fixing the underlying issues of deprivation and austerity that cause people to cast around for somebody to blame.&lt;br /&gt;&lt;br /&gt;Please could you do all you can to hold the line?  I would vote for a politician with the courage to assert parliamentary supremacy and say that a 52-48 referendum result is indicative of widespread public criticism of the state of the country but not a mandate for massively destructive constitutional change.  But failing that, we need the Left to stand up for social justice and ensure that the vital protections formerly afforded to the underprivileged by the EU are preserved in some form.  The Right are quite capable of campaigning to &amp;quot;reform&amp;quot; immigration, demonising those who want to come here as scroungers, and stripping away the human rights of people who are already here.  The Left, and Labour in particular, doesn't need to help them; it can only make itself irrelevant by trying.&lt;br /&gt;&lt;br /&gt;Thank you.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ETA: Zeichner has &lt;a href="https://twitter.com/DanielZeichner/status/747422975276814336"&gt;stated&lt;/a&gt; that he will be voting Remain when this comes before parliament.  Good news!&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=20453" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:19923</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/19923.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=19923"/>
    <title>Once Upon a Time</title>
    <published>2016-01-20T13:18:48Z</published>
    <updated>2016-01-20T13:18:48Z</updated>
    <category term="tv"/>
    <dw:security>public</dw:security>
    <dw:reply-count>4</dw:reply-count>
    <content type="html">&lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; and I have been watching our way through &lt;a href="https://en.wikipedia.org/wiki/Once_Upon_a_Time_%28TV_series%29"&gt;Once Upon a Time&lt;/a&gt;.  It's basically televised urban fantasy, subgenre "mining folk mythology for fun and profit".  The central conceit is that fairy tales are real and their characters live in other realms, until an event where an ensemble-cast-ful of them are cursed into our world and lose their memories of the Enchanted Forest.  Each episode interleaves the main present-day plot with flashback sequences from the fairy-tale past, which are used to great effect to develop individual characters.  We're up to season four at the moment and still thoroughly enjoying it; the setting means that the show's creators can mix in new underlying tales from time to time, which does a good job of keeping things fresh.&lt;br /&gt;&lt;br /&gt;Today &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ewx.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ewx.livejournal.com/'&gt;&lt;b&gt;ewx&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; linked to a &lt;a href="http://www.bbc.co.uk/news/uk-35358487"&gt;news article&lt;/a&gt; about a &lt;a href="http://rsos.royalsocietypublishing.org/content/3/1/150645"&gt;paper&lt;/a&gt; on phylogenetic/linguistic analysis of the roots of folktales.  With this recent TV consumption, the main thing that jumped out at me was &lt;a name="cutid1"&gt;&lt;/a&gt;how neat it is that the "Beauty and the Beast" and "Rumpelstiltskin" tales are about the same age given the Belle/Rumpel relationship in "Once".  If you're willing to accept the poetic reading of "time" as something like "recorded history" or "civilisation", "Beauty and the Beast" being around 4000 years old also puts a nice gloss on the Disney song "Tale as old as time / Song as old as rhyme" (which I only just found out was sung by Angela Lansbury in the film!).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=19923" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:19516</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/19516.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=19516"/>
    <title>Spare tickets</title>
    <published>2015-10-29T14:46:15Z</published>
    <updated>2015-10-29T14:47:30Z</updated>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;p&gt;Due to a miscommunication, &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; and I have ended up with two more £7.50 tickets to this exciting &lt;a href="http://www.junction.co.uk/hammer-tongue-cambridge-november"&gt;poetry slam at the Junction&lt;/a&gt; on 6 Nov than we in fact need.  Would anyone like to take them off our hands?&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=19516" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:19441</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/19441.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=19441"/>
    <title>Vegetarian</title>
    <published>2015-08-15T09:45:16Z</published>
    <updated>2015-08-15T09:45:16Z</updated>
    <category term="food"/>
    <dw:security>public</dw:security>
    <dw:reply-count>1</dw:reply-count>
    <content type="html">&lt;p&gt;I've decided to switch to being vegetarian.&lt;/p&gt;

&lt;p&gt;This is definitely at least somewhat prompted by hanging around with &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://liv.dreamwidth.org/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='https://liv.dreamwidth.org/'&gt;&lt;b&gt;liv&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; and &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://jack.dreamwidth.org/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='https://jack.dreamwidth.org/'&gt;&lt;b&gt;jack&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; a lot more lately, although neither of them has been evangelising to us about it!  (Something about this seems to invite possibly inappropriate religious metaphors; I almost wrote "convert" rather than "switch" above.)  And of course &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; went vegetarian herself a few months ago, and since she does most of the cooking in our household that tended to cut down my meat intake anyway.  The children still eat meat, so I could have asked to keep having meat as well, or could have made myself corned beef sandwiches or whatever for lunch, but somehow neither of those seemed to happen.  Maybe this is the seductive allure of halloumi at work?&lt;/p&gt;

&lt;p&gt;I think, really, I'm generally looking for ways to tread a bit more lightly upon the earth.  We gave up our car a couple of years back, which definitely started with a practical prompt (an MOT test that came back with uneconomical-to-repair problems), but was also a way to improve fitness and reduce our energy footprint.  I do take plane trips a couple of times a year, mostly for work, which I suppose wipes out practically every other thing I could possibly do, and I'm not totally convinced that individual action is the way to deal with climate change anyway; but these seem like weak excuses for not doing what I can in other respects.  Livestock agriculture is ecologically expensive.&lt;/p&gt;

&lt;p&gt;At this point I'm not being careful about things like gelatine or rennet, nor about cooking equipment that's also used for meat; I'm just refraining from the actual eating of chunks of dead animal.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=19441" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:19174</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/19174.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=19174"/>
    <title>Weekend and reading</title>
    <published>2015-07-05T23:15:49Z</published>
    <updated>2015-07-05T23:20:57Z</updated>
    <category term="books"/>
    <category term="quotidian"/>
    <category term="parenting"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">Our three-year-old has chickenpox, so he's in quarantine until he ceases to be contagious.  He's dealing with it pretty well really - some scratching, not too serious - but of course cabin fever is beginning to set in a bit, and it threw our weekend plans completely out of kilter: I'd planned to take them up to Dad's for a day or so and then take them to a child's birthday party, neither of which got to happen.  So instead I did a bit of crafting with them that didn't require too much creativity from me ("Duct Tape Dragsters"; quite cute, though the interest seemed to pall almost as soon as we'd built them, but hopefully they'll pick them up again a bit later), and have otherwise mostly been decompressing and trying to at least establish some kind of base camp on the housework mountain.  This evening &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; and I played Monastery, which I think worked much better the second time although the rules are still not the clearest piece of writing in the world and I had to resort to BoardGameGeek to disambiguate, which was OK until I failed to correctly explain what I'd learned to &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; and ended up inadvertently gaining an advantage as a result.  Hopefully next time we'll know what we're doing.&lt;br /&gt;&lt;br /&gt;So, recent reading.  My reading rate is way slower than a lot of other people I know these days, but I've managed to finish a few things recently.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;The Martian&lt;/em&gt;, Andy Weir.  Picked up from &lt;a href="http://xkcd.net/1536/"&gt;XKCD&lt;/a&gt;, who clearly knows exactly what I like and summarises it better than I can.  "Hard science fiction" doesn't seem to quite cover it, since for me that suggests something more physicsy along the lines of Greg Egan; maybe hard engineering fiction?  Any book whose plot uses rocket fuel for some purpose other than going bang and accelerating things is just fine by me.&lt;/li&gt;&lt;li&gt;&lt;em&gt;Tigana&lt;/em&gt;, Guy Gavriel Kay.  Not finished, but doesn't matter because it's comfort re-reading.  Fantasy in a land where an invading sorcerer has made it impossible for anyone not from the eponymous province to hear or remember its name as retribution for the death of his son.  It's one of the most luminously poetic works of speculative fiction I know and I love it.&lt;/li&gt;&lt;li&gt;&lt;em&gt;The Annihilation Score&lt;/em&gt;, Charles Stross, sixth novel in the Laundry Files sequence.  I'd probably happily read Charlie's shopping list and I've had this on pre-order for a while, then devoured it in a couple of days (very quick for me at the moment).  The series premise is that sufficiently complex computation breaks down barriers between universes, allowing practitioners to perform magic but also summoning eldritch and very unfriendly entities in the process: basically, Lovecraft was right, but Turing put it on a scientific footing and then the British government spun off a secret department to try to keep people safe from it.  The earlier novels let Stross pastiche classic British spy fiction as well as riffing on the horror genre, but the basic premise is pretty flexible and later books have been heading in the direction of urban fantasy.  This one's an occult superhero novel.  The protagonist is married to the protag of the previous books, and Charlie has been dropping hints that this will expose ways in which the previous protag is an unreliable narrator, but I didn't notice very much of that; perhaps it will become clearer on re-reading.&lt;/li&gt;&lt;li&gt;&lt;a href="http://thebloggess.com/"&gt;The Bloggess&lt;/a&gt;.  This is probably one of those cases where everyone else ran across the &lt;a href="http://thebloggess.com/2011/06/and-thats-why-you-should-learn-to-pick-your-battles/"&gt;giant metal chicken&lt;/a&gt; story years ago and I just missed it, but anyway, A+++ would collapse in fits of giggles again.&lt;/li&gt;&lt;li&gt;&lt;em&gt;The Book of Taltos&lt;/em&gt;, Steven Brust, books 4 and 5 of a series.  Borrowed from &lt;span style='white-space: nowrap;'&gt;&lt;a href='https://liv.dreamwidth.org/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/silk/identity/user.png' alt='[personal profile] ' width='17' height='17' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='https://liv.dreamwidth.org/'&gt;&lt;b&gt;liv&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;, as with the previous anthology &lt;em&gt;The Book of Jhereg&lt;/em&gt; which included books 1-3.  The first three were more or less otherworldly detective yarns and thoroughly enjoyable; but I'm not far enough through these two to say much about them yet.  Maybe later.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=19174" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:18900</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/18900.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=18900"/>
    <title>Kittens!</title>
    <published>2015-05-06T10:39:07Z</published>
    <updated>2015-05-06T10:39:07Z</updated>
    <category term="cat"/>
    <dw:security>public</dw:security>
    <dw:reply-count>10</dw:reply-count>
    <content type="html">Our adopted cat Ninja has been pregnant for a couple of months, after we failed to keep her inside while she was on heat, and we've been expecting her to give birth any minute now for several days.&amp;nbsp; Last night we were quite worried because we couldn't find her anywhere, and I&amp;nbsp;went so far as to go out and search the neighbourhood at half-past-four in the morning.&amp;nbsp; When I&amp;nbsp;got back, we were getting ready to go back to bed and then we heard some higher-pitched-than-usual meowing coming from my study ...&lt;br /&gt;&lt;br /&gt;It seems that Ninja had nominated the wardrobe in my study as a warm and safe place.&amp;nbsp; Which was mostly right, except that she was on top of a pile of Stuff and some of the kittens had got a bit stuck, so later this morning I&amp;nbsp;rescued some of them from the depths of the wardrobe.&amp;nbsp; All four kittens seem to be well, though, little black-and-grey scraps of fur with CLAWS, and they and mother are snug in their box out of the way under the stairs.&amp;nbsp; Pictures will no doubt be forthcoming although I have to rely on &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&amp;nbsp;for those as my phone's camera isn't working.&amp;nbsp; Assuming that all goes well, we plan to keep one and have homes lined up for the other three.&lt;br /&gt;&lt;br /&gt;I'm amazed at how quiet and non-messy the procedure seems to have been!&amp;nbsp; The vet gave us to understand that the mother could be understandably quite noisy, but we heard pretty much nothing at all to the extent that we had no idea where she was until after the kittens were born.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=18900" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:17081</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/17081.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=17081"/>
    <title>Books to recycle</title>
    <published>2015-01-15T12:05:48Z</published>
    <updated>2015-01-16T00:58:33Z</updated>
    <category term="books"/>
    <category term="recycling"/>
    <dw:security>public</dw:security>
    <dw:reply-count>19</dw:reply-count>
    <content type="html">We have a ridiculous excess of books, not so much compared to how many books I want to have in an ideal world, but certainly compared to how much space we have for storing them, so I'm going to start trying to cull them.  Does anyone who I'm likely to see in the next month or two want any of these, for free?  Otherwise I'll take them to a charity shop or similar.&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;Scott Adams: The Dilbert Future&lt;/strike&gt;&lt;br /&gt;Robert Asprin: Another Fine Myth&lt;br /&gt;Tim Berners-Lee: Weaving the Web&lt;br /&gt;Alex Boese: Elephants on Acid, and Other Bizarre Experiments&lt;br /&gt;The Harvard Lampoon: Bored of the Rings&lt;br /&gt;&lt;strike&gt;Seanan McGuire: October Daye, books 1-4 (Rosemary and Rue; A Local Habitation; An Artificial Night; Late Eclipses) - these were water-damaged thanks to the good care taken by a courier so we got replacement copies, but I believe they're still readable&lt;/strike&gt;&lt;br /&gt;Mil Millington: Things my girlfriend and I have argued about&lt;br /&gt;&lt;strike&gt;New Scientist: Do Polar Bears Get Lonely?&lt;/strike&gt;&lt;br /&gt;&lt;strike&gt;Lemony Snicket: A Series of Unfortunate Events, books 1-3 (omnibus)&lt;/strike&gt;&lt;br /&gt;Keir Thomas: Beginning Ubuntu Linux&lt;br /&gt;&lt;br /&gt;ETA: added the Lemony Snicket&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=17081" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:16268</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/16268.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=16268"/>
    <title>December days: 2015</title>
    <published>2014-12-31T13:35:20Z</published>
    <updated>2014-12-31T13:35:20Z</updated>
    <category term="december days"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">End of the month, and of this "December days" series; end of 2014.  I'm not trying to make any new year's resolutions this year: in 2014 I half-seriously &lt;a href="https://twitter.com/colmmacuait/status/418208663804076032"&gt;resolved&lt;/a&gt; to tweet &lt;em&gt;as Gaeilge&lt;/em&gt; at least once a week during 2014, partly as a way to encourage myself to learn more of the language and partly because the verb "tvu&amp;iacute;t" is just &lt;em&gt;so cute&lt;/em&gt;.  With the most generous possible interpretation (counting even just a few words in the middle of a mostly-English tweet), I managed ... 23.  Oops.  So I'm not in a rush to set myself up for anything particular this arbitrary-time-division, but a little bit of reflection seems popular around this time of year.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;A good part of 2014 involved bumbling along as before, but towards the end of the year I started disentangling a whole skein of overwork/depression issues, not least getting an internal transfer to a new job whose formal start date is tomorrow (of course I don't actually start back for a few more days), and trying to rebalance my life to contain less grinding along with things and more spending time with people I love.  Unexpected bonus: starting down this road appeared to result in a 30-year nail-biting habit going away without me even needing to think about it.  I still have a pile of other and more important old habits to kick - in particular I need to get out of refresh-the-internet-for-more-stuff-to-read cycles - but I think I'm finally getting there, gradually.&lt;br /&gt;&lt;br /&gt;So, 2015.  I'll have a new job, and have a firm intention to keep my working hours to sensible numbers; also hopefully something pretty close to nine-to-five, although this will depend slightly on how the whole business of working with a team all of whose other members are in Australia or New Zealand works out.  In particular I won't have a huge pile of carried-over responsibilities accumulated over a decade.  Once the Debian technical committee sorts itself out with some new members, I'll have extricated myself from that too, and that will reduce my Debian responsibilities to roughly the set of things I actually enjoy doing.  All this will free up time for family and close friends, maybe things like a bit of time during the day to help &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; with her intention to learn to program, and generally not being so tired in the evenings so that I'm a more useful badger.  I want to be reading regularly again rather than occasionally picking up books and running out of steam half-way through.  I should be able to help get our house into the sort of state where we can have people over much more often.  All sorts of things like that.&lt;br /&gt;&lt;br /&gt;I don't expect to keep up this rate of posting!  Apart from anything else, it's involved me spending a lot of time concentrating at my computer rather than being with my family, which is exactly one of the things I'm trying to reduce.  But I have very much enjoyed getting back into blogging again, and the community of friends I have here, and I expect I'll try to keep it up at a more sustainable rate.&lt;br /&gt;&lt;br /&gt;Merry Christmas (for it still is), and I hope you all enjoy the rest of whatever holidays you have planned!&lt;br /&gt;&lt;br /&gt;This post is part of my &lt;a href="http://cjwatson.dreamwidth.org/7469.html"&gt;December days&lt;/a&gt; series.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=16268" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:16082</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/16082.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=16082"/>
    <title>December days: Whisk(e)y</title>
    <published>2014-12-30T15:13:10Z</published>
    <updated>2014-12-30T15:13:10Z</updated>
    <category term="december days"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">I've run out of prompts for the month, but I think tomorrow I'll do a general looking-forward-to-2015 post, and today since I'm a bit low on sleep and effort I thought I'd just borrow a not-too-challenging prompt from &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://cartesiandaemon.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://cartesiandaemon.livejournal.com/'&gt;&lt;b&gt;cartesiandaemon&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; via &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;'s journal, namely whisky (and &lt;a href="http://ghoti.livejournal.com/686208.html"&gt;here's ghoti's version&lt;/a&gt;).  Though of course being Irish I'll insert the extra "e" as an option.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;It took me a while to get into whisk(e)y; I think most people find it a bit of an acquired taste.  I had the odd drop of Bushmills at home once I came of age, which was the local (ish) distillery and remains my favourite of the Irish distilleries.  It's usually fairly easy to get hold of, even if only one of the younger ones, but the 15-year is reasonably obtainable, and Irish whiskey generally matures more quickly than Scotch.&lt;br /&gt;&lt;br /&gt;At university we had the odd whisky-tasting, usually only Scotch, and although in hindsight there was nothing really very special (Glenmorangie was probably the best) I liked what I tasted.  Later on I was introduced to better stuff, especially the various Islay malts, and loved it.  By the time we got to choosing alcohol for the toasts at our wedding in 2005, &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; and I were looking around champagnes before deciding, you know what, we don't actually know much about what champagne we like but we do know about whisky, so let's do that instead.  That seemed to be a hit.&lt;br /&gt;&lt;br /&gt;I'm not a real connoisseur, mostly because I simply don't find myself drinking often enough, so the single malts I drink these days are usually in the &amp;pound;30-40/bottle price range (i.e. decent but nothing hugely special) rather than the really amazing stuff.  Favourites include Talisker, Ardbeg 18, Lagavulin, and Bowmore.  We have a pretty considerable whisky stash which hasn't emptied out for some time, so I must remember to have nightcaps more often ...&lt;br /&gt;&lt;br /&gt;This post is part of my &lt;a href="http://cjwatson.dreamwidth.org/7469.html"&gt;December days&lt;/a&gt; series.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=16082" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:15867</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/15867.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=15867"/>
    <title>December days: Being a working parent</title>
    <published>2014-12-29T23:40:36Z</published>
    <updated>2014-12-29T23:40:36Z</updated>
    <category term="parenting"/>
    <category term="work"/>
    <category term="december days"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">&lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; asked me to talk about being a working parent, having initially misread a "&lt;a href="http://cjwatson.dreamwidth.org/14183.html"&gt;being an incoming parent&lt;/a&gt;" prompt from a previous day.  Due to my particular circumstances, some of this overlaps with a previous prompt, "&lt;a href="http://cjwatson.dreamwidth.org/10385.html"&gt;working from home&lt;/a&gt;", but there's probably a bit more I can write about independently.&lt;br /&gt;&lt;br /&gt;I tend not to use the phrase "working parent" to describe myself, since any time I try to do &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;'s full-time-parenting job for more than an hour or two I'm reminded of just how much work it is to do it well!  (Although today I got both little children to sleep earlier than usual and without an epic tantrum, so am feeling flush with success, at least until it next goes wrong.)  I do sometimes feel that the business of earning money is the easy job in relative terms, and it's all too easy to hide in my study when the children are being particularly difficult.  I've been trying to do better at avoiding that.&lt;br /&gt;&lt;br /&gt;In practical terms, of course, it means I'm not routinely able to do very much with the children during the week, and if we go away for the weekend I normally have to be back in time to work on Monday.  More insidiously, if I've been having a stressful time at work then it's very hard to find much energy to play with the children; unfortunately I don't find that one activity helps me recharge for the other, rather the opposite.  So I'm very much hoping that my new job in the new year will leave me with more energy for the evenings and weekends.&lt;br /&gt;&lt;br /&gt;On the other hand, my job does pay well enough that the children don't lack much (except space, but we're working on that more gradually), and hopefully that will continue.  As the primary earner I do feel a pretty strong responsibility to turn my skillset into a comfortable lifestyle for them.&lt;br /&gt;&lt;br /&gt;I may have missed some part of this question, so please do say in comments if this is too narrow an answer and I'll try to expand on it.&lt;br /&gt;&lt;br /&gt;This post is part of my &lt;a href="http://cjwatson.dreamwidth.org/7469.html"&gt;December days&lt;/a&gt; series.  Please prompt me!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=15867" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:15409</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/15409.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=15409"/>
    <title>December days: Astronomy lectures</title>
    <published>2014-12-28T14:24:14Z</published>
    <updated>2014-12-28T14:24:14Z</updated>
    <category term="judith"/>
    <category term="december days"/>
    <dw:security>public</dw:security>
    <dw:reply-count>7</dw:reply-count>
    <content type="html">&lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; asked me to write about the &lt;a href="http://www.ast.cam.ac.uk/public/public_observing"&gt;public open evenings&lt;/a&gt; at Cambridge's Institute of Astronomy, which Judith and I have been going to since last year; they run during the winter in order that it's possible to observe the night sky without having to run ridiculously late.&lt;br /&gt;&lt;br /&gt;Judith has been getting a lot out of these and particularly enjoys getting a chance to look through the big telescopes (one of which &lt;em&gt;almost&lt;/em&gt; discovered Neptune - the then director of the Cambridge Observatory had observed Neptune prior to its actual discovery from the Berlin Observatory, but lacked an up-to-date star map and so didn't recognise it as a planet).  The talks beforehand are generally well worth the time: recent ones have included &lt;a href="http://www.ast.cam.ac.uk/public/talks/3619"&gt;an update on the Rosetta mission&lt;/a&gt;, an outline of &lt;a href="http://www.ast.cam.ac.uk/public/talks/3618"&gt;dark matter and dark energy&lt;/a&gt;, and a talk on the &lt;a href="http://www.ast.cam.ac.uk/public/talks/3622"&gt;large-scale effects of black holes&lt;/a&gt;.  More often than not, cloud cover is such that we don't in fact get a chance to observe, so they put on extra talks instead from the &lt;a href="http://www.caa-cya.org/"&gt;Cambridge Astronomical Association&lt;/a&gt; (an amateur group); these are a bit more variable, some quite silly but for instance we've had CAA talks on volcanic activity on other bodies in the solar system (e.g. &lt;a href="https://en.wikipedia.org/wiki/Enceladus#Cryovolcanism"&gt;Enceladus&lt;/a&gt;) and on heavy water's origin in big bang nucleogenesis and the attempts to determine whether Earth's water originates from comets or asteroids.&lt;br /&gt;&lt;br /&gt;A good part of the talks still go over Judith's head to some extent, since they aren't explicitly aimed at children.  So, for instance, I found the recent talk on black holes to be fascinating: UCLA are doing amazing things &lt;a href="http://www.astro.ucla.edu/~ghezgroup/gc/science.html"&gt;using adaptive optics to observe our galactic centre&lt;/a&gt;, and apparently there's a &lt;a href="https://en.wikipedia.org/wiki/M%E2%80%93sigma_relation"&gt;correlation&lt;/a&gt; between some properties of galactic bulges and the masses of the black holes at their centres which suggests that the mass of the central black hole may limit the size of the galaxy; but I don't think Judith followed very much of it despite listening patiently.  On the other hand, she came away from the "&lt;a href="http://www.ast.cam.ac.uk/public/talks/3621"&gt;What is a (modern) astronomer?&lt;/a&gt;" talk and, unprompted, told &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; about the &lt;a href="https://en.wikipedia.org/wiki/Isaac_Newton"&gt;astronomer&lt;/a&gt; who was sitting under an apple tree when he realised that the moon was always falling but always fell past the earth (a much more useful version of the story of the discovery of gravity than you usually hear, I think!).  So I definitely think it's worth taking her and I'll continue to do so as long as it's practical.&lt;br /&gt;&lt;br /&gt;&lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; got me a lovely lovely telescope for Christmas, so with any luck we'll be able to get some decent observation done at home too.  I've been getting a little better at recognising features of at least the winter night sky, and it's a lot more interesting with a telescope.&lt;br /&gt;&lt;br /&gt;This post is part of my &lt;a href="http://cjwatson.dreamwidth.org/7469.html"&gt;December days&lt;/a&gt; series.  Please prompt me!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=15409" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:15152</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/15152.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=15152"/>
    <title>December days: P vs. NP</title>
    <published>2014-12-27T13:46:10Z</published>
    <updated>2014-12-28T11:47:27Z</updated>
    <category term="maths"/>
    <category term="december days"/>
    <dw:security>public</dw:security>
    <dw:reply-count>2</dw:reply-count>
    <content type="html">On our date a couple of weeks ago, I found myself explaining to &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://ghoti.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://ghoti.livejournal.com/'&gt;&lt;b&gt;ghoti&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; the basics of why P vs. NP is an interesting question.  (Clearly, we have the best romantic conversations.)  I'd like to explain this at a bit more length and to more people.  You'll have to care at least a little bit about maths to find this interesting, but I hope I've managed to explain it clearly enough that it doesn't require any specialist knowledge.  Note that I'm not actually a complexity researcher, just an interested person with some relevant background.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;strong&gt;Complexity theory&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Complexity theory was one of the bits of the crossover between maths and computer science that I always loved, ever since encountering a pop-science version of it in my teens.  It deals with the question of working out how fast it's possible to solve particular classes of problems.  Normally, the way you express this is by considering how quickly the time required to solve the problem grows as the problem itself gets larger.  You discard all the constant factors and lower-order terms because those are boring to calculate and become insignificant as the problem grows anyway: so you might talk about an inefficient sorting algorithm on n items being O(n^2), because the upper bound on its running time grows at the rate of n-squared.  If you have two procedures, one of which takes 100*n+1000 time to run, and the other of which takes n^2, the former will ultimately be faster for big enough problems even if the latter is faster for some simple cases, so we normally consider the former as being "better".  In practice you don't normally get particularly large constant factors and the "big-O" time is indeed what dominates.&lt;br /&gt;&lt;br /&gt;Viewed like this, there's a hierarchy of problems in terms of their difficulty.  The ones that are upper-bounded by n to the power of something are referred to as "polynomial-time algorithms", or &lt;strong&gt;P&lt;/strong&gt; for short.  Anything whose running time is upper-bounded by something like 2^n ultimately grows faster than any polynomial, and is referred to as an "exponential-time algorithm".  You can get worse still, 2^(2^n) and so forth (super-exponential), though fortunately these rarely show up in real-world problems.  You can certainly get pathologically terrible polynomial-time algorithms, O(n^1000) or whatever, but in practice anything in P tends to be more or less feasible to compute, and anything that's exponential-time or worse tends to be infeasible to compute.&lt;br /&gt;&lt;br /&gt;(Separately but relatedly, there's the notion of &lt;strong&gt;computability&lt;/strong&gt; or &lt;strong&gt;decidability&lt;/strong&gt;: there are problems that can be stated rigorously but where you can prove that no algorithm can exist to solve them.  Most famously, there's the &lt;strong&gt;halting problem&lt;/strong&gt;: given a program and its input, will it ever terminate?  You can prove that this is undecidable by hypothesising a program that solves the problem, putting a little wrapper around it that says "if the input program terminates, enter an infinite loop; otherwise, exit immediately", and then &lt;em&gt;running that program with itself as its input&lt;/em&gt;: logically it must both terminate and run forever, and thus the hypothetical solution to the halting problem cannot exist.  Even if you had an oracle that solved the halting problem, there are still harder problems that you couldn't solve, and indeed there is an infinite hierarchy of undecidability in these terms.)&lt;br /&gt;&lt;br /&gt;Now, there are a lot of interesting problems where you can easily (in polynomial time) verify a solution if you're given one, but coming up with a solution is hard.  For instance, even though factorisation isn't known to be easy, you can quite easily verify a proposed factorisation of a large integer by multiplying the suggested factors together.  You can view this a different way: you could have a polynomial-time solution if you had an algorithm with a decision tree one of whose leaves was the solution, and you had an oracle that determined which choice to make at each step.  These problems are called "non-deterministic polynomial-time", or &lt;strong&gt;NP&lt;/strong&gt;.  A great deal of research has gone into these problems, and we can make a lot of general statements about them.  For instance, we know that there's a class of problems in NP which, if you could solve any one of them in polynomial time, you could also transform that solution into a solution for any other problem in NP using only polynomially more time: these problems are called &lt;strong&gt;NP-complete&lt;/strong&gt;.  A famous example is the &lt;strong&gt;travelling salesman problem&lt;/strong&gt;: a salesperson has a list of cities to sell their wares in, and wants to do so with the least possible travel; what is the shortest route that visits each city exactly once and returns to the starting point?&lt;br /&gt;&lt;br /&gt;Clearly (mathematician-speak for "I can't be bothered to write out the proof", but hopefully it is actually clear in this case), any problem in P is also in NP.  But the question immediately arises: what about the converse?  There are lots of problems in NP where we don't know of polynomial solutions, but that doesn't mean they don't exist, and in fact despite very considerable effort nobody has been able to prove this.  This has been an open question in theoretical computer science since 1971 when the concept of NP-completeness was introduced, and there's a US $1 million prize for anyone who proves the matter either way.  Most complexity researchers think that P probably &amp;ne; NP, but the question has proven itself to be astonishingly difficult to resolve despite a large amount of collective brainpower having gone into it over the years.&lt;br /&gt;&lt;br /&gt;This is certainly a question of considerable practical importance and not just an ivory-tower exercise.  For instance, problems that are thought not to lie in P (the class of problems that are easy to solve directly) but that are in NP (the class of problems where it's easy to verify a solution) form the heart of strong cryptography: nobody knows how to factorise integers in polynomial time, even though there are algorithms that get very very close to that.  So what's taking researchers so long?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Barriers&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The P vs. NP problem is one of those that's sufficiently easy to state and understand that a lot of people have a go at it, but in fact well-trodden enough that it's very difficult to break new ground in reality; this means that it's not at all uncommon to run across well-meaning papers that purport to solve it but in fact fail in some way.  It's thus quite helpful that one of the areas where complexity theorists &lt;em&gt;have&lt;/em&gt; been able to make progress in this area is in proving that a number of strategies are insufficient to distinguish between P and NP, thereby making it much easier to filter out obviously unworkable proposals.  (Compare the &lt;a href="https://en.wikipedia.org/wiki/Formula_for_primes#Prime_formulas_and_polynomial_functions"&gt;proof that no non-constant polynomial function of integers can generate only prime numbers&lt;/a&gt;, for instance; number theory is another field that's often covered in popular maths and that tends to attract people looking for patterns.)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Relativisation&lt;/strong&gt;: Imagine a fantasy world where your machine got to use an &lt;strong&gt;oracle&lt;/strong&gt; for free, or at least in polynomial time: a machine that can produce the solution to any problem in a suitable formal language.  By definition, such a machine can quickly answer any problem in NP, but that's not the point here: the point is that most (though not all) proofs about complexity theory also apply just the same way if you augment the abstract machines that they're talking about with the ability to contact such an oracle.  However, it has been proven that P=NP with respect to some oracles but P&amp;ne;NP with respect to others; roughly, perhaps, because if the oracle is powerful enough then non-determinism doesn't help, but if the oracle is too weak then it isn't good enough to reach the power of non-determinism.  This means that the P vs. NP problem is &lt;strong&gt;independent&lt;/strong&gt; of oracle relativisation, so any proof needs to employ techniques that exploit properties of computation that are specific to the real world and don't work when oracles are involved.  This rules out an assortment of techniques such as diagonalisation.  (I don't have a direct link for the original paper here, but it's Baker, Gill, and Solovay, "Relativizations of the P ≟ NP question", December 1975.)&lt;br /&gt;&lt;br /&gt;As a side note, oracles aren't entirely just a fictional object constructed by theoreticians.  Some exist in reality due to quantum computing, such as &lt;a href="https://en.wikipedia.org/wiki/Shor%27s_algorithm"&gt;Shor's algorithm&lt;/a&gt;; quantum computers lie outside the model of computation where P and NP are defined, although there are analogous complexity classes in the quantum world.&lt;br /&gt;&lt;br /&gt;Over the next decade or two, researchers turned to a different approach, that of expressing algorithms as Boolean circuits and proving lower bounds on their complexity.  But in 1993, it was &lt;a href="http://www.cs.cmu.edu/~rudich/papers/natural.ps"&gt;proven&lt;/a&gt; that any proof along these lines must either rely on something very specialised about the algorithm in question that isn't broad enough to cover NP, or must involve defining some "non-constructive" property that is outside the realm of most of our mathematical experience.  If any &lt;strong&gt;natural proof&lt;/strong&gt; such as this could separate P and NP, then it would also violate a widely-believed but unproven conjecture about pseudo-random generators which would in turn allow us to find a fast way to do things like inverting one-way functions; this would be self-defeating, because it would mean that a natural proof showing that "hard" problems definitely involve slower algorithms than "easy" problems would also automatically produce a fast algorithm to solve a "hard" problem!&lt;br /&gt;&lt;br /&gt;The next technique was arithmetisation, which effectively takes the Boolean field and embeds it into something larger so that it's possible to exploit more structure and correct some errors; this technique doesn't relativise, and there's another technique called diagonalisation (similar to that used by Georg Cantor to prove that the real numbers can't be put into a one-to-one correspondence with the natural numbers) which can be combined with it to evade both of the previous barriers.  Unfortunately it turns out that even this isn't good enough: there's an additional barrier known as &lt;a href="http://www.scottaaronson.com/papers/alg.pdf"&gt;&lt;strong&gt;algebrisation&lt;/strong&gt;&lt;/a&gt;, which is an extension of the previous notion of oracles to larger fields, and any proof relying on that is also unable to distinguish P from NP.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What now?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;All it would take to demonstrate that P=NP would be just one polynomial-time algorithm for a problem known to be NP-complete, which includes problems that certainly have a great deal of practical applicability and so there's no shortage of incentive to find something.  Lower bounds are harder to prove, and proving P&amp;ne;NP would need to overcome the obstacles above and encode some very deep properties of computation.  So it's not necessarily surprising that we don't have a proof yet, but also decent grounds for believing that P&amp;ne;NP is the more likely answer.&lt;br /&gt;&lt;br /&gt;P vs. NP is in fact a very deep question about the nature of mathematical thought.  There's a &lt;a href="http://www.scottaaronson.com/papers/pnp.pdf"&gt;beautiful version of the argument&lt;/a&gt; that runs something like this.  Mathematical proofs are themselves computational objects if written with sufficient rigour; both theorem-proving software and proof checkers exist; and we know from general experience that it's easier to verify a proof than to create one, which is the essence of the distinction between P and NP.  It may in fact be that the very reason it is hard to prove that P&amp;ne;NP is because P&amp;ne;NP.&lt;br /&gt;&lt;br /&gt;This post is part of my &lt;a href="http://cjwatson.dreamwidth.org/7469.html"&gt;December days&lt;/a&gt; series.  Please prompt me!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=15152" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
  <entry>
    <id>tag:dreamwidth.org,2009-05-01:185940:15047</id>
    <link rel="alternate" type="text/html" href="https://cjwatson.dreamwidth.org/15047.html"/>
    <link rel="self" type="text/xml" href="https://cjwatson.dreamwidth.org/data/atom/?itemid=15047"/>
    <title>December days: Programming language improvements</title>
    <published>2014-12-26T16:21:56Z</published>
    <updated>2014-12-26T16:21:56Z</updated>
    <category term="december days"/>
    <category term="programming"/>
    <dw:security>public</dw:security>
    <dw:reply-count>0</dw:reply-count>
    <content type="html">As a follow-up to my post about my &lt;a href="http://cjwatson.dreamwidth.org/11623.html"&gt;personal history of programming languages&lt;/a&gt;, &lt;span style='white-space: nowrap;'&gt;&lt;a href='http://cartesiandaemon.livejournal.com/profile'&gt;&lt;img src='https://www.dreamwidth.org/img/external/lj-userinfo.gif' alt='[livejournal.com profile] ' style='vertical-align: text-bottom; border: 0; padding-right: 1px;' width='17' height='17'/&gt;&lt;/a&gt;&lt;a href='http://cartesiandaemon.livejournal.com/'&gt;&lt;b&gt;cartesiandaemon&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; asked me to expand on "which language(s) do you use most now (C and Python?) and what improvements would you like to see in them?"&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;Mostly I do indeed use C and Python these days.  I'm still comfortable enough in Perl and often reach for it particularly for shorter text-processing kinds of jobs (some of which &lt;a href="http://anonscm.debian.org/cgit/users/cjwatson/madison-lite.git/tree/madison-lite"&gt;grow a bit more than I'd intended&lt;/a&gt;), but I really haven't kept up with work on the core language much since about Perl 5.10, so I'm not desperately qualified to talk about things I'd like to see improved.  The trends I've seen there seem to be towards making it easier and more natural for people to use modern and safer techniques rather than perl4isms, things like &lt;a href="http://search.cpan.org/perldoc?Modern::Perl"&gt;Modern::Perl&lt;/a&gt; and &lt;a href="http://search.cpan.org/perldoc?Moose"&gt;Moose&lt;/a&gt;, and these seem like good things but I don't have a lot of experience to share there.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;C&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;C is in many ways an awful language for the sorts of things it's often used for: manual memory management, no bounds checking, a standard library with a host of peculiar warts, support for closures that could be described as poor if you were feeling generous, and so on.  (C++ fixes some of these at the cost of &lt;a href="http://yosefk.com/c++fqa/"&gt;truly insane programmer-facing complexity&lt;/a&gt;.)  Huge numbers of security vulnerabilities can be ascribed to defects in the design of C.  On the other hand, it underpins so many other things, especially on Unix, that it isn't really possible or reasonable to avoid entirely, and it's pretty much the greatest common denominator for library interfaces that want to be usable from more than one language environment.  (You can sometimes make C++ libraries usable from C, but you have to be pretty careful.)&lt;br /&gt;&lt;br /&gt;&lt;a href="https://developer.gnome.org/glib/"&gt;GLib&lt;/a&gt; (and its object system add-on, GObject) is pretty pervasive these days, including in various things that otherwise have nothing to do with GNOME, and it's not at all a bad general supplemental library: better-designed and more comprehensive than much of the C standard library, and, sure, it may be a megabyte or so but you almost certainly had it installed anyway.  I think for a new C project these days I would probably turn to it, unless it were particularly small or needed to function in particularly minimal environments.  Its main flaw is verbosity, particularly where callbacks are involved.  For this I think it's possible to do an excellent job with domain-specific languages that provide a thin wrapper over C.  I converted performance-critical parts of a project at work recently from Python to &lt;a href="https://wiki.gnome.org/Projects/Vala"&gt;Vala&lt;/a&gt; recently, and was very impressed: it made it actively enjoyable to program using GObject, which wasn't something I could really say before, and it was still possible to inspect and roughly understand the generated C code.  GObject also provides very close to automatic binding generation for various other languages by way of &lt;a href="https://wiki.gnome.org/Projects/GObjectIntrospection"&gt;gobject-introspection&lt;/a&gt;, which is extremely powerful for being able to use the right tool for individual jobs without having to commit to it for your whole project.  I think that this kind of thing is probably the right path for many C projects.&lt;br /&gt;&lt;br /&gt;For things that need to stick with plain C, it's certainly possible to incrementally evolve the facilities they're using to make things safer and easier.  &lt;a href="http://valgrind.org/"&gt;valgrind&lt;/a&gt; made quite a few waves when it was introduced a little over ten years ago: in C you often find that your memory management mistakes are only reported as a crash in some entirely different part of your program much later, and this is excruciatingly difficult to debug directly, so valgrind keeps track of absolutely everything you do with memory and tells you if it looks invalid.  Compiler developers have been doing all kinds of interesting things recently such as &lt;a href="https://code.google.com/p/address-sanitizer/wiki/AddressSanitizer"&gt;AddressSanitizer&lt;/a&gt; and &lt;a href="http://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/"&gt;Undefined Behaviour Sanitizer&lt;/a&gt; which promise to make it easier to spot problems early, and there are all sorts of proactive hardening techniques one can use to stop bugs escaping into the rest of your system as exploits.&lt;br /&gt;&lt;br /&gt;Library-wise, there's always more to be done.  I made my own small contribution to this with &lt;a href="http://libpipeline.nongnu.org/"&gt;libpipeline&lt;/a&gt;, which I'd like to see used by more C projects that invoke other programs, since it's very easy to get this kind of thing wrong.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The Python world spent a long time collecting all the things that were hard to improve in the core language without breaking compatibility in some way, and batched up a lot of these into Python 3.  Unfortunately the transition to Python 3 has been an extremely painful and protracted one.  Despite considerable work on migration strategies such as 2to3, the changes were substantial enough that it's taken quite some time for many projects to be ported, and you can only start using Python 3 once all your dependencies have been ported and are available anywhere you might want your code to run.  (In particular, the Unicode string changes are I think a significant net improvement - they're not without problems, but Python 2 was even worse for anything that might care about internationalisation - but porting to them requires going through your program and for each string-like variable in it determining whether its essential nature is to contain binary data or text.  Easy enough to get right from scratch, but painful to retrofit.)  The right answer for many projects is to write "bilingual" code for a while that works in both Python 2 and Python 3, which is largely possible with libraries like &lt;a href="http://pythonhosted.org/six/"&gt;six&lt;/a&gt; to help, but this is a bit of extra cognitive load on programmers and of course not everyone cares.  So I think if I got one wish here it would be for all the remaining stragglers to be magically ported to Python 3 so that we could stop caring about the old stuff and simplify things, but that's not likely to happen any time soon.&lt;br /&gt;&lt;br /&gt;I guess the main general improvement I can think of for Python, short of "please be faster" and various standard library warts, would be some form of partial static typing so that I don't have to rely quite so completely on test suites to defend me against my own foolishness.  I hear that something like this &lt;a href="http://thread.gmane.org/gmane.comp.python.ideas/30432"&gt;may be underway&lt;/a&gt; for Python 3.5, which will be interesting.&lt;br /&gt;&lt;br /&gt;This post is part of my &lt;a href="http://cjwatson.dreamwidth.org/7469.html"&gt;December days&lt;/a&gt; series.  Please prompt me!&lt;br /&gt;&lt;br /&gt;&lt;img src="https://www.dreamwidth.org/tools/commentcount?user=cjwatson&amp;ditemid=15047" width="30" height="12" alt="comment count unavailable" style="vertical-align: middle;"/&gt; comments</content>
  </entry>
</feed>
