HN user

bombela

1,810 karma

{username}@gmail.com

Posts0
Comments709
View on HN
No posts found.

It turns out that another chemical reaction, known as carbonation, might also contribute to Roman concrete’s longevity.

Roman concrete was made lime cement (calcium dioxide); which cures via carbonation (hardens with carbon oxide). And adding pozzolan to lime makes it hydrolic (hardens with water). Is it surprising that it can still carbonate some? Modern concrete has steel which rust and crack concrete. You can use fiberglass rebar for longevity, or build without rebar even, but that is more costly and and less efficient.

And before any major change, add a `--v2` for early adopters and `--v1` as default. Nobody should notice anything on `--v1`, any regression must be fixed imediately. Flip `--v2` as default, leaving `--v1` for the unforseen. Until you can finally get rid of them.

This helps being as invisible as possible.

Click on the picture to open the full size version. Click history back to get back to the text.

I noticed I am afraid of clicking without opening new tab today because so many times the UX is broken and loses it's spatial position.

This is great. But this doesn't cover the general expectation of a desktop application.

I want application to know the screens, send windows to know positions etc etc. And this is now compositor specific. So some applications will know how to talk to the kde compositor to share the screen, or place a window at a specific position (very useful for so many things).

I use pinned (always above + on all workspace/desktop) quite often.

And to make it ergonomic I scripted kwin and set some shortcuts.

So yes, you can have any window PiP the way you like. But it requires you to do a long sequence of actions. Versus a single click for very specific PiP behavior.

Consider a window in a web browser tab. You could click the PiP button, which will pop out a tiny window, most likely already in a corner of the screen. This window is a mini video player. Your original browser tab stays untoucher, still at the same place in your web browser tab list, the rest of the tab still readable and scrollable etc etc.

Or, you could clone the tab. Move it to its own window. Locate the video. Put it in full screen. Un-fullscreen the window. Click on the pin button. Resize the window to the corner.

Same result, but not the same effort.

If you are going to be pedantic, go all the way. 2^21 is 0 to 2_097_151. Unicode codepoint range is 0 to 1_114_111, slightly more than 2^20 (0 to 1_048_575).

I would argue that Unicode v2 onward; circa 1991 (Unicode Consortium and the ISO/IEC working together); is what anybody knows as Unicode with the 0 to 1_114_111 codepoints easily manipulated as a 32 bit value.

I meant variable length encoding, RLE encodes a number of successive repetition indeed.

In summary, Unicode code points (characters) are 32 bit. JavaScript manipulates Unicode in utf-16 for historical reasons, because at some point before Unicode, 16 bit was deemed enough (ucs-2). utf-16 run length encodes Unicode 32 codepoints into one or two code units. Splitting in a middle of a codepoints produces one invalid half string, and one semantically different half string.

emojies are a sequence of Unicode codepoints producing a single grapheme. Splitting in the middle of a grapheme will produce two valid strings, but with some funky half baked emoji. So for a text editor it makes sense to split between grapheme boundaries.

Ah, only a single column for me. No ad blocker. The html source doesn't even include the word price! I must be getting a different page than you somehow.

I can click on the picture to get the details and volume pricing. The 300W model has no price and a minimum order of 30 units. So I thought it ended there.

But it recommends to check out https://www.powerstream.com/DC-PC-24V-400.htm where I ultimately found the add to cart for $300.

I hate soldering 2 months ago

I find SMD the easiest. Using a pinecil soldering iron, or a cheap hot air station. Then through hole, because it's annoying to hold and flip the PCB around without everything falling. And finally soldering two wires is just an exercise in frustration. Helping hands or not, it's just plain annoying.

Another option for simplicity in dual stack is to assign visually similar addresses:

    - ipv4: 192.168.0.42
    - ipv6: prefix:192:168:0:42
I only do this for static/server machines, configuring Linux with a fixed ipv4, and append the fixed ipv6 host to the Router Advertisement prefix.

The almost imperceptible sliding took me w while to find out too. My phone was always on the floor any time I wasn't watching it. And if it vibrated, it was all of a sudden in a hurry to plung off tables. Active obsolescence I am telling ya!

Every morning I had to wakeup fast enough before the vibrating alarm would have it jump off my bedside table.

Of course the back cracked quickly with the constant falling. It eventually met its demise during a bike accident. I landed on a tiny rock that pushed through my pocket, exploded the glass, and ultimately broke the charging circuitry. You could see the hole through the front glass! And it was still playing music. At least until the battery died.

I still got corrupted metadata with metadata raid1c3 on btrfs on a power loss. I never had this happen with ext4 alone or atop Linux raid.

I want to be clear that losing (meta)data in flight during a power loss is expected. But a broken filesystem after that is definitely not acceptable.

Some postgresql db endedup soft corrupted. Postgresql could not replay its log because btrfs threw IO errors on fsync. That's just plain not acceptable.

I had a metadata corruption in metadata raid1c3 (raid1, 3 copies) over 4 disks. It happened after an unplanned power loss during a simulated disk failure replacement. Since manual cleanup of the filesystem metadata (list all files, get IO errors, delete IO errored files), the btrfs kernel driver segfaults in kernel space on any scrub or device replacment attenpt.

Honestly the code of btrfs is a bit scary to read too. I have lost all trust in this filesystem.

Too bad because btrfs has pretty compelling features.

There is nothing special about roman concrete compared to moderns concrete. Modern concrete is much better

The difference is that they didn't have rebar. And so they built gravity stable structures. Heavy and costly as fuck.

A modern steel and concrete structure is much lighter and much cheaper to produce.

It does mean a nodern structure doesn't last as long but also the roman stuff we see is what survived the test of time, not what crumbled.

I think they were saying that in "cup" screen mode (CUP: CUrsor Position, activated with smcup termcap), when you exit (rmcup) the text is lost, as well as the history since it was managed by the application, not the terminal.

Their hypothesis was that maybe there was aj intention to have claude code fill the terminal history. And using potentially harzardous cursor manipulation.

In other words, readline vs ncurse.

I don't see python and ipython readline struggling as bad tho...

Butter already comes in a stick. It's called a butter stick!

Peel the wrapping from one end; and just like that; you got a big butter stick-stick!

Is it time to model and 3D print a butter-stick stick-pusher? With a little battery and heating coil at the sticking out end. Getting a slightly soft and sticky enough butter out of the butter-stick-stick without it sticking to the stick? What a buttery sticky thought.

The 49MB web page 4 months ago

Similarly, if someone asks for lights inside their pool, an electrician that strings ordinary mains cabling through the water should be jailed for criminal negligence. Obviously, only special low-voltage lighting can be used in water, especially near people. Duh.

I recon the US electrical code for swimming pool allpows mains voltage as long as the conduit/cabling is certified for use in water (ie: watertight), properly grounded, and behind a GFCI.

And you can skip grounding/GFCI for anything below 24V.