10 interesting stories served every morning and every evening.




1 526 shares, 31 trendiness

Home

FracturedJson is a fam­ily of util­i­ties that for­mat JSON data in a way that’s easy for hu­mans to read, but fairly com­pact. Arrays and ob­jects are writ­ten on sin­gle lines, as long as they’re nei­ther too long nor too com­plex. When sev­eral such lines are sim­i­lar in struc­ture, they’re writ­ten with fields aligned like a table. Long ar­rays are writ­ten with mul­ti­ple items per line across mul­ti­ple lines.

There are lots of set­tings avail­able to con­trol the out­put, but usu­ally you can ig­nore most of them. FracturedJson pro­duces nice-look­ing out­put from any set of JSON data au­to­mat­i­cally.

You can try it out with the browser for­mat­ter page. It’s also avail­able as a .NET li­brary, a JavaScript/Typescript pack­age, and a Visual Studio Code ex­ten­sion. See here for Python op­tions.

Here’s a sam­ple of out­put us­ing de­fault set­tings. See the Options page for ex­am­ples of what you dif­fer­ent set­tings do.

BasicObject”  : {

ModuleId”  : armor”,

Name”  : ”,

Locations”  : [

[11, 2], [11, 3], [11, 4], [11, 5], [11, 6], [11, 7], [11, 8], [11, 9],

[11, 10], [11, 11], [11, 12], [11, 13], [11, 14], [ 1, 14], [ 1, 13], [ 1, 12],

[ 1, 11], [ 1, 10], [ 1, 9], [ 1, 8], [ 1, 7], [ 1, 6], [ 1, 5], [ 1, 4],

[ 1, 3], [ 1, 2], [ 4, 2], [ 5, 2], [ 6, 2], [ 7, 2], [ 8, 2], [ 8, 3],

[ 7, 3], [ 6, 3], [ 5, 3], [ 4, 3], [ 0, 4], [ 0, 5], [ 0, 6], [ 0, 7],

[ 0, 8], [12, 8], [12, 7], [12, 6], [12, 5], [12, 4]

Orientation”: Fore”,

Seed”  : 272691529

SimilarArrays” : {

Katherine”: [“blue”, lightblue”, black” ],

Logan”  : [“yellow”, blue”, black”, red”],

Erik”  : [“red”, purple” ],

Jean”  : [“lightgreen”, yellow”, black” ]

SimilarObjects”: [

{ type”: turret”, hp”: 400, loc”: {“x”: 47, y”: -4}, flags”: S” },

{ type”: assassin”, hp”: 80, loc”: {“x”: 12, y”: 6}, flags”: Q” },

{ type”: berserker”, hp”: 150, loc”: {“x”: 0, y”: 0} },

{ type”: pittrap”, loc”: {“x”: 10, y”: -14}, flags”: S,I” }

Optionally, com­ments can be pre­served. Comments aren’t al­lowed by the of­fi­cial JSON stan­dard, but they’re ubiq­ui­tous, so it’s nice to have the op­tion. FracturedJson tries to keep the com­ments to­gether with what­ever el­e­ments they seem to re­late to.

* Multi-line com­ments

* are fun!

NumbersWithHex”: [

254 /*00FE*/, 1450 /*5AA*/ , 0 /*0000*/, 36000 /*8CA0*/, 10 /*000A*/,

199 /*00C7*/, 15001 /*3A99*/, 6540 /*198C*/

/* Elements are keen */

Elements”  : [

{ /*Carbon*/ Symbol”: C”, Number”: 6, Isotopes”: [11, 12, 13, 14] },

{ /*Oxygen*/ Symbol”: O”, Number”: 8, Isotopes”: [16, 18, 17 ] },

{ /*Hydrogen*/ Symbol”: H”, Number”: 1, Isotopes”: [ 1, 2, 3 ] },

{ /*Iron*/ Symbol”: Fe”, Number”: 26, Isotopes”: [56, 54, 57, 58] }

// Not a com­plete list…

Beatles Songs” : [

Taxman”, // George

Hey Jude”, // Paul

Act Naturally”, // Ringo

Ticket To Ride” // John

Most JSON li­braries give you a choice be­tween two for­mat­ting op­tions. Minified JSON is very ef­fi­cient, but dif­fi­cult for a per­son to read.

{“AttackPlans”:[{“TeamId”:1,“Spawns”:[{“Time”:0.0,“UnitType”:“Grunt”,“SpawnPointIndex”:0},{“Time”:0.0,“UnitType”:“Grunt”,“SpawnPointIndex”:0},{“Time”:0.0,“UnitType”:“Grunt”,“SpawnPointIndex”:0}]}],“DefensePlans”:[{“TeamId”:2,“Placements”:[{“UnitType”:“Archer”,“Position”:[41,7]},{“UnitType”:“Pikeman”,“Position”:[40,7]},{“UnitType”:“Barricade”,“Position”:[39,7]}]}]}

Most beau­ti­fied/​in­dented JSON, on the other hand, is too spread out, of­ten mak­ing it dif­fi­cult to take in quickly or to scan for spe­cific in­for­ma­tion.

AttackPlans”: [

TeamId”: 1,

Spawns”: [

Time”: 0,

UnitType”: Grunt”,

SpawnPointIndex”: 0

Time”: 0,

UnitType”: Grunt”,

SpawnPointIndex”: 0

Time”: 0,

UnitType”: Grunt”,

SpawnPointIndex”: 0

DefensePlans”: [

TeamId”: 2,

Placements”: [

UnitType”: Archer”,

Position”: [

41,

7

UnitType”: Pikeman”,

Position”: [

40,

7

UnitType”: Barricade”,

Position”: [

39,

7

FracturedJson tries to for­mat data like a per­son would. Containers are kept to sin­gle lines as long as they’re not too com­plex and not too long. If sev­eral suc­ces­sive in­line ar­rays or ob­jects are sim­i­lar enough, they will be for­mat­ted as a table.

AttackPlans” : [

TeamId”: 1,

Spawns”: [

{“Time”: 0, UnitType”: Grunt”, SpawnPointIndex”: 0},

{“Time”: 0, UnitType”: Grunt”, SpawnPointIndex”: 0},

{“Time”: 0, UnitType”: Grunt”, SpawnPointIndex”: 0}

DefensePlans”: [

TeamId”  : 2,

Placements”: [

{ UnitType”: Archer”, Position”: [41, 7] },

{ UnitType”: Pikeman”, Position”: [40, 7] },

{ UnitType”: Barricade”, Position”: [39, 7] }

FracturedJson uses four types of for­mat­ting: in­lined, com­pact mul­ti­line ar­ray, table and ex­panded.

When pos­si­ble, sec­tions of the doc­u­ment are writ­ten in­lined, as long as that does­n’t make them too long or too com­plex (as de­ter­mined by the set­tings). Complexity” refers to how deeply nested an ar­ray or ob­jec­t’s con­tents are.

{ UnitType”: Archer”, Position”: [41, 7] }

Use the set­ting MaxInlineComplexity to con­trol how much nest­ing is al­lowed on one line.

The next op­tion, for ar­rays, is to write them with mul­ti­ple items per line, across mul­ti­ple lines.

[19, 2], [ 3, 8], [14, 0], [ 9, 9], [ 9, 9], [ 0, 3], [10, 1],

[ 9, 1], [ 9, 2], [ 6, 13], [18, 5], [ 4, 11], [12, 2]

Use the set­ting MaxCompactArrayComplexity to con­trol how deeply nested items can be when arranged this way, or use -1 to dis­able this fea­ture.

If an ar­ray or ob­ject con­tains in­lin­e­able items of the same type, they can be for­mat­ted in a tab­u­lar for­mat. With enough room, all fields at any depth are lined up (and re­ordered if nec­es­sary).

Rect” : { position”: {“x”: -44, y”: 3.4 }, color”: [0, 255, 255] },

Point”: { position”: { y”: 22  , z”: 3} },

Oval” : { position”: {“x”: 140, y”: 0.04 }, color”: #7f3e96″ },

Plane”: { position”: null, color”: [0, 64, 64] }

...

Read the original on github.com »

2 516 shares, 28 trendiness

Human papillomavirus prevalence in first, second and third cervical cell samples from women HPV-vaccinated as girls, Denmark, 2017 to 2024: data from the Trial23 cohort study

Danish women vac­ci­nated with the 4-valent hu­man pa­pil­lo­mavirus (HPV) vac­cine (HPV types: 6/11/16/18) at age 14 in 2008 reached screen­ing age in 2017, al­low­ing as­sess­ment of long-term ef­fects on preva­lence, per­sis­tence and in­ci­dence of HPV in­fec­tions.

To ex­am­ine the HPV sta­tus of cer­vi­cal sam­ples over time among women vac­ci­nated as girls.

Between February 2017 and February 2024, resid­ual ma­te­r­ial from cy­tol­ogy-analysed sam­ples col­lected through the Trial23’ study, part of the na­tional screen­ing pro­gramme, was tested for HPV16/18 and non-vac­cine high-risk (HR) HPV types. Prevalence in first, sec­ond and third sam­ples, and per­sis­tence and in­ci­dence be­tween sam­ples were cal­cu­lated.

Over 7 years, 8,659 women pro­vided at least one sam­ple, 5,835 at least two and 2,461 at least three. In 7,800 vac­ci­nated women, HPV16/18 preva­lence was 0.4% (95% con­fi­dence in­ter­val (CI): 0.2–0.5), 0.3% (95% CI: 0.1–0.4) and 0.2% (95% CI: 0.0–0.4) in three con­sec­u­tive sam­ples. Prevalence of non-vac­cine HR HPV was 32% (95% CI: 31–33), 28% (95% CI: 27–29) and 31% (95% CI: 29–33). Persistence of HPV16/18 and non-vac­cine HPV among vac­ci­nated women was 40% and 53%. In ad­justed analy­ses com­par­ing vac­ci­nated vs un­vac­ci­nated women, in­ci­dence was sig­nif­i­cantly lower for HPV16/18 (adjusted rel­a­tive risk (aRR)

Our study pro­vides real-world ev­i­dence of sta­ble pro­tec­tion against HPV16/18 in­fec­tions in women vac­ci­nated as girls. Less in­ten­sive screen­ing seems rea­son­able un­til women vac­ci­nated with the 9-valent vac­cine reach screen­ing age, when screen­ing should be re­con­sid­ered.

...

Read the original on www.eurosurveillance.org »

3 451 shares, 24 trendiness

10 years of personal finances in plain text files

January 2026 will mark 10 years since I started stor­ing my per­sonal fi­nances in plain text files us­ing Beancount. Since January 2016, I’ve taken out about 30-45 min­utes every sin­gle month to down­load my monthly bank state­ments and im­port them into my Beancount ledger.

There’s a lot to talk about here, but let’s start with some fun num­bers!

10 years of fi­nan­cial trans­ac­tions is a lot of data! All in all, my ledger con­tains over 45,000 lines of Beancount en­tries spread across 16 plain text files. All of it is stored in a fi­nances di­rec­tory (version con­trolled) on my lap­top. Here’s a snap­shot:

❯ find . -name *.beancount” | xargs wc -l

4037 ./includes/2020.beancount

3887 ./includes/2018.beancount

27 ./includes/cash.beancount

4398 ./includes/2021.beancount

5531 ./includes/2019.beancount

5267 ./includes/2022.beancount

3287 ./includes/2017.beancount

5506 ./includes/2024.beancount

5606 ./includes/2023.beancount

1454 ./includes/2016.beancount

1089 ./includes/open/04-expenses.beancount

66 ./includes/open/03-income.beancount

11 ./includes/open/05-liabilities.beancount

37 ./includes/open/02-assets.beancount

1 ./includes/open/01-equity.beancount

4807 ./main.beancount

45011 to­tal

Running bean-query on main.bean­count tells me I have about 10,000 trans­ac­tions in to­tal, that in turn con­tain about 20,000 post­ings (in dou­ble-en­try book­keep­ing, one trans­ac­tion may have mul­ti­ple post­ings).

❯ uv run bean-query main.bean­count

Input file: Goel”

Ready with 12466 di­rec­tives (19743 post­ings in 9895 trans­ac­tions).

bean­query>

There are 1086 ac­counts in to­tal.

bean­query> se­lect count(*) from (select dis­tinct(ac­count));

coun

1086

… which does not mean that there are 1086 bank ac­counts. Accounts in Beancount are vir­tual, and you can cre­ate as many as you like. Imagine one ac­count for cat­e­go­riz­ing su­per­mar­ket spend­ing, one for track­ing your in­come, one for your Netflix sub­scrip­tion, and so on.

Next, there are about 500 doc­u­ments in the repos­i­tory.

❯ find doc­u­ments/ -name *.pdf” | wc -l

507

Beancount lets you at­tach doc­u­ments (e.g. re­ceipts or in­voices) to trans­ac­tions, that makes book­keep­ing very ef­fi­cient. I love the fact that when­ever I need to do my tax re­turns, I can just take a look at my Beancount ledger and find all the in­voices right there next to the rel­e­vant trans­ac­tion.

Lastly, in terms of post­ings, I started out with 715 in the year 2016, and the year 2023 was the busiest so far in terms of just the to­tal post­ings count.

bean­query> se­lect year(date), count(*) where year(date) < 2025 group by year(date);

year coun

2016 715

2017 1422

2018 1605

2019 2437

2020 1582

2021 2022

2022 2435

2023 2651

2024 2602

I wrote ear­lier that every month I take about 30-45 min­utes to im­port my fi­nan­cial trans­ac­tions into Beancount. What does that work­flow look like? I wrote an­other, much more de­tailed blog post about it a few years ago, but here’s a gist.

It starts with me log­ging in to my bank ac­count(s) to down­load my monthly state­ment(s) in CSV (CSV be­cause it’s much more pre­dictable to parse com­pared to PDF). I then run these CSV files through what’s called an importer”, that con­verts this CSV data into data struc­tures that Beancount un­der­stands. I then ap­pend all those ex­tracted en­tries into my cur­rent .beancount file (which is the main file con­tain­ing all my fi­nan­cial trans­ac­tions in plain text). I then go through each en­try one by one and make sure it’s bal­anced (in dou­ble-en­try book­keep­ing, all the post­ings in a trans­ac­tion must sum to zero, and not all post­ings/​trans­ac­tions that an im­porter out­puts are bal­anced). Some of that bal­anc­ing is man­ual and some of it is au­to­mated (e.g. the im­porter code can look at the trans­ac­tion’s de­scrip­tion and de­cide which ac­count it should go into, and bal­ance au­to­mat­i­cally). This last part (balancing) is where most of those 30-45 min­utes go.

Whenever a new year starts, I move all the trans­ac­tions from the past year into a

file and add an in­clude in the ac­tive

main.bean­count­file, mostly to avoid the main file from be­com­ing too long. Not that it would be an is­sue for Beancount, but just for the sake of read­abil­ity.

With such a work­flow, all my fi­nan­cial trans­ac­tions from the be­gin­ning of time are con­tained in a few plain text files in one di­rec­tory on my lap­top.

Beancount only pro­vides the foun­da­tions for work­ing with money, but it has no knowl­edge of what your bank state­ments look like. This is where the con­cept of an im­porter comes in. An im­porter is a (Python) class that takes in a bank state­ment of sorts (e.g. a CSV ex­port of your trans­ac­tions) and con­verts them into some­thing that Beancount can work with.

I live in Germany and my bank ac­counts are with German banks, so I had to write a few im­porters for a few dif­fer­ent banks, specif­i­cally bean­count-dkb, bean­count-ing,

bean­count-n26, and bean­count-com­merzbank. I closed out my Commerzbank ac­count a while ago, so I don’t main­tain that in­te­gra­tion any­more, but the first three li­braries are ac­tively main­tained (and used)!

My start with Beancount was a bit bumpy. The doc­u­men­ta­tion is very com­pre­hen­sive but as a new­comer, I found it tricky to get a grasp on the over­all work­flow. It took me some trial and er­ror to fig­ure things out and have that aha” mo­ment.

I fig­ured that if I found it tricky, maybe it’s tricky for oth­ers as well. So I wrote a short book to help new­com­ers get up and run­ning with Beancount eas­ily. If you’re in­ter­ested, here’s a link: https://​per­son­al­fi­nance­spython.com.

The feed­back on the book has been su­per pos­i­tive. It got men­tioned on Beancount’s

ex­ter­nal con­tri­bu­tions page, and the reader re­views have all been very en­cour­ag­ing!

Having all my fi­nances in a bunch of plain text files tracked in a git repos­i­tory feels in­valu­able to me. And hit­ting the 10 years mark on that al­most feels like a mile­stone.

Perhaps the nicest bit about all this is that this data is sit­ting on my own

ma­chine, not in some data cen­ter some­where else. All of it is in plain text files that I can open up in my ed­i­tor, and an­a­lyze us­ing the tools that the Beancount ecosys­tem gives me. All of it will out­live any app or ser­vice, and that, I feel, is why plain­text ac­count­ing is so pow­er­ful.

...

Read the original on sgoel.dev »

4 441 shares, 47 trendiness

POSSE

...

Read the original on indieweb.org »

5 376 shares, 24 trendiness

Power Cycles - media.ccc.de

The 39th Chaos Communication Congress (39C3) takes place in Hamburg on 27-30 Dec 2025, and is the 2025 edi­tion of the an­nual four-day con­fer­ence on tech­nol­ogy, so­ci­ety and utopia or­ga­nized by the Chaos Computer Club (CCC) and vol­un­teers. Congress of­fers lec­tures and work­shops and var­i­ous events on a mul­ti­tude of top­ics in­clud­ing (but not lim­ited to) in­for­ma­tion tech­nol­ogy and gen­er­ally a crit­i­cal-cre­ative at­ti­tude to­wards tech­nol­ogy and the dis­cus­sion about the ef­fects of tech­no­log­i­cal ad­vances on so­ci­ety.

...

Read the original on media.ccc.de »

6 357 shares, 18 trendiness

Parental controls aren't for parents

A few days ago, I found that a grown man had been tex­ting my twelve-year-old son on his kid-safe” Gabb phone. The man got my son’s num­ber through a chil­dren’s book chat on an app called GroupMe. Thankfully my wife and I dis­cov­ered the sit­u­a­tion and in­ter­vened be­fore any­thing bad hap­pened; but still it was sick­en­ing to dis­cover that on Christmas morn­ing, while our fam­ily was un­wrap­ping pre­sents next to the tree, some creep had been tex­ting my son: What did you get? Send pic­tures.”

How could we have let this hap­pen? How could we be such care­less par­ents?

But wait . . . had­n’t we done what we were sup­posed to do? We bought the kid-safe” phone. And we con­firmed GroupMe was on the Gabb approved apps” list, which, as I un­der­stand it, of­fers no so­cial me­dia or high-risk op­tions.” We did the safe things, right?

Maybe not. Turns out Gabb’s own blog ap­pears to in­clude GroupMe on a list of seven apps with

dan­ger­ous chat fea­tures, de­scrib­ing it as an app that opens the door to po­ten­tial dan­gers.” We were ap­par­ently sup­posed to find that warn­ing our­selves, some­where among Gabb’s 572 blog posts:

$ curl -s \

https://​gabb.com/​post-sitemap.xml \

| grep -oE https://​gabb\.com/​blog/[^

But if GroupMe opens the door” to dan­ger, why did Gabb put it on their approved apps” list? When I re­vis­ited the site, I no­ticed a small mes­sage be­neath GroupMe men­tion­ing Communication with Strangers. I hov­ered over it with my mouse pointer, and a tooltip ap­peared: Allows con­tact and com­mu­ni­ca­tion with peo­ple the child may not know.”

So it al­lows com­mu­ni­ca­tion with strangers, but it’s not high-risk?” The ap­proved list is­n’t look­ing so safe. The ap­proved list is ap­par­ently a cat­a­log of risks I’m sup­posed to de­ci­pher by fil­ter­ing through 838 apps and hov­er­ing my mouse pointer around to see tooltips:

$ for cat in \

ex­ist­ing_apps \

un­ap­proved_apps \

un­met_cri­te­ri­a_apps \

mu­sic_apps; do

count=$(curl -s https://​gabb.com/​app-guide/ \

| grep -o ${cat} = \[.*\]” \

| head -1 \

| sed s/${cat} = \[//” \

| sed s/\]//” \

| tr ,’ \n’ \

| sed s/’//g” \

| sed s/^ *//’ \

| sort -u \

| wc -l \

| tr -d ′ )

echo $count $cat”

done && echo …as of $(date +%B %d, %Y’)”

586 ex­ist­ing_apps

60 un­ap­proved_apps

170 un­met_cri­te­ri­a_apps

22 mu­sic_apps

…as of January 02, 2026

Whatever the rea­son for this com­plex­ity, I don’t feel in con­trol.

And Gabb is­n’t alone in mak­ing me feel like this. It seems like many com­pa­nies sell­ing tech to fam­i­lies op­er­ate in the same way: mar­ket safety, de­liver com­plex­ity, and leave par­ents to fig­ure it out.

Take the Nintendo Switch my son un­wrapped be­tween those creepy texts. To set it up, I had to:

Connect the con­sole to the in­ter­net

Download the Nintendo Switch Parental Controls app to my phone

Link my credit card and be charged $0.50 to ver­ify parental con­sent

Set up parental con­trols from the app on my phone

Sync the parental con­trols app to the Nintendo Switch

Set up a se­cu­rity PIN on the Nintendo Switch

Sync my son’s Nintendo Account to the Nintendo Switch

Discover that half the con­trols live in the phone app and the other

half live on Nintendo’s web­site, be­cause of course they do

Log into Nintendo’s web­site to fin­ish the job . . .

Only to dis­cover that there’s no clear op­tion to block in­ter­net ac­cess, no clear way to dis­able down­loads from the Nintendo eS­hop, and no easy way to make this thing func­tion like an old-school Game Boy and just let a kid have fun with a game car­tridge. But that’s just nos­tal­gia talk­ing. Nobody wants that any­more. Apparently.

Because next comes Minecraft. Ah, Minecraft. The game every mid­dle-schooler on earth ap­par­ently needs to sur­vive. To let my son play with his friends:

Create an email ad­dress for my son

Set up a gamertag for my son on ac­count.xbox.com

Now, I did my best to con­fig­ure these set­tings. I re­ally did. But xbox.com alone in­cludes twenty-nine con­fus­ingly over­lap­ping set­tings re­lated to chat, friends, and com­mu­ni­ca­tion. Twenty-nine.

And when I fi­nally—fi­nally—tried to test on­line play, Minecraft told me I would need to loosen the parental con­trols (it did not say which) and cre­ate a Nintendo Switch Online ac­count for my son.

Nintendo Switch Online (not re­ally an­other ac­count, mind you, but a mem­ber­ship) in­volves a re­cur­ring fee. It also un­locks ac­cess to the Nintendo eS­hop, which I can­not dis­able. I can set his eS­hop spend­ing limit to zero, sure. But I can’t block free down­loads. So to let my son play on­line Minecraft with his friends, I have to open him up to an un­re­lated store full of con­tent I can’t pos­si­bly eval­u­ate. That’s the deal. Take it or leave it.

I as­sume some mar­ket­ing per­son at Nintendo, prob­a­bly sit­ting in a con­fer­ence room in Kyoto, sur­rounded by white­boards cov­ered in ar­rows and car­toon stick fig­ures, has this en­tire process mapped out as a customer jour­ney.” And by Step 17, the jour­ney is sup­posed to be over. You’re sup­posed to be so beaten down, so ut­terly de­pleted of will, that you just cave. You sign up for Nintendo Online. You dis­able a bunch of parental con­trols you don’t re­ally un­der­stand. You let your kid play his damn game. You be­come the ideal cus­tomer.

But I did­n’t cave. Instead, some­where on the thresh­old of Customer Journey Step 18, I found my­self grip­ping the Switch with both hands and imag­in­ing, quite vividly, what it would feel like to lift the Switch up, and bring it down over my knee. I could al­most hear the crack. Could al­most see that OLED dis­play splin­ter­ing into a thou­sand pieces. The lit­tle Joy-Cons skit­ter­ing across the floor. My son’s face. My wife’s face. The stunned si­lence.

I did not break the Switch.

What I did was an­nounce, in a voice louder than nec­es­sary, that no­body was to ask me about any­thing Minecraft-related on the Nintendo Switch for a min­i­mum of two weeks. My son could play Zelda: Breath of the Wild in­stead, which, thank you, de­vel­op­ers, thank you from the bot­tom of my heart, does­n’t ap­pear to in­volve any manda­tory on­line any­thing what­so­ever.

Here’s what I want: an off switch. A sin­gle set­ting that says this child can­not go on­line, com­mu­ni­cate with strangers, spend money, or down­load any­thing with­out my ex­plicit per­mis­sion.” Instead I get a maze, com­plex enough that when some­thing goes wrong, I’m at fault for a tooltip I did­n’t hover over, a blog post I did­n’t read, a sub­menu I did­n’t find. Maybe that’s by de­sign. Maybe it’s ne­glect. I don’t know.

What I know is this. My son just wants to play video games and talk to his friends. I just want to keep him safe. Somewhere be­tween those two things, I’m sup­posed to be­come an ex­pert in the con­vo­luted parental con­trol schemes of Gabb, Nintendo, Microsoft, and Xbox, while a stranger’s Christmas morn­ing texts sit in my son’s phone his­tory.

...

Read the original on beasthacker.com »

7 353 shares, 17 trendiness

Public Domain Day 2026 in Literature

Around the world, peo­ple cel­e­brate Public Domain Day on January 1, the day in which copy­right ex­pires on some older works and they en­ter the pub­lic do­main in many dif­fer­ent coun­tries.

In the U. S. Constitution, copy­right terms were meant to be very lim­ited in or­der to promote the Progress of Science and use­ful Arts.” The first copy­right act, writ­ten in 1790 by the found­ing fa­thers them­selves, set the term to be up to twenty-eight years.

But since then, pow­er­ful cor­po­ra­tions have re­peat­edly ex­tended the length of copy­right to pro­mote not the progress of so­ci­ety, but their profit. The re­sult is that to­day in the U. S., work only en­ters the pub­lic do­main ninety-five years af­ter pub­li­ca­tion—lock­ing our cul­ture away for nearly a cen­tury.

2019 was the year in which new works were fi­nally sched­uled to en­ter the pub­lic do­main, end­ing this long, cor­po­rate-dic­tated cul­tural win­ter. And as that year drew closer, it be­came clear that these cor­po­ra­tions would­n’t try to ex­tend copy­right yet again—mak­ing it the first year in al­most a hun­dred years in which a sig­nif­i­cant amount of art and lit­er­a­ture once again en­tered the U. S. pub­lic do­main, free for any­one in the U.S. to read, use, share, remix, build upon, and en­joy.

Ever since then, January 1 has been cel­e­brated as Public Domain Day, the day in which the next year’s crop of books, movies, mu­sic, and art­work grad­u­ates into the pub­lic do­main. At Standard Ebooks, we’ve pre­pared some of the year’s biggest lit­er­ary hits for you to read this January 1.

On January 1, 2026, books pub­lished in 1930 en­ter the U. S. pub­lic do­main.

This in­cludes leg­endary books by William Faulkner, Franz Kafka, Agatha Christie, and Langston Hughes. In ad­di­tion, The Maltese Falcon, per­haps the best-known noir book—and film—of all time, and books by Evelyn Waugh, Dorothy L. Sayers, and more, en­ter the U. S. pub­lic do­main, be­com­ing free for any­one in the U.S. to read, use, and re-use.

Our friends at the Public Domain Review have writ­ten about some other things that en­ter the pub­lic do­main this year, too.

These past few months at Standard Ebooks, our vol­un­teers have been work­ing hard to pre­pare a se­lec­tion of the books pub­lished in 1930 in ad­vance of Public Domain Day. We’re ex­cited to fi­nally be able to share these 20 new free ebooks with you!

Around the world, peo­ple cel­e­brate Public Domain Day on January 1, the day in which copy­right ex­pires on some older works and they en­ter the pub­lic do­main in many dif­fer­ent coun­tries.

In the U. S. Constitution, copy­right terms were meant to be very lim­ited in or­der to promote the Progress of Science and use­ful Arts.” The first copy­right act, writ­ten in 1790 by the found­ing fa­thers them­selves, set the term to be up to twenty-eight years.

But since then, pow­er­ful cor­po­ra­tions have re­peat­edly ex­tended the length of copy­right to pro­mote not the progress of so­ci­ety, but their profit. The re­sult is that to­day in the U. S., work only en­ters the pub­lic do­main ninety-five years af­ter pub­li­ca­tion—lock­ing our cul­ture away for nearly a cen­tury.

2019 was the year in which new works were fi­nally sched­uled to en­ter the pub­lic do­main, end­ing this long, cor­po­rate-dic­tated cul­tural win­ter. And as that year drew closer, it be­came clear that these cor­po­ra­tions would­n’t try to ex­tend copy­right yet again—mak­ing it the first year in al­most a hun­dred years in which a sig­nif­i­cant amount of art and lit­er­a­ture once again en­tered the U. S. pub­lic do­main, free for any­one in the U.S. to read, use, share, remix, build upon, and en­joy.

Ever since then, January 1 has been cel­e­brated as Public Domain Day, the day in which the next year’s crop of books, movies, mu­sic, and art­work grad­u­ates into the pub­lic do­main. At Standard Ebooks, we’ve pre­pared some of the year’s biggest lit­er­ary hits for you to read this January 1.

On January 1, 2026, books pub­lished in 1930 en­ter the U. S. pub­lic do­main.

This in­cludes leg­endary books by William Faulkner, Franz Kafka, Agatha Christie, and Langston Hughes. In ad­di­tion, The Maltese Falcon, per­haps the best-known noir book—and film—of all time, and books by Evelyn Waugh, Dorothy L. Sayers, and more, en­ter the U. S. pub­lic do­main, be­com­ing free for any­one in the U.S. to read, use, and re-use.

Our friends at the Public Domain Review have writ­ten about some other things that en­ter the pub­lic do­main this year, too.

These past few months at Standard Ebooks, our vol­un­teers have been work­ing hard to pre­pare a se­lec­tion of the books pub­lished in 1930 in ad­vance of Public Domain Day. We’re ex­cited to fi­nally be able to share these 20 new free ebooks with you!

A land sur­veyor known only as K. is sum­moned to a re­mote vil­lage to per­form some work for au­thor­i­ties in a nearby cas­tle. When the lo­cals in­form him that there has been a mis­take, K. con­tin­ues to try to make con­tact with the of­fi­cials in the cas­tle to com­plete his work, in the face of an in­creas­ingly-sur­real bu­reau­cratic night­mare. The Castle was in­com­plete at the time of Kafka’s death, and was pub­lished posthu­mously by his lit­er­ary ex­ecu­tor Max Brod. This 1930 trans­la­tion was the book that kick­started the English-speaking world’s in­ter­est Kafka’s uniquely op­pres­sive and mod­ernist style.

When an unloved lo­cal is mur­dered in the small rural town of St. Mary Mead, the lo­cal vicar takes up the case. But he soon finds him­self re­ly­ing on the help of his gos­sipy neigh­bor—an old spin­ster named Miss Marple. While this novel tech­ni­cally is­n’t Miss Marple’s first ap­pear­ance—she was fea­tured in a short story some years ear­lier—it is the first full-length story fea­tur­ing the homely sleuth who would go on to be­come one of Christie’s most beloved char­ac­ters.

Evelyn Waugh re­turns in this, his sec­ond novel, to de­liver an­other scathing, comic satire of high so­ci­ety. This time his tar­gets are the bright young things” of post-World-War-I England. Waugh deftly skew­ers their raunchy, rau­cus, Jazz-age lifestyle, as well as the mid­dle class pub­lic, who can’t seem to get enough of their gos­sip. As a tes­ta­ment to the nov­el’s stay­ing power, David Bowie used Vile Bodies as the pri­mary in­spi­ra­tion for his song Aladdin Sane.”

№ 13 in the Pulitzer Prize for Fiction Winners

se­ries.

Years of Grace fol­lows the life of Jane Ward, a rather un­so­phis­ti­cated young girl who comes of age in 1890s Chicago. Her fam­ily is up­per mid­dle class, and Jane finds her tra­di­tional, home­body na­ture be­ing pulled by the var­i­ous forces of am­bi­tion, cul­ture, and progress that swirl around her dur­ing the ef­fer­ves­cent decades at the turn of the cen­tury. We see her into late mid­dle age, where the world has been ripped apart by war, and with change ac­cel­er­at­ing faster and faster as an­other war looms on the hori­zon.

Miss Mole is a mid­dle-age house­keeper who has re­cently left the em­ploy of a wealthy ma­tron to work for the young fam­ily of a min­is­ter. The mother has re­cently passed, leav­ing the fam­ily strug­gling to man­age the house­hold—but luck­ily for them, Miss Mole is ex­actly the kind of ca­pa­ble, witty, and as­sertive leader they need. As they work on or­der­ing the house­hold, a shad­owy fig­ure from Miss Mole’s past weaves in and out of the nar­ra­tive. But what­ever hap­pened in Miss Mole’s his­tory can’t seem to put a damper on her bright, clever, and funny out­look.

The Faraway Bride con­cerns the Malinin fam­ily, shopown­ers in 1920s Manchuria who are struck by mis­for­tune when their store is raided by Red Army thugs. Their fa­ther re­calls that a friend owes him a debt of money that could save the fam­i­ly’s fi­nances—but the friend lives in Seoul, which lies at a gru­el­ing three week’s walk across the Korean moun­tains. The dif­fi­culty of the jour­ney does­n’t faze the two Malinin chil­dren, who ex­cit­edly em­bark on a quest to save the fam­ily. The novel is based on the story of Tobit from the Apocrypha, but its set­ting, and the re­sult­ing mish-mash of lan­guages and cul­tures, make for a de­cid­edly unique read.

How will hu­mankind, and the world, end? Geoffrey Dennis aims to an­swer that ques­tion in this sin­gu­lar work of semi-fic­tion. He ex­plores how prophe­cies and pre­dic­tions can twist the fate of hu­mankind, and how the progress of sci­ence and tech­nol­ogy can si­mul­ta­ne­ously lift hu­mans up, while mak­ing them sus­cep­ti­ble to con­trol by so­ci­etal and po­lit­i­cal in­ter­ests. Dennis’s con­clu­sions blend re­li­gion, sci­ence, and his­tory to cre­ate a unique book that strad­dles the line be­tween fact and fic­tion.

№ 1 in the Swallows and Amazons

se­ries.

Arthur Ransome, a jour­nal­ist in Manchester, was in­spired to write this chil­dren’s story of gen­tle ad­ven­ture while spend­ing a sum­mer teach­ing a friend’s chil­dren to sail in the Lake District. In it, the chil­dren of two fam­i­lies on rural va­ca­tions meet in the wilder­ness; one side sails the dinghy named the Swallow, and the other the dinghy Amazon. They soon join forces against the das­tardly Captain Flint,” who in re­al­ity is just a cranky old man try­ing to qui­etly write his mem­oirs in his house­boat. Their ad­ven­tures are a charm­ing tale that, by stay­ing firmly grounded in re­al­ity, com­pletely es­chews the tropes typ­i­cal of to­day’s chil­dren’s books.

Daphne du Maurier had a long and il­lus­tri­ous ca­reer writ­ing short fic­tion. This year, four of her short sto­ries en­ter the U. S. pub­lic do­main: The Lover,” The Supreme Artist,” Frustration,” and Indiscretion.” In her time, Du Maurier was of­ten cat­e­go­rized as a ro­man­tic nov­el­ist, a la­bel that frus­trated her to no end, be­cause her sto­ries have more in com­mon with the works of writ­ers like Wilkie Collins in that they ex­plore dark and sin­is­ter themes, of­ten tinged with a para­nor­mal fla­vor. Many of her works have since been adapted to film.

Cimarron was the best-sell­ing novel of 1930. Set in the lands of Oklahoma dur­ing the land rushes of 1889 and 1893, it fol­lows a young fam­ily try­ing to make a life for them­selves in a land be­set by scrab­bling set­tlers and out­raged na­tives. The fam­i­ly’s tra­jec­tory rises as the charis­matic pa­tri­arch founds a news­pa­per and set­tles lo­cal dis­putes, while the ma­tri­arch trans­forms from a faint-hearted Southern belle into a hard-eyed fron­tier­swoman and politi­cian. Though later seen as a paean to fem­i­nism, Ferber orig­i­nally in­tended the story to be a satire of American wom­an­hood. Its pop­u­lar­ity led it to be­ing pub­lished as an Armed Services Edition and sent to sol­diers on the front—the same for­tu­itous fate that graced The Great Gatsby—cementing its fame in the minds of a gen­er­a­tion.

Giant’s Bread is the first novel Agatha Christie wrote un­der a pen name, be­cause it dif­fered so much from her usual mys­tery fare that she wanted it to stand up to pub­lic scrutiny un­der its own mer­its and not on her rep­u­ta­tion. And stand up it did, as re­view­ers re­ceived it with glow­ing praise. The book fol­lows Vernon Deyre, a young Englishman and bril­liant mu­si­cian, from in­fancy to adult­hood be­fore and dur­ing the Great War. It ex­plores themes of love, sac­ri­fice, art, and ul­ti­mately, re­demp­tion.

Nancy Drew, young de­tec­tive, is on the case again when her friend’s in­her­i­tance of di­a­monds, worth forty thou­sand dol­lars, is stolen dur­ing a lunch. Her friend’s guardian is the prime sus­pect. Can Nancy un­cover the true crim­i­nal be­fore an in­no­cent per­son is locked away?Like many other Nancy Drew nov­els, this one was rewrit­ten in 1961 by a dif­fer­ent au­thor. This Standard Ebooks edi­tion fol­lows the 1930 text, writ­ten by Mildred Wirt Benson un­der the Carolyn Keene pen name.

...

Read the original on standardebooks.org »

8 321 shares, 57 trendiness

2026 will be my year of the Linux desktop

TL;DR: 2026 is go­ing to be The Year of The Linux Desktop for me. I haven’t booted into Windows in over 3 months on my tower and I’m start­ing to re­al­ize that it’s not worth wast­ing the space for. I plan to unify my three SSDs and turn them all into btrfs dri­ves on Fedora.

I’ve been merely tol­er­at­ing Windows 11 for a while but re­cently it’s got­ten to the point where it’s just ab­solutely in­tol­er­a­ble. Somehow Linux on the desk­top has got­ten so much bet­ter by not even do­ing any­thing dif­fer­ently. Microsoft has man­aged to ac­tively sab­o­tage the desk­top ex­pe­ri­ence through years of ac­tive dis­re­gard and spite against their users. They’ve man­aged to take some of their most rev­o­lu­tion­ary tech­no­log­i­cal in­no­va­tions (the NT ker­nel’s hy­brid de­sign al­low­ing it to restart dri­vers, NTFS, ReFS, WSL, Hyper-V, etc.) then just shat all over them with start menus made with React Native, con­trol-alt-delete menus that are ac­tu­ally just we­b­views, and forc­ing Copilot down every­one’s throats to the point that I’ve ac­ci­den­tally got­ten stuck in Copilot in a hand­held gam­ing PC and had to hard re­boot the de­vice to get out of it. It’s as if the in­ter­nal teams at Microsoft have had decades of lead time in shoot­ing each other in the head with pre­dictable re­sults.

To be hon­est, I’ve had enough. I’m go­ing to go with Fedora on my tower and Bazzite (or SteamOS) on my hand­helds.

I think that Linux on the desk­top is ready for the masses now, not be­cause it’s ad­vanced in a huge leap/​bound. It’s ready for the masses to use be­cause Windows has got­ten so much ac­tively worse that con­tin­u­ing to use it is an ac­tive detri­ment to user ex­pe­ri­ence and sta­bil­ity. Not to men­tion with the price of ram lately, you need every gi­ga­byte you can get and desk­top Linux lets you waste less of it on su­per­flu­ous bull­shit that very few peo­ple ac­tu­ally want.

At the very least, when some­thing goes wrong on Linux you have log mes­sages that can let you know what went wrong so you can search for it.

Facts and cir­cum­stances may have changed since pub­li­ca­tion. Please con­tact me be­fore jump­ing to con­clu­sions if some­thing seems wrong or un­clear.

...

Read the original on xeiaso.net »

9 307 shares, 21 trendiness

What you NEED to know before touching a video file

Skip to con­tent

You signed in with an­other tab or win­dow. Reload to re­fresh your ses­sion.

You signed out in an­other tab or win­dow. Reload to re­fresh your ses­sion.

You switched ac­counts on an­other tab or win­dow. Reload to re­fresh your ses­sion.

You must be signed in to star a gist

You must be signed in to fork a gist

Embed this gist in your web­site.

Save arch1t3cht/​b5b9552633567­fa7658deee5aec60453 to your com­puter and use it in GitHub Desktop.

Embed this gist in your web­site.

Save arch1t3cht/​b5b9552633567­fa7658deee5aec60453 to your com­puter and use it in GitHub Desktop.

What you NEED to know be­fore touch­ing a video file

Sign up for free

to join this con­ver­sa­tion on GitHub.

Already have an ac­count?

Sign in to com­ment

You can’t per­form that ac­tion at this time.

...

Read the original on gist.github.com »

10 305 shares, 42 trendiness

Was Daft Punk Having a Laugh When They Chose the Tempo of Harder, Better, Faster, Stronger?

Google harder bet­ter faster stronger bpm” and Google’s AI Overview” will tell you:

Daft Punk’s Harder, Better, Faster, Stronger” gen­er­ally sits around 123 BPM (Beats Per Minute), though some analy­ses find it slightly higher (like 123.48 BPM) or list dif­fer­ent BPMs in remixes/​work­outs, with ex­act fig­ures vary­ing slightly by source and ver­sion.

Spotify’s meta­data data­base, SongBPM, and most other on­line BPM data­bases list it at ex­actly 123.

But I think our hel­met-clad ro­bot friends might have been mak­ing a lit­tle joke that we’ve ap­par­ently all missed. The BPM of Harder, Better, Faster, Stronger is ac­tu­ally 123.45.

How do I know this? It so hap­pens that for over 10 years I’ve writ­ten an app called Tempi that shows the mu­sic BPM in real time, so I know a lit­tle bit about the sci­ence and al­go­rithms be­hind mu­sic tempo de­tec­tion.

Most tempo de­tec­tion soft­ware works ba­si­cally the same way:

* A spe­cial­ized al­go­rithm called the Fast Fourier Transform (FFT) col­lects over­lap­ping en­ergy lev­els at dif­fer­ent fre­quency bands.

* Those lev­els are re­fined into well-de­fined peaks that rep­re­sent rhyth­mic events in the track.

* Another al­go­rithm (autocorrelation) looks for pat­terns, or more ac­cu­rately pe­ri­od­ic­ity, in those peaks.

But these pat­terns are tricky be­cause there’s all kinds of noise, per­for­mance in­ac­cu­ra­cies, and rhyth­mic har­mon­ics throw­ing things off. All that is to say, a) it’s com­pli­cated and b) it’s not per­fectly ac­cu­rate.

When I make changes to my own sys­tem of course I need some way to know if it’s get­ting bet­ter or worse, so I have a test li­brary of hun­dreds of song snip­pets that I score it against. One of these songs is Daft Punk’s HBFS, and early on I no­ticed some­thing strange about that track.

Almost all elec­tronic mu­sic is synced to a se­quencer and so ob­vi­ously is go­ing to have a very steady tempo. But while the vast ma­jor­ity of elec­tronic mu­sic tracks I test have an integral” tempo — mean­ing their tempo is ex­actly some round num­ber like 95, and not a frac­tion like 95.2 — my soft­ware al­ways finds the BPM of HBFS to be some­where be­tween 123 and 124, but not ex­actly ei­ther. For years I’ve chalked this up to in­con­sis­ten­cies with my sys­tem and did­n’t think much of it. But lately I’ve made im­prove­ments to the sys­tem so that it’s much more ac­cu­rate and it now tells me the BPM of HBFS is 123.4.

And that got me think­ing, Hmm. Did these guys pick that tempo be­cause they have a sense of hu­mor? And if so, how far would they take it?”

To get to the bot­tom of this I needed to es­tab­lish what the BPM of HBFS re­ally is.

Here’s a Venn di­a­gram show­ing the over­lap be­tween hu­man and com­puter ca­pa­bil­i­ties in the dig­i­tal realm:

Computers can do al­most all computer-y” things (i.e. things that can be en­tirely done on a com­puter) MUCH bet­ter, faster, (and stronger?) than hu­mans. But for the time be­ing there re­main a few things that hu­mans can do very eas­ily which com­put­ers find dif­fi­cult. Along with count­ing traf­fic lights and cross­walks, one of those things is find­ing the ex­act BPM of a song. Not an es­ti­mate like most soft­ware does, but the ex­act value with ex­treme pre­ci­sion across the en­tire song. Anyone with a ba­sic sense of rhythm and an au­dio app can do this.

* Open the song in an au­dio app like Logic, Audition, Ableton, Reaper, ProTools, etc.

* Zoom in on the wave­form a lit­tle bit so you can see the shape of the beats.

* Find the first ob­vi­ous beat — mean­ing it has a well-de­fined wave­form peak — and the last ob­vi­ous beat. Let’s call these bookend” beats.

* Measure the ex­act du­ra­tion in sec­onds be­tween the book­end beats.

* Play the song and count all the beats start­ing at the first book­end beat and end­ing at the last book­end beat. (If you have an old school cal­cu­la­tor, an easy way to do this is type 1+1=” and then just keep tap­ping =” to add 1 on each beat.)

Then to get the ex­act tempo of the track, av­er­aged through­out the en­tire thing, use this for­mula:

bpm = 60 * (number_of_beats - 1) / du­ra­tion

Computers have a rough time of this be­cause they don’t re­ally know how to keep a beat”, and the al­go­rithms that can find the beat do a lot bet­ter when they al­ready know the es­ti­mated BPM, which is ob­vi­ously a chicken/​egg prob­lem.

For the first book­end beat in HBFS I used the first beat af­ter the whooshing” in­tro, at around 5.58s. The last book­end beat I used the last work” at about the 3:41.85 mark. (“Never” and Over” aren’t good can­di­dates be­cause you can’t see their wave­form peaks.)

That gives ex­actly 446 beats or 445 in­ter­vals.

I tried this with two dif­fer­ent copies of HBFS. The Discovery CD rip I have of the song has a du­ra­tion be­tween the book­end beats of 216.276, so:

bpm = 60 * 445 / 216.276 = 123.4499403556

The YouTube of­fi­cial au­dio” track I tested has a du­ra­tion of 216.282, so:

bpm = 60 * 445 / 216.282 = 123.4533651445

The orig­i­nal Discovery CD ver­sion has ob­vi­ously un­der­gone less pro­cess­ing over time than the YouTube ver­sion so I tend to think it’s more rep­re­sen­ta­tive, and it’s very close to 123.45 — only a 0.00005964 dif­fer­ence! But even the more mod­ern YouTube ver­sion closely rounds to 123.45.

So hope­fully I’ve put this fact to rest:

The BPM of Harder, Better, Faster, Stronger is 123.45.

The year is 1999 or 2000. Would the gear Daft Punk uses even sup­port frac­tional BPMs? And if so out to how many dec­i­mal places?

From their 2001 in­ter­view with Remix Magazine (archive.org) we know that Bangalter says:

Our se­quenc­ing is done ei­ther on an E-mu SP-1200, an Akai MPC, or a PC with Logic Audio soft­ware. We do not work on things in just one way.

And from later in­ter­views we know the Akai MPC was specif­i­cally an MPC-3000. (Oh, and that’s Emagic’s Logic, not Apple’s. Apple did­n’t ac­quire Emagic un­til 2002.)

Did the E-mu sup­port frac­tional BPMs? Yes, but only to 1 dec­i­mal place:

The Akai MPC-3000? Yep, also to 1 dec­i­mal place:

Oooh, look at that. Logic sup­ported BPMs to *4* dec­i­mal places.

But while we know those three se­quencers were used on the Discovery al­bum, I’m not sure any­one else knows which one was specif­i­cally used on HBFS. I’ve searched and searched and it seems this de­tail has just never been re­vealed.

And to con­fuse mat­ters more, in a 2013 in­ter­view with Time Magazine, Bangalter says:

So we’ve never ac­tu­ally made mu­sic with com­put­ers! [laughs] Neither Homework nor Discovery nor even Human After All were made with com­put­ers.

Was he con­tra­dict­ing him­self from 12 years be­fore? Or did he for­get? Or maybe it’s a ter­mi­nol­ogy thing?

That the CD ver­sion is so close to ex­actly 123.45 makes me think this was in­ten­tional. And if it was? Well played, ro­bots. You man­aged to leave a lit­tle Easter egg hid­ing in plain sight for 25 years.

...

Read the original on www.madebywindmill.com »

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

If you like 10HN please leave feedback and share

Visit pancik.com for more.