• 0 Posts
  • 6 Comments
Joined 2 years ago
cake
Cake day: July 17th, 2023

help-circle
rss
  • As an older coder, I’ve spent time commercially programming in a lot of languages (C, C++, C#, Python, TransactSQL, Javascript, and a few more - with many years of experience in each. I even spent time squeezing some forth code into a small programmable chip.

    My first comment on this « attitude » expressed above is that you need to pick the language (and its libraries) that is best for your problem space - each will have advantages, including constructs and libraries to suit whatever domain you are working in. Hence forth for a microchip, TransactSQL for DB stored procs, python for general purpose command line work etc.

    Having said that I do want to present one viewpoint which could give rise to this above expressed opinion. It’s an area that C is considered pretty strong - specifically language complexity. When coding in C, I really felt like I knew every nook and cranny of the language, exactly how every structure would be packed, what the assembly would probably look like.

    Python (and perhaps C#) are currently my favorite languages - python only has 36 keywords and while I don’t have the same solid grasp of what’s happening under the hood, I do feel like there are very few surprises and corner cases to the language, even while supporting some complex programming methodologies.

    The opposite of this is (IMHO) swift. What started as a really nice language with a clean syntax and solid libraries has morphed into a monster with 232 keywords. Does any swift programmer have a solid grasp of it all?

    I would say that C++ is at the complicated end of the spectrum - spend some time inside Boost and their extreme use of templates/meta-programming and it will make your head spin. The Boost developers are super smart people, but its non-trivial to understand what is going on. Having said that, C++ does make you feel that you can code close to the machine and have a good handle on what is happening under the hood.

    This level of control is probably one place where this « only C and C++ code is any good » attitude came from. Its not an attitude I support.


  • If you did get a seriously large lump of cash… after a settling in period a lot of changes will happen, and you will be happy they did (IMHO).

    The reason is that one of the biggest gifts that wealth gives you is TIME. A lot of the day to day crap that the rest of us need to deal with just evaporates. No need to shop (there are people for that). Want to travel… people will organise everything. There will be no waiting in lines at airports, at restaurants, at government offices… there are people for that. Someone to clean, someone to pick up the kids (unless you want to of course), someone to cook, holidays on a fuck-off huge yacht with crew to manage everything, or just to zip to Paris for the weekend.

    You will probably really appreciate not having to deal with most of that crap. Also, while you probably don’t want a stupid large house, you do want privacy and so will want to get a house on 1000 acres in a gorgeous landscape (plus perhaps apartments in various cities that you like).

    Imagine moving from a food insecure lifestyle to a secure lifestyle where food, safety, housing is always there. Would you want to keep your old food-insecure lifestyle? No. Same with going from a food secure lifestyle to a time-and-resource abundant lifestyle.


  • I second the advice to switch to a different/previous/known good kernel. That has been the cause a most boot problems for me. I just had it happen on a VM a couple of weeks ago, so I switched to the old kernel, then removed the new kernel. I’ll wait for another kernel before upgrading.

    It’s probably worth scanning your disk just in case as well.



  • Be wary of RAID 5 or 6.

    They both have a « write hole » problem (or though much less so in RAID 6). Any power failure which causes an incomplete write can cause a complete RAID corruption - meaning all data is lost. Hardware RAID controllers usually have an onboard backup battery so they can store some information to complete operations should there be a sudden power failure. Software RAID does not have this, and you need to provide a UPS with automatic clean shutdown as the battery runs low using nut or some equivalent.

    Some people go as far as to say that RAID 5 should never be used.

    You also have very long recovery times when you replace a failed drive (days). Any other failure during this time means total data loss (of course RAID 6 gives you a second redundancy). Weekly Resyncs are very slow too (hours to days), and (unless you constrain your max throughput) will bring your system to its knees.

    zfs does not suffer from these problems, BTW.

    I run software RAID 5 via mdadm and have a UPS. I’ve replaced drives twice with no issues other than a slightly nervous long wait during recovery. I’m too cheap to buy the extra HDD for RAID 6, and may end up regretting it one day.


  • My $0.02c worth - I have run all sorts of servers at home over the years, and one of the main challenges around the hardware is managing heat.

    I’ve used mini-ITX mobos and tiny cases for builds. They look gorgeous, but at some point, when you stick enough drives in there (assuming you can) or make the CPU/GPU busy, you are going to have a heat problem, or a noise problem, or both.

    On my mythtv build I used M-itx and a gorgeous Lian Li small case. It was a beautiful add to my home theatre stack, but in the end I drilled a ton of small holes in the top and added a slow 140mm fan to control the heat without noise.

    The same goes for my file server - it was a slightly larger case with no GPU, but once I added my 6th HDD and had a ton of services running, heat became an issue and I was having to add extra fans, which could only be 80mm so they ran fast and noisy.

    My new build I’m going to go all the way with a Phanteks Enthoo Full Tower and a few 120mm fans. I’ve decided that looks don’t matter

    The other problem for me with these tiny builds is cable management. I’m complete shit at it, and small builds requires some skills. A big case gives you space to spread those cables out.

    Lastly, you can get ATX or EATX mobos with 6, 8 or more SATA connectors - room for growth! And there are very low power options available.

    I’ll soon have the appleTV + TV upstairs, laptop in the office, and the monster server downstairs with cat-6 + Gb fibre throughout.