• 0 Posts
  • 27 Comments
Joined 1 year ago
cake
Cake day: June 10th, 2023

help-circle


  • As an American, I’d agree to a certain point. It is sad that foreign language skills are not terribly well emphasized in the US, but finding instruction in languages you might want to learn can be challenging depending on the language, unless it’s something common such as Spanish, French, or German. I work on my language skills using online resources as much as I can, but I’m also an adult with a full time job, so finding time is also a challenge. Also, unless you’re surrounded by people actively speaking the language, it can be exceptionally difficult to build those skills and hang on to them for very long. I know a little Danish, a little Russian, a little Finnish, a little Greek, a little Japanese, a little Mandarin, but lacking the ability to immerse myself in environments where those languages are spoken, I’ll likely never get good enough to speak any of them anywhere close to fluently aside from knowing a few phrases at best.

    And to your point about how language learning should be mandatory, it’s a nice idea, but when I went through school, it was mandatory to take at least one language course. I took French in high school. I didn’t enjoy it and don’t remember a damn bit of it. Most of the kids I knew took Spanish. Nearly all of them also didn’t retain any of it. So, it’s more than just making instruction mandatory, schools need to get kids genuinely interested, otherwise none of it will stick.










  • I can understand telling you not to use break and continue if the point is to teach you to think about different ways to solve problems, but saying it’s because “it makes the code harder to read” is bullshit. Readable code flow is important, but if using those makes your code too hard to read, your problem is most likely that you’ve just written shitty code.

    To get really into the technical weeds, what break and continue boil down to in the compiled machine code is a non-conditional branch instruction. This is just going to move the execution pointer to a different location in memory. Other keywords, such as if, elif, and else, will compile down to conditional branch instructions. Basically the same thing, but they have the added cost of having to evaluate some data to see if the branch should happen at all. You can achieve the same things with both, but the high level code might need to look different.

    For instance, if you’re in a loop, continue will let you skip the rest of the code in the loop to get to the next iteration. Not a huge deal to instead make the entire code block conditional to skip it. However, the break keyword will let you exit the loop at any point, which is more complicated to deal with. You would have to conditionalize your code block and force the looping condition to something that would stop it on the next iteration. If you ask me, that has the potential to be much more complicated than necessary.

    Also, good luck using switch without any breaks, but I’m guessing that’s not quite what your teacher had in mind.

    In short, just go with it for now. Be creative and find a way to make it work to your teacher’s liking, but always try to be aware of different ways you can accomplish a task. Also, I don’t know what language you’re using, but if you’re in C/C++ or C# and you feel like getting really cheeky, it doesn’t sound like she disallowed the use of goto. It’s kinda like break with fewer safeguards, so it’s super easy to write broken code with it.





  • Personally, I found Arch to be difficult to get installed. I’m ok with command line stuff once everything is all setup, but having to use it for the installation process is something I found to be too easy to screw up and too time consuming overall. Also, I haven’t seen any drop of vanilla Arch with a GUI installer. For the Arch experience, I generally go with EndeavourOS since it’s easy to install, gives you lots of options for the window manager, and is easy to use once you get it up and running.

    If you’d prefer the Debian environment, I think anything from Debian or any of its derivatives (Ubuntu et al) would be a decent choice. My favorite is Linux Mint. I’ve seen a lot of people describe it like “entry-level” Linux, but it’s very capable and user friendly. It’s where I tend to spend most of my time when running Linux and I would say usually requires the least setup since it typically just works out of the box.

    There’s also OpenSUSE Tumbleweed if you feel like going a somewhat different direction. I get more “traditional Linux” vibes from OpenSUSE, but packaged up in a user friendly manner. I play around with it from time to time in a VM, mostly when I want to test out some new server package locally. But, that said, it’s still capable of handling anything else I throw at it, so it’s fun to use all the same.


  • I started out with blue switches years ago and they were obnoxiously loud, so I switched to reds and used those for a long time. Though, I kinda got tired of them and decided to give the Keychron banana switches a try several months ago and I’m absolutely loving them. They have a light tactile feeling, but they’re much quieter than Cherry browns. And a huge bonus is that Keychron keys are hotswappable, so if I get any bad keys or feel like switching to a new type, no having to deal with soldering to replace them.