Chris Bohn's Avatar

Chris Bohn

@docbohn.bsky.social

Professional Thinker. Often thinking about #AirPower, #ComputerScienceEducation, nerdy stuff, or #alpacas & #chickens. Maybe all at once. @DocBohn@techhub.social

559 Followers  |  483 Following  |  2,075 Posts  |  Joined: 18.10.2023  |  1.5408

Latest posts by docbohn.bsky.social on Bluesky

Video thumbnail

Good morning

#GoodMorning #alpacas

07.12.2025 12:21 β€” πŸ‘ 6    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
A rooster and six hens perch on a branch in their run.

A rooster and six hens perch on a branch in their run.

Good morning

#GoodMorning #chickens πŸͺΆ

06.12.2025 12:15 β€” πŸ‘ 10    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

What I'm wondering is why FIFA is awarding a thingamajob that has hands touching a round object.

06.12.2025 01:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Two hens in their run. One stands near a window, and the other perches on an old ladder that has been converted into, well, perches.

Two hens in their run. One stands near a window, and the other perches on an old ladder that has been converted into, well, perches.

Good morning

#GoodMorning #chickens πŸͺΆ

05.12.2025 12:02 β€” πŸ‘ 11    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Many years ago I went into the clinic for a wound check (just below the elbow) after I'd popped some stitches. After removing the bandaging, the med tech turned several shades of green. A few minutes later, I learned from the flight surgeon that it was because she was not prepared to see the bone.

05.12.2025 02:37 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Rebound library copies of Kernighan and Plauger's "The Elements of Programming Style" and "The Elements of Programming Style, 2nd edition".

Rebound library copies of Kernighan and Plauger's "The Elements of Programming Style" and "The Elements of Programming Style, 2nd edition".

I've got my reading material for the winter break.

#AcademicSky #CompSky #ComputerScienceEducation

04.12.2025 19:39 β€” πŸ‘ 6    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Six alpacas wearing orange coats, outside their barn. The sky is darkening, and some stars in the Big Dipper are visible. The corral is snow-covered.

Six alpacas wearing orange coats, outside their barn. The sky is darkening, and some stars in the Big Dipper are visible. The corral is snow-covered.

Good morning

#GoodMorning #alpacas

04.12.2025 12:01 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Nothing has gone rwong yet.

03.12.2025 12:26 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Two roosters and four hens sitting on a perch in their coop.

Two roosters and four hens sitting on a perch in their coop.

Good morning

#GoodMorning #chickens πŸͺΆ

03.12.2025 12:06 β€” πŸ‘ 12    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Good morning

#GoodMorning #alpacas

02.12.2025 11:57 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Alpacas staring at a hen who is nesting in a hay feeder.

Alpacas staring at a hen who is nesting in a hay feeder.

She sΜΆtΜΆaΜΆnΜΆdΜΆsΜΆ sits accused of wanton nesting in someone else's lunch.

01.12.2025 12:01 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

Good morning

#GoodMorning #chickens πŸͺΆ

01.12.2025 11:48 β€” πŸ‘ 12    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

I named my fists Masters and Johnson because...

um, never mind.

01.12.2025 03:22 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

There was a bill in our state's legislature a couple of years ago that would have required schools to hold a student back if the parent/guardian requested it. It didn't make it to a floor vote.

30.11.2025 16:37 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Good morning

#GoodMorning #alpacas

30.11.2025 12:10 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
A kiln

A kiln

CupFactory

30.11.2025 04:22 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

There's nothing quite like an imminent deadline (ahem) to focus your attention on the problem at hand.

30.11.2025 04:03 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Many years ago (and I don't recall what precipitated this question) someone asked me what I'd do if I fell out of an airplane without a parachute.

"I'd enjoy the ride down." That earned me a funny look. "I really enjoy solving problems. I'll probably try to solve the problem of generating lift."

30.11.2025 04:01 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

Good morning

#GoodMorning #chickens πŸͺΆ

29.11.2025 12:16 β€” πŸ‘ 10    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Five alpacas in their pasture. Three are kushed, and two are grazing. A maple tree devoid of leaves fills the foreground.

Five alpacas in their pasture. Three are kushed, and two are grazing. A maple tree devoid of leaves fills the foreground.

Good morning

#GoodMorning #alpacas

28.11.2025 11:58 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
a man and a girl are standing next to each other and the girl is crying and the man is saying mostly . Alt: Scene from "Aliens", in which Newt tells Ripley that the monsters mostly come out at night. "Mostly."

The special ingredients mostly run out at night.

28.11.2025 02:33 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Good morning

#GoodMorning #chickens πŸͺΆ

27.11.2025 11:58 β€” πŸ‘ 16    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
a man with gray hair and a mustache says " you 're an inhuman monster " Alt: Grandpa Joe from the Gene Wilder version of "Willy Wonka and the Chocolate Factory" (okay, technically, that's the only version named "Willy Wonka and the Chocolate Factory") saying, "You're an inhuman monster!"
26.11.2025 14:16 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

How interestifying

26.11.2025 12:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Good morning

#GoodMorning #alpacas

26.11.2025 12:06 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Therac 25 has entered the chat

26.11.2025 04:27 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Post a famous bathroom scene

26.11.2025 04:19 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Returning the favor...

bsky.app/profile/docb...

25.11.2025 15:37 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I discovered a couple of interesting things while preparing this demo -- `timspec_get()` provides microsecond-precision timing on my Mac (my department's Linux server provides nanosecond-precision timing), and my Mac doesn't have 4KB pages (the Linux server, unsurprisingly, does have 4KB pages).

25.11.2025 15:35 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
constexpr size_t SIZE_OF_PAGE = 16 * 1024;

static uint8_t volatile array[128 * SIZE_OF_PAGE];

static inline long long get_nanoseconds(struct timespec timestamp) {
    return 1000000000LL * timestamp.tv_sec + timestamp.tv_nsec;
}

void load_page(void) {
    printf("Enter a character: ");
    unsigned char c = (unsigned char) getchar();
    uint8_t foo = array[c * SIZE_OF_PAGE];
}

void deduce_character(void) {
    struct timespec start, stop;
    unsigned char fastest_character = UCHAR_MAX;
    long long fastest_access_time = LLONG_MAX;
    for (unsigned char c = '\0'; c <= CHAR_MAX; c++) {
        timespec_get(&start, TIME_UTC);
        uint8_t foo = array[c * SIZE_OF_PAGE];
        timespec_get(&stop, TIME_UTC);
        long long access_time = get_nanoseconds(stop) - get_nanoseconds(start);
        printf(isgraph(c) ? "%4c" : "\\x%02x", c);
        printf(" :%12lld" "ns\n", access_time);
        if (access_time < fastest_access_time) {
            fastest_access_time = access_time;
            fastest_character = c;
        }
        fflush(stdout);
    }
    printf("\n\nYou entered: %c\n\n", fastest_character);
}

int main(void) {
    load_page();
    deduce_character();
    return 0;
}

constexpr size_t SIZE_OF_PAGE = 16 * 1024; static uint8_t volatile array[128 * SIZE_OF_PAGE]; static inline long long get_nanoseconds(struct timespec timestamp) { return 1000000000LL * timestamp.tv_sec + timestamp.tv_nsec; } void load_page(void) { printf("Enter a character: "); unsigned char c = (unsigned char) getchar(); uint8_t foo = array[c * SIZE_OF_PAGE]; } void deduce_character(void) { struct timespec start, stop; unsigned char fastest_character = UCHAR_MAX; long long fastest_access_time = LLONG_MAX; for (unsigned char c = '\0'; c <= CHAR_MAX; c++) { timespec_get(&start, TIME_UTC); uint8_t foo = array[c * SIZE_OF_PAGE]; timespec_get(&stop, TIME_UTC); long long access_time = get_nanoseconds(stop) - get_nanoseconds(start); printf(isgraph(c) ? "%4c" : "\\x%02x", c); printf(" :%12lld" "ns\n", access_time); if (access_time < fastest_access_time) { fastest_access_time = access_time; fastest_character = c; } fflush(stdout); } printf("\n\nYou entered: %c\n\n", fastest_character); } int main(void) { load_page(); deduce_character(); return 0; }

I just threw together a bit of code to demonstrate to my students the timing benefits of locality with respect to virtual memory pages.

godbolt.org/z/PP7PEzT9M

(I may or may not have been influenced by meltdownattack.com)

25.11.2025 15:35 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 1

@docbohn is following 20 prominent accounts