Compare commits

..

10 Commits

Author SHA1 Message Date
Neale Pickett e1996a975a Kaktovik post 2023-04-14 08:25:01 -06:00
Neale Pickett bc627a0db4 Merge branch 'main' of https://git.woozle.org/neale/homepage 2023-04-13 15:36:25 -06:00
Neale Pickett 038ad89c99 love boat 2023-01-30 17:54:04 -07:00
Neale Pickett 82116f9bce love boat 2023-01-30 13:21:33 -07:00
Neale Pickett 26e2cd5343 more love boat 2023-01-26 08:24:57 -07:00
Neale Pickett 0783df44ed Another episode of love boat 2023-01-24 17:54:14 -07:00
Neale Pickett d5841d0463 tone it down 2023-01-24 16:27:58 -07:00
Neale Pickett 4722d19e8f emphasis 2023-01-24 16:17:53 -07:00
Neale Pickett b36ef484d9 emphasis 2023-01-24 16:16:52 -07:00
Neale Pickett bd3e605e53 love boat, photography, fix images 2023-01-24 16:13:28 -07:00
22 changed files with 819 additions and 29 deletions

View File

@ -5,9 +5,13 @@ baseURL: https://woozle.org/
disablePathToLower: true disablePathToLower: true
languageCode: en-us languageCode: en-us
title: Neale Pickett title: Neale Pickett
uglyurls: true
enableGitInfo: true enableGitInfo: true
markup: markup:
goldmark: goldmark:
renderer: renderer:
unsafe: true unsafe: true
# This breaks inline images
#uglyurls: true

View File

@ -0,0 +1,138 @@
---
title: Photography
date: 2023-01-23
---
Downstairs, in our basement,
we have boxes and boxes of old photographs that we inherited.
We're not sure what's in the boxes:
we only have this vague notion that they're valuable,
because somebody spent time and money on them.
This is a really lousy situation for us to be in.
What are we supposed to do with these?
Could they be useful someday to our grandchildren?
Is this just the output of somebody's hobby,
with little to no value to anyone else?
How many generations must hang on to these before it's okay to discard them?
## Hobby photography over the years
My grandparents would get one photograph taken of the whole family,
maybe every 10-20 years,
if you were lucky enough to have a traveling photographer drop by your house.
So you cherished that photograph,
and you thought about your great-grandchildren seeing this marvel of modern technology.
Most of the photos we have from this era
have hand-written notes recording the year,
the location,
the people involved,
and maybe some additional context like
"this house was built by Peter and his father in 1885".
By the time my parents had disposable income,
you could get a camera for a reasonable amount of money.
The film cost money,
and getting prints developed cost money,
so they made sure everybody was lined up,
facing the camera,
and smiling,
before pressing the shutter button.
But because you could pop off 26 shots at a time,
and because the film would actually degrade if you didn't develop it quickly,
they took a lot more pictures.
They probably didn't have time to label all of them,
and anyway, that was just some dumb thing their parents did.
My generation saw digital cameras pop up
right around the time we were shopping for more expensive cameras.
You could see the photo you took immediately,
so people would take another shot when they saw that somebody had their eyes closed.
We started taking more candid snapshots,
and we didn't sweat it when we accidentally photographed a shoe or something.
We had to stop thinking of one photo as being a sort of investment:
you could take 20 photos and then just pick the best one,
and there was no difference in cost.
Then, we stopped picking the best one,
because we were busy.
## The problem with digital
These boxes of prints downstairs have outlasted every hard drive I've ever owned.
And as someone whose job is reverse-engineering undocumented file formats,
I am not holding my breath that in 500 years anyone will know what to do with a JPEG,
much less a JPEG on a FAT32 file system on a SATA hard drive.
In fact I am pretty confident that the time we're living in
will come to be seen as a dark age,
about which little is known,
because people stopped writing things in places that were easy to preserve.
We currently have 44,708 digital photos and videos: about 419 Gigabytes.
With a few exceptions of things I've scanned in from prints,
the oldest photos we have are from October 2000.
That's around 2000 photos every year,
once we had a baby and we really got going photographing every damn thing.
There's a multi-year gap before that,
and there are holes after October 2000,
because I accidentally deleted the wrong directory.
Photos I took before around 1998 are downstairs in one of those boxes of prints.
*I already have a dark age from losing digital records!*
## Getting this under control
Someday,
hopefully soon,
we're going to go through all 44,708 photos,
and file them away into a few categories:
1. Photos we're going to make physical copies of,
and place in an album,
with some sort of annotation about why it's significant.
2. Photos/Videos we're going to group together,
along with some sort of annotation about why that group is significant.
This might be a photo album,
or maybe just a directory or box.
3. Photos/Videos we're going not going to do anything special to,
with a note that these are "just in case",
without any special meaning,
and our progeny can feel okay throwing them out.
4. Photos/Videos we don't want to keep at all.
We're then going to have to sort through these hundreds of prints,
trying to decide
on behalf of our ancestors
why the photo was taken.
We'll have to file each one in the same categories.
At the end of this,
we'll have actual photo books,
with written text explaining what's significant.
I hope this leaves future generations with a better situation
than the context-free boxes of prints that we inherited!
## Why I'm doing this
I love this old silver-gelatin print
of my grandfather's entire family.
They're all gathered in front of their 900 square-foot house,
with my grandfather showing off the family's new bicycle.
Also in the photo are the family dog,
and their cow.
My hope is that
people in the future can pick up one of my albums,
spend a few minutes going through it,
and get a feel for what we looked like and how we lived.
They'll be encouraged to actually do that,
because of the *limited amount* of stuff,
the *easy interface* to viewing it (namely: posess eyes),
and the *context* I will have provided.
As a result of thinking about this for so long,
I've noticed I stopped taking so many pictures.
A lot of the pictures I do take are sent immediately and not stored:
my great-grandchildren don't really need to see this burrito,
or our dog on the table.
Maybe eventually I'll get back to storing only a few dozen photos per year,
and the future albums will be very quick to put together.

View File

@ -32,4 +32,4 @@ drivetrain. But the rest of the bike is solid. Hopefully it helps that I use the
front brake when I want to slow down in a hurry, no slamming back on the coaster front brake when I want to slow down in a hurry, no slamming back on the coaster
brake for me. brake for me.
![My Sladda](/assets/blog/Sladda.jpg) ![My Sladda](Sladda.jpg)

View File

@ -1,7 +1,6 @@
--- ---
date: "2022-09-04T00:00:00Z" date: "2022-09-04T00:00:00Z"
title: Lights! ... title: Lights! ...
url: blog/2022-09-04-lights/
--- ---
The kid has been gearing up to record an audition video for a dance company, The kid has been gearing up to record an audition video for a dance company,

View File

@ -0,0 +1,278 @@
---
date: 2023-01-24
title: "The Love Boat s02e01-e09"
---
My sister-in-law gave me a bunch of episodes of The Love Boat for some reason, so I'm watching them.
# Season 02, Episodes 01-02
The crew takes a trip to a deserted island only to discover it's inhabited by crazy
Gomez Addams (The Addams Family),
who takes them hostage at gunpoint and forces them to plan a surprise birthday party. They make plans to escape, but are thwarted by the arrival of a hurricane. An old lady inexplicably grows affection for the captor, and by the end of the double-episode plans the surprise party, then decides to stay behind and keep him company as she lives out the last few months of her terminal illness.
Meanwhile, Isaac the bartender manages to pull the wool over the eyes of a sexy model by having the crew talk him up like he's some rich successful dude. When she finds out he's the ship's bartender, she's angry, but, because she's a woman and therefore flighty, comes around to forgiving him after he takes responsibility for the safety of the passengers when the idiot acting captain doesn't. A love connection happens.
Finally, a woman who is a total jackass to her husband, during the hurricane on the island, confesses to him that the romance is gone, and she wants a real man. Her husband lowers his voice and makes up some stories about sleeping with a whole lot of women before he met her, and this somehow rekindles the romantic spark in their marriage.
# Season 02, Episode 03
## Julie's Dilemma
Julie, the cruise director, is expecting her parents on board. Turns out her father is
Mister Roper (Three's Company).
He and the Mrs let Julie know they're getting a divorce. Julie is pissed, but starts trying to hook them up with sexy singles on board. They don't like it and decide to get back together. Julie gets a compliment from her boss for hooking up two more people.
## Who's Who?
A TV censor winds up falling for a prude who passes out pamphlets about moral vices. They have a lot of stupid interactions where they try not to kiss, then they finally kiss and it's really traumatic for both of them. Then they discover they're roommates, and decide to get married. A whole lot of bedroom tomfoolery ensues, proving that even prudes like TV censors can find love, however unlikely.
## Rocky
A girl who wears baseball caps and sports jerseys befriends Danny Zuko's (Grease) nephew. She tries dressing up all girly for the boy, but he hates it. She decides to go back to presenting the way she's comfortable. Then they find out she's moving to his school district, and he asks her to a dance.
# Season 02, Episode 04
## The Man Who Loved Women
A dude dates three women at the same time and they find out, but decide he's a pretty okay dude.
## Oh, My Aching Brother
Some guy fakes a back injury but gives up the charade after a flaky woman with a torpedo bra shows interest in him.
## A Different Girl
A couple find out they both slept with someone else, but decide maybe that's okay.
The lady who played the wife put in a pretty stellar performance that the postproduction team
seems to have chosen to ignore.
When she tells her husband how excited she is that she's been offered a big promotion,
he tells her he'd prefer she stays at home.
> ... you'd be good at anything you tried. But the thing you're best at is being my wife.
> Boy do I brag about you to my buddies overseas.
> I told those guys you can cook up a Sunday dinner that would put the Ritz to shame,
> and that you've got a shape that makes Charlie's Angels look like Hogan's Heroes.
>
> ![a comically incredulous look from the wife](you-joking.jpg)
Of course, her incredulity that he'd respond this way
is brushed away immediately by editing.
# Season 02, Episode 05
## Julie's Aunt
The captain's uncle shows up and starts aggressively sexually harassing Julie (the cruise director). I'm talking like physical assault: grabbing her, throwing her to the ground, while the laugh track rolls on. She repeatedly seeks the help of her (men) co-workers, who are sympathetic but reluctant to intervene. Eventually she convinces Gopher to dress as her police inspector aunt to thwart his advances, which he does. Then the uncle starts harassing Gopher, but quickly repents when he realizes Gopher is a dude.
## Where Is It Written?
An author and his editor board the ship, with the editor's wife. The editor won't stop working, so the wife hangs out with the author instead. He keeps putting the moves on her, which she rejects. Eventually the editor notices, and they have a ridiculous fistfight which results in them all getting dumped into the pool. This convinces her that she actually still likes her wet blanket of a husband, and he agrees to stop working while on vacation, just as the vacation ends.
## The Big Deal
Some woman shows up with her dad and her dad's business partner. The dad's business partner lecherously eyes her and decides somehow that she's part of the business deal. She goes along with it because she wants her dad to succeed, but then she meets
Ponch (C.H.I.P.S.)
and realizes she still holds a candle for him from high school. Lecherous guy gets all jealous and I don't know what happens next because I stopped caring.
# Season 02, Episode 06
## The Witness
Mike Brady (The Brady Bunch)
was a witness to some heinous crime. He falls in love with some lady who also knows about the crime, and the crime weighs on him so much that their relationship is tortured and boring. Oh, snap! The murder victim was her brother! What are the odds?
## Mike and Ike
Isaac the Bartender recognizes a family (they're also black, of course). Turns out the three adults were in a doo-wop band together. The dad nows owns a bunch of car dealerships and can't stay off the phone long enough to hang out with his son. Isaac tries to convince the dad to spend time with his son. I actually like how Isaac was portrayed here, his character starts to show some depth.
## The Kissing Bandit
Miracle Max (The Princess Bride)
dresses up every night with a mask, cape, and fedora, and runs around the ship grabbing women and kissing them. Meanwhile there's a woman actually interested in him during the day, and he's skipping out on her to do his kissing rounds at night. This one actually made me laugh, a Love Boat first. Right until the crew decides to use Julie as "bait" to catch the kissing bandit. In hindsight, maybe sexual assault isn't all that funny.
The actress who played Julie wound up addicted to cocaine, and was one of the very first Hollywood people to openly admit they had a drug problem. They dropped her from the show, but she did make a full recovery right around the time The Love Boat ended its run.
# Season 02, Episode 07
## Ship of Ghouls (Story 1)
Some white lady is all self-conscious because she has a scar on her face.
## Ship of Ghouls (Story 2)
The owner of The House on Haunted Hill is an illusionist whose wife is upset that he can't leave his work behind.
## Ship of Ghouls (Story 3)
Some kid is worried that his dad might leave for a whole year again, which makes him a pathological liar.
Two stories intersect when the white lady is so upset about her scar that she decides to jump overboard.
The lying kid who cried wolf can't convince anybody he found her on the rail,
so he talks her down himself with a lie about how his mom committed suicide.
# Season 02, Episode 08
Julie's sporting a new hair style in this episode.
## Anoushka
Hot Lips Houlihan (M.A.S.H.)
boards the ship as a godless commie cruise director,
in some sort of east/west cruise staff exchange program.
She talks to Julie about the glass ceiling,
making this perhaps the first episode that passes the Bechdel test.
The doctor gets bored and wanders off.
Comrade Hot Lips asks Julie to do her hair and makeup,
then shows up to dinner looking sexy.
Suddenly the doctor wants to talk to her,
proving, I guess, that the doctor is a pig.
Comrade Hot Lips decides she's way more interested in the doctor
than her career, and she spends the rest of the episode pursuing him.
He proposes marriage at the end of the 3-day cruise,
but she has to go back to Russia.
## Accidental Cruise
Soupy Sales shows up drunk with his secretary.
Turns out they don't have tickets, they thought they were going to his apartment.
She confesses her love to him,
but he just wants her to take dictation.
I'm deeming this "Love Boat Plot #1":
man can't stay away from work.
Toward the end, she forcibly kisses him,
prompting the crew to use the word "assault" for the first time
this season.
## The Song is Ended
Susan/Sharon's older sister and her husband
take their first vacation without kids.
They run into the host of Family Feud,
and realize their marriage has failed.
But then the game show host sings a song,
and they decide to stick together.
The actors almost got a tear out of me.
Could just be Love Boat Fatigue though.
## A Time for Everything
Within 30 seconds it becomes clear the captain is a father to an orphaned love child.
The rest of the story proceeds to slowly reveal additional clues,
in case the viewer is an idiot.
The captain spends a lot of time staring off-screen as the camera zooms in.
Sometimes this triggers a flashback scene,
other times we just watch him staring.
Then the little girl leaves,
and the captain reads through a bunch of love letters he's kept from her mom.
Between this attempt at a tear-jerking ending,
and Hot Lips crying about having to go back to Russia,
this probably qualifies as "A Very Special Love Boat"
# Season 02, Episode 09
## Till Death Do Us Part
JJ (Good Times)
and
Vy (The Fresh Prince of Bel-Air)
board,
but it turns out she killed him by putting lighter fluid on his cole slaw,
and he's a ghost now.
JJ is pretty funny,
and Julie puts in some good supporting acting,
preteding JJ is invisible:
![Julie looking confused](who-you-talking-to.jpg)
JJ Tries to hook her up with
Barney Collier (Mission: Impossible)
and a bunch of other (black) guys.
But because she's having a conversation with a ghost,
she winds up saying all sorts of off-putting things to the (black) people
who keep coming up to her.
It's just that same joke,
repeated for 30 minutes,
and interspersed with JJ tossing out one-liners
that sidle right up next to being funny.
JJ gets all butthurt when she winds up actually liking Barney,
and tells her 2 years of mourning isn't enough.
But he has a change of heart
and pushes her down the stairs,
which causes Barney to propose.
## Chubs
Gopher's sister is on this cruise.
Seems she was fat when she was younger,
giving the crew an opportunity to make a bunch of fat jokes.
Ha ha! Fat jokes!
Anyway, she finally shows up,
and what do you know,
Gopher's sister is
Hot Mary Ingalls (Little House on the Prairie)!
Boy, is she hot!
And she's looking for some action!
She keeps trying to hook up with doc,
but he's put off because,
"you're 18 and you're Gopher's sister".
So the recurring character estableshed as
"mister casual hook-up" gives Hot Mary Ingalls a
lecture about holding out for true love.
## Maybe
Laurie Strode (Halloween)
and
her husband, "Sir Not Appearing In The Credits",
are annoyed when Laurie's parents show up.
Husband tries repeatedly to engage her,
but she's too busy being a jerk,
having decided that because her parents divorced,
she will too.
On seeing that her parents have made up,
Laurie decides not to divorce Husband after all.
## Locked Away
Mister Drummond (Diff'rent Strokes)
and
Marion Crane (Psycho),
Laurie's divorced parents,
get locked in a room together.
They *hate* each other.
Being locked in the same room forces them to finally work through their issues,
and they leave a happy couple again.
In earlier days,
I would have thought that
"doorknob came off, now you're locked in"
was pretty flimsy.
But recently I got to witness three teenagers
spend four days failing to open a vacation home's front door from the inside.
So maybe this isn't as ridiculous as I thought.

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1,95 @@
---
date: 2023-01-25
title: "The Love Boat s02e10"
---
I'm still watching The Love Boat.
I find it interesting that this is easier for me to stick with than Doctor Who.
# Season 02, Episode 10
It's thanksgiving on board the Pacific Princess!
And presumably off-board too.
At least, in the United States.
## Tony's Family
The ship engineer called in sick,
so they ask Tony to stay on another shift,
but he's mad because he was going to spend the holiday with his family.
So they're like, well, just bring them on board.
Womp womp, turns out he has six people in his family.
And Tony's mom brought a chicken.
Batten down the hatches, here come the immigrant jokes!
Actually, aside from the chicken thing,
this wasn't as bad as I expected.
Maybe I'm getting normalized to 1978 suburban America,
but I felt like most of the gags fell into two categories:
1. The chicken
2. Struggling to keep six people hidden from the captain
Anyway, they get discovered,
and the captain says they have to pay their fares,
so the crew offers to pool their money together to pay $1500 for everyone.
But then the young boy gives a dollar to a gambler from another story,
and God descends from the machinery.
The gambler returns with about $75 in coins from the slot machine,
and gives it to the family,
who uses it to pay off their $1500 debt in entirety.
## The Minister and the Stripper
A lady gets upset that her minister,
the captain from Airplane!,
falls for a stripper on the cruise,
and threatens to have him kicked out by the trustees or the board or something.
That means they're Presbyterian, I think?
I never could remember the intricacies of all the protestant governance structures.
Her husband threatens to leave her,
and she sees the errors of her ways,
deciding to use her influence in the governance body to defend the minister's decision.
Then the husband gambles a broke kid's last dollar,
turning it into about $75.
Costuming must have had fun with these two:
![big hair and intense makeup with a giant necklace](makeup.jpg)
![purple jacket, yellow puffy shirt, and giant bow tie](wonka.jpg)
This one struck me as actually still relevant today.
And the captain from Airplane! did a believable job as a minister.
I heard they cast well-known actors to "play it straight" in the Airplane! movies,
and boy howdy, this guy was a good casting decision.
## Her Own Two Feet
A newly-blind lady doesn't want to admit she's blind.
The ship's doctor convinces her husband that his doting and excuses
are making it difficult for her to face reality.
The husband abandons her in their room with a cane,
telling her he'll be in the lounge and he hopes she comes to meet him.
She steels her resolve and gets herself down the hall on her own.
I'll admit it: this one made me cry.
An episode of The Love Boat made me cry.
What the heck is wrong with me?
---
This show had a habit of hiring Hollywood stars from the 30s and 40s,
who weren't getting a lot of work due to their age.
They got some pretty impressive performances this way.
The "blind" lady was played by June Allyson:
a headliner, judging by posters from the films she starred in.
Her husband was played by Van Johnson, her frequent co-star.
(A previous release of this confused Van Johnson with Alan Young.)
Here's Van expressing... grief? asphyxiation?
I've decided to call it "the eyeroll of despair".
{{<video src="eyeroll-of-despair.mp4" text="A man has a distraught woman in his arms, in a comforting hold. His brow is furrowed, he is rolling his eyes, and his mouth is hanging open.">}}
I wonder how many takes they did of this?

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -0,0 +1,88 @@
---
title: The Love Boat s2e11
date: 2023-01-30
---
Season 2, Episode 11
This was the worst one yet.
## Mona of the Movies
Mona Maxwell (1940's Awooga-Babe Rhonda Fleming)
is met by a bumbling fan (frequent Johnny Carson guest Orson Bean).
For some reason,
she agrees to have dinner with him.
Then she cancels because she already agreed to have dinner with the captain,
which makes him mad.
She dances with him after dinner,
and they hit it off,
but she can't go to his cabin,
which makes him mad.
I can't keep up with this plot,
but toward the end,
I heard some of the coolest jazz fusion I've ever heard on a TV show.
Sounds almost like Spyro Gyra.
## Heads Or Tails
Two dudes won't stop harassing Julie,
who puts up with it good-naturedly.
I'd really like to see how the writers handle the men staff getting harassed.
Maybe one episode I'll get to see it.
Anyway, she agrees to have dinner with one of them and go dancing with the other,
demonstrating to the television audience how to talk to women.
They keep up with the harassment,
and Julie tries to teach them how to stop.
One of them convinces Julie he's hurt,
and she walks him to his room,
where he upgrades to full physical assault,
grabbing her and throwing her to the bed.
Gopher tells her "it was a harmless little joke",
and tries to convince her to give them yet another chance.
There's a scene where Julie actually stops putting up with everybody's crap,
and I was really rooting for her.
But next scene she's back to being a pawn, sigh.
At the end of the episode,
she takes them both out to dinner on land.
What the heck?
## The Little People
Oh boy.
Based on what I've heard about how Tattoo was written in Fantasy Island,
I'm expecting a lot of cringe from this.
Noodles MacIntosh (UHF)
and Lumpy (Star Wars Holiday Special)
show up with their son.
Every time anyone (including himself) says "little" or "small",
Noodles comments on it. Eugh.
The son immediately meets
Rhoda "Serial Killer Jr" Penmark (The Bad Seed),
who he recognizes from the elevator.
They're immediately smitten with each other.
Aaand that's the comic shtick, folks.
Noodles pointing out every time anybody says "short" or "little" or "small".
Rhoda finally sees mom and dad,
and appears to have some pretty serious prejudices.
The son can't handle it,
and breaks it off with her.
Then she runs into mom and dad in the bar,
and they inadvertently help her understand why being a jerk was off-putting.
Then everybody realizes who everybody else is.
They decide to get married,
and she says it's okay if their children are small,
concluding the 16-minute story arc.

View File

@ -0,0 +1,77 @@
---
date: 2023-04-14
title: Kaktovik numerals
scripts:
- kaktovik.mjs
draft: true
---
I just saw a Scientific American article about the recent inclusion in Unicode of the
[Kaktovik Numerals](https://en.wikipedia.org/wiki/Kaktovik_numerals),
a base-20 counting system invented in 1990 by schoolchildren in northern Alaska.
Let's do some counting!
<div class="flex wrap counter" data-min="0" data-max="19">
<div>
<h3 class="justify-center">Apple-inator</h3>
<button class="add" data-amount="-1">- 🍏</button>
<button class="add" data-amount="+1">+ 🍏</button>
</div>
<div>
<h3 class="justify-center">Apples</h3>
<div class="apples"></div>
</div>
</div>
Seems pretty easy, right?
I had it group apples in rows, so it's easier to visually see how many apples you have.
Let's use 🍊 instead of 🍏🍏🍏🍏🍏,
to make it even easier to see how many rows we have.
<div class="flex wrap counter" data-min="0" data-max="19">
<div>
<h3 class="justify-center">Apple-inator</h3>
<button class="add" data-amount="-1">- 🍏</button>
<button class="add" data-amount="+1">+ 🍏</button>
</div>
<div>
<h3 class="justify-center">Fruit</h3>
<div class="fruit"></div>
</div>
<div>
<h3 class="justify-center">Apples</h3>
<div class="apples"></div>
</div>
</div>
---
<div class="flex wrap counter" data-min="0" data-max="19">
<div>
<h3 class="justify-center">Apple-inator</h3>
<button class="add" data-amount="-1">- 🍏</button>
<button class="add" data-amount="+1">+ 🍏</button>
</div>
<div>
<h3 class="justify-center">Kaktovik</h3>
<div class="kaktovik justify-left"></div>
</div>
<div>
<h3 class="justify-center">Fruit</h3>
<div class="fruit"></div>
</div>
<div>
<h3 class="justify-center">Apples</h3>
<div class="apples"></div>
</div>
<div>
<h3 class="justify-center">Arabic</h3>
<div class="arabic justify-right"></div>
</div>
</div>
Can you see how
the number of left-and-right lines is the number of complete rows of apples,
and the number of up-and-down lines is the number of apples left?

View File

@ -0,0 +1,113 @@
const FruitNumerals = [
"", "🍏", "🍏🍏", "🍏🍏🍏", "🍏🍏🍏🍏",
"🍊", "🍊🍏", "🍊🍏🍏", "🍊🍏🍏🍏", "🍊🍏🍏🍏🍏",
"🍊🍊", "🍊🍊🍏", "🍊🍊🍏🍏", "🍊🍊🍏🍏🍏", "🍊🍊🍏🍏🍏🍏",
"🍊🍊🍊", "🍊🍊🍊🍏", "🍊🍊🍊🍏🍏", "🍊🍊🍊🍏🍏🍏", "🍊🍊🍊🍏🍏🍏🍏",
]
const KaktovikNumerals = [
"𝋀", "𝋁", "𝋂", "𝋃", "𝋄",
"𝋅", "𝋆", "𝋇", "𝋈", "𝋉",
"𝋊", "𝋋", "𝋌", "𝋍", "𝋎",
"𝋏", "𝋐", "𝋑", "𝋒", "𝋓",
]
function ToNumerals(numerals, n) {
let base = numerals.length
let its = []
if (n < base) {
return [numerals[n]]
}
while (n > 0) {
its.unshift(numerals[n % base])
n = Math.floor(n / base)
}
return its
}
function ToFruit(n) {
let its = ToNumerals(FruitNumerals, n)
let doc = new DocumentFragment()
for (let it of its) {
let row = doc.appendChild(document.createElement("div"))
row.classList.add("row")
row.textContent = it
}
return doc
}
function ToKaktovik(n) {
let its = ToNumerals(KaktovikNumerals, n)
return its.join("")
}
function ToApples(n) {
let doc = new DocumentFragment()
while (n > 0) {
let apples = Math.min(n, 5)
let row = doc.appendChild(document.createElement("div"))
row.classList.add("row")
row.textContent = "🍏".repeat(apples)
n -= apples
}
return doc
}
class Counter {
/**
* Initialize a counter element.
*
* This makes buttons active,
* and does an initial render.
*
* @param {HTMLElement} element
*/
constructor(element, n=1) {
this.element = element
this.n = n
this.min = Number(this.element.dataset.min) || 0
this.max = Number(this.element.dataset.max) || Infinity
for (let e of this.element.querySelectorAll("button.add")) {
let amount = Number(e.dataset.amount) || 1
e.addEventListener("click", e => this.add(e, amount))
}
this.render()
}
add(event, amount) {
let n = this.n + amount
n = Math.min(n, this.max)
n = Math.max(n, this.min)
if (n != this.n) {
this.n = n
this.render()
}
}
render() {
for (let e of this.element.querySelectorAll(".kaktovik")) {
e.textContent = ToKaktovik(this.n)
}
for (let e of this.element.querySelectorAll(".fruit")) {
while (e.firstChild) e.firstChild.remove()
e.appendChild(ToFruit(this.n))
}
for (let e of this.element.querySelectorAll(".apples")) {
while (e.firstChild) e.firstChild.remove()
e.appendChild(ToApples(this.n))
}
for (let e of this.element.querySelectorAll(".arabic")) {
e.textContent = this.n
}
}
}
function init() {
for (let e of document.querySelectorAll(".counter")) {
new Counter(e)
}
}
document.addEventListener("DOMContentLoaded", init)

View File

@ -1,20 +0,0 @@
---
title: Every Episode of Doctor Who
---
I'm going to try to watch every episode of Doctor Who, in order.
Then I'm going to write up what I think.
A few rules I'm setting out initially:
* It's okay to skip an episode if I just can't handle it.
* I don't have to write a big ol' treatise on each one.
* I fully understand I lack cultural and temporal context for a lot of this,
and I'm not going to feel bound to try and attain said.
* I will be viewing this though my personal biases.
* I may create more rules later on.
---
* [Season 1](season01.md) - December 2021
* [Season 2](season02.md) - December 2021

View File

@ -3,7 +3,6 @@ title: Grep Dict
description: runs grep on a list of English words; perfect for cheating on crossword puzzles description: runs grep on a list of English words; perfect for cheating on crossword puzzles
scripts: scripts:
- grepdict.js - grepdict.js
url: toys/grepdict/
--- ---
Ever wanted to run `grep` on `/usr/share/dict/words`, Ever wanted to run `grep` on `/usr/share/dict/words`,

View File

@ -1,7 +1,6 @@
--- ---
title: Printable Mastermind game title: Printable Mastermind game
description: A pocket-sized game you can play anywhere description: A pocket-sized game you can play anywhere
url: toys/mastermind/
--- ---
This is a printable, pocket-sized Mastermind game. This is a printable, pocket-sized Mastermind game.

View File

@ -5,7 +5,6 @@ scripts:
- starship.js - starship.js
headers: headers:
- <link rel="manifest" href="manifest.json"> - <link rel="manifest" href="manifest.json">
url: toys/starship/
--- ---

View File

@ -3,6 +3,7 @@
<head> <head>
<meta charset='utf-8'> <meta charset='utf-8'>
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
<link rel="me" href="https://teh.entar.net/@neale">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:regular,bold,italic"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:regular,bold,italic">
<!-- My stuff --> <!-- My stuff -->
<link rel="icon" type="image/png" href="{{"/assets/images/face.png" | relURL}}"> <link rel="icon" type="image/png" href="{{"/assets/images/face.png" | relURL}}">
@ -35,8 +36,7 @@
</head> </head>
<body> <body>
<h1 class="title">{{.Title}}</h1> <h1 class="title {{if .Draft}}draft{{end}}">{{.Title}}</h1>
<main id="content"> <main id="content">
{{ block "main" . }}{{end}} {{ block "main" . }}{{end}}
</main> </main>

View File

@ -35,6 +35,14 @@ input:read-only {
margin-top: 0; margin-top: 0;
box-shadow: 0.2em 0.2em 1em rgba(0,0,0,0.1); box-shadow: 0.2em 0.2em 1em rgba(0,0,0,0.1);
} }
.title.draft {
background-color: black;
color: orange;
}
.title.draft:after {
content: " (draft)";
font-style: italic;
}
.subtitle { .subtitle {
font-size: 60%; font-size: 60%;
@ -170,6 +178,9 @@ caption {
caption-side: bottom; caption-side: bottom;
font-size: small; font-size: small;
} }
.jistify-center {
text-align: center;
}
.justify-right, input[type="number"] { .justify-right, input[type="number"] {
text-align: right; text-align: right;
} }
@ -195,6 +206,16 @@ caption {
max-width: 100%; max-width: 100%;
} }
} }
.flex {
display: flex;
justify-content: space-around;
}
.flex.wrap {
flex-wrap: wrap;
}
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
html { html {
background-image: url("../images/bg-dark.jpg"); background-image: url("../images/bg-dark.jpg");