ot

San Diego Comic-Con 2024 Photos

 Had an amazing time at San Diego Comic-Con!!! 























ot

NYCC 2024 Photos

Had such a fantastic time at New York Comic Con!!!
 













 



  • New York Comic Con
  • NYCC

ot

"Untitled Mystery", the untitled mystery.

I briefly interrupt this parade of elephants and bears (not usually a wise thing to do) to bring you news of a new project of mine. 

It's a murder mystery. But really, it's a set of very difficult, interconnected puzzles. But really... it's a box of one hundred picture postcards. I mean, if that's all you need to hear, by all means go straight here to buy it. But for a little more explanation, read on.


In 2020, I spent some of my lockdown trying to solve the newly republished murder mystery / puzzle Cain's Jawbone, written by the famous cryptic crossword setter Torquemada in 1934. The puzzle consisted of a box of one hundred pages of a novel, in a random order. The solver had to work out the correct order of the pages, and then interpret the strange and allusive narrative so as to deduce the killers and victims in the six murders in the story. It turned out to be ridiculously difficult, as it was meant to be; but if the spring of 2020 was good for anything, it was for spending far too long on almost impossible puzzles. Eventually, I submitted a solution, which to my enormous surprise turned out not only to be right, but also the only correct one submitted.  I won a thousand pounds, bought a piano, and thought that was that.  

But then, two things happened. The first was, thanks in part to TikTok, Cain's Jawbone took off in a surprisingly big way. And the second was, I found I missed it. I really wanted to try solving another puzzle in that style. But Torquemada never wrote another one, and nor did anyone else. So it seemed the only thing to do was to try to create one myself.

So this year Unbound, the publishers of Cain's Jawbone, are publishing a new mystery puzzle box by me, the title of which is still secret for now. This time, solvers will receive a box of one hundred picture postcards. As with Cain's Jawbone, they will need to arrange the text sides in the correct order, and understand the story told there, in order to identify the killer and victim in a series of ten murders; as well as a certain crucial address. But in order to do this, they will also need to solve the various puzzles presented by the picture sides.

The picture side puzzles allow me to do two things: firstly, compensate for the arrival of the internet since 1934. You may now be able to google an obscure Walt Whitman quotation, but you can't google 'How on earth is this picture of a tree a puzzle?' Secondly, if Cain's Jawbone had a flaw (which I don't admit) it's that it's a little off-putting and seemingly impenetrable until you make a certain breakthrough. I think a lot of people had a brief look through the cards, thought 'Well, that's impossible' and gave up. I certainly did, before lockdown came along and invited me to have another go. So the picture puzzles - which are also, to be clear, ridiculously difficult - give the solver something they can immediately get their teeth into, while they're grappling with the madness on the other side.

Lastly, they're there because they have to be. There is, within the story, a reason why these cards exist, why they have puzzles embedded in them... and why one of the murderers now keeps them safely locked in a drawer. I hope you enjoy trying to work out what it is. 

For more information, to pre-order a copy, and to gaze in wonder at some exhilaratingly expensive pencils... step this way.  

Oh, and the postcards shown here are not solvable with the information given, so don't torture yourself. Yet. 




 




ot

24 Or So Or Less Or Not Things - Thing Six

Alt text. A lady peering round in a car window. She seems cross, but I think she's just checking to see if there's anything coming. I mean, she might be cross as well. I don't know her.




ot

Ken and Robin Talk About Stuff: Uninterested in Not Attacking

In the latest episode of their easily spotted podcast, Ken and Robin talk Invisible Men, coarse vs granular ability lists, and Ken's last book raid for the duration.




ot

Ken and Robin Talk About Stuff: It Would Totally Match Her Raven

In the latest episode of their inescapable podcast, Ken and Robin talk forecasting player behavior, cats, the creative importance of napping, Loie Fuller, and saving Houdini.




ot

Ken and Robin Talk About Stuff: Not That My Players Would Do Anything Like That

In the latest episode of their quartz-festooned podcast, Ken and Robin talk TPKs, RCMP misconduct, crystals, and The Mandalorian.




ot

TIFF Day 8: Cottage Country Art-Horror

Pieces of a Woman [US, Kornél Mundruczó, 3.5] Grief tears a couple (Vanessa KIrby, Shia LaBeouf) apart after the death of their baby in childbirth, abetted by the insistence of her domineering mother (Ellen Burstyn) that they pursue legal action against their midwife (Molly Parker.) Wrenching drama marked by deep performances and key long take scenes. An otherwise masterful script reaches for the conventional when it hits its climax.

The New Corporation: The Unfortunately Necessary Sequel [Canada, Joel Bakan & Jennifer Abbott, 4] Polemical documentary deploys narration, stock footage and talking heads (some appearing via lockdown video conference) to survey corporate capitalism and the struggle against it from Reaganomics to COVID and the George Floyd protests. Comprehensive primer for the prospective young progressives includes a call to continued electoral action.

The doc starts by tackling apparently public-minded initiatives as Trojan Horses for privatization. It is a Crave Original. Crave, Canada’s premium cable/streaming service, is a division of Bell, one half of our reigning telecom duopoly and the lead sponsor of the Toronto International Film Festival

Violation [Canada, Madeleine Sims-Fewer & Dusty Mancinelli, 4] Woman (Madeleine Sims-Fewer) exacts meticulous revenge after her brother-in-law rapes her. Although this jarring, meditative drama includes gruesome imagery and horror-exploitation motifs, it’s closer in spirit to Michael Haneke than Dario Argento or Wes Craven.

Many years the power of coincidence throws up an unintended motif running through many of the movies we pick. Past examples have included cats, stress vomiting, animal slaughter, and teddy bears. This year’s motif: plastic bags as a suffocation weapon.

Falling [US, Viggo Mortensen, 3] Pathologically forbearing airline pilot (Mortensen) attempts to find a new situation for his lifelong miserable prick of a father (Lance Henriksen) as his dementia worsens. With one character incapable of change and another not needing to change, almost all of the scenes repeat the same dynamic.


Capsule review boilerplate: Ratings are out of 5. I’ll be collecting these reviews in order of preference in a master post the Monday after the fest. Films shown on the festival circuit will appear in theaters, disc and/or streaming over the next year plus.



  • toronto international film festival

ot

NG Maps Produces Online Geotourism Atlas for Greater Yellowstone

National Geographic’s Maps Division and Center for Sustainable Destinations teamed up to produce the first NG-developed Online Geotourism MapGuide to support sustainable tourism across the Greater Yellowstone region of Wyoming, Montana, and Idaho.

The site, http://www.yellowstonegeotourism.org/, which launched on March 31st, is open to anyone to discover and share information about unique features, tours, and businesses that best represent and sustain the natural and cultural character of the region. Visitors can also request a free print MapGuide.

Geotourism is the kind of travel that sustains or enhances the geographical character of a place — its environment, culture, aesthetics, heritage, and the well-being of its residents. Online Geotourism MapGuides are web versions of the print maps that National Geographic has developed for a number of regions around the world, including Crown of the Continent, Baja California, and Vermont’s Northeast Kingdom to name a few.

In addition to producing print and/or web maps, these projects bring together diverse representatives from the local communities to collectively define what makes their region special and how best to communicate it to the rest of the world. NG Maps is excited to participate in these projects that help travelers and local communities discover and preserve special places around the world. Anyone interested in developing a Geotourism MapGuide for their region, or simply becoming a “Geotraveler” should visit http://www.nationalgeographic.com/travel/sustainable/.




ot

Cuba on My Mind - Part II : Hitting the Geographic Jackpot








I have been assigned the task of researching and compiling our forthcoming map of Cuba. During the early stages of my research, I hit the cartographic jackpot—the possibility of two new provinces forming in 2011. Not only were we going to be publishing a map of Cuba for the first time since 1906, we were also going to be among the first to showcase its new administrative structure. This is considered an exciting event for cartographers here at the National Geographic. Why? Because before any element is mapped, we need to assure that it portrays the most up-to-date information.

My first stop was Cuba’s official government website. Unfortunately, it was a bit difficult to navigate, especially since the English version of the site was “under construction.” My next stop was the Cuban Embassy—well, not exactly since Cuba and the U.S. have not had formal diplomatic relations since 1961. But there is the Cuban Interests Section embedded within the Embassy of Switzerland here in Washington. It was there that I was able to obtain the official document (Gaceta Oficial de la Republica de Cuba, No. 023) spelling out the upcoming changes to Cuba’s new administrative divisions—Artemisa and Mayabeque provinces.

As Cuba is organized administratively by province and municipality, we were able to delineate the new provincial boundaries pretty easily by using a map of municipalities contained in the most recent Nuevo Atlas Nacional de Cuba. In the latter stages of my research I was able to reconfirm the delineation of these boundaries with the Cuban statistics office, La Oficina Nacional de Estadísticas, as they were now providing statistics for these two new provinces.

Now I have to keep abreast of the deepwater oil exploration off the northern coast of Cuba. If possible, we would like our map to also showcase the location of such prospective oil fields.

—Julie A. Ibinson
Map Researcher & Editor
National Geographic Maps




ot

Photo Stats Time

It’s the end of a four-month period and we recently passed 500,000 photos, so the photo journal and stats pages have been updated and… it’s time for new stats! The cameras table also has an update, because since the last … Continue reading




ot

New program will see pregnant mothers and babies protected from life-threatening virus - SBS

  1. New program will see pregnant mothers and babies protected from life-threatening virus  SBS
  2. World-leading approach to protect babies from RSV  Department of Health
  3. Government-funded RSV vaccines to protect infants from severe disease  Australian Pharmacist
  4. 'Very scary': Wagga mum's plea for parents to protect babies through RSV jab  The Daily Advertiser
  5. Guild backs free RSV vaccinations  Australian Journal of Pharmacy






ot

Cop 29: Leaders to address summit after report finds climate pledges not kept – live updates - The Guardian

  1. Cop 29: Leaders to address summit after report finds climate pledges not kept – live updates  The Guardian
  2. Live Briefing: Greta Thunberg calls site of COP29 climate summit ‘beyond absurd’  The Washington Post
  3. COP29 gets underway in Azerbaijan  ABC News
  4. Oil and gas are ‘a gift of God’: COP29 leader  The Australian Financial Review





ot

Car crashes with another outside pub during police chase in Sydney’s southwest - 7NEWS

  1. Car crashes with another outside pub during police chase in Sydney’s southwest  7NEWS
  2. ‘Flying past me’: Two hurt as car smashes into fence after police chase  Daily Telegraph
  3. Critical incident investigation into crash following police pursuit  Sydney Morning Herald
  4. Violent carjacking linked to Sydney crash that split car in two, police say  9News
  5. Update on crash after police chase  news.com.au




ot

Legitimacy of two Victorian local government elections in question after duplicate votes detected - ABC News

  1. Legitimacy of two Victorian local government elections in question after duplicate votes detected  ABC News
  2. Victorian council election results 2024 LIVE updates: Suspected postal vote tampering in council elections  Sydney Morning Herald
  3. VEC investigates potential vote tampering in two Melbourne councils  The Age




ot

Emotional Manipulation In Fundraising

BethDunn just wrote a great post about mail fundraisng appeals and two schools of thought that are applied to them throughout the industry.

On the one hand there is the practical appeal to a donor's sense of logic and decency. On the other hand, there are the emotional appeals dripping with manipulation sent out to shock or shame a donor into action.

While On Fundraising's primary focus is telephone fundraising, this subject matter is relevant to On Fundraising for two reasons.

Mail appeals and phone appeals are generally part of the same campaign. Sometimes a donor is called first, other times they'll get a mailer and then a follow up call.

Increasingly donors are savvy enough and self-aware enough to take strong offense at the manipulative tone of fundraising letters. We live in an age where almost any information is available to those who want to find it. Todays activist donors do just that.

Donor's often know more about a subject than the front line people raising money for it. As well they should. So sending out these mail broadsides is certainly no good way to show respect for a donor's intellect or for their prior support.

The second reason this issue applies to On Fundraising, is that many telefundraisers mirror or amplify the sentiments expressed by these letters in a misguided attempt to manipulate donors into reactionary giving based solely on emotion. This works for now, however donors are self-aware and savvy enough to know when they're being manipulated. Surprisingly enough, they don't like it.

Todays donors aren't simply tithing blindly in the hopes that some good will come of it. More and more, donors support organizations as active participants in an effort to improve our world. How does a person like this feel when they receive a dunning letter dripping with sensationalized woe? Like a patsy.

All in all, these medieval scare tactics don't belong in modern fundraising. Yes psychology has its place in fundraising, but too often psychology is a euphemism for manipulation. Fundraisers who are good at their jobs are masters of speech, language, and persuasion. Its better to convince someone to give than to trick them into it .

http://smalldots.wordpress.com/2008/05/12/the-model-of-a-modern-major-fundraising-letter/




ot

What does it mean to "wane philosophical"?

"To what extent is science a strong-link problem?", Sauropod Vertebra Picture of the Week, 10/30/2024 [emphasis added]: Here’s a fascinating and worrying news story in Science: a top US researcher apparently falsified a lot of images (at least) in papers that helped get experimental drugs on the market — papers that were published in top […]



  • Words words words

ot

Not giving up on Hangul for Cia-Cia

This is a story we've been following for well over a decade (see "Selected readings").  Improbable as it may seem that the Korean alphabet might be adaptable for writing an Austronesian language of Indonesia, there are some promoters of this idea who continue to push it enthusiastically: "An Indonesian Tribe’s Language Gets an Alphabet: Korea’sThe […]




ot

The etymologies of ballot and bigot

That's all I've got, so far, for linguistic commentary on the U.S. election results. According to the OED, the etymology of ballot is < (i) Middle French ballotte (French †ballotte) small ball (beginning of the 15th cent. as †balote), small coloured ball placed in a container to register a secret vote (1498) or its etymon […]




ot

Lewotobi Laki-laki

A serious volcanic eruption on Flores Island has been going on since October 30: The Pusat Vulkanologi dan Mitigasi Bencana Geologi (PVMBG) reported that eruptive activity intensified at Lewotobi Laki-laki during 30 October-5 November, which included a major eruption resulting in fatalities. The large explosive eruption began at 2357 on 3 November, generating pyroclastic flows […]




ot

Registration open for NOTOCON XIV

Registration is now open for National O.T.O. Conference XIV, to be held in Denver, Colorado, August 3-6 2023. NOTOCON is normally held every two years, but it was canceled in 2021 due to the pandemic, so this will be our first NOTOCON since 2019.




ot

NOTOCON Speaker Deadline Approaching

The deadline to propose a presentation for National O.T.O. Conference XIV in Denver, CO, is May 10, 2023.




ot

NOTOCON Speaker F.AQ.

For potential speakers, a handy FAQ full of useful information is available here.




ot

NOTOCON Hotel Registration Closing

NOTOCON XIV is fast approaching! The cutoff date to receive our group rate at the hotel is Friday, July 21st. Please reserve now. The speaker schedule has been published on the NOTOCON website. Event registration is still open! We can’t wait to see all of you in August, and wish you all safe travels!




ot

NOTOCON XV: The Crowned and Conquering Child

SAVE THE DATE for NOTOCON XV: The Crowned and Conquering Child to be hosted in Portland, Oregon from July 25 through the 27th, 2025 EV. The call for speaker proposals is now open and we are accepting Volunteer and Vending sign-ups. Registration and hotel reservations will be available in August 2024.




ot

From now on, the title of the post is allowed to just be "January 2024" (only when it is January 2024, however)

Hello again,

This month I've been plugging away on the project I mentioned in the previous post which involves among other things a PDF generator and now an implementation of ML (as in Standard ML, but also the other one). This is probably the 10th "compiler" I've written in my life, and it's kind of fun to revisit these problems that you've done many times and try out different approaches, although this time one of the approaches is "Use C++" (for reasons of making good on a joke, but also for reasons of mlton doesn't work on my computer any more). And although C++ is a fine tool for many applications, it does have some deficiencies for the task of writing a compiler (one of the most irritating: a very modest limit on the stack depth? Like my computer has 256 Gigabytes of RAM and 2^64 virtual addresses and somehow it can only manage 1 megabyte for the stack and there's no standard way to increase it? Get off my lawn). But then you can also experience new ways of struggling with C++, like: A middle of the night power failure wrecked my computer's GPT (as in GUID Partition Table, but also the other one) and I was deep in the depths of taking the computer apart to reset its parts, its BIOS (its Basic In/Out System, which is where it stores its biography) and its hard drives were everywhere on the floor, and it could not be saved, and this after I already broke my computer this year by trying to put the world's biggest video card in it, too hard. And I could not merely perform recovery because of Unknown Error, so I had to begin anew again and restore from backups. But when you restore from backup and you're in the mood of "why is this so complicated and I don't understand how computers work any more?" it occurs to you (me) to also change your underlying development environment instead of reinstalling the devil you know. So I ended my friendship with Cygwin64 and switched to new best friend MSYS2. Both of these things are different ways of wishing that you were using Linux while you're using Windows. The main reason I tried this new way of struggling is that Cygwin is very behind on its version of x86_64 clang (C++ compiler), which I wanted to try because it supports AddressSanitizer and clangd on Windows, and I wanted to give LSP in emacs a shot (it's finally good!). There were a few growing pains, but I think MSYS2 is what I would recommend now. One of the nice things they did was create multiple different environments depending on what you want to do (e.g. "I want to use clang to compile x86_64 code" or "I want to do 32-bit cross compilation for ARM") and in that environment, you just say "g++" and it invokes the compiler you want, instead of the weird contortions I've been doing for years with manually invoking x86_64-w64-mingw32-g++. I was also able to get clblast working before being too filled with rage to continue, so that is nice for the ML inference on the world's biggest graphics card. I made these graphics to help me tune the correct settings of GPU layers (y axis) and number of threads (x axis):


tune-single

tune-batch


In some sense the results are obvious (more threads and more layers is faster) but it was interesting to me how the cliff of performance drops off at a different number of layers for single and batch mode (I guess because the batch needs some memory itself?) and how it's clearly better to use fewer threads than cores for batch as well. I was not surprised to see performance drop off for >32 threads (everybody knows that hyper-threads kinda suck) but I was very surprised to see performance pick up again when it gets back up to 64? And only for single mode? I wish I understood that better. But mostly I'm a sucker for the custom visualizations.

Right but when writing this compiler I realized that I wanted to use some Greek letters, and I can't handle it when some characters are in a different font in my source code, so I finally made some space for those in my programming font FixederSys. These certainly still need some tweaks, but it's already better than just being in some other weird font:


{{{caption}}}


You can also see that I have been adding some "useful" emoji at the top. It is an interesting puzzle to try to make these things recognizable (especially for the 1x version, whose charboxes are 8x16 pixels). I am pretty sure I will not try to do all of the emoji (like, the flags are totally hopeless at 8x16), but it is tempting to round out the Unicode support somewhat. Like I was trying to make a ¯\_(ツ)_/¯ today and had to settle for ~\_( :) )_/~ which is pretty much (ノಠ益ಠ)ノ彡┻━┻.

Also: Adam revived our old game jam game Headcat, which I described in post 927, now over 16 years ago. You can play it online at Headcat.org. It is harder than I remember, perhaps explaining why it did not reach #1 on the One Appstore Per Child charts.

Also: I started and finished (true ending, but just with one character) Slay the Spire. Good game, but you don't need me to tell you that. Same for Alwa's Legacy, which is the sequel to Alwa's Awakening. Both of these are very true-to-form "8-bit" and "16-bit" platformers that I enjoyed and would recommend for genre fans, though I did not try to 100% them. The graphics are the highlight and I thought it was very cute how these could easily have been a pair of games from the NES and SNES. The good old days. And speaking of good-old days, I am now playing Katamari Damacy, which I had played at a friend's house many years ago, and always wanted to spend more time with. It totally holds up (aside from stuff like: You have to play through the tutorial and first level before you can access the menus at all, like to make the game fullscreen?) and it's honestly inspiring how unhinged the game design and writing are, and how fun it manages to be. What an accomplishment!




ot

"April" 2024

Oops! Usually when I fail to post on time and then illegally backdate the post, yielding a penalty of -1,000 points, it's shortly after midnight. Like, as I'm trying to fall asleep (which of course involves and involuntary inventory of everything I may have failed to do), I'm struck with a panic and then get back out of bed to write some dumb pro-forma apology post. This time I just went to bed and actually fell asleep and now here I am noticing that it is May 1. Still, the whole point of doing this every month is to make the grid of months line up nicely, so the post is backdated by 9 hours and nets -1,000 points.

Speaking of lining up nicely: I did get my SIGBOVIK papers in on time and gave a lightning talk at the conference. SIGBOVIK was very popular this year, with our longest-ever proceedings (see SIGBOVIK 2024 PDF or bound volume). This year my project is a paper about a new typesetting system that I wrote to produce the paper (and the talk's slides). That system is called BoVeX and the paper is called Badness 0, which you can read as Badness 0 (Knuth's version) and/or Badness 0 (Epsom's version). You can also maybe find a recorded livestream of the breakneck 5 min presentation, but I would wait for the proper video (in progress now!), which is the same content with much better pacing and details.

Speaking of details: I also presented at An Evening of Unnecessary Detail, which is one of Matt Parker ("Standup Maths")'s live shows. Other than the part where I tried to pack a dense months-long technical project about details into 12 minutes, this was a blast! Lots of cool, interesting people. This took place in a proper comedy club in Brooklyn, like with posters of people that I watch on TV (e.g. Taskmaster legend Fern Brady is performing there in a few weeks, so it seems I'm a mere 5 or 6 steps away from my dream of being a contestant on Taskmaster now), and was sold out (due exclusively to the eminence of others, since it was sold out before I even joined the bill). I finally hung out with Grant Sanderson ("3blue1brown") and told him about math. The audience was amazingly attentive and wholesome, and quite a few of them recognized me and wanted to talk after the show, which is fun. (I do not envy the queue that Matt and Grant endured, though!) Enjoy my technically deficient vacation photography:


I'm photobombing, but Matt is so used to this act that he is reflexively crouching down so as not to appear twice my height


Speaking of technically deficient photography: An additional reason why my video is not done yet (or indeed, why it currently has status Filming 0) is that I finally pulled the shutter release on a new video camera. After much deliberation (and visiting the B&H showroom while in NY, etc.), including on far more ridiculous options, I settled on the Canon R5C. After a complex week-long courtship ritual with the FedEx guy, that finally arrived last night, at which point I immediately realized that I need further accessories. But I'm excited to shoot on this thing and to make my computer suffer with 8k video. It seems to have gotten too complacent with "Full HD."

Finally, I think the main reason I failed to post on time last night was that I was up late playing Balatro. This game is all over the place so you probably don't need me to tell you about it, but it is indeed a good (and addictive) deck-building game that I am enjoying instead of sleep. I am not interested in 100%ing this one, but there are still lots of appealing challenges left for me to do. I'd recommend it if you have the self control to avoid firing it up "for a quick game" when you should be working on your projects or sleeping.




ot

Card Deck Review: THE LEGEND OF SLEEPY HOLLOW TAROT

The Legend of Sleepy Hollow Tarot: Headless Horseman edition Nick Lawyer REDFeather (October 28, 2023) Reviewed by N. Richards What a wonderful way to honour the Irving Washington classic gothic story of 1822, “The Legend of Sleepy Hollow,” and the season of autumn as well as the art of Tarot all in one hit of […]

The post Card Deck Review: THE LEGEND OF SLEEPY HOLLOW TAROT first appeared on Hellnotes.




ot

Book Review: THE EERIE BROTHERS AND THE WITCHES OF AUTUMN

The Eerie Brothers and the Witches of Autumn Sheldon Higdon Scary Dairy Press LLC (September 4, 2023) Reviewed by Nora B. Peevy The Eerie Brothers and the Witches of Autumn finds Horace and Edgar, the twin Eerie brothers, battling monsters to stop Hex from collecting one of the four globes to absorb the abilities of […]

The post Book Review: THE EERIE BROTHERS AND THE WITCHES OF AUTUMN first appeared on Hellnotes.




ot

Something And Nothing

I sat today in a bench of two with a liked and respected colleague who is to retire in a couple of months when she reaches seventy (although you would never guess it)..Before the off, we fantasised about how bulletproof we felt, as disregarding the guidelines could at worst result in ejection from the bench that would take longer than we have left to sit.

We dealt mostly with breaches of community orders: the miscreants were mostly addled by drugs, and immune to letters or calls from probation. I was obliged, several times, to explain in plain language that it was the defendant's reponsibility to stay in touch with probation, rather than the other way round.

Our powers are limited in these cases, so I went home doubting that we had achieved very much.





ot

And Another Thing.......

The TV news tonight interviewed various locals who oppose the proposed new runway at Heathrow, some of them in an emotional state. One lady said that she had lived in Harmondsworth for over twenty years - but the airport opened in 1946, since when anyone who cared to elevate their gaze might have deduced that there was an airport across the Bath Road.




ot

Scots curlers miss the play-offs

Scotland beat Italy and Canada but fall short of reaching the World Women's Curling Championship play-offs.




ot

BORROWED TIME release and launch photo report!

As of November 10, 2015, BORROWED TIME (the sequel to CHRONAL ENGINE) is now available in bookstores everywhere as well as online (in hardcover and ebook)!  Signed copies are available from BookPeople.

In an article titled, 'Borrowed Time' mixes paleontology and fantasy, Saturday's Austin American-Statesman had a great review of BORROWED TIME, stating it's "a slam-dunk for dinosaur aficionados and will appeal as well to those who are fans of literary time travel and outdoorsy adventure."

Sunday was the launch party at BookPeople! I had great fun doing a presentation discussing the connections between the book, Charles Umlauf, dinosaurs, Johnny Weissmuller, and me (really).

The dinosaur standees for the photo booth were a hit, as were the refreshments including water, soft drinks, wine and cheese, and crackers. (The wine, from the Languedoc region of France, is made from grapes grown in Cretaceous clays where dinosaur fossils have have been found).

But the real eye-opener was the mosasaur cake by author/cakelustrator Akiko White. About two feet high, it featured a mosasaur sculpted from modeler's chocolate on a chocolate cake base with buttercream frosting! She'll be doing a youtube video on the making of it soon (and I'll link when it's available).  Suffice to say that still pictures don't do it justice -- it was mounted on a motorized turntable and illuminated with a blue strobe that made it look like it was underwater!

Here are the pics:

Me and cake

Carmen Oliver and T.rex
Akiko assembles! (photo courtesy Akiko White)
Presenting (photo courtesy Akiko White)
Cake!
Refreshments
Signing
Frances Hill and Lindsey Lane (photo courtesy of Shelley Ann Jackson)
Shelley Ann Jackson and Lindsey Lane (photo courtesy Shelley Ann Jackson)
 Many thanks to BookPeople for hosting the event, to everyone who came for the event, and to everyone who helped out: Akiko, for making the awesome cake; Cynthia Leitich Smith; Carmen Oliver; Lindsey Lane; Shelley Ann Jackson; and Cory Putnam Oakes!

Cake topper in its natural habitat






ot

Does Jupiter protect Earth from asteroids and comets?

Jupiter has often been thought to protect the inner Solar System from asteroids and comets, but new research has shown that the giant planet may actually increase the risk of an impact.




ot

NASA discovers Mars rock with ancient potential for life

A single 3.5 billion-year-old rock shows signs of all the conditions life needs to thrive.




ot

Eureka? Scientists’ first hints of life on other planets may not be so obvious

Knowing that you've found signs of life beyond Earth may not be as clear-cut and simple as one might think.




ot

How EELS could change the future of robotic exploration

The snake-like robot is being designed to autonomously navigate the challenging terrain of Saturn’s moon Enceladus, including descending into fissures in the moon’s icy crust. The skills it needs in order to explore this distant, unfamiliar world may make EELS well equipped to explore even more alien worlds, perhaps including exoplanets.




ot

Why NASA does space science and not the private sector

With all the advances in private space exploration, why do taxpayers still pay for space science missions?




ot

Life in other worlds

New research suggests liquid water might be hiding under the surface of Mars. Could life be there too?




ot

Connecting ancient life to other worlds

Looking to the past to guide the search for life.




ot

Spacecraft, what do your robot eyes see?

Cameras on spacecraft are our eyes into the Cosmos. Sometimes they teach us things, sometimes they reveal gaps in our knowledge.




ot

How to spot Comet Tsuchinshan-Atlas

Catch this once-in-a-lifetime comet over the next few days.




ot

Cloudy skies, smooth sailing

A Martian cloud atlas, LightSail wins big, and multiple missions coast toward launch.




ot

Barbour Nimbus Wellington Boots




ot

Glenmorangie A Tale of Ice Cream Single Malt Scotch Whisky




ot

YUKA 2000 Robot Lawn Mower




ot

Scott L. Burson: Comparison: FSet vs. Sycamore

[BULLETIN: Quicklisp now has the latest version of FSet.]

Sycamore, primarily by Neil Dantam, is a functional collections library that is built around the same weight-balanced binary tree data structure (with leaf vectors) that FSet uses.  While the README on that page comments briefly on the differences between Sycamore and FSet, I don't feel that it does FSet justice.  Here is my analysis.

Dantam claims that his library is 30% to 50% faster than FSet on common operations.  While I haven't done comprehensive micro-benchmarking, a couple of quick tests indicates that this claim is plausible.  A look through the internals of the implementation confirms that it is clean and tight, and I must commend him.  There may be some techniques in here that I could usefully borrow.

Most of the performance difference is necessitated by two design choices that were made differently in the two libraries.  One of these Dantam mentions in his comparison: FSet's use of a single, global ordering relation implemented as a CLOS generic function, vs. Sycamore's more standard choice of requiring a comparison function to be supplied when a collection is created.  The other one he doesn't mention: the fact that FSet supports a notion of equivalent-but-unequal values, which are values that are incomparable — there's no way, or at least no obvious way, to say which is less than the other, and yet we want to treat them as unequal.  The simplest example is the integer 1 and the single-float 1.0, which have equal numerical values (and cl:= returns true on them), but which are nonetheless not eql.  (I have a previous blog post that goes into a lot more detail about equality and comparison.)  Since Sycamore expects the user-supplied comparison function to return an integer that is negative, zero, or positive to indicate the ordering of its arguments, there's no encoding for the equivalent-but-unequal case, nor is there any of the code that would be required to handle that case.

Both of these decisions were driven by my goal for the FSet project.  I didn't just want to provide a functional collections library that could be called occasionally when one had a specific need for such a data structure.  My ambition was much grander: to make functional collections into a reasonable default choice for the vast majority of programming situations.  I wanted FSet users (including, of course, myself) to be able to use functional collections freely, with very little extra effort or thought.  While Lisp by itself reaches a little bit in this direction — lists can certainly be used functionally — lists used as functional collections run into severe time complexity problems as those collections get large.  I wanted the FSet collections to be as convenient and well-supported as lists, but without the time complexity issues.

— Or rather, I wanted them to be even more convenient than lists.  Before writing FSet, I had spent years working in a little-known proprietary language called Refine, which happened to be implemented on top of Common Lisp, so it was not unusual to switch between the two languages.  And I had noticed something.  In contrast to CL, with its several different predefined equality predicates and with its functions that take :test arguments to specify which one to use, Refine has a single notiion of equality.  The value space is cleanly divided between immutable types, which are compared by value — along with numbers, these include strings, sets, maps, and seqs — and mutable objects, which are always compared by identity.  And it worked!  I found I did not miss the ability to specify an equality predicate when performing an operation such as "union".  It was just never needed.  Get equality right at the language level, and the problem goes away.

Although FSet's compare generic function isn't just for equality — it also defines an ordering that is used by the binary trees — I thought it would probably turn out to be the case that a single global ordering, implemented as a generic function and therefore extensible, would be fine the vast majority of the time.  I think experience has borne this out.  And just as you can mix types in Lisp lists — say, numbers and symbols — without further thought, so you can have any combination of types in an FSet set, effortlessly.  (A project I'm currently working on actually takes considerable advantage of this capability.)

As for supporting equivalent-but-unequal values, this desideratum flows directly from the principle of least astonishment.  While it might not be too surprising for a set or map implementation to fail distinguish the integer 1 from the float 1.0, it certainly would be very surprising, and almost certainly a source of bugs in a compiler that used it, for it to fail to distinguish two uninterned symbols with the same name.  (I saw a macro expansion recently that contained two distinct symbols that both printed as #:NEW.  It happens.)  A compiler using Sycamore for a map on symbols would have to supply a comparison function that accounted for this; it couldn't just compare the package name and symbol name.  (You'd have to do something like keep a weak hash table mapping symbols to integers, assigned in the order in which the comparison function encountered them.  It's doable, but FSet protects you from this madness.)

Along with those deep semantic design choices, I've spent a lot of time on developing a wide and featureful API for FSet (an effort that's ongoing).  FSet has many features that Sycamore lacks, including:

  • seqs, a binary-tree sequence implementation that holds arbitrary Lisp objects (Sycamore ropes hold only characters, which is certainly an important special case, but why restrict ourselves?)
  • default values for maps and seqs (the value to return when the key is outside the domain is associated with the collection, not supplied at the call site; this turns out to be a significant convenience)
  • generic functions that operate on both lists and FSet collections, to shadow the CL builtins
  • the powerful map-union and map-intersection operations (I'll blog about these in the future)
  • more ways to iterate over the collections (the FSet tutorial has a good summary, about 3/4 of the way down)
  • speaking of the tutorial, FSet has lots more documentation

Let me digress slightly to give an example of how FSet makes programming more elegant and convenient.  Joe Marshall just put up a blog post comparing Go(lang) with Common Lisp, which is worth a read on its own; I'm just going to grab a code snippet from there to show a little bit of what programming with FSet is like.  Here's Joe's code:

 (defun collate (items &key (key #'identity) (test #'eql) (merger (merge-adjoin #'eql)) (default nil))
   (let ((table (make-hash-table :test test)))
     (dolist (item items table)
       (let ((k (funcall key item)))
         (setf (gethash k table) (funcall merger (gethash k table default) item))))))

 (defun merge-adjoin (test)
   (lambda (collection item)
     (adjoin item collection :test test)))

And here's what I would write using FSet:

 (defun collate (items &key (key #'identity))
   (let ((result (map :default (set))))
     (dolist (item items result)
       (includef (@ result (funcall key item)) item))))

(Well, I would probably move result outside the dolist form to make it clearer what the return value is, but let's go with Joe's stylistic choice here.)

For those who haven't used FSet: the form (map :default (set)) creates a map whose default is the empty set, meaning that lookups on that map will return the empty set if the key is not in the map.  This saves the includef form from having to handle that possibility.

My version makes assumptions, it's true, about how you want to collect the items with a given key; it doesn't give you other choices.  It could, but what would be the point?  It's already using a general set with better time complexity than lists, and saving you from having to write anything like merge-adjoin.  The extensible global equivalence relation means you're not going to need to supply a :test either.

I think the FSet-enhanced code is cleaner, more elegant, and therefore clearer than the plain-CL version.  Don't you agree?  Maybe you wouldn't say it's a huge improvement, okay, but it's a small example; in a larger codebase, I would argue, these small improvements add up.

* * * * *

To summarize: if you just want a library you can call in a few places for specific purposes, Sycamore might work better for you (but think hard if you're writing a comparator for symbols).  FSet can certainly be used that way, but it can be much more.  If you want to see one way in which Common Lisp can be made into a better language, without giving up anything that we love about it, I urge you to give FSet a try.

FSet has changed the way I write Lisp programs.  — an FSet user

(UPDATE: the magnitude of the performance difference between FSet and Sycamore surprised me, and inspired me to do some profiling of FSet.  It turned out that I could get a 20% speedup on one micro-benchmark simply by adding some inline declarations.  Mea culpa, mea culpa, mea maxima culpa; I should have done this years ago.   With that change, the generic function overhead appears to be the only significant cause of the remaining ~20% performance difference.  I tried creating a Sycamore set using a thin wrapper around fset:compare, and the resulting performance was very similar to that of FSet with its new inlines.)