Fossils

May. 21st, 2025 08:33 pm
ysabetwordsmith: Cartoon of me in Wordsmith persona (Default)
[personal profile] ysabetwordsmith
Dexterity and climbing ability: how ancient human relatives used their hands

Scientists have found new evidence for how our fossil human relatives in South Africa may have used their hands. Researchers investigated variation in finger bone morphology to determine that South African hominins not only may have had different levels of dexterity, but also different climbing abilities.

Diversity is strength.

PSA, text taken from [community profile] thisfinecrew

May. 21st, 2025 06:58 pm
conuly: (Default)
[personal profile] conuly
The clowns running the FDA have proposed restricting access to covid vaccines, to people over 65 or who have certain medical conditions. There's a public docket for comments on the proposal.

Your Local Epidemiologist has a good post about the proposal, including that the people suggesting this know that nobody is going to do the placebo-controlled tests of new boosters they want to require.

Possible talking points include:

Families and caregivers wouldn't be eligible for the vaccine, even if they share a household, unlike the current UK recommendations.

Doctors, dentists, and other medical staff wouldn't be eligible either.

My own comment included that the reason I'd still be eligible for the vaccine is a lung problem caused by covid.

Seriously, this is just exhausting.

Birdfeeding

May. 21st, 2025 01:14 pm
ysabetwordsmith: Cartoon of me in Wordsmith persona (Default)
[personal profile] ysabetwordsmith
Today is cloudy and mild.

I fed the birds.  I've seen several sparrows and house finches, a catbird, and a phoebe

I put out water for the birds.

I set out the flats of pots and watered them.

EDIT 5/21/25 -- I did a bit more work outside.

I've seen a female cardinal.

EDIT 5/21/25 -- I potted up 2 pink-flowered 'Toscana' strawberries, each in its own pot.  I filled another pot with a purple-and-white striped 'Wave' petunia, a 'Dusty Miller' artemesia, and 2 white sweet alyssums.  I put these on the tall metal planter and tied them in place.

EDIT 5/21/25 -- We moved 2 bags of composted manure to the old picnic table.

I've seen a young fox squirrel.

EDIT 5/21/25 -- I potted up the last of the Shithouse Marigolds and Charleston Food Forest marigolds, each in its own pot.  These are the last of the ones I grew from seed.  All winter-sown pots sprouted at least one marigold, and many sprouted several.  That makes this a good approach to repeat.

EDIT 5/21/25 -- I sowed a pot with passionflower seeds.  No idea if they'll actually fruit here, but it's a host plant for multiple butterfly species who only need the leaves.  I've never tried to grow these before, and bought them on a whim when I saw the seed packet in a store, knowing that they are a valuable host plant.

I did a bit of work around the patio.

EDIT 5/21/25 -- I sowed two pots with nasturtiums

EDIT 5/21/25 -- I took pictures of the pots where I sowed seeds earlier.  Of the 10 pots of Little Bluestem that I sowed on 2/24/25, five of them sprouted healthy little clumps of grass.  I planted these five in one of the strips of the prairie garden.  While 50% is not a great success rate, it is a useful rate particularly with native plants that are expensive to buy in pots.

EDIT 5/21/25 -- I did a bit more work outside.

I've seen a mixed flock of sparrows and house finches along with several mourning doves.

As it is getting dark, I am done for the night.

Hard Things

May. 21st, 2025 12:25 pm
ysabetwordsmith: Cartoon of me in Wordsmith persona (Default)
[personal profile] ysabetwordsmith
Life is full of things which are hard or tedious or otherwise unpleasant that need doing anyhow. They help make the world go 'round, they improve skills, and they boost your sense of self-respect. But doing them still kinda sucks. It's all the more difficult to do those things when nobody appreciates it. Happily, blogging allows us to share our accomplishments and pat each other on the back.

What are some of the hard things you've done recently? What are some hard things you haven't gotten to yet, but need to do? Is there anything your online friends could do to make your hard things a little easier?

Penric and the Bandit now shipping

May. 21st, 2025 07:39 am
[syndicated profile] lois_mcmaster_bujold_feed
Updating myself further, I see this morning that "Penric and the Bandit" is now in-stock and shipping from Subterranean Press.

https://subterraneanpress.com/bujold-...

Uncle Hugo's and Dreamhaven here in Minneapolis should get their copies pretty soon.

Ta, L.

Ta, L.

posted by Lois McMaster Bujold on May, 21

FENRIR: Chapter 34

May. 21st, 2025 08:02 am
seawasp: (Default)
[personal profile] seawasp
Bad things had happened...
... were still happening, actually... ) 




Oh, yes. 



CodeSOD: Buff Reading

May. 21st, 2025 06:30 am
[syndicated profile] the_daily_wtf_feed

Posted by Remy Porter

Frank inherited some code that reads URLs from a file, and puts them into a collection. This is a delightfully simple task. What could go wrong?

static String[]  readFile(String filename) {
    String record = null;
    Vector vURLs = new Vector();
    int recCnt = 0;

    try {
        FileReader fr = new FileReader(filename);
        BufferedReader br = new BufferedReader(fr);

        record = new String();

        while ((record = br.readLine()) != null) {
            vURLs.add(new String(record));
            //System.out.println(recCnt + ": " + vURLs.get(recCnt));
            recCnt++;
        }
    } catch (IOException e) {
        // catch possible io errors from readLine()
        System.out.println("IOException error reading " + filename + " in readURLs()!\n");
        e.printStackTrace();
    }

    System.out.println("Reading URLs ...\n");

    int arrCnt = 0;
    String[] sURLs = new String[vURLs.size()];
    Enumeration eURLs = vURLs.elements();

    for (Enumeration e = vURLs.elements() ; e.hasMoreElements() ;) {
        sURLs[arrCnt] = (String)e.nextElement();
        System.out.println(arrCnt + ": " + sURLs[arrCnt]);
        arrCnt++;
    }

    if (recCnt != arrCnt++) {
        System.out.println("WARNING: The number of URLs in the input file does not match the number of URLs in the array!\n\n");
    }

    return sURLs;
} // end of readFile()

So, we start by using a FileReader and a BufferedReader, which is the basic pattern any Java tutorial on file handling will tell you to do.

What I see here is that the developer responsible didn't fully understand how strings work in Java. They initialize record to a new String() only to immediately discard that reference in their while loop. They also copy the record by doing a new String which is utterly unnecessary.

As they load the Vector of strings, they also increment a recCount variable, which is superfluous since the collection can tell you how many elements are in it.

Once the Vector is populated, they need to copy all this data into a String[]. Instead of using the toArray function, which is built in and does that, they iterate across the Vector and put each element into the array.

As they build the array, they increment an arrCnt variable. Then, they do a check: if (recCnt != arrCnt++). Look at that line. Look at the post-increment on arrCnt, despite never using arrCnt again. Why is that there? Just for fun, apparently. Why is this check even there?

The only way it's possible for the counts to not match is if somehow an exception was thrown after vURLs.add(new String(record)); but before recCount++, which doesn't seem likely. Certainly, if it happens, there's something worse going on.

Now, I'm going to be generous and assume that this code predates Java 8- it just looks old. But it's worth noting that in Java 8, the BufferedReader class got a lines() function which returns a Stream<String> that can be converted directly toArray, making all of this code superfluous, but also, so much of this code is just superfluous anyway.

Anyway, for a fun game, start making the last use of every variable be a post-increment before it goes out of scope. See how many code reviews you can sneak it through!

[Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!

(no subject)

May. 21st, 2025 05:19 am

May 21, 2025: Beware The [Illegible]

May. 21st, 2025 05:04 am
[syndicated profile] daily_illuminator_feed
A magnifying glass with paper Read me first! If you somehow missed the first three installments of Jean's great advice on making props, you can catch up here, here, and also here

Creating a good prop isn't just about displaying information; removing information can be important, too.

You can, of course, tear off part of your map. Scoring a line with the back of your scissors where you want it to tear will help with the control. You can print your map with water-soluble ink (aka an inkjet printer) and drip water on the parts you want to smear.

You can also burn it (in a very controlled way!), with nothing more than a black marker, a magnifying glass, and a sunny day: Draw your desired burned edge with the marker. Outside, use the magnifying glass to focus sunlight on the black line. Since it's black, it will heat up faster than the paper around it, giving much more controlled results than other methods. It's also considerably safer! I've never set my paper on fire doing this, which is more than I can say for dorking around with a lighter. (Do it on concrete anyway, just in case.)

The justification for having maps readily available in a fantasy world is simple: Maps are easy to print – much easier than books. Our would-be map printer simply does a woodcut of the map (more or less accurate, as the GM desires!) and uses it as a stamp; this requires a lot less precision than printing books, so long as they have access to a supply of proper ink. Your graphics software, if you're drawing on the computer as opposed to using paper and then scanning, might have a "woodcut" filter to give it the right look. Many civilizations, including that of ancient China (where this process was invented), have printed in this way.

Handouts and props really enhance a game. Try making some simple ones for your next session and see for yourself!

Jean Mcguire

Warehouse 23 News: The City Never Sleeps Because Of All The Action

There are a million stories in the city, and they're all exciting! GURPS Action 9: The City shows how you can add GURPS City Stats to your GURPS Action campaigns. It also features six sample cities to use with your own action-packed adventures. Download it today from Warehouse 23!
ysabetwordsmith: Damask smiling over their shoulder (polychrome)
[personal profile] ysabetwordsmith
Thanks to a donation from [personal profile] lone_cat, you can now read the beginning of "In the Heart of the Hidden Garden."  Lawrence and Stan look for their classrooms at the University of Nebraska-Omaha.

May 2025

S M T W T F S
    123
45678910
111213141516 17
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 22nd, 2025 03:23 am
Powered by Dreamwidth Studios