litchralee

joined 2 years ago
[–] litchralee 1 points 4 hours ago

A recommendation from the "Boglehead" community within personal finance circles is this book, which is a good primer for getting started with investing. https://www.bogleheads.org/blog/portfolio/the-bogleheads-guide-to-investing/

It includes a discussion highly germane to Americans, but it may also be broadly applicable in aspects such as managing risk and timescales, especially the difference between younger investors with the capacity and time horizon to save, versus late-starters with less time available for compound interest to work its magic.

This is the book I lend to friends, and would recommend.

[–] litchralee 21 points 2 days ago* (last edited 2 days ago)

I think the other commenter comparing this to the Quebec/French system of land division has it right. From satellite view, you can see the distinct shape of narrow strip lots perpendicular to the flow of the Bayou Lafourche. In the distant past, waterway access then was the equivalent of truck access from the Interstate freeways today: paramount for getting goods to market.

[–] litchralee 7 points 4 days ago (2 children)

What I like about this design is that if wind was an issue, it would be the simplest thing to fill the base with sand to anchor it down, without it being permanent, and without impacting its basic functionality. Brilliant and versatile!

 

You must have exactly two 5x7 glossy prints in your cart for the code to apply.

When uploading photos using the desktop website, make sure to select Full Resolution in the Upload Preferences.

[–] litchralee 4 points 1 week ago* (last edited 1 week ago)

A few months ago, we had a question about what would happen if necromancy was possible and an undead was called as a court witness. I gave a rather fun-to-write, tongue-in-cheek answer, which might be germane to your question too. Here's just a snippet:

So now we come back to zombies. Would a jury be able to set aside their shock, horror, and awe about a zombie in court that they could focus on being the finder of fact? If a zombie says they’re an eye-witness to a mugging, would their lack of actual eyeballs confuse the jury? Even more confusing would be a zombie that is testifying as an expert witness. Does their subject matter need to be recent? What if the case needs an expert on 17th Century Parisian fashion and the undead is from that era and worked in haute couture? Are there no fashion historians who could provide similar expert opinions?

[–] litchralee 4 points 1 week ago* (last edited 1 week ago)

Do most people really only ride on the throttle?

I can only offer a morsel of anecdata from around my area, but a rudimentary sample of the ebiking public while waiting at red lights in the last few weeks would suggest that yes, a good number of people riding bikes have the throttle pinned and are going at a good clip, which I would estimate to be 20 MPH (32 kph), the existing Class 2 limit.

Granted, I'm only really ever at red lights long enough to survey anything when I'm in the suburbs. And I suspect the thinking here is that 20 MPH is plenty fine if the alternative is walking or riding slower on sidewalk. At least around here, most probably know someone who's eaten pavement on an e-scooter at 15 MPH, so 20 MPH is likely a reasonable pace for a lot of people.

How about a non-stupid firmware update that locks to 20 if a throttle is connected, and unlocks to 28 if there isn't one?

Such a design could work, but probably can't be done with a firmware update for existing bikes. A lot of throttles are just -- and I'm simplifying for generality -- a potentiometer feeding an analog signal to the motor controller. The latter might not be able to detect the absence of a throttle, but merely that if a throttle is present, it is not engaged. That's not sufficient to meet the clarified laws for 2025, so perhaps the industry will rise to produce throttle-presence detecting ebikes going forward.

Personally, I removed the throttle from my rather-old Class 3 ebike long ago, because I just didn't use it. When I'm going at the full 28 MPH (45 kph), I've got a better feel for the road conditions when I'm actively pedaling, and with the torque sensor backing me up. But I bike as my primary mode of transportation, despite other options available, so it's also just more fun this way.

[–] litchralee 1 points 1 week ago (3 children)

Might you be looking for something like Cronometer? https://cronometer.com/

[–] litchralee -2 points 1 week ago* (last edited 1 week ago) (1 children)

Can't Python be translated into machine code

Yes, and that's basically what the CPython interpreter does when you call a Python script. It sometimes even leaves the result laying in your filesystem, with the extension .pyc . This is the byte code (aka machine code) for CPython's implementation of the Python Virtual Machine (PVM).

and packaged into a binary?

Almost. The .pyc file is meant to run with the appropriate PVM, not for x86 or ARM64, for example. But if you did copy that .pyc to another computer that has a CPython PVM, then you can run that byte code and the Python code should work.

To create an actual x86 or ARM64 binary, you might use a Python compiler like cython, which compiles to x86 or ARM64 by first translating to C, and then compiling that. The result is a very inefficient and slow binary, but it is functional. You probably shouldn't do this though.

[–] litchralee 3 points 1 week ago* (last edited 1 week ago) (1 children)

While I get your point that Python is often not the most appropriate language to write certain parts of an OS, I have to object to the supposed necessity of C. In particular, the bolded claim that an OS not written in C is still going to have C involved.

Such an OS could instead have written its non-native parts using assembly. And while C was intentionally designed to be similar to assembly, it is not synonymous with assembly. OS authors can and do write assembly when even the C language cannot do what they need, and I gave an example of this in my comment.

The primacy of C is not universal, and has a strong dependency on the CPU architecture. Indeed, there's a history of building machines which are intended for a specific high-level language, with Lisp Machines being one of the most complex -- since Lisp still has to be compiled down to some sort of hardware instructions. A modern example would be Java, which defines the programming language as well as the ISA and byte code: embedded Java processors were built, and thus there would have been zero need for C apart from legacy convenience.

[–] litchralee 35 points 1 week ago* (last edited 1 week ago)

As it happens, this is strikingly similar to an interview question I sometimes ask: what parts of a multitasking OS cannot be written wholly in C. As one might expect, the question is intentionally open-ended so as to query a candidate's understanding of the capabilities and limitations of the C language. Your question asks about Python, but I posit that some OS requirement which a low-level language like C cannot accomplish would be equally intractable for Python.

Cutting straight to the chase, C is insufficient for initializing the stack pointer. Sure, C itself might not technically require a working stack, but a multitasking operating system written in C must have a stack by the time it starts running user code. So most will do that initialization much earlier, so that the OS's startup functions can utilize the stack.

Thjs is normally done by the bootloader code, which is typically written in assembly and runs when the CPU is taken out of reset, and then will jump into the OS's C code. The C functions will allocate local variables on the stack, and everything will work just fine, even rewriting the stack pointer using intrinsics to cause a context switch (although this code is often -- but not always -- written in assembly too).

The crux of the issue is that the initial value of the stack pointer cannot be set using C code. Some hardware like the Cortex M0 family will initialize the stack pointer register by copying the value from 0x00 in program memory, but that doesn't change the fact that C cannot set the stack pointer on its own, because invoking a C function may require a working stack in the first place.

In Python, I think it would be much the same: how could Python itself initialize the stack pointer necessary to start running Python code? You would need a hardware mechanism like with the Cortex M0 to overcome this same problem.

The reason the Cortex M0 added that feature is precisely to enable developers to never be forced to write assembly for that architecture. They can if they want to, but the architecture was designed to be developed with C exclusively, including interrupt handlers.

If you have hardware that natively executes Python bytecode, then your OS could work. But for x86 platforms or most other targets, I don't think an all-Python, no-assembly OS is possible.

[–] litchralee 1 points 1 week ago* (last edited 1 week ago)

Constant Speed is probably what I was thinking of. And speaking of multi engine failure, you've just reminded me of the demise of TransAsia Airways Flight 235 where the right engine feathered itself erroneously, but then the crew misdiagnosed the situation and shut down the left engine. Mentour Pilot made a video on that particular accident.

[–] litchralee 19 points 1 week ago* (last edited 1 week ago) (3 children)

I like this answer. The only thing I would add is that when the fan blades are all stalled, it might seem then that drag and energy consumption should reduce, since there's not much air moving. But in a cruel twist (fan pun intended) of aerodynamics, the useless spinning of stalled fan blades still causes parasitic drag. So not only does the fan not move air, it's also consuming more energy than spinning a solid disk of the same moment-of-inertia.

When the engine fails for certain single-propeller aircraft, there's sometimes a mechanism to lock the propeller to make it stop rotating, since it would otherwise "windmill" in the air and waste the precious kinetic energy that's keeping the plane aloft. Or so I'm told.

[–] litchralee 3 points 1 week ago (2 children)

It took me a few brain cycles to recognize that this was a spoon. Perhaps others were similarly momentarily confused.

20
submitted 2 weeks ago* (last edited 2 weeks ago) by litchralee to c/[email protected]
 

In the thumbnail is my freehub after running a new set of wheels for 1700 km. From how I understand the "anti-bite" feature, it should prevent the cassette from gouging further into the soft metal of the splines, by taking up those forces on the strip of steel on one of the splines. And that seems like a reasonable idea, since further gouging beyond a cosmetic issue would prevent removal of the cassette.

My question is whether the higher torque caused by a mid-drive torque might one day overwhelm the steel strip, resulting in a locked cassette to the freehub. So far, I don't see any evidence of the strip giving way, and I'm normally under the assumption that the allowable torques of standard bicycles -- although tested by ebikes -- should still tolerate this sort of application.

Does anyone know of scenarios where the anti-bite strip fails in-situ? Note that this isn't a particularly pricey freehub, and I mostly built up this wheel as a long-term test to see how long it would last. For when it does fail, I plan to rebuild with a DT Swiss hub, finances allowing.

2
submitted 3 weeks ago* (last edited 1 week ago) by litchralee to c/freebies
 

Use the code on the Walgreens app and the website to claim the same offer twice!

When uploading photos using the desktop website, make sure to select Full Resolution in the Upload Preferences.

 

(Does this community allow posts about product restorations? I didn't forge these skillets, but I did make them usable and appealing again.)

cross-posted from: https://sh.itjust.works/post/30170080

(long time lurker, first time poster)

A few months ago, a friend convinced me on the benefits of cast iron skillets. Having only used Teflon-coated non-stick pans, I figured it would be worth a try, if I could find one at the thrift store. Sure, I could have just bought a new Lodge skillet, but that's too easy lol.

So a few weeks pass and I eventually find these two specimens at my local thrift store, for $5 and $8 respectively. It's not entirely clear to me why the smaller skillet cost more, but it was below $10 so I didn't complain too loudly. My cursory web searches at the store suggested that old Wagner skillets are of reasonable quality, so I took the plunge. My assumption is that the unmarked, smaller skillet is also a Wagner product.

10-inch skillet ($5) 9-inch skillet ($8)
a crusty 10-inch cast iron skillet with "Wagner" vaguely visible in the inscription
a crusty 9-inch cast iron skillet; no brand name

It's very clear that both these skillets are very crusty. Initially, I tried to remove the buildup using a brass wire brush. This was only somewhat successful, so I switched to a stainless steel wire brush. That also didn't do much, except reveal some of the inscription on the bottom.

the 10-inch skillet after stripping with a wire brush, with "Wagner Ware Sidney" and "1058 1" visible in the inscription

Some research suggested I could either do an electrolysis tank, a lye bath, or try lye-based oven cleaner. For want of not over-complicating my first restoration attempt, I went with the oven cleaner method, using the instructions from this video: https://www.youtube.com/watch?v=2Pvf0m9jTeE

For both skillets, I had to apply the oven cleaner six times to finally shift all the crud, each time leaving the skillets in the garbage bag for a full day-and-a-half in the sun. In between applications, I would brush off more buildup, with the handle root and the skillet walls being the most stubborn areas. The whole process smelled terrible and hunching over the garage utility sink to brush pans is not my idea of a pleasant time.

Nevertheless, having stripped both pans, I proceeded with six rounds of seasoning with very old corn oil -- it's what was handy -- at 450 F (~230 C) using my toaster oven. This happened over six days, since I wanted to use my excess daytime solar power for this endeavor. I wiped on the oil using a single blue shop towel, to avoid the issues of lint or fraying with paper towel.

I don't have a post-seasoning photo for the larger skillet, but here's how the 9-inch skillet turned out. I think I did a decent job for a first attempt. And I'm thrilled that these are as non-stick as promised, with only minimal upkeep required after each use.

9-inch skillet, top side, with "7" inscribed on the handle

9-inch skillet, bottom side, reading "9 3/4 inch skillet"

1
submitted 3 weeks ago* (last edited 3 weeks ago) by litchralee to c/kayaking
 

Following up from my earlier query, my Tucktec 2025 Pro folding kayak arrived at the tail end of October, which is just about within the window when I expected it. When placing the pre-order in late July ($273 shipped), they said it would not ship for at least 60 days, so 90-ish days later was indeed correct on their part. The currently listed price (December 2024) appears to be at least $430 after shipping.

It arrived in a single large cardboard carton, easily brought indoors. Inside, I found the bright-yellow kayak already folded up. Opening it out, the various parts were: the kayak itself, the brief instruction manual, the seat, the seat's support struts, the skeg, and the Velcro belt used to hold the kayak in its folded state.

When I say the instruction manual is brief, I mean that it basically said to go to the website and watch the assembly and folding video. No actual procedure is given in the printed manual, which is a minor annoyance. It should also be noted -- and I knew this when ordering, but it's worth mentioning for other folks -- that this kayak does not come with a paddle. So this is definitely not any sort of turnkey kayaking product, and it never claimed to be.

The seat itself is made from foam with similar consistency to packaging material -- not a bad thing -- and backed by the same plastic sheet as the main kayak body. The support struts are actual Schedule plastic piping, the same sort used for plumbing. When assembling, the seat is very easy to attach/detach, although I do find attaching the struts to the kayak to be rather cumbersome. Essentially, you have to bend away a plastic hole to let the strut slide in. The exact procedure in the video seems to be the only way to make this work.

As for building up the kayak body, the metal latches (aluminum?) on this model make this a breeze. That said, of the four latches surrounding the cockpit, the two forward latches seem to be inopportunely placed where they might interfere with the paddle stroke. But maybe that's a matter of paddle technique.

Lastly, the skeg has a fairly simple design, such that it slots into one of the existing folds when building up the kayak body, and will pivot up if it hits an underwater obstruction. There is no user-operated retraction feature. The video says that only the Pro model has the skeg, suggesting the skeg is optional. But having taken this kayak out onto the local reservoir without the skeg, I had a difficult time keeping it tracking straight. I suspect the skeg may be functionally required for reasonable performance.

I will note that I have no kayaking experience to reference, apart from briefly paddling around in other people's kayaks during camping trips on calm water. However, I did review REI's comprehensive articles and did invest in a PFD before going out. My choice of paddle was partially based on it splitting in two and sliding within the folded kayak bundle, and that worked as expected.

As for transporting the kayak in its folded state, I believe the hype is warranted, as it will fit into the width of a typical car trunk, or will fit with just one seat folded down. Carrying it from a parking area to the beach is also fairly easy with the shoulder strap, provided that one hand is available to stabilize it in the wind. A nice quirk is that the final fold of the kayak forms a nice "base" so that when setting the bundle down on pavement, it will remain standing and not just fall over. This could be useful for longer jaunts to the water's edge.

Lastly, unfolding the kayak at home makes it trivial to hose down, as part of post-paddling clean up. It also seems to dry faster this way.

Overall, as a novice kayaker, I think this is a reasonable product, although their website certainly doesn't sell it as well as a comparable Oru folding kayak. Later, I will pursue taking this kayak with me by bus and by bicycle (with a custom mount to stand it up). I think it fits the bill for someone wishing to paddle recreationally but without committing to storing/moving a hardshell kayak, or wishes to start with minimal investment.

173
submitted 3 weeks ago* (last edited 3 weeks ago) by litchralee to c/[email protected]
 

(long time lurker, first time poster)

A few months ago, a friend convinced me on the benefits of cast iron skillets. Having only used Teflon-coated non-stick pans, I figured it would be worth a try, if I could find one at the thrift store. Sure, I could have just bought a new Lodge skillet, but that's too easy lol.

So a few weeks pass and I eventually find these two specimens at my local thrift store, for $5 and $8 respectively. It's not entirely clear to me why the smaller skillet cost more, but it was below $10 so I didn't complain too loudly. My cursory web searches at the store suggested that old Wagner skillets are of reasonable quality, so I took the plunge. My assumption is that the unmarked, smaller skillet is also a Wagner product.

10-inch skillet ($5) 9-inch skillet ($8)
a crusty 10-inch cast iron skillet with "Wagner" vaguely visible in the inscription
a crusty 9-inch cast iron skillet; no brand name

It's very clear that both these skillets are very crusty. Initially, I tried to remove the buildup using a brass wire brush. This was only somewhat successful, so I switched to a stainless steel wire brush. That also didn't do much, except reveal some of the inscription on the bottom.

the 10-inch skillet after stripping with a wire brush, with "Wagner Ware Sidney" and "1058 1" visible in the inscription

Some research suggested I could either do an electrolysis tank, a lye bath, or try lye-based oven cleaner. For want of not over-complicating my first restoration attempt, I went with the oven cleaner method, using the instructions from this video: https://www.youtube.com/watch?v=2Pvf0m9jTeE

For both skillets, I had to apply the oven cleaner six times to finally shift all the crud, each time leaving the skillets in the garbage bag for a full day-and-a-half in the sun. In between applications, I would brush off more buildup, with the handle root and the skillet walls being the most stubborn areas. The whole process smelled terrible and hunching over the garage utility sink to brush pans is not my idea of a pleasant time.

Nevertheless, having stripped both pans, I proceeded with six rounds of seasoning with very old corn oil -- it's what was handy -- at 450 F (~230 C) using my toaster oven. This happened over six days, since I wanted to use my excess daytime solar power for this endeavor. I wiped on the oil using a single blue shop towel, to avoid the issues of lint or fraying with paper towel.

I don't have a post-seasoning photo for the larger skillet, but here's how the 9-inch skillet turned out. I think I did a decent job for a first attempt. And I'm thrilled that these are as non-stick as promised, with only minimal upkeep required after each use.

9-inch skillet, top side, with "7" inscribed on the handle

9-inch skillet, bottom side, reading "9 3/4 inch skillet"

 

Use the code on the Walgreens app and the website to claim the same offer twice!

When uploading photos using the desktop website, make sure to select Full Resolution in the Upload Preferences.

 

Use the code on the Walgreens app and the website to claim the same offer twice!

When uploading photos using the desktop website, make sure to select Full Resolution in the Upload Preferences.

 

Use the code on the Walgreens app and the website to claim the same offer twice!

When uploading photos using the desktop website, make sure to select Full Resolution in the Upload Preferences.

 

When uploading photos using the desktop website, make sure to select Full Resolution in the Upload Preferences.

 

Use the code on the Walgreens app and the website to claim the same offer twice!

When uploading photos using the desktop website, make sure to select Full Resolution in the Upload Preferences.

12
submitted 1 month ago* (last edited 1 month ago) by litchralee to c/[email protected]
view more: next ›