co

TIFF Day 7: Concert Films are the New Concerts

Beans [Canada, Tracey Deer, 4] As the 1990 Oka standoff envelops her Mohawk community, a shy tween achiever (Kiawentiio) decides to toughen up by ingratiating herself to the tough kids. Mixing the docudrama and coming-of-age structures offsets the inherent trickiness of both, but it wouldn’t work without an appealing and touching performance from its charismatic young lead.

Akilla’s Escape [Canada, Charles Officer, 4] Weed dealer hoping to leave the business (Saul Wiliiams) tries to recover his boss’ ripped-off cash and product without sacrificing a young gang member who reminds him of his younger self. Moody, laconic crime drama contextualized by the political history of Jamaican gangsterism.

Williams, a recording artist, also supplies the score. The kinds of films that play at the festival often economize by favoring black credit  screens over full title sequences, so it’s always a bracing change of pace to see a well-done one. The title sequence for this not only delivers a welcome jolt of mood and energy but does a lot of the storytelling work that would otherwise have to be done with expository dialogue.

New Order [Mexico, Michel Franco, 4] A wedding thrown by a wealthy family during a growing insurrection suffers a murderous attack by protestors and the kidnapping of the bride. Wildly disturbing vision of political violence and degradation takes its time unreeling its allegorical purpose.

David Byrne’s American Utopia [US, Spike Lee, 4] Filmed version of the Broadway version of David Byrne’s recent tour features joyous choreography, simple but arresting stagecraft, and songs from his Talking Heads and solo eras. When you shoot a concert film featuring David Byrne, you have to bring it, and Lee does that ably, finding countlesss different ways to shoot within a proscenium.

David Byrne has always been a hugely important artist to me, but I was surprised how moved I was to get to feel that I was at a live concert.


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

co

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

co

College Students Win National Geographic Map Awards

As college campuses across the country close for summer recess, we know of a few students heading home that are perhaps a little happier because their maps earned awards. National Geographic sponsors several map awards
(see http://natgeomaps.com/mapawards) to reward student innovation—so far six students have won this year:

Ben Coakley, University of Wisconsin-Madison, Scheduled Service on Small Airlines in Canada, Summer 2008.
Daniel Huffman, University of Wisconsin-Madison,
Rising Skyline: The Tallest Buildings in Europe, 1875-2007.


Mathieu Noble, Centre of Geographic Sciences (COGS), Nova Scotia Community College (NSCC), King of Coal.




Wes Jones, Centre of Geographic Sciences (COGS), Nova Scotia Community College (NSCC), Annapolis Royal Historic Gardens.
Cindy Prostak, Centre of Geographic Sciences (COGS), Nova Scotia Community College (NSCC), St. John’s, Newfoundland and Labrador.

Gregg Verutes, San Diego State University, Health, Poverty and Place in Accra, Ghana.

Check out http://natgeomaps.com/mapawards for more information and updates.




co

The Complete America’s Great Trails Act

American Hiking Society constantly monitors legislation that could enhance or protect the hiking experience. A new bill, HR 1912 - the Complete America’s Great Trails Act - has the potential to significantly benefit some of the most spectacular trails in America. This proposed legislation would grant a tax credit to private landowners who provide conservation easements to certified National Scenic Trails – resulting in a low-cost incentive for willing landowners to donate easements that would increase trail connectivity. This means that private landowners have a new incentive to allow hikers to pass through their property, and trails get a guaranteed corridor that protects the connectivity and continuity of the hiking experience for years to come!

American Hiking supports HR 1912 and applauds Rep. Connolly (D-VA) and Rep. Lummis (R-WY) for introducing this forward-thinking legislation. We also applaud Rep. Blumenauer (D-OR) and Rep. Bono-Mack (R-CA), co-chairs of the Congressional Trails Caucus, and Reps. Kind (D-WI), Massa (D-NY), McMahon (D-NY), Lance (R-NJ), Polis (D-Co), Boccieri (D-OH), Pierluisi (D-RC-PR), for their original co-sponsorship of this important legislation.

American Hiking advocates for changes in policies that provide our partners with as many tools as possible to protect and manage our nation’s great trails. Thus, we work closely with regional and local organizations that protect, maintain and promote the various elements of America’s National Trails System. We also partner with Congress and the federal land management agencies charged with managing and administering our trail resources.

American Hiking has championed the protection and enhancement of America’s National Trails System since our founding in 1976. Our National Trails System consists of more than 7,000 authorized miles of National Scenic Trails, more than 36,000 miles of National Historic Trail routes, and more than 1,000 registered National Recreation Trails.

Take Action to urge your Representative to co-sponsor HR 1912.

Read the full text of HR 1912, and read the Dear Colleague Letter being circulated by Reps. Connolly and Lummis.




co

San Juan College :: 'Leave No Trace' Training

Last weekend my class and I headed to the Black Canyon of the Gunnison National Park for a Leave No Trace Trainer Course. The training was a part of a Wilderness Ethics class being offered by San Juan College. We were all super pumped to be headed to a beautiful place like the Black Canyon for a “class”.

If you have ever been on a Leave No Trace Trainer Course, then you will know that the first topic talked about is Plan Ahead and Prepare. Our instructor mentioned that it might be the most important principle as it will set you up for success for your next outdoor adventure. Included in the discussion were the hiking/backpacking 10 Essentials, in which a map is one of those ten. As a self-proclaimed “map geek”, I was pretty excited to see our instructor pull out the Trails Illustrated Black Canyon of the Gunnison National Park and Curecanti NRA Map.

The map was a vital resource for planning our hikes for the weekend. By studying the contour lines and trail distances on the map we were able to determine which trails were the most suited to our group’s physical abilities and the class’ educational purposes. The map provided basic details like restroom locations, but was also detailed enough to show us what areas of the park required a backcountry permit. The map made several appearances during our hikes and quite a few more back at camp while students planned a return trip later this fall.

David Whitford – Student, San Juan College




co

STUDENTS ACROSS THE COUNTRY TO ‘DIVE’ INTO FRESHWATER

WASHINGTON (Nov. 10, 2010)—With one of every six people on Earth lacking access to safe drinking water, freshwater is one of the defining issues of the 21st century. Although water is essential for life, less than 1 percent of water on our planet is available for drinking. “Freshwater!” is the theme of Geography Awareness Week 2010, Nov. 14-20, supported by National Geographic and other partner organizations and sponsored by CH2M HILL, an international engineering consulting firm. Founded as a water firm in the 1940s, CH2M HILL has been working for decades to help people around the world find the right solutions to their water challenges.

Geography Awareness Week is an annual celebration enacted by Congress in 1987 that encourages families and schools to engage in fun, educational experiences that draw attention to geo-literacy and the importance of geography education. During Geography Awareness Week 2010, National Geographic invites students, teachers and parents to learn more about freshwater and how it connects to geography.

“Freshwater is one of the most critical issues of the 21st century,” said Terry Garcia, National Geographic’s executive vice president of Mission Programs. “National Geographic is committed to increasing awareness about this vital natural resource through our Freshwater Initiative. Our Geography Awareness Week website (http://www.geographyawarenessweek.org/) gives students and teachers the necessary tools to understand the complexity of the global freshwater crisis and its extraordinary role in shaping the geography of our world.”

During Geography Awareness Week, grassroots organizers around the country will host events, workshops and contests at local schools and community centers. Engineers from CH2M HILL will visit classrooms in many states to share hands-on freshwater activities with students and discuss connections between geography and real-world engineering projects.

“Our world needs sustainable water management solutions that support society and nature,” says Bob Bailey, president of CH2M HILL’s Water Business Group. “The decisions we make today about water will affect generations to come. We are proud to partner with National Geographic — a leader in scientific and cultural research and education — to help bring public awareness to this vital issue. Our firm is committed to sustainability; to protecting and preserving our planet’s natural resources; and to inspiring and educating a future workforce that will help solve the environmental and engineering challenges of tomorrow.”

In celebration of Geography Awareness Week, Zinio, the digital magazine and book distributor, will offer free access to and a free download of the digital edition of the April 2010 issue of National Geographic magazine, “Water: Our Thirsty World,” during November. This single-topic special issue highlights the challenges facing our most essential natural resource. The digital edition presents complete content from the print edition, plus extra photo galleries, rollover graphics that animate features like maps and timelines, video profiles of photographers who contributed to the issue and other interactive features.

The Geography Awareness Week website offers access to activities, lessons and games about freshwater. The site features contributions from National Geographic and partner organizations such as ESRI, 4-H, Newspapers in Education, Zinio and GeoEye. Visitors can use a water footprint calculator to determine how much water their family uses — from watering the lawn to the “hidden” water in household items like blue jeans — and find ways their family can conserve. Teachers can access a wealth of lesson plans about freshwater, including featured activities for use with new National Geographic Mapmaker Kits. Educators and parents alike will find valuable lists of recommended books and films, as well as crossword puzzles and other family-friendly games.

The website also features opportunities to join nearly 100,000 geography supporters in promoting the cause of freshwater. Resources are provided on how to host a local Geography Awareness Week event, including a guide to hosting a 3.7-mile Walk for Water or a Freshwater Trivia Night. A link to the new Global Action Atlas offers connections to people and organizations involved in innovative water projects around the world.

Site visitors also can read and contribute to a Geography Awareness Week Blog-a-Thon, which is updated multiple times daily with commentary and multimedia. The Blog-a-Thon also features a “What’s That Water?” quiz, challenging visitors to identify freshwater bodies in satellite imagery, provided by GeoEye, for chances to win prizes.

The National Geographic Society is one of the world's largest nonprofit scientific and educational organizations. Founded in 1888 to “increase and diffuse geographic knowledge,” the Society works to inspire people to care about the planet. It reaches more than 375 million people worldwide each month through its official journal, National Geographic, and other magazines; National Geographic Channel; television documentaries; music; radio; films; books; DVDs; maps; exhibitions; live events; school publishing programs; interactive media; and merchandise. National Geographic has funded more than 9,400 scientific research, conservation and exploration projects and supports an education program promoting geographic literacy. For more information, visit http://www.nationalgeographic.com/.

Headquartered in Denver, Colo., employee-owned CH2M HILL is a global leader in consulting, design, design-build, operations and program management for government, civil, industrial and energy clients. With $6.3 billion in revenue and 23,500 employees, CH2M HILL is an industry-leading program management, construction management and design firm, as ranked by Engineering News-Record (2010). The firm’s work is concentrated in the areas of water, transportation, environmental, energy and power, and facilities and infrastructure. The firm has long been recognized as a most-admired company and leading employer. Visit http://www.ch2mhill.com/.

For more information and resources for Geography Awareness Week, visit http://www.geographyawarenessweek.org/.





co

Streaks of fire are about to take over Australian skies during the Leonid meteor shower. Here’s how to see them - nbnnews.com.au

  1. Streaks of fire are about to take over Australian skies during the Leonid meteor shower. Here’s how to see them  nbnnews.com.au
  2. The Northern Taurid meteor shower could produce fireballs. Here’s how to watch  CNN
  3. Northern Taurid meteor shower hits peak activity this week: When and where to watch  USA TODAY
  4. Leonid Meteor Shower May Put on a Surprise Show This Week  ScienceAlert
  5. Starwatch: Leonid meteor shower returns to skies in November  The Guardian






co

All-time reaction to coaching ‘disaster’; Steph’s stunning clutch moment: NBA Wrap - Fox Sports

  1. All-time reaction to coaching ‘disaster’; Steph’s stunning clutch moment: NBA Wrap  Fox Sports
  2. Bike rides and Balkan music: Klay Thompson is embracing a fresh start with the Mavericks  ESPN Australia
  3. 10 unforgettable Klay Thompson moments with Warriors ahead of return  NBA.com
  4. Dub Hub: Warriors players share ‘welcome back’ messages for Klay Thompson’s return  Golden State of Mind







co

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




co

Germany to hold snap election in February after government's coalition collapse - ABC News

  1. Germany to hold snap election in February after government's coalition collapse  ABC News
  2. The briefcase, the Porsche and the collapse of the German government – podcast  The Guardian
  3. Germany set for snap election following collapse of Olaf Scholz’s coalition  The Conversation
  4. President calls German early election plan 'realistic'  DW (English)





co

Elon Musk’s job as Trump’s bureaucracy buster could be just the start - The Australian Financial Review

  1. Elon Musk’s job as Trump’s bureaucracy buster could be just the start  The Australian Financial Review
  2. Elon Musk tapped for ‘government efficiency’ role by Donald Trump  Sydney Morning Herald
  3. Evening News Bulletin 13 November 2024  SBS News
  4. Donald Trump wants Elon Musk to slash regulations as he reveals his role  ABC News




co

Kristian White trial: CCTV reveals final moments before Clare Nowland Tasering in Cooma nursing home - Sydney Morning Herald

  1. Kristian White trial: CCTV reveals final moments before Clare Nowland Tasering in Cooma nursing home  Sydney Morning Herald
  2. Jury shown footage of 95yo getting stuck in tree in weeks before being tasered by police officer  ABC News
  3. Elderly woman 'unable to comply' before cop Tasered her, court hears  9News




co

This call is being recorded for quality.

Call center technology is constantly improving. Most modern call-centers record at least some portion of the conversations they initiate. Who listens to these recordings. And what eventually happens to them?

What does this mean for charitable solicitations?

A typical call for me starts something like this;

Me: Hello I'm Henry calling from XXX organization on behalf of the Save the Giant Sequoia Tree foundation. Hows it going today Mr X?

Mr X: Fine, how are you today?

Me; I'm good thanks for asking, not a lot of people do. (this gets a chuckle as often as not, and its true.)

Me: Mr X, I'm going to try to keep things quick today but first I do need to know that this call could be monitored and is recorded for my quality.

Mr X: Ah go ahead the damn government is recording everything we say anyway....


Conversations can go into anywhere from a mild rant against the Bush administration to an all out call for violence made in jest, typical stuff you might hear on The Bill Mahr show. But what the Donor may not realize is that that conversation doesn't necessarily go away, ever.

Ive done fundraising for organizations like the Democratic National Committee, The A.C.L.U and the Human Rights Campaign. At the start of each call we inform donors that their call could be recorded to ensure quality control.

A.C.L.U donors are the most likely to hang up the phone at that point caring too much about their right to privacy to allow themselves to be recorded.

But what about the callers who don't hang up? Ive spoken to extremely opinionated people who
have pulled no punches when it come to their opinion on the current presidential administration, the war on terror, and other highly charged issued.

Politicians have been cursed threats have been made as well as off color jokes.

Could this information be used against a person?

With the warrant-less wiretapping that we know is going on in this country,how smart is it for organizations to save recordings of people?

Donors tend to say anything to an anonymous fundraiser on over the phone. But is it really anonymous. Do the donors have a right to know what becomes of their voice recordings.

I think that call-centers, especially in the fundraising industry, should have a published policy on what they will and will not do with Donor's information, including voice recordings.


Technology and political realities have raced beyond past practices. Its time for call-centers to catch up.


What I can tell you as a professional fundraiser is that.

  • You have the right to end the conversation at any time, although I and your organization wish you wouldn't.
  • You have the right to request more information about where I'm calling from and what my particular call-center will do with any of your information, including recordings of your voice. ( If your the curious type this might be fun to do anyway)
  • The Front-line people who call you, me, have no control over when or why you are called; its all done by computer.
  • The national no call-list has little bearing on non-profits, or their agents, (me). Call-centers that do fundraising have their own internal do-not-call lists; ask to be on it and we are obligated to put you on it. You should also let your charities know, by phone, or in writing, that you don't want to be called, or to have your name sold or traded to other organizations.
  • Reputable fundraisers charge a flat fee per call. Yes or no, we get the same amount for making the call. It doesn't have to be this way however, Some fundraising agents can keep 80% (or more!) of the revenue a solicitation campaign generates. You have the right to know just what those percentages are; if the person you are speaking to doesn't know, ask for a supervisor.
  • Some states also have laws that obligate fundraising groups to send a written copy of this information to any donor that asks, you'll need to contact your attorney general's office to see if your state is one.
  • Last note; Federal law prohibits us from recording your credit card information, this is the one part of the call that isn't recorded.

I hope this quick rundown of the issues stirs some discussion. Ill follow up with more on telephone fundraising in the coming days.




co

Overcoming Objections

Telephone Fundraising would be much easier if everyone you called said yes, but in the real world, nine out of ten people on a campaign may reject you outright. The key to converting a small percentage of those no's to yes's is understanding why the donor is saying no to you. some of the more common objections and the ways to get beyond them are listed below.


Donor has no time to take a call. In x


More to come later....




co

Cognition, culture, … and communication?

An interesting recent review article (Wooster et al., "Animal cognition and culture mediate predator–prey interactions", Trends in Ecology & Evolution 2024) argues for bridging the academic silos of "predator-prey ecology" and "animal cognition and culture": Abstract: Predator–prey ecology and the study of animal cognition and culture have emerged as independent disciplines. Research combining these disciplines […]




co

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.




co

NOTOCON Speaker Deadline Approaching

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




co

NOTOCON Speaker F.AQ.

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




co

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!




co

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.




co

New content on radar.spacebar.org

Here is the new content:

I've mentioned that I have been working on running a five-minute mile on the treadmill this year, a goal that at one point seemed in reach. I think I also complained that I got sick and that when I got back to it, they had swapped out all the treadmills for fancy treadmills with built-in Netflix and air conditioning and stuff like that, which I now refer to as "Bob's Tred Mill." There's some good things about these, and some things that make me crazy, but one thing that especially made me crazy is they felt significantly faster than the old Precor ones I was used to. It's definitely a real thing that treadmills are sometimes not calibrated correctly (or the tread stretches out or slips, etc.) but it was also possible that being sick set me back more than I thought. The important thing is to get The Data instead of just The Upset Feelings so I was shopping for things like those hand-held unicycles that you can wheel around to measure how long things (like streets) are, as it does seem like the kind of device that I would own, looking at like the world's most accurate hand-held unicycle thing, and then I noticed at the last thing that most of them have a MAX SPEED of something like 10mph, which would not do. I finally had the brain-stroke that I could use a laser tachometer to do it, since these have a max speed more like 99999 RPM. So I measured the tread length with some chalk marks and put reflective tape on there. The treadmill will go at different speeds when loaded (running on it) vs unloaded, which also depends on your weight and stride and stuff a little, so you also gotta engage in the dexterity-testing act of measuring while running on it, which looked like this:


POV: You are me


Pointing the laser at the reflective tape dot (visible right next to the laser dot here) as it flies by while running kinda fast is definitely tricky, although I must say that it was one of those times when I thought, "I've been training my whole life for this!" and you can see that I'm showing off a little bit here by also photographing it at the same time. But you are not impressed since it reports 0 RPM. The nice thing about the tachometer is that it only needs a pair of observations to give you a frequency, and you can easily tell if you missed the tape, which you do often on account of the shaking, because you get some integer multiple that's way off from the right answer. Anyway I dutifully took multiple readings unloaded and loaded at (nominally) 6mph, 7mph, ... 12mph and made a spreadsheet with all the results converted, and... found that the treadmill is just about 1% too fast loaded, all across the board. This would be just 3 seconds for a five-minute mile, which is not nothing, but it definitely does not vindicate my Upset Feelings (I was thinking it felt more like 10%). My best guess is that the old treadmills were (all?) actually too slow, which is annoying because now I doubt some of the unofficial 5k records I painfully set for myself during the summer. But, well, the thing about endeavoring to do challenging things is: No Cheating!

In project news, I feel I have a foothold now to get myself out of this math hole, as I've finally migrated this algorithm to work only with 64-bit integer arithmetic and so I can port it to GPU soon and then be out of ideas about how to make it faster. I have no idea if there's a good story to be told for this project, but I'll try (and also, it is okay if sometimes the hobby programming doesn't lead to a video or Sigbovik paper, you know?). And speaking of Sigbovik: Heroes have emerged quite on time this year, so it's certainly looking like there will be a proceedings and conference (perhaps with livestream), so start writing those papers now.

Aside from the math hole, I've been making some progress on two other concurrent projects. It's getting normal again (even quiet) at work and winter break is coming up, and I'm looking forward to having some several-day stretches to work on them.

I played through Golf Peaks (well, I haven't beat all the bonus levels yet but I've been working back to front so it's just a matter of a little time at this point), which was a very nice little puzzle game that does almost everything right. Other than the very irritating music in one world, I think my only disappointment was that it doesn't elegantly handle infinite-length puts. I'm also still working on Return to Monkey Island, which I do like, although it doesn't hold up to my memory of the first two. I think one of the problems with modern point-and-click adventure games is the voices, actually: Not because the voice acting bothers me, but because it goes so slow compared to reading. It's like when you just want to figure out the maximum speed of the hand-held unicycle and they're trying to get you to watch a video instead of just reading. Tears of the Kingdom (which I'm still savoring, but getting close to the end now) does a good job with this; you do hear snippets of voices, which helps with the characterization, but you can blow through the dialog at a pretty fast pace. Probably a lot cheaper, too!




co

Bobsleighers want tracks covered

Great Britain's bobsleigh team call for all sliding tracks to be covered after heavy snowfall at the Winter Youth Olympics in Austria.




co

Scots curlers miss the play-offs

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




co

Pizza a Day Diet: Austin Beer Garden Brewing Co. (The ABGB)

Today's pizza a day diet pizza came from the Austin Beer Garden Brewing Co. at 1305 W. Oltorf (right next to the train tracks).

I hit the place in mid-afternoon, so it was pretty empty (Happy hour is from 3 pm to 7 pm, though, so it filled quickly :-)).  You order food and beer at the bar and they bring it to your table.  Inside are long wooden tables with benches, for social/communal beer-gardening in the Bavarian tradition.  Outside are round tables under the live oaks for beer gardening in the Austin tradition. :-).


I ordered a sausage pizza (boring, I know :-), but I like to try new places out on the basics).  It was delivered hot and fresh; the crust was somewhat soft but firmed up after I let it cool a little.  It had a nice chew and stood up to the ingredients.  The sausage had a more subtle flavor than I was expecting, but I really liked it and its freshness.  The cheese and sauce were also quite good.


One of their "by the slice" choices had also caught my eye, so I ordered it as well.  This was venison, spinach, pesto, white bean, roasted tomato, roasted garlic, and ricotta.  This one was amazing (not that the sausage was bad).  The crust had just the right amount of crispness and chew, but the combination of toppings really made it.  It had a richness from the venison without being gamy or overwhelming, and the remaining ingredients provided a terrifically contrasting texture in every bite.


Oh, and the beer was darn good, too. :-).







  • pizza a day
  • Pizza a Day Diet

co

Texas Library Association Conference (#txla16)

Just back from the Texas Library Association Conference in Houston! 

As always, it was great to see fellow authors and illustrators, as well as the librarians who've supported our books through the years.  And I always enjoy seeing what's new at the publisher booths.

We had a great time for my panel Tuesday afternoon, "What's New with Texas Middle Grade and YA Authors," organized by Susie Kralovansky, featuring Jessica Lee Anderson moderating, and fellow panelists Paige Britt, Cory Putnam Oakes, P.J. Hoover, Cynthia Levinson, Liz Garton Scanlon, Jennifer Mckissack, and Joy Preble.  Conversation was entertaining and enlightening.  

Many thanks to everyone who puts in the work to make TLA the best state library conference in the country!

Here are some pics:

Hitting the road
Rainy Houston from the hotel
Me, Cynthia Levinson, PJ Hoover
Carmen Oliver signs
Jennifer McKissack, Jennifer Ziegler, Joy Preble
Paige Britt and Donna Janell Bowman
Me and the world in the lobby of the Hilton
Signing BORROWED TIME
Janet Fox and Jennifer Ziegler
PJ, Jessica, and Joy
Me and Elaine Scott
Buffalo Bayou on my early morning run
Back in Austin!
   





co

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.




co

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.




co

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.




co

Wow! Boom! Ultra cool!

The “Wow!" signal has a new explanation, and an ultra-cool experiment advances quantum sensing in space. Plus, making an asteroid go “boom!” might work, depending on the circumstances.




co

Explore the Cosmos with The Planetary Society and Lerner Publishing

The Planetary Society and Lerner Publishing Group have teamed up to bring young readers an engaging series of books that make space science fun and accessible.




co

The Tianlin Space Telescope

China is in the early stages of planning a huge space observatory to help answer the matter of whether we are alone in the galaxy.




co

Connecting ancient life to other worlds

Looking to the past to guide the search for life.




co

Where Congress Stands on NASA's 2025 budget

Weeks before the new fiscal year, Congress still hasn't finalized NASA's 2025 budget.




co

Could Europa Clipper find life?

For a mission that doesn’t aim to find alien life, Europa Clipper may come surprisingly close.




co

How to spot Comet Tsuchinshan-Atlas

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




co

Glenmorangie A Tale of Ice Cream Single Malt Scotch Whisky




co

Fomorian Coastal Scenery

Here are some rock pools to add to a coastal game mat. I've added some kelp seaweed to make them a bit more North sea.







There are also a couple of other prints that I plan to use as Fomorian shrines. Places where they honour their dead and stack weapons and armour in tribute.
To save on the greenstuff, I switched to Milliput as it's cheaper for bigger pieces. 

I'll add some more skulls and weapons etc to these bases.
Update: So the Fomorians crawled out of the icy North sea in the night and adorned the pools with their burial goods.
Fomorian skulls and weapons now litter the swallow pools, soon to be covered by the rising tide.


Barnacles were just grit stuck with PVA glue. After the glue was dry I gave the grit another wash of the glue. This should make it stand up to a good dry brushing.
One of the new swirly shields gets placed in the pool. I gave the water a coat of PVA glue just to get rid of the 3D printing texture.
I will add a little more seaweed now the skulls are in.

Update: These models were sprayed black then dry brushed with grey and white. Contrast colours were then painted over the highlighted pools.



To make them look a bit more aquatic and fantasy, I included colours like blue and purple into the palette.



Here we can see a highlighted model before the Contrast paint washes.








Update: started to pick out the barnacles and shields etc.









co

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.)




co

vindarel: Running my 4th Common Lisp script in production© - you can do it too

Last week I finished a new service written in Common Lisp. It now runs in production© every mornings, and it expands the set of services I offer to clients.

It’s the 4th service of this kind that I developed: - they are not big - but have to be done nonetheless, and the quicker the better (they each amount to 1k to 2k lines of Lisp code), - they are not part of a super advanced domain that requires Common Lisp superpowers - I am the one who benefits from CL during development, - I could have written them in Python - and conversely nothing prevented me from writing them in Common Lisp.

So here lies the goal of this post: illustrate that you don’t need to need a super difficult problem to use Common Lisp. This has been asked many times, directly to me or on social media :)

At the same time, I want to encourage you to write a little something about how you use Common Lisp in the real world. Sharing creates emulation. Do it! If you don’t have a blog you can simply write in a new GitHub repository or in a Gist and come share on /r/lisp. We don’t care. Thanks <3

We’ll briefly see what my scripts do, what libraries I use, how I deploy them, what I did along the way.

Needless to say that I dogfooded my CIEL (beta) meta-library and scripting tool for all those projects.

Table of Contents

Scripts n°4 and 2 - shaping and sending data - when you can write Lisp on the side

My latest script needs to read data from a DB, format what’s necessary according to specifications, and send the result by SFTP.

In this case I read a DB that I own, created by a software that I develop and host. So I could have developed this script in the software itself, right? I could have, but I would have been tied to the main project’s versioning scheme, quirks, and deployment. I rather had to write this script on the side. And since it can be done on the side, it can be done in Common Lisp.

I have to extract products and their data (price, VAT...), aggregate the numbers for each day, write this to a file, according to a specification.

To read the DB, I used cl-dbi. I didn’t format the SQL with SxQL this time like in my web apps (where I use the Mito light ORM), but I wrote SQL directly. I’m spoiled by the Django ORM (which has its idiosyncrasies and shortcomings), so I double checked the different kinds of JOINs and all went well.

I had to group rows by some properties, so it was a great time to use serapeum:assort. I left you an example here: https://dev.to/vindarel/common-lisps-group-by-is-serapeumassort-32ma

Dates have to be handled in different formats. I used local-time of course, and I still greatly appreciate its lispy formatter syntax:

(defun date-yymmddhhnnss (&optional date stream)
  (local-time:format-timestring stream
                                (or date (local-time:now))
                                :format
                                '((:year 4)
                                  (:month 2)
                                  (:day 2)
                                  (:hour 2)
                                  (:min 2)
                                  (:sec 2)
                                  )))

the 2 in (:month 2) is to ensure the month is written with 2 digits.

Once the file is written, I have to send it to a SFTP server, with the client’s codes.

I wrote a profile class to encapsulate the client’s data as well as some functions to read the credentials from either environment variables, the file system, or a lisp variable. I had a top-level profile object for ease of testing, but I made sure that my functions formatting or sending data required a profile parameter.

(defun send-stock (profile &key date) ...)
(defun write-stock (profile filename) ...)

Still nothing surprising, but it’s tempting to only use global parameters for a one-off script. Except the program grows and you pay the mess later.

SFTP

To send the result through SFTP, I had to make a choice. The SFTP command line doesn’t make it possible to give a password as argument (or via an environment variable, etc). So I use lftp (in Debian repositories) that allows to do that. In the end, we format a command like this:

lftp sftp://user:****@host  -e "CD I/; put local-file.name; bye"

You can format the command string and run it with uiop:run-program: no problem, but I took the opportunity to release another utility:

First, you create a profile object. This one-liner reads the credentials from a lispy file:

(defvar profile (make-profile-from-plist (uiop:read-file-form "CREDS.lisp-expr"))

then you define the commands you’ll want to run:

(defvar command (put :cd "I/" :local-filename "data.csv"))
;; #<PUT cd: "I/", filename: "data.csv" {1007153883}>

and finally you call the run method on a profile and a command. Tada.

Deploying

Build a binary the classic way (it’s all on the Cookbook), send it to your server, run it.

(during a testing phase I have deployed “as a script”, from sources, which is a bit quicker to pull changes and try again on the server)

Set up a CRON job.

No Python virtual env to activate in the CRON environment...

Add command line arguments the easy way or with the library of your choice (I like Clingon).

Script n°2 and simple FTP

My script #2 at the time was similar and simpler. I extract the same products but only take their quantities, and I assemble lines like

EXTRACTION STOCK DU 11/04/2008
....978202019116600010000001387
....978270730656200040000000991

For this service, we have to send the file to a simple FTP server.

We have a pure Lisp library for FTP (and not SFTP) which works very well, cl-ftp.

It’s a typical example of an old library that didn’t receive any update in years and so that looks abandoned, that has seldom documentation but whose usage is easy to infer, and that does its job as requested.

For example we do this to send a file:

(ftp:with-ftp-connection (conn :hostname hostname
                                   :username username
                                   :password password
                                   :passive-ftp-p t)
      (ftp:store-file conn local-filename filename))

I left you notes about cl-ftp and my SFTP wrapper here:

Scripts n°3 and n°1 - specialized web apps

A recent web app that I’m testing with a couple clients extends an existing stock management system.

This one also was done in order to avoid a Python monolith. I still needed additions in the Python main software, but this little app can be independent and grow on its own. The app maintains its state and communicates it with a REST API.

 

It gives a web interface to their clients (so my clients’ clients, but not all of them, only the institutional) so that they can:

  • search for products
  • add them in shopping carts
  • validate the cart, which sends the data to the main software and notifies the owner, who will work on them.

The peculiarities of this app are that:

  • there is no user login, we use unique URLs with UUIDs in the form: http://command.client.com/admin-E9DFOO82-R2D2-007/list?id=1
  • I need a bit of file persistence but I didn’t want the rigidity of a database so I am using the clache library. Here also, not a great activity, but it works©. I persist lists and hash-tables. Now that the needs grow and the original scope doesn’t cut it any more, I wonder how long I’ll survive without a DB. Only for its short SQL queries VS lisp code to filter data.

I deploy a self-contained binary: code + html templates in the same binary (+ the implementation, the web server, the debugger...), with Systemd.

I wrote more on how to ship a standalone binary with templates and static assets with Djula templates here:

I can connect to the running app with a Swank server to check and set parameters, which is super helpful and harmless.

It is possible to reload the whole app from within itself and I did it with no hiccups for a couple years, but it isn’t necessary the most reliable, easiest to set up and fastest method. You can do it, but nobody forces you to do this because you are running CL in production. You can use the industry’s boring and best practices too. Common Lisp doesn’t inforce a “big ball of mud” approach. Develop locally, use Git, use a CI, deploy a binary...

Every thing that I learned I documented it along the way in the Cookbook ;)

Another app that I’ll mention but about which I also wrote earlier is my first web app. This one is open-source. It still runs :)

 

In this project I had my friend and colleague contribute five lines of Lisp code to add a theme switcher in the backend that would help him do the frontend. He had never written a line of Lisp before. Of course, he did so by looking at my existing code to learn the existing functions at hand, and he could do it because the project was easy to install and run.

(defun get-template(template &optional (theme *theme*))
  "Loads template from the base templates directory or from the given theme templates directory if it exists."
  (if (and (str:non-blank-string-p theme)
           (probe-file (asdf:system-relative-pathname "abstock" (str:concat "src/templates/themes/" theme "/" template))))
      ;; then
      (str:concat "themes/" theme "/" template)
      ;; else :D
      template))

He had to annotate the if branches :] This passed the code review.

Lasting words

The 5th script/app is already on the way, and the next ones are awaiting that I open their .docx specification files. This one was a bit harder but the Lisp side was done sucessfully with the efficient collaboration of another freelance lisper (Kevin to not name him).

All those tasks (read a DB, transform data...) are very mundane.

They are everywhere. They don’t always need supercharged web framework or integrations.

You have plenty of opportunities to make yourself a favor, and use Common Lisp in the wild. Not counting the super-advanced domains where Lisp excels at ;)


Links

I have done some preliminary Common Lisp exploration prior to this course but had a lot of questions regarding practical use and development workflows. This course was amazing for this! I learned a lot of useful techniques for actually writing the code in Emacs, as well as conversational explanations of concepts that had previously confused me in text-heavy resources. Please keep up the good work and continue with this line of topics, it is well worth the price! [Preston, October of 2024]




co

All Souls Night (Conclusion)

.

 


 


 


 


 

FINIS

 

Above: Every Autumn, I write a Halloween story, write it out on leaves (one word per leaf), photograph the leaves, and then leave them where I found them. The story is then serialized, starting on October 1 and concluding on the 31st--All Souls Day.

 

*

 

 




co

ALL SOULS NIGHT Complete! In One Easy-to-Read Location!

.


This year's Halloween story, written on leaves and serialized daily on my blog, one sentence at a time, is done. Every day in October, I added to it, it reached its last words on Halloween.

Funny thing, though. In conversations with two different friends, I learned that neither of them had realized it was a story. They each thought I was just posting random sentences written on leaves. One of them is an artist, and thinks primarily in visual terms, so I thought at first that was a misunderstanding curious to her. The other, however, is a well-known writer and, what's more important, quite a good one. I have no idea what's going on there.

Long story short, at my behest, my son Sean, put all the photos up on Imgur, subtitled. So, if you didn't realize that they told a story... Or if, somehow, you weren't able to hold all the sentences in your head until the story was complete... Now you can find out what was going on. (The stone angels mark the ends of paragraphs.)

You can find it by clicking on the link here.


*





co

Don 039 t mess with Acorns

Don 039 t mess with Acorns



View Comic!