• 3 Posts
  • 30 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle
  • dragontamer@lemmy.worldtoRPGMemes @ttrpg.networkBoobplate (Ironlily)
    link
    fedilink
    English
    arrow-up
    38
    ·
    edit-2
    3 days ago

    That’s just called 1600s era half plate.

    As halberds and other armor penetrating weapons became normal (and Guns), the focus of armorers was on deflection rather than outright stopping blows.

    Also, iron became cheaper and thus mass produced. So in some sense armor got worse, but far more people were wearing armor. The small bits (gloves, legs, etc etc) couldn’t be custom made per person anymore because of mass production templates. But armor was well on its way out by then anyway as guns were obviously the future.


  • dragontamer@lemmy.worldtoRPGMemes @ttrpg.networkBoobplate (Ironlily)
    link
    fedilink
    English
    arrow-up
    92
    ·
    edit-2
    3 days ago

    True. But it keeps happening.

    Be it two thousand years ago or 500 years ago. Sexy armor proves that humans haven’t really changed.


    Kings and generals don’t really find themselves alone on the front lines. The armor is nearly ceremonial, no one is supposed to take a shot at the king. Even if the king were expected to visit the front lines.

    As such, kings, princes and other nobles never had practical armor. It’s all armor-fashion and status symbols (including sexualization, when said sexualization was in fashion).



    1. Anti-federalism – Deep rooted distrust of the Federal Government has been around since the dawn of the USA, though its often been part of the minority.

    2. Know Nothing / Native American Party – 1850s era movement. Protectionist, isolationist, nativist. Originally they popped up as anti-Irish and anti-Catholic, but overall the concept is that immigrants suck. The modern concept is: “I know nothing”, about the movement. The overall idea is that even in the 1800s, it was bad to look like a racist bigot, so you’d keep your support for these causes secret. Everyone in the party knows that “the Know Nothings are larger than everyone expects”, but no one really knows how big the movement is. And that’s the point.

    3. America First – 1930s saw the rise of Fascism vs Communism in Europe with the dawn of the Spanish civil war. The “America First” movement focused on isolationism and even pro-German / Nazi slant mixed with religious fervor. This was pushed by tech-gurus of the time: Charles Lindberg (airplane entrepreneur, first Trans-atlantic flight, etc. etc.), and the Christian Front. (https://en.wikipedia.org/wiki/1939_Nazi_rally_at_Madison_Square_Garden).

    4. NAFTA – 1990s free-trade by Bill Clinton opened up Mexico and Canada as incredible trading partners. However, local industry / local steel lost out as companies started to shop in Mexico for material. As Bill Clinton was a huge pusher of NAFTA, the anti-NAFTA political group consolidated under Republicans. This is likely where the bulk of blue-collar workers is coming from, especially because Trump started adding Tariffs / anti-globalism concepts back to the forefront of American Politics.


    Some more recent context:

    1. Trump has been building his brand for decades as a very rich, very macho straight-talker. Even in the 80s and earlier, there’s a large number of Hotels, Casinos, Resorts, Golf Courses (etc. etc.) that have relatively high reputation among Americans in general with Trump’s name.

    2. Trump reads from the teleprompter in “another voice”, openly showing his disdain for public speaking and the political system. Anyone who has lost faith in the political system loves this. Trump pretends that the teleprompter is forcing him to talk and its all just a “through the motions” thing. Then Trump obviously goes off teleprompter and talks about different concepts, the “real stuff”. (Or so goes his branding). This simple trick is enough to get the gist to his followers: don’t listen to what I say (because I’m being forced to say this politically correct crap). This means that Trump’s true actions are only limited to the imagination of the listener.

    3. Trump is playing and leaning into the borne again Christian role. From a religious perspective, the “former enemy / former outsider” coming into religion is a common story and religious love it. Trump was openly a Democrat in the 90s / 00s before switching into Republicanism.


    The “bulk” of Trump’s political style is Know Nothing + Macho + anti-political correctness.








  • Its theoretically playable. But 8, 9, 10, 11, and 12 is basically never going to happen. I’m trying to figure out how to optimize my program for “more playable” sequences.

    Surprisingly: the sequence 1 2 5 6 8, 3, 4, 7, 9 is playable and score-wise optimal still. So with a few reorderings / better search, I probably can find a “reasonably looking” sequence for a real game.

    Still, solving this “subproblem” is likely news for many Azul players. I believe I’m the first one to find a provably optimal sequence of plays for a given target number of placements.



  • Universal Paperclips is one of the best clicker games.

    In particular: because it isn’t a clicker game. It only starts off as one. There’s only about 2 sections IIRC that are “clicker”, the start (before auto-clippers kick in), and then the quantum computer.

    I guess you have to launch your first 20 or 30 probes at the space stage and that’s done one-click-at-a-time… but I don’t think that counts as a “clicker” game since its so few clicks in the great scheme of things. At no other point is rapid-clicking that useful.


  • I had a pretty standard linear-list scan initially. Each time the program started, I’d check the list for some values. The list of course grew each time the program started. I maximized the list size to like 2MB or something (I forget), but it was in the millions and therefore MBs range. I figured it was too small for me to care about optimization.

    I was somewhat correct, even when I simulated a full-sized list, the program booted faster than I could react, so I didn’t care.


    Later, I wrote some test code that exhaustively tested startup conditions. Instead of just running the startup once, I was running it millions of times. Suddenly I cared about startup speed, so I replaced it with a Hash Table so that my test-code would finish within 10 minutes (instead of taking a projected 3 days to exhaustively test all startup conditions).


    Honestly, I’m more impressed at the opposite. This is perhaps one of the few times I’ve actually taken the linear-list and optimized it into a hash table. Almost all other linear-lists I’ve used in the last 10 years of my professional coding life remain just that: a linear scan, with no one caring about performance. I’ve got linear-lists doing some crazy things, even with MBs of data, that no one has ever came back to me and said it needs optimization.

    Do not underestimate the power of std::vector. Its probably faster than you expect, even with O(n^2) algorithms all over the place. std::map and std::unordered_map certainly have their uses, but there’s a lot of situations where the std::vector is far, far, far easier to think about, so its my preferred solution rather than preoptimizing to std::map ahead of time.


  • To that end, the SAM9x60 is fantastic for widening the space for folks working in that high-end of the spectrum. But until someone or some entity produces a volume run of an SBC or drop-in module utilizing it, I can’t see why a rapid-development project inclined to use an RPi (middle end complexity) would want to incur the effort of doing their own custom design (high end complexity).

    I feel like the SAM9x60D1G-I/LZB is close enough to a plug-and-play “compute module”, but you do have a point in that a compute-module isn’t quite a complete computer yet.

    TI’s AM335x / Octavo OSD335x chips have a huge advantage from this particular criticism you have. These chips are behind the Beaglebone Black, meaning you have all three (Beaglebone Black / Green as a SBC for beginners, OSD335x SiP for intermediates, and finally the AM3351BZCEA60 (or other specific versions) for full customization.

    At $50 for the SBC / Beaglebone Black, its a weaker buy than Rasp. Pi. But the overall environment and knowledge that Beaglebone Black represents a full ecosystem to the “expert” PCB layout (and includes an in-between SiP from Octavo systems) is surely one of the best arguments available.


    Microchip obviously isn’t trying to compete against this at all, and I think that’s fine. TI’s got the full scale concept under lockdown. The SAM9x60’s chief advantage is (wtf??!?!) 4-layer prototypes for DDR2 routing. Its clearly a far simpler chip and more robust to work with. Well, that and also absurdly low power usage.



  • How many layers does the Orange Pi Zero pcb have?

    Answer: Good luck finding out. That’s not documented. But based off of the layout and what I can see with screenshots, far more than 4 layers.


    A schematic alone is kind of worthless. Knowing if a BGA is designed for 6, 8, or 10 layers makes a big difference. Seeing a reference pcb-implementation with exactly that layer count, so the EE knows how to modify the design for themselves is key to customization. There’s all sorts of EMI and trace-length matching that needs to happen to get that CPU to DDR connection up-and-running.

    Proving that a 4-layer layout like this exists is a big deal. It means that a relative beginner can work with the SAM9x60’s DDR interface on cheap 4-layer PCBs (though as I said earlier: 6-layers offer more room and is available at OSHPark so I’d recommend a beginner work with 6 instead)


    With regards to SAM9x60D1G-I/LZB SOM vs Orange Pi Zero, the SAM9x60D1G-I/LZB SOM provides you with all remaining pins of access… 152 pins… to the SAM9x60. Meaning a full development board with full access to every feature. Its a fundamentally different purpose. The SOM is a learning-tool and development tool for customization.


  • Well, my self-deprecating humor aside, I’ve of course thought about it more deeply over my research. So I don’t want to sell it too short.

    SAM9x60 has a proper GPU (albeit 2D one), full scale Linux, and DDR2 support (easily reaching 64MB, 128MB or beyond of RAM). At $3 for DDR2 chips the cost-efficacy is absurd (https://www.digikey.com/en/products/detail/issi-integrated-silicon-solution-inc/IS43TR16640C-125JBL/11568766), a QSPI 8MBit (1MB) SRAM chip basically costs the same as 1Gbit (128MB) of RAM.

    Newhaven Displays offers various 16-bit TFT/LCD screens (https://newhavendisplay.com/tft-displays/standard-displays/) at a variety of price points. Lets take say… 400x300 pixel 16-bit screen for instance. How much RAM do you need for the framebuffer? (I dunno: this one https://newhavendisplay.com/4-3-inch-ips-480x272px-eve2-resistive-tft/ or something close).


    Oh right, 400 x 300 x 2-bytes per pixel and we’re already at 240kB, meaning the entire field of MSP430, ATMega328, ARM Cortex-M0 and even ARM Cortex-M4 are dead on the framebuffer alone. Now lets say we have a 10-frames of animation we’d want to play and bam, we’re already well beyond what a $3 QSPI SRAM chip will offer us.

    But lets look at one of the brother chips really quick: Microchip’s SAMA5D4. Though more difficult to boot up, this one comes with H.264 decoder. Forget “frames of animation”, this baby straight up supports MP4 videos on a full scale Linux platform.

    Well, maybe you want Rasp. Pi to run that, but a Rasp. Pi 4 can hit 6000mW of power consumption, far beyond the means of typical battery packs of the ~3-inch variety. Dropping the power consumption to 300mW (SAMA5D4 + DDR2 RAM) + 300mW (LCD Screen) and suddenly we’re in the realm of AAA batteries.


    So we get to the point where I can say: I can build you a 3" scale device powered by AAA batteries that runs full Linux and supports H.264 decode animations running on a Touch-screen interface, fully custom with whatever chips/whatever you want on it. Do I know what it does yet? No. Lol, I haven’t been able to figure that out yet. But… surely this is a useful base to start thinking of ideas.


  • So yeah, I think that’s basically the two paths the modern hobbyist have taken. If we need “custom” electronics, its “obviously an Arduino” (or similar competitor: MSP430, ESP32, STM32F3, Teensy, etc. etc.). We prototype with DIPs and then make a cheap 2-layer board that uses the microcontroller + the custom-bit of wiring we need and call it a day. Whereas the “Computer” world is a world of Ethernet, CANbus, PCIe, SD-MMC connectors and whatever. Its about standards and getting things to easily fit into standards, and far less about actual customization.

    And these two paths are separated in our brains. They’re just different worlds and we don’t think too much about it.


    I wanted to talk about SiP chips but I couldn’t find the space for it. I guess where my overall point is… is that today’s entry-level MPUs can create “custom Arduino-like” designs, except with the full scale Linux / Microprocessor level of compute power (well, on the low-end at least. All of these MPUs are far slower than Rasp. Pi).

    I was talking about SAM9x60 earlier, but TI’s / Octavo System’s SiP based on AM355x has a very intriguing demo that you won’t believe.

    This OSD335x SiP is a BGA system-on-package, fully bootable Linux computer. Complete with DDR2 RAM, onboard Flash for a file-system, Power-controller, and yes, even a PDN/power network to ensure smooth and consistent bootups.

    What’s suddenly available here, is that you can boot up a full scale Linux-box in a 20mm x 20mm size, even with some of the dumbest PCB design imaginable. The amount of sophistication that’s going into these chips today is unreal… and is making “build your own SBC from scratch” possible on a hobbyist’s budget, scale, and study.


    So what today represents is: “Why not go full custom design with MPUs?” Yes, we traditionally have reached for MSP430 or ATMega328 for this problem, but maybe its not so bad to design around a more powerful system in practice. Now different manufacturers have gone with different routes here. Ti is working with Octavo Systems and pushing these SiP of course, Microchip is sticking with open-source hardware and documentation for people more comfortable with PCB design (though a SiP is also available from Microchip for on-board DDR2, but without the power-controller like Octavo System’s solution), etc. etc. All to varying levels of simplicity, configurability, and so forth.

    I ended my post with the joke about drones because… that’s the most obvious initial good use of this tech I can immediately think of. Drones are size/weight constrained (the lighter you make everything, the lighter your motors can be, and the lighter your battery can be, making everything lighter again). So big heavy connectors, while good for compatibility, are a big detractor. You want to build a full custom PCB-design that removed everything unnecessary, you really want to save every gram possible and make everything as light as reasonable. If you’re just going to slap an Ethernet cord and a CANbus onto a computer, I don’t think these SiP or MPUs are really that useful (might as well buy a Rasp. Pi at that point).

    But if you need a customized design with specific specs to weight and power-usage, well… custom is your way to go. And custom MSP430 (16-bit or 8-bit competitors or Cortex-M0+) leaves much to be desired from a programming perspective.



  • That’s not what storage engineers mean when they say “bitrot”.

    “Bitrot”, in the scope of ZFS and BTFS means the situation where a hard-drive’s “0” gets randomly flipped to “1” (or vice versa) during storage. It is a well known problem and can happen within “months”. Especially as a 20-TB drive these days is a collection of 160 Trillion bits, there’s a high chance that at least some of those bits malfunction over a period of ~double-digit months.

    Each problem has a solution. In this case, Bitrot is “solved” by the above procedure because:

    1. Bitrot usually doesn’t happen within single-digit months. So ~6 month regular scrubs nearly guarantees that any bitrot problems you find will be limited in scope, just a few bits at the most.

    2. Filesystems like ZFS or BTFS, are designed to handle many many bits of bitrot safely.

    3. Scrubbing is a process where you read, and if necessary restore, any files where bitrot has been detected.

    Of course, if hard drives are of noticeably worse quality than expected (ex: if you do have a large number of failures in a shorter time frame), or if you’re not using the right filesystem, or if you go too long between your checks (ex: taking 25 months to scrub for bitrot instead of just 6 months), then you might lose data. But we can only plan for the “expected” kinds of bitrot. The kinds that happen within 25 months, or 50 months, or so.

    If you’ve gotten screwed by a hard drive (or SSD) that bitrots away in like 5 days or something awful (maybe someone dropped the hard drive and the head scratched a ton of the data away), then there’s nothing you can really do about that.


  • If you have a NAS, then just put iSCSI disks on the NAS, and network-share those iSCSI fake-disks to your mini-PCs.

    iSCSI is “pretend to be a hard-drive over the network”. iSCSI can exist “after” ZFS or BTRFS, meaning your scrubs / scans will fix any issues. So your mini-PC can have a small C: drive, but then be configured so that iSCSI is mostly over the D: iSCSI / Network drive.

    iSCSI is very low-level. Windows literally thinks its dealing with a (slow) hard drive over the network. As such, it works even in complex situations like Steam installations, albeit at slower network-speeds (it gotta talk to the NAS before the data comes in) rather than faster direct connection to hard drive (or SSD) speeds.


    Bitrot is a solved problem. It is solved by using bitrot-resilient filesystems with regular scans / scrubs. You build everything on top of solved problems, so that you never have to worry about the problem ever again.