vi

Outback Queensland residents spend thousands on flights, grapple with Qantas service changes - ABC News

  1. Outback Queensland residents spend thousands on flights, grapple with Qantas service changes  ABC News
  2. Airlines that love competition: Do you see pigs fly?  Sydney Morning Herald
  3. Predictably, domestic airfares surged after the collapse of Rex. There aren’t many good solutions  The Conversation
  4. Report finds just how much airfares spiked since end of Rex. One route doubled  The Canberra Times
  5. Qantas’ single excuse for fare price hike  news.com.au




vi

Beijing and Washington stops provide clues for Indonesia's direction under Prabowo Subianto - ABC News

  1. Beijing and Washington stops provide clues for Indonesia's direction under Prabowo Subianto  ABC News
  2. Prabowo pledges co-operation with Trump  The Australian Financial Review
  3. Indonesian president meets Biden and speaks with Trump  The Canberra Times
  4. At White House, Indonesia's new leader straddles US-China rivalry  VOA Asia
  5. Will Prabowo Subianto cosy up to Donald Trump or to China?  The Economist






vi

NSW nurses strike heaps wage pressure on Minns government - The Australian Financial Review

  1. NSW nurses strike heaps wage pressure on Minns government  The Australian Financial Review
  2. Hundreds of elective surgeries cancelled as 10,000 nurses and midwives walk off job in NSW  ABC News
  3. Nurses took to the streets after ‘insulting’ pay offer. Next stop, court  Sydney Morning Herald
  4. Almost 700 surgeries cancelled as 12,000 NSW nurses strike for better pay  9News




vi

As it happened: Donald Trump ally taunts Kevin Rudd; WiseTech shareholders launch class action - Sydney Morning Herald

  1. As it happened: Donald Trump ally taunts Kevin Rudd; WiseTech shareholders launch class action  Sydney Morning Herald
  2. Ditching Rudd over Trump insults would be ‘worst possible signal’: Turnbull  Sydney Morning Herald
  3. Senior Liberal calls for Rudd to be sacked after Trump advisor suggests US ambassador is on thin ice  9News




vi

Murder charge after beloved Elvis impersonator found dead after karaoke night - 9News

  1. Murder charge after beloved Elvis impersonator found dead after karaoke night  9News
  2. Beloved Elvis impersonator allegedly murdered after karaoke night  Sydney Morning Herald
  3. Love Island winner's best mate is accused of killing beloved grandad - after the Good Samaritan had tried to h  Daily Mail
  4. Video: Elvis impersonator named as alleged murder victim  WAtoday




vi

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




vi

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




vi

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 […]




vi

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.




vi

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.




vi

Book Review: INK VINE

Ink Vine Elizabeth Broadbent Undertaker Books (April 12, 2024) Reviewed by Nora B. Peevy When I heard Elizabeth Broadbent do a reading from Ink Vine, I knew I had to get my paws on that book. Her authenticity and unique voice, plus her sense of humor, shine through in this tale about standing up against […]

The post Book Review: INK VINE first appeared on Hellnotes.




vi

Book Review: OF TEETH AND PINE

Of Teeth and Pine Desiree Horton Independently published (October 31, 2024) Reviewed by Nora B. Peevy Desiree Horton’s second novel is filled with blood, a taste of the beautiful outdoors, and a lot of snark. I fell in love with her main character, Vick, the female forest ranger who will not put up with any […]

The post Book Review: OF TEETH AND PINE first appeared on Hellnotes.




vi

Book Review: WICKED ABANDONED

Wicked Abandoned A New England Horror Writers Anthology Edited by Rob Smales and Scott T. Goudsward Published by Wicked Creative, LLC  (September 25, 2024) Reviewed by Carson Buckingham All I have to say is that New England sure grows a bunch of great writers! Wicked Abandoned is one of the best anthologies I’ve read in […]

The post Book Review: WICKED ABANDONED first appeared on Hellnotes.




vi

Fancy Having A Go?

The MoJ's planning for recruitment to the bench is no better than their usual planning, unfortunately. When I was sworn in in 1985 I became one of about 29,000 JPs in England and Wales; today the Bench is more like 19,000 strong, the drop being largely due to the increase in out-of-court disposals such as fixed penalties and cautions. In the meantime numbers have gone up and down, and during the years of amalgamating benches just over five years ago there was a virtual freeze on recruitment for some time. Now the system is struggling to recruit enough JPs to do the job. Nowadays, the biggest obstacle is the reluctance of many employers to allow JP employees time off. This even applies to public services such as the fire brigade, who used to be known for being relatively generous with time off for public service, but are now more niggardly.

I shall not fill the blog with the minutiae of how to apply, because the website  (www.gov.uk)  is very good, but I can say that if you are even slightly interested in the justice system you should consider applying. I wouldn't have missed it for the world, and your chances are probably better than you would expect




vi

Capital of Texas Triathlon Preview

Monday I'm going to be running in the 25th Capital of Texas Triathlon!  It's my first triathlon (Olympic distance) in twenty years and I'm pretty jazzed.

Steely-eyed determination 20 years ago. :-)

One of the great things about triathlons (and running races in general) is that you get to occupy unusual spaces: the last ones I did were Leon's Triathlon in Hammond, Indiana, a couple of Bud Light triathlons and others in Chicago. Leon's had a swim in Wolf Lake (shudder), followed by a cycle leg on an elevated highway that ran past the old U.S. Steel plant, and a run leg through an industrial downtown.  The Chicago ones were on the lakefront, just north of Navy Pier, with a bike on Lake Shore Drive and a run along the lake.

2013 CapTexTri
The CapTexTri also has a great location in downtown Austin, with a 1.5k swim in Lady Bird Lake; a 40k (24.8 mile) bike on a quadruple loop through downtown Austin, including Congress Avenue and Cesar Chavez; and a 10k (6.2 mile) run through Zilker Park.

The only thing I'm not too keen on is the bike route, since it requires you to do the same loop four times with a bunch of corresponding hairpin turns.  I don't like loop routes because I always think of how many more times I have to do the thing...Still, going up and down Congress Avenue without any cars is going to be pretty cool. As long as there are no poles in the middle of the road, I should be okay. :-).

Don't ask.

I feel fairly good about my training.  I've maintained good running mileage after the Austin Marathon and Austin Distance Festival and got some good workouts in even while traveling doing school visits.
On Stone Arch Bridge in Minneapolis
The swim is probably my weakest event -- I could stand to do more work on technique and probably do more open water swimming, but the distance won't be an issue.  Also, Lady Bird Lake isn't going to have waves (I seem to recall a couple of triathlons in Chicago with 3-4 foot waves on Lake Michigan (and this was on the near side of the breakwater).  Also, I won't have to deal with a wet suit.  My biggest concern is to not get kicked in the face. :-).
Lady Bird Lake during 2013 CapTexTri
The bike I'm feeling good about as well.  I'll be using the bike I used for my triathlons back in the day - a Trek 1000 I bought when I was in grad school for $450 (a guy at one bicycle shop here tried to sell me a new one, asking if I had a "nostalgic attachment" to it.). I do, but I also don't think a new bike is going to drastically transform my performance.  At least not $2000 worth :-). (A guy at another bike shop told me the Trek 1000 was his first road bike and he wished he still had it.  It's possible he was being kind :-)).

Tomorrow is packet pick-up, bike drop-off, and a chance to scope out the transition area, which I'll need because I can't see without my glasses...:-)

Oh, well.  Qapla!















vi

Serendipity, a super-Jupiter, and saving VIPER

This was a big week in space, from Curiosity stumbling upon sulfur crystals to an exoplanet discovery and a major advocacy effort.




vi

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.




vi

Upgrade for Member Services System

The Planetary Society is upgrading systems that will offer us many new capabilities and features that will enhance your membership experience.




vi

Schmidt Bros. Carbon Carving Set




vi

2026 Cadillac Vistiq Electric SUV



  • SUVs & Trucks

vi

Christmas serving board in progress.

Christmas serving board in progress.




vi

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]





vi

Why Virat Kohli, Jasprit Bumrah were missing from Perth nets; India ramp up privacy amid Manchester United-like security - Hindustan Times

  1. Why Virat Kohli, Jasprit Bumrah were missing from Perth nets; India ramp up privacy amid Manchester United-like security  Hindustan Times
  2. Virat Kohli in focus: Intense net session begins for upcoming Test series against Australia  The Times of India
  3. Virat Kohli in Australia for BGT: A timeline  India Today
  4. Black veil of secrecy: India begin training in privacy in Perth  ESPNcricinfo
  5. India to play intra-squad warm-up match at WACA on Friday ahead of Australia Tests but BCCI denies public viewing  Hindustan Times





vi

evil stu

Today on Married To The Sea: evil stu


This RSS feed is brought to you by Drew and Natalie's podcast Garbage Brain University. Our new series Everything Is Real explores the world of cryptids, aliens, quantum physics, the occult, and more. If you use this RSS feed, please consider supporting us by becoming a patron. Patronage includes membership to our private Discord server and other bonus material non-patrons never see!




vi

virus old thin

Today on Married To The Sea: virus old thin


This RSS feed is brought to you by Drew and Natalie's podcast Garbage Brain University. Our new series Everything Is Real explores the world of cryptids, aliens, quantum physics, the occult, and more. If you use this RSS feed, please consider supporting us by becoming a patron. Patronage includes membership to our private Discord server and other bonus material non-patrons never see!




vi

what kind of vision

Today on Married To The Sea: what kind of vision


This RSS feed is brought to you by Drew and Natalie's podcast Garbage Brain University. Our new series Everything Is Real explores the world of cryptids, aliens, quantum physics, the occult, and more. If you use this RSS feed, please consider supporting us by becoming a patron. Patronage includes membership to our private Discord server and other bonus material non-patrons never see!






vi

It's Even Just as Environmentally Friendly!

Though it's considerably less sanitary.




vi

Mad Science Monday: Never Visit The Dentist Again

I think the next logical step is a pulled-tooth via skydiving.

~NSHA




vi

A Lesson in Moving

When the thing you're trying to move is bigger than the car you're trying to move it with, you might run into a few problems!

... and by "problems," I mean "other cars."




vi

The Hardest Part About Moving into 2014

Prepare to make this fix a lot.




vi

USC football placed on 1 year of probation, fined for coaching staff violations

Southern California’s football program has been fined $50,000 and placed on probation for one year by the NCAA because of multiple violations of coaching staff rules over two seasons




vi

Lakers' Anthony Davis says his eye is fine, declines to wear goggles

Los Angeles Lakers star Anthony Davis says he has recovered from being poked in the left eye by Toronto’s Jakob Poeltl, and his latest eye injury still hasn’t persuaded him to wear protective goggles




vi

Alabama's Ryan Williams on Travis Hunter winning Biletnikoff: 'I can't let him do that'

In an interview on FOX Sports' "All Facts, No Brakes," Alabama stars Ryan Williams and Jaylen Mbakwe shared why they stayed after Nick Saban's retirement and their thoughts on Travis Hunter.




vi

Providence's Oswin Erhunmwunse throws down a POWERFUL two-hand dunk vs. Hampton

Providence Friars' Oswin Erhunmwunse threw down a powerful two-handed dunk against the Hampton Pirates.




vi

Deion Sanders compares Shedeur and Travis’ chemistry to Michael Irvin and Troy Aikman | Speak

Deion Sanders talks about the strong chemistry between Shedeur Sanders and Travis Hunter, comparing it to the connection Michael Irvin had with Troy Aikman during their playing days.




vi

Deion Sanders argues why Travis Hunter is a Heisman front-runner this year | Speak

Deion Sanders argues why Travis Hunter is a top contender for the Heisman this year, highlighting his unique talent and impact on Colorado’s success.




vi

Bensley Joseph finds Corey Floyd Jr. for a TOUGH ALLEY-OOP dunk as Providence leads 47-43 vs. Hampton

Providence Friars' Bensley Joseph found Corey Floyd Jr. for a tough alley-oop dunk against the Hampton Pirates.




vi

Michael Irvin asked Deion Sanders about coaching the Cowboys | Speak

Michael Irvin asks Deion Sanders about the possibility of coaching the Dallas Cowboys, sparking a funny moment and laughter.




vi

John Hugley IV records a NASTY block to help Xavier hold on to 40-25 lead at halftime vs. Jackson State

John Hugley IV recodrded a NASTY block to help Xavier hold on to 40-25 lead at halftime vs. Jackson State




vi

Dailyn Swain takes it coast-to-coast for an UNREAL jam to extend Xavier's lead over Jackson State

Dailyn Swain took it coast-to-coast for an UNREAL jam to extend the Xavier Musketeers' lead over Jackson State. 






vi

This Bizarre Instagram Account Inserts Donald Trump Into Your Favorite Movies

Trump In Cinema is dedicated to displaying some of movie history's best moments with Donald Trump at the center of them. Some of these photoshops are too perfect. Others as just... troubling.