• 12 Posts
  • 650 Comments
Joined 2 years ago
cake
Cake day: June 18th, 2023

help-circle

  • If you can’t stand anything else, I highly recommend giving vertial mouse a try. It took me around hour top to get used to it and forget that I switched mouse types, and I also regularly switch between vertical for work and regular for gaming and it’s effortless.

    The point is that the mouse is, well, vertical, so you don’t have twisted wrist. It’s a pretty small difference and it’s super easy to get used to it, and the mouse costs basically the same as a regular mouse. I have been using one for 15EUR for years now, and am pretty happy with it - I don’t see any reason why not to make the switch, if it has a health benefit.



  • I have randomly decided to buy a cheap vertical mouse when I needed a new mouse in my office, and it has been suprisingly easy to get used to. I didn’t struggle with it, and after a few hours I didn’t even notice any difference, so I highly recommend giving it a try.

    I still use regular mouse for gaming, but for any office work or programming, as well as in a laptop bag, I have this mouse. I haven’t really looked into any research behind it, and since I’m fortunate to not have issues with my wrist (so far), I can’t really rate the health benefits, but I assume it should be at least slightly better than a regular mouse.

    And since the transition was effortless, the mouse is cheap and works for daily programming and web browsing perfectly, even if the health benefit was actually small, I don’t see any reason why not use it instead of a regular mouse.


  • I didn’t know that LINQ had more usages than just me being lazy to write a for loop, I have something to look into, thanks. Judging by the first documentation page I found, I wouldn’t even recognize the syntax as the LINQ I’m used to. I really need to catch up on new C# stuff.

    Saying LINQ produces garbage is uncalled for when it’s a different use case and supports other or more use cases.

    I don’t think I understand why would it be uncalled for, though. At least in the context of game development, where even small allocations can be a problem, it feels ok to generalize, especially if most people probably only encounter LINQ in it’s basic form instead of the other use cases. Mostly for the sake of new programmers, who may fall into a trap of over-using it.

    Unless you are talking about using the term garbage, which now I realize may sound degradatory. That wasn’t my intention, and I don’t have any negative connotations with that word, so it was not meant in a negative way - I though it’s the correct terminology for allocations that need to be collected by garbage collector later, which is an issue in performance critical applications.



  • I started as part time without any experience durring my college. I was studying gamedev software engineering, but we had one voluntary class about Ethical Hacking.

    I just asked my professor if he can reffer me to someone in the field, followed OWASP Web App Testing guide to the letter when testing the interview homework website, and landed the job without much prior experience (I did attend a few CTF competitions, though).

    Just following the checklist in OWASP testing guide made my results comparable to, or even better to some of my colleagues, and I’ve slowly learned the rest (especially internal domain pentesting) from our internal documentation or shadowing seniors during pentests, and simply being interrested in the field, having initiative and looking up new tools and exploits eventually got me to a Red Team Lead role (not a very good RT, though, but it did improve eventually).

    The pay was pretty good compared to what’s usuall here in Czech, too. I could comfortably pay rent and get by even with part-time, during college.







  • My issue with canvas fingerprinting and, well, any other fingerprinting is that it makes the situation even worse. It plays right into the hands of data brokers, and is something I’ve been heavily fighting against, and simply don’t visit any website that doesn’t work in my browser that’s trying hard not to be fingerprintable.

    Just now there is an article on the front page of programming.net about how are data brokers boasting to have extreme amounts of data on almost every user of the internet. If the defense against bot will be based on fingerprinting, it will heavily discourage use of anti-fingerprinting methods, which in turn makes them way less effective - if you’re one of the few people who isn’t fingerprintable, then it doesn’t matter that you have no fingeprint, because it makes it a fingerprint in itself.

    So, please no. Eat away on my CPU however you want, but don’t help the data brokers.


  • I did Software Engineering Bachelors and then gamedev masters, and while I didn’t really appreciate it at the start, since it felt like I’m learning a lot of stuff I’d never need, I’ve eventually come to be really glad that I did it.

    Throughout the classes it felt pretty meh, I didn’t understand why I have to do so much stuff that I’ll never really use, and always felt like I’m just forgetting 90% of what I was taught the moment I was done with finals for that class. Why do I need to learn Smalltalk? Why Lisp? What even is Prolog? Does anyone even do UML anymore? I want to be a C# programmer, I don’t need this.

    And it was true. From most of the languages I’ve had to go through, I don’t remember almost anything. But that’s not what it was about, and that’s something I only came to appreciate with time - it was not about learning Pharo or Prolog, it was about overcoming the initial learning curve and getting somewhat familiar with OOP or formal-logic style of languages. And while you forget the details, the familiarity will stay with you. The goal is not to make you a Prolog programmer, but to make you a programmer.

    I’ve eventually realized that I can pick up any language pretty quickly, no matter what it is - because I’ve already seen and learned all of the different styles or types of languages there are, and no matter what it is, it’s similar to something I vaguely remember seeing somewhere. And that’s an immense help. I picked that up naturally, I’ve kept hearing the question “what programmer are you? What language you can program in?”, and it felt weird - sure, I do know the most about C#, but I never had issues with picking up whatever was close at hand or needed, and writing anything I needed with a little bit of documentation and googling. And it was thanks to what I learned in school.

    And the same applies to the math and data structures that they hammer into you. Do I remember the difference between red and black tree, or a min-heap, and can I prove it? Not really, but I know they exist, and when I see a problem that sounds like it could use some obscure data-structure, it comes to my mind and I know what keywords to look up. And that’s a skill that I’ve notice is missing from most of the people who didn’t have formal CS background. Same goes for algorithms like FFT - you know it exists and what it’s used for, and seeing a problem that could use it will trigger your PTSD.

    So, I highly recommend giving college a try. You will learn a lot of cool algorithm, and some of the classes were fascinating, and it will give you a vague overview that will stay with you throughout your carreer, feeding you with keywords about stuff that might be usefull for the problem at hand. It’s the best thing I’ve done in regards to programming.




  • Just a headsup, hosting your own server, so you can have all the bridges you need (messeger, WhatsUp, Discord…) is really easy, thanks to the amazing Matrix Ansible project. In my experience it’s one of those rare docker/ansible projects that is robust and just works, that has a pretty well documented install process.

    Setting up a server took me like 2 hours max, incuding getting a hosting (a cheap Hetzner cloud for 6$ a month) and a domain, and I do not have almost any docker or ansible experience. It’s literally just changing a few config variables to enable bridges you want, setting up a DNS and letting it run.




  • What would be ELI5 use case of this? It has been almost a decade since I did anything math-formal in college, and I wonder what would be some practical uses or situations is SW dev where you should turn to this language.

    EDIT: I skimmed the intro to Verifiable C, and I think I vaguely understand the idea - do I get it right, that the point is to basically create a formal definition of the function you are writing, i.e if you have a function that takes an array and sorts it, you’d have something like

    For every sequence a and every i, 0 <= i < len(F(a)) -> F(a)i < F(a)i+1

    (Or whatever would the correct formal definition be, I don’t really remember the details, I know I missed some stuff about properly defining the variables, but the idea of the definition should be kind of correct)

    And then you define this formal definiton in CoQ, then somehow convert your code into CoQ code it can accept it as F(a), and CoQ will try to proove formally that the function behavior is correct?

    So, it’s basically more robust Unit Testing that’s backed by formal math proofs?