12 December 2016

The stupid chit-chat around and how to fix it (for people that prefer reality than some herp-derp)


     Yeah, it seems this just landed on linux world.....    
     At first, only people in MacOS and Windows have some sort of mental illness about "NO, YOU DON'T NEED TO DO ANYTHING, THE ENTIRE OS IS JUST OPTIMIZED FOR YOUR NEEDS, IT WORKS IN THIS WAY". Now this starting to land on linux, so let's get started.

1. It's useless to compile, it's a waste of cpu cycles.

     I see someone in #archlinux saying that. Uh.. your cpu have limited cpu cycles? Can you count that? So you're economizing cpu cycles for the future? Do you know how stupid this sounds? 
     It's starting to be more and more common jerks saying that, so ignore completely. Someone that says this doesn't really have the solution for what you're searching for.

2. You can't optimize compiling, only coding.


     This one was said by an OP in #ubuntu-br. Fancy uh? When you see an OP in freenode, you usually expect people with the better knowledge there and capability to help, but it's seems isn't like that happens there. Well.. We know how freenode works, right? 
     Yes, you CAN optimize, no matter how you're trying to convince someone that this isn't possible, but you're wrong and you can cry all night long if you want. Of course there's issues: Optimization isn't magic, specially in OS level, it's a big set of stuff that MUST be done together to have visible optimizations, for example, if you just compile xorg, it'll not be faster or probably you'll not even notice. If you made an entire system with custom cflags for your processor, file systems optimized, elevators sets and everything else, the OS have a high chance to be faster than any other binary distribution.  
     If you're still verbiaging about that, do a favor to all of us: https://gcc.gnu.org/onlinedocs/  

3. IoT isn't interesting because I can emulate all my emulators better in my PC

     IoT devices aren't dedicated emulation stations. IoT devices doesn't the solely purpose to be an emulation console. IoT devices are lowpower machines capable to a lot of things, specially in some scenarios like weather stations using solar power. It's like saying that arduino only serves to robotics. IoT is a good lowpower machine, with GPIO and capable of lot of things that ALSO HAVE the option to turn into a dedicated emulation station, so stop saying this crap.

4. If you have a lot of RAM, you don't need swap.

     When your machine starting having issues, you'll cry right? Swap isn't "a place to be occupied when your RAM is full", swap was never have this solely function and probably will never be (it probably will use it IF you get your RAM really filled, but this is an emergency situation). Swap is used for a lot of different scenarios, and even your filesystem use it from time to time (specially in x86 machines). If you really want to do in the right way, you have to figure out this:

vm.swappiness = 20 # Increase or decrease the swap footprint, making less use of swap but still having his features. The best value for more than 16Gb of ram is 10, but it's better to test yourself what fits you better.
vm.dirty.ratio = xx # The maximum amount of system memory that can be filled with dirty pages before everything must get committed to disk. When the system gets to this point all new I/O blocks until dirty pages have been written to disk. This is often the source of long I/O pauses, but is a safeguard against too much data being cached unsafely in memory. 
vm.dirty_background_ratio = xx # Percentage of system memory that can be filled with memory pages that still need to be written to disk before the pdflush/flush/kdmflush background processes kick in to write it to disk. It's up to you and your computer usage.
vm_dirty_expire_centisecs = xx # How long something can be in cache before it needs to be written. When the pdflush/flush/kdmflush processes kick in they will check to see how old a dirty page is, and if it’s older than this value it’ll be written asynchronously to disk. Since holding a dirty page in memory is unsafe this is also a safeguard against data loss.
vm.dirty_writeback_centisecs = xx # How often the pdflush/flush/kdmflush processes wake up and check to see if work needs to be done.

    You can use a ramdisk for that, (if you're short in ram, this will kill the purpose). You can use a ramdisk with 256Mb or more and use for swap, but remember to always have the footprint low or you'll be sorry if something happens (specially using xfs).


5. FAT32 doesn't need journal because they sync automatically from time to time and have an R/O flag when the writing is done

     From freenode. And this is the most dumb thing I ever read in my entire life about any filesystems.
     If you really want to protect a fat32 from damage and mounting at boot (like the EFI partition), just use sync option in fstab and you're good to go.

6. I don't have any privacy concerns about windows 10 because I don't have anything to hide

     This is hideous and sad. It's not about having something to hide you sick fuck, it's not about being a criminal or having some illegal in your harddrive. This doesn't mean that any jackass company have the right to spy on EVERYTHING YOU DO. Or even worse if you think in man-in-the-middle scenarios (anything can create a bug making man-in-the-middle possible, a lib, a software, ANYTHING).
     If you need to use windows 10 for whatever reason and you're not mentally disable and want to stop microsoft to messing up your privacy, use my post.