• 3 Posts
  • 14 Comments
Joined 1 year ago
cake
Cake day: July 24th, 2023

help-circle
  • There are techniques like abstract interpretation that can deduce lower and upper bounds that a value can take. I know there is an analysis in LLVM called ValueAnalysis that does that too - the compiler can use it to help dead code elimination (deducing that a given branch will never be taken because the value will never satisfy the condition so you can get rid of the branch).

    But I think these techniques do not work in all use cases. Although you could theoretically invent some syntax to say “I would like this value to be in that range”, the compiler would not be able to tell in all cases whether it’s satisfied.

    If you are interested in a language that has subrange checks at runtime, Ada language can do that. But it does come at a performance cost - if your program is compute bound it can be a problem


  • Why would you have to choose between tests and compiler checks? You can have both. The more you have the less chance of finding bugs.

    I would also add that tests cannot possibly be exhaustive. I am thinking in particular of concurrency problems - even with fuzzing you can still come across special cases where it goes wrong because you forgot a mutex somewhere. Extra static checks are complementary to tests.

    I think you can write “unsafe” code in Rust that bypass most of the extra checks so you do have the flexibility if you really need it.




  • I love that software. It’s so simple - no need for much clicking you can do a lot with just the keyboard.

    I love particularly how there is no bloatness. Creating a new task is as simple as pressing ctrl+a (or shift+a), typing the name and pressing enter. Creating a subtask is just pressing ‘a’ on the task and type the name.

    There is jira integration so I can import my jira tickets and make my own local subdivision in smaller tasks that do not need to be thoroughly described or shared. The status of the jira tickets can be updated from the app directly

    There is a pomodoro plugin that works well minor some bugs (don’t ever choose “close” when prompted to skip the break or go back to work)

    Wonder what did I do last week for writing a summary? Just look at the history in the app

    I really love it and can only recommend it for personal planning


  • Yes, getting into a new project is hard. Even when you do know the languages and frameworks it’s still hard because you have to get into the mini ecosystem that the developers of that project built. In companies there is usually an expected amount of time (days? weeks? Months? Varies on the project) where a new developer is not really expected to do anything major, just getting used to the project.

    I do not know if you are professional or hobbyist. But coding takes a lot of time, a lot of it is spent on just figuring out how you will code this or that feature ; then another bunch of time is spent debugging ; and finally, yet another bunch of time is spent integrating your new feature. That’s why it’s a whole job, and that’s also why you need a ton of free time to do this as a hobbyist.

    But the good news is that once you spent that upfront time to get into the project, you can code more efficiently (that is, get right to the features you want to make) and you will also spend a little bit less time getting into other projects because although projects are different, there is always some level of organization that remains similar. The more advanced you become, the quicker you can get into a “production” state where you can code right away thanks to spending less time figuring out how things work.





  • Yes. My windows takes literally 10 minutes to boot. I am counting here from the moment i press the button to the moment it is usable (when I can run applications and use them). I have a HDD and each time I boot windows services are always looking to update something which starves the other apps. It’s really a clog. If I want to use it faster I need to bring up the task manager and kill each update thing one by one until I killed them all.


  • Program easily and efficiently. Not having to wait 5 minutes for a window to come. Fast boot/reboot times (less than 10 minutes). Native support for many things without having to install them. Installing is usually as easy as running an apt-get command. Not having to kill update processes because they take 100% of your disk bandwidth and starve all your other apps.

    Windows feels like an ugly and sloggy system with a ton of duck tapes. Only reason I use it on my gaming laptop is for games.

    Linux on the other hand just works. Nothing fancy, but it’s just what someone who wants efficiency needs.





  • In StackOverflow, when a user asks a similar question to one that was already asked, most of the time the question gets closed with a link to the “original” question without being told why the question is similar or how the answers to the “original” question can help the author.

    That might be OKish for us experienced developers. But for a total beginner, I find this approach to be unsuitable. Most programming beginners don’t even know how to phrase their question because they are not sure what they are struggling with themselves. Most of their posts will be like “There is something wrong with my code but I can’t figure out what it is”. That would not have a place on StackOverflow ; the post would get downvoted to infinity and the beginner - who is just looking to learn - will most probably say “Ok, StackOverflow no more” and move to other media for help.

    One time I asked a question about Perl semantics ; I could not figure out the behavior of a program I wrote. My answer got closed and redirected to another question that did feature a similar program to mine, with a similar behavior. But the answer to that question was not it. It was not explaining the wrong behavior on my program ; although it was similar. At the end of the day I did manage to figure out what was happening ; it turns out it was an effect different from the post that was linked. I tried to make an Edit and asked for reopening my question in order to provide the real answer to that question but I think that did not get accepted.

    Actually, now I cannot even find the question in my profile anymore. It probably got removed altogether.

    I agree that the multitude of programming help communities is a problem and my proposition would exacerbate that. But StackOverflow is clearly not the answer for me.