Father, Hacker (Information Security Professional), Open Source Software Developer, Inventor, and 3D printing enthusiast

  • 6 Posts
  • 334 Comments
Joined 2 years ago
cake
Cake day: June 23rd, 2023

help-circle
  • Challenges with the firmware: Mostly just learning embedded rust. It’s a bit different from regular rust because your don’t have access to std (which means no Vec!).

    I remember having the hardest time just organizing the code. As in, I wanted to divide everything up into logical segments like, “LEDs”, “multiplexers”, “infrared”, etc and rust makes it kinda hard to do that without making everything it’s own little crate. Specifically, if you want your code to be device-agnostic. If you only care about your one board then it’s easy and doesn’t matter so much 🤷

    I got the boards made at JLCPCB because they’re the cheapest and seemed good enough 🤷






  • She accuses it of admitting students who are contemptuous of America,

    OK. So what?

    Let’s logic out that statement:

    • Educational institution accepts students that are “contemptuous of America” -> When the student graduates are they still “contemptuous”? Did they become moreso? No change? Less? None at all?
    • Educational institution actively seeks to deny students who are “contemptuous of America” -> Did they produce “contempt for America” in their graduates? Same problem.

    I wonder what would produce “contempt for America”? Maybe deporting people without due process? Or not recognizing human rights?

    Maybe we should agree, then: Harvard shouldn’t accept students that hate the Bill of Rights. Reject conservative ideology that suggests that due process shouldn’t be followed. Reject conservative ideology that actively seeks to undermine the US Constitution.

    Let’s get keep those people (conservatives) with “contempt for America” away from places like Harvard 👍




  • Yeah it’s probably just a client side issue but the OP mentioned Element, specifically 🤷

    I just wanted to point out that Element is no fun! No fun at all!

    It works and it works great for what it does. Even voice and streaming are great with Element. It’s just got a terrible, no-fun interface and pointless limitations on things like looping videos. You can’t even configure it to make them play properly (as in, automatic and endlessly, the way they were meant to be played! 😤).

    Looping videos and animated emojis are super fun ways to chat with people. Even in professional settings! It really breaks up the humdrum and can motivate people to chat and share more.

    Element is all serious all the time and going into a chat channel there feels like a chore.





  • Oh I can explain this: You were born with a destiny that doesn’t make sense anymore because the gods had to make some changes to the timeline. Sounds simple enough but some people have actually been given theirs or someone else’s prophecy so now they have to make it happen… Somehow.

    To resolve this situation they often have to come up with clever solutions to make sure the prophecy still happens in a way that the (new) timeline can handle. Such as “experiencing plague” and “getting caught rolling with a naked woman in public”.


  • For Microsoft, the key threat is that the Steam Deck isn’t even a Windows OS device by default, let alone having Microsoft’s Xbox services and Game Pass on it. Valve has used the platform, very successfully, to evolve Steam from being simply a digital store that runs (usually) on Windows, into being a very capable gaming OS in its own right.

    That, perhaps more than anything else happening in the industry in recent years, is a threat to Microsoft’s plans for the Xbox platform and gaming more broadly – and if the success of the Steam Deck is a key component of that threat, then creating an Xbox device to compete directly in that space seems like the logical response.

    And there’s the real reason why Microsoft cares. The success of the Steam Deck is a threat to Windows because it runs Linux. Also, the more games that run on the Steam Deck means the more games run on Linux.

    Microsoft normally solves problems like this by abusing their monopoly and crushing their competition. In this case though, Microsoft is the underdog since Steam is the one with a much larger gaming monopoly. They’re going to have to spend billions and billions if they want to stand a chance against the Steam Deck.

    The other enormous problem they face is that Windows is very, very far behind when it comes to technology compared to Linux. Devices made for Linux vastly outperform the best hardware that runs Windows. Even if that hardware was made to run Windows!

    Windows is decades behind Linux from a technological development standpoint. For example, Windows is still running the same filesystem from over 30 years ago!

    What this means is that for any given portable hardware Linux is going to vastly outperform Windows in basically every benchmark from battery life to frame rate. That doesn’t even include the fact that in Windows you’re forced to install many background apps (and kernel level rootkit anti-cheat) that takes up memory and slows everything down just to get basic security and play games.


  • without type safety your code is no longer predictable or maintainable

    This sounds like someone who’s never worked on a large Python project with multiple developers. I’ve been doing this for almost two decades and we never encounter bugs because of mismatched types.

    For reference, the most common bugs we encounter are related to exception handling. Either the code captured the exception and didn’t do the right thing (whatever that is) in specific situations or it didn’t capture the exception in the right place so it bubbles up waaaaay too high up the chain and we end up with super annoying troubleshooting where it’s difficult to reproduce or difficult to track down.

    Also, testing is completely orthogonal to types.


  • Haha: “A space breaks everything.” Fuck YES! Are you kidding me‽ It’s one of the best features!

    Why? Because it’s so easy to see. In other languages you’ve got semicolons which are surprisingly difficult to notice when they’re missing. Depending on the situation (or if you’re just new to programming) you could spend a great deal of time troubleshooting your code only to find out that you’re missing a semicolon. It’s frustrating and it makes you feel stupid which is never a good thing for people who are new programming.

    Types are in a different category altogether with seemingly infinite reasons why you’d want a feature-rich, low-level type system and also why you’d want to avoid that.

    IMHO, the point of Python is to be a simple language that’s quick to write yet also very powerful and speedy when you need it to be (by taking advantage of modules written in C or better, Rust). If it had a complex type system I think it would significantly lower the value of the language. Just like how when I see an entire code repo using Pydantic and type hints everywhere it makes the code unnecessarily complex (just use type hints where it matters 🙄).

    I’m not saying using type hints on everything is a terrible thing… I just think it makes the code harder to read which, IMHO defeats the point of using Python and adds a TON of complexity to the language.

    The promise of type hints is that they’ll enable the interpreter to significantly speed up certain things and reduce memory utilization by orders of magnitude at some point in the future. When that happens I’ll definitely be reevaluating the situation but right now there doesn’t seem to be much point.

    For reference, I’ve been coding in Python for about 18 years now and I’ve only ever encountered a bug (in production) that would’ve been prevented by type hints once. It was a long time ago, before I knew better and didn’t write unit tests.

    These days when I’m working on code that requires type hints (by policy; not actual necessity) it feels like doing situps. Like, do I really need to add a string type hint to a function called, parse_log()? LOL!


  • New Years resolution the past 5 years: I will get better with Rust.

    …and I do get better but somehow it always feels like it’s not enough. Like, I’m still an imposter.

    I can program an entire embedded USB keyboard/mouse firmware from scratch that can do all sorts of things no keyboard has ever done before yet I still feel like a newbie somehow. Like there’s all these people that talk about traits and mutli-threaring with async and GPU and AI stuff and I’m like, “I wrote an embedded_hal crate that lets you use both 8 and 16-channel multiplexers simultaneously!” or, “I wrote an interface that let’s you use the extra space in your RP2040 flash memory as a filesystem!”

    Yet everything I ever write in Rust always just uses the most basic and simple features because I still have trouble with complex lifetimes (passing them around quickly gets too confusing for me) and traits that work with non-basic types (because in the world of embedded 'static is king).


  • Santa is a stand-in for Jesus… for children. They’re both magical beings that can perform miracles and have similar methods: Both Santa and Jesus have naughty lists and forms of punishment that come later; much later (both are equivalent lengths of time to a child though 🤣). Both bring “gifts”. Both have traditional appearances. Both have followers that wear silly hats and strange clothes. But most importantly…

    Both are imaginary.

    If you believe in Santa as an adult you’re ridiculed. If you believe in Jesus as an adult you’re just labeled, “Christian”. Yet the fact that nearly every child eventually finds out Santa isn’t real is quite disturbing to a lot of Christians. After all, if they could stop believing in Santa–who is so similar to Jesus in every way–then they could stop believing in Jesus.