Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)LI
Posts
120
Comments
1,125
Joined
2 yr. ago

  • I go barefoot because homegym, but I once got the recommendation to look for water shoes. That is, thin shoes with a rubber sole meant for use at the pool. But that also makes them reasonable as a flat sole shoe for gym.

  • Let me make sure I understand everything correctly. You have an OpenWRT router which terminates a Wireguard tunnel, which your phone will connect to from somewhere on the Internet. When the Wireguard tunnel lands within the router in the new subnet 192.168.2 0/24, you have iptable rules that will:

    • Reject all packets on the INPUT chain (from subnet to OpenWRT)
    • Reject all packets on the OUTPUT chain (from OpenWRT to subnet)
    • Route packets from phone to service on TCP port 8080, on the FORWARD chain
    • Allow established connections, on the FORWARD chain
    • Reject all other packets on the FORWARD chain

    So far, this seems alright. But where does the service run? Is it on your LAN subnet or the isolated 192.168.2.0/24 subnet? The diagram you included suggests that the service runs on an existing machine on your LAN, so that would imply that the router must also do address translation from the isolated subnet to your LAN subnet.

    That's doable, but ideally the service would be homed onto the isolated subnet. But perhaps I misunderstood part of the configuration.

  • It took me a few reads to internalize everything that you wrote, and it's food-for-thought for when I level-up to adding another machine to my garage. It does seem that I can wait on the jointer for a long while, and on the thickness planer until my projects start using wider boards or I get really tired of hand planing those.

    Good to know that the combo planer/jointer is not exactly optimal, and I'll have to keep an eye out for either separate machine that happens to be for sale on the used market.

    I have no other tool that could take a quarter inch off the thickness of a 10 inch wide board; the only tool I have that is appropriate for this task is my thickness planer.

    As it happens, this was precisely what I also had to do for an earlier project, and I ended up using my router table to do it. It was an awful slog of a time, and I hope to never repeat that ever again. Throughout the ordeal, I kept thinking about how a CNC mill would have made quick work of it, but I suspect a used thickness planer is going to be a lot more affordable for me

  • If a normal bench plane is a chisel wearing a pair of steel toed boots, a shoulder plane is a chisel wearing strappy wedge heeled sandals.

    This made me laugh, but was also effective at explaining the difference, as did some more image results that specifically show the iron of each plane.

  • Yes, most of what I typically have on hand is dimensional lumber. So it's already mostly alright, but the surfaces might not all be square and I need to figure out ways to keep those errors from propagating.

  • I figured that a shoulder plane and shooting board would be two disparate tools, but for my own knowledge, I haven't figured out why exactly a shoulder plane with a shooting board doesn't work. Is it because a shoulder plane tends to be short?

  • Thanks for this additional detail! I'm currently leaning on going with the shoulder plane, with intention to add a machine planer in future for dealing with larger material all at once. Would that be a sound plan?

  • Thank you for the detailed clarification!

    In review, it sounds like a shoulder plane would prove its worth for very small, fiddly work that a general-purpose plane couldn't reach, but it would be slower for flattening the poor stock that I often use. Would this mean a shoulder plane plus a machine planer be a reasonable combination, with the latter introduced later to enable larger-scale flattening?

    The body of the plane is square to the sole, making 90° easily achievable by riding the side of the plane on an adjacent 90° surface

    This might be the feature which sways my decision, since I think it means I can devise a simple jig for any size of stock by clamping to a known flat surface (or even just a surface that's more flat than the stock) and guide the shoulder plane that way, to prepare for joining. I didn't mention in my original post, but I also occasionally do "coarse metalworking" where all the stock I use is already nice and straight and flat, which would make good guiding surfaces for a shoulder plane (on wood lol).

  • Firstly, thank you for such a detailed reply!

    This far, my woodworking would not be described as "fine woodworking" but rather as "coarse woodworking" haha. That is, I'm mostly putting together functional pieces where it's permissible to be ugly-as-sin but should be structurally sound. Hence why I initially only considered fixing up the joints, to make wavy bits of wood come together.

    You'll need to get or make some winding sticks, a decent try square, and a straight edge, and you can straighten a board of any size, given enough cardio. Or, do like I did and buy a jointer and a planer.

    But I take your point that a jointer and planer (is there such a thing as a combo?) would be fixing the root issue, with additional benefits. Certainly, if I could get my positional precision tighter than 1/8-inch deviation from my plans, I'd be thrilled. I may later circle back for these tools, after trying hand planing for a few pieces.

    So, as long as your miter saw's fence is straight, if you cut one board on one side of the blade, and the other on the other, those angles should be complementary/supplementary. Say your miter saw is swung to 44 degrees rather than 45. Well the other side should be 136, or if you invert the board, 46 degrees.

    This part makes sense, and there's much that I should adjust on my miter saw. Let me expand on exactly what I was trying to do last time that necessitated some geometric creativity. Basically, I wanted a cut where the miter saw would be turned 70 degrees, then another cut at the complementary 20 degree. My saw can only swing left or right by about ~60 degrees. So that's why I set the saw for 20 degrees to the right, fed the piece from the left side. Then for the 70 degree cut, fed the piece from the front into the saw, such that I get the complementary angle of 70 even though the saw is still set at 20.

    For reference, this is how pointy the 70 deg was to look. The 20 deg cut is not pictured.

    A shooting board is a simple jig used to guide a plane precisely past the work, quite often holding teh stock at a 90 or 45 degree angle to the plane such that the plane cuts the end of the work to the desired angle.

    TIL a shooting board. It also answers the question of how I'd keep a hand plane steady if the end grain might be quite small. And I could use my new hand plane to help construct a shooting board.

    I suspect I now have projects for all remaining weekends of this month lol! Thank you again!

  • Woodworking @lemmy.ca

    Seeking hand plane recommendations

  • +1 because this is a much more concise description of free vs open source, the exact obligations of the (A)GPL license, and of use vs distribution, than what I've written in the past vis-a-vis proposals of non-free licenses like SSPL and Futo.

  • I'm a bit short on time, but I think "streaming" needs to be broken down into categories of scale. Streaming video from your home Plex server (shout-out to !homelab@lemmy.ml) is a lot different than Netflix's video delivery system.

    The latter intentionally stores the same content in multiple geographies, then with caches at local data centers, and sometimes even caches within your ISP's network. All of this to distribute the load of millions of users, who can just as easily be in Florida as they might be in Oregon. The duplication and redundancy means a lot of power draw, well more than just a few disks spinning up.

    Whereas a home server has just one copy of the content, and since it might not always be streaming a video to you, can save power by spinning down drives or other optimizations. It is simply not possible to describe "streaming" when such radically different delivery mechanisms can all plausible be considered as streaming.

  • I did indeed have a chuckle, but also, this shouldn't be too foreign compared to other, more-popular languages. The construction of func param1 param2 can be found in POSIX shell, with Bash scripts regularly using that construction to pass arguments around. And although wrapping that call with parenthesis would create a subshell, it should still work and thus you could have a Lisp-like invocation in your sh script. Although if you want one of those parameters to be evaluated, then you're forced to use the $() construction, which adds the dollar symbol.

    As for Lisp code that often looks like symbol soup, like (= 0 retcode), the equal-sign is just the name for the numerical equality function, which takes two numbers. The idea of using "=" as the function name should not be abnormal for Java or C++ programmers, because operator overload allows doing exactly that.

    So although it does look kinda wonky for anyone that hasn't seen Lisp in school, sufficient exposure to popular codebases and languages should impart an intuition as to how Lisp code is written. And one doesn't even need to use an RPN calculator, although that also aids understanding of Lisp.

    Addendum: perhaps in a century, contemporary programmers will find it bizarre that C used the equal-sign to mean assignment rather than equality, when the <= arrow would more accurately describe assignment, while also avoiding the common error of mixing up = and == in an if-conditional. What looks normal today will not necessarily be so obvious in hindsight.

  • Might it have been this one?

    Setting aside critiques of Mr Money Mustache, this is grounded in hard math and is the result of "having enough". In the developed world, "having enough" is easier than ever, yet the culture insists on trying to achieve even more, having more money, more house, more children, etc. Whereas the general notions of evaluating what brings value or happiness (see Marie Kondo: "ask yourself if it sparks joy") is more in like with "working to live, rather than living to work".

    There's an equivalent maxim in vehicle engineering to that chart, something along the lines of "lightness begats lightness", and refers to how shaving off weight from an automobile allows reducing the engine power or the brake size, which further allows weight reductions, etc. The eventual result is having only the essentials in places that matter (eg unsprung weight, rotational mass) in an optimized harmony. Personal finance can follow the same maxim.

    "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away" (usually ascribed to Antoine de Saint-Exupery)

  • Ok, the diagram has been very useful for me to understand.

    My thinking is that for the Linux bridge (LB), you'll have to create it with "protocol 802.1ad". So something like this:

    ip link add name ${BRIDGE} type bridge vlan_default_pvid 420 vlan_protocol 802.1ad

    I presume that there is no problem with manually creating the bridge? Also, compared to the example from the link, I've modified it to set the default port VID (PVID) to 420. This means that if any frame comes into LB and does not have an S-tag, then an S-tag with the port VID will be applied to the frame upon ingress.

    Using the standard nomenclature of 802.1ad Q-in-Q, an S-tag (S for "service provider") is the outermost tag with TPID=0x88a8, and a C-tag (C for "customer") is the innermost tag, which would be a standard 802.1q VLAN tag with TPID=0x8100. That said, when I say "innermost" and "outermost", that only applies to double-tagged traffic. It is entirely possible to single-tag using an S-tag, and that's exactly what will happen if a VN sends an untagged frame to LB, as an S-tag with VID 420 will be added. But there wouldn't be an inner C-tag.

    If VN sends an 802.1q C-tagged frame to LB, then that's still not an S-tag and so LB will also add an S-tag upon ingress, making this frame now doubly tagged.

    I also omitted "vlan_filtering 1" because that would cause all traffic with an unknown S-tag VID to be dropped. Dropping such traffic is the default for a standard switch, but it may aid your troubleshooting if LB is configured as permissively as possible. At the very least, it means that unknown S-tags can at least be inspected using tcpdump upon ingress, rather than being dropped outright.

    For link 1, there's nothing we can do, but we also shouldn't have to do anything. If VNs are attached to the LB as a subordinate port, then they would be exchanging either untagged or single C-tagged traffic. And that's fine because that's exactly what LB is prepared to handle.

    For LB's port connected to link 2, this must be configured as a trunk port for VID 420. This will cause LB to pass doubly tagged frames to VS, which is what we want. For link 2 facing VS, no special configuration for 802.1ad or 802.1q is necessary, since the frames will enter VS as if standard Ethernet; the TPID takes up the same position in the header as an EtherType, and standard switch behavior is to forward any unknown Ethertypes. If VS has any configurable options, any options that are VLAN-aware ought to be disabled.

    For link 3 facing VS, this isn't anything special to configure, as described above. But for the P1 port connecting to link 3, this must be configured as a trunk port for VID 420.

    Between P1 and P2, this is also a trunk for VID 420.

    On P2's port connecting to PN, this will be an untagged 802.1ad port for VID 420, with the PVID set for 420. By being an untagged port, P2 will strip the S-tag from any frame egressing to PN, thus yielding either an untagged Ethernet frame or a singly C-tagged 802.1q frame. And when PN sends untagged or C-tagged traffic that ingresses P2, the S-tag for PVID 420 will be added.

    Such ingress traffic will propagate from P1 as either S+C double tags or S-only single tag, all the way back to LB. But when proceeding to the subordinate port that connects to a VN, the LB will know to strip the S-tag, thus yielding either C-tagged or untagged traffic.

    In this way, the whole network can be traversed by wrapping all of VN's traffic with an S-tag, irrespective of any C-tags that traffic already had. You may have to play around with the exact mechanics of the Linux bridge to fit your circumstance, but this should yield a working setup.

    Good luck!

  • freebies @sh.itjust.works

    Walgreens: free 8x10 print. Use code ITSFREE4U . Exp 9 September EOD

    micromobility - Bikes, scooters, boards: Whatever floats your goat, this is micromobility @lemmy.world

    Re-greasing a mid-drive ebike motor yields noticeable improvements

    freebies @sh.itjust.works

    Walgreens: six free 5x7 photo cards. Use code 6CARDS . Exp 4 September

    bike wrench @lemmy.world

    Re-greasing a mid-drive ebike motor yields noticeable improvements

    freebies @sh.itjust.works

    CVS: 2x free 5x7 prints. Use code LABORDAY3 . Exp 2 September EOD

    Dullsters @dullsters.net

    Removing the stock grease inside an ebike motor

    freebies @sh.itjust.works

    Walgreens: free 8x10 print. Use code ITSFREE . Exp 20 August EOD

    freebies @sh.itjust.works

    CVS: 2x free 5x7 prints. Use code 2FORU . Exp 19 August EOD

    freebies @sh.itjust.works

    Walgreens: free 8x10 print. Use code GOODDAY . Exp 7 August EOD

    freebies @sh.itjust.works

    Walgreens: 2x free 5x7 prints. PHONE APP only, use code FREE2 . Exp Unknown

    micromobility - Bikes, scooters, boards: Whatever floats your goat, this is micromobility @lemmy.world

    First ride of my Segway Ninebot G30LP, recommended from this community

    freebies @sh.itjust.works

    Walgreens: free 8x10 print. Use code GETURPRINT . Exp 25 July EOD

    freebies @sh.itjust.works

    Walgreens: 2x free 5x7 prints. Use code GETURPRINTS . Exp 16 July EOD

    micromobility - Bikes, scooters, boards: Whatever floats your goat, this is micromobility @lemmy.world

    Seeking e-scooter recommendations: slow, short range, 10-inch/25cm wheels

    freebies @sh.itjust.works

    CVS: free 8x10 print. Use code JULYFREEBIE . Exp 8 July EOD

    freebies @sh.itjust.works

    CVS: 2x free 5x7 prints. Use code FREE-5X7 . Exp 28 June EOD

    freebies @sh.itjust.works

    Walgreens: free 8x10 print. Use code PICWITHDAD . Exp 15 June EOD

    freebies @sh.itjust.works

    Walgreens: 5x free 4x6 prints. Use code 5FREE . Exp 11 June (EOD?)

    freebies @sh.itjust.works

    CVS: 3x free 5x7 prints. Use code 3MAYFREE . Exp 20 May EOD