• 0 Posts
  • 226 Comments
Joined 3 years ago
cake
Cake day: June 9th, 2023

help-circle

  • So, I can tell you what I know from a bassist’s PoV.

    What I posted was the 12 bar blues chord progression in Roman Numeral notation. What it tells you is that if you start in the key of C, the other bars are 4 and 5 notes up from C. In addition, since the notation is in uppercase, the chords / arpeggios you can play in that bar are major not minor. So, if a bassist is playing a walking bass line for 12 bar blues, they’ll probably start those bars with C, F and G. But, since they’re C major, F major and G major, the bassist can play major arpeggios in that key in those bars and it will sound good.

    For other kinds of blues progressions, if you know Radiohead’s “Creep”, you can see that as being an 8 bar blues with the following progression:

    1 2 3 4
    I III IV iv
    I vi ii V7

    So if the root is C, the 2nd bar is E major, third bar is F major, 4th bar is F minor, and so on. Because the 3rd and 4th bars are both rooted at F the bassist can just play an F there and it sounds good (which is what I think Radiohead’s bassist does), but if the bassist chooses to play more notes in an apeggio, they have to play notes from the F-minor scale in that 4th bar or it doesn’t match.

    As for why those various chord progressions happen to work, that I don’t know. I don’t know if anybody does. But, I do know there’s some math / physics behind it. A perfect fifth is one of the most pleasant sounding intervals, and those notes are at a frequency ratio of 2:3. The only better sounding thing is an octave at 1:2. And, the inverse of a perfect fifth is a perfect fourth. So, songs being made from 4ths, 5ths and octaves makes sense.



  • Baking is not chemical engineering. Chemical engineering doesn’t even have much to do with chemistry. It’s mostly about temperatures and flow rates, pressure, etc.

    Saying “the baseline of programming knowledge could be more than zero” is meaningless. The baseline of chemical engineering knowledge could also be more than zero. It’s also a fundamental part of our society. But, the average person doesn’t need to know how to program, just like the average person doesn’t need to know how to design a refinery.

    People do learn some basic computer skills. They should learn more. They should know about files. They should know how to back up their data. And, more importantly, they should learn how to restore data from a backup after something goes wrong. They should know how to properly update their devices, how to tell if their devices are infected, and the basics of managing a home network. They sometimes learn how to do basic functions in excel spreadsheets. That’s about as far as they do, or should need to go in programming / IT. Beyond that, why should the average person need to know how to do recursion, or how loops work?



  • It never actually seems to work out that way though. Sure, for Y2K there was a short period where there were decent contracts fixing that bug in various codebases, but it wasn’t something that lasted very long.

    Managers and owners would much rather pass off a terrible PoS and have their users deal with it, or somehow get the government to bail them out, or hire a bunch of Uyghur programmers from a Chinese labour camp, or figure out some other way to avoid having to pay programmers / software engineers what they’re actually worth.


  • I did that myself back in the day. Not overly complicated, but a SQL builder.

    I think it’s because SQL is sort-of awkward. For basic uses you can take a SQL query string and substitute some parameters in that string. But, that one query isn’t going to cover all your use cases. So, then you have at least 2 queries which are fairly similar but not similar enough that it makes sense just to do string substitutions. Two strings that are fairly similar but distinct suggests that you should refactor it. But, maybe you only make a very simple query builder. Then you have 5 queries and your query builder doesn’t quite cover the latest version, so you refactor it again.

    But, instead of creating a whole query builder, it’s often better to have a lot of SQL repetition in the codebase. It looks ugly, but it’s probably much more maintainable.





  • I’m using automated renewals.

    But, that just means there’s a new cert file on disk. Now I have to convince a half a dozen different apps to properly reload that changed cert. That means fighting with Systemd. So Systemd has won the first few skirmishes, and I haven’t had the time or energy to counterattack. Now instead of having to manually poke at it 4x per year, it’s going to be closer to once a month. Ugh.



  • On some filesystems the data is still there but the filenames associated with it are gone or mangled. That makes it harder to recover things. In addition, while it’s true that the contents are only overwritten when you write data to the disk, data is constantly being written to the disk. Caches are being updated, backup files are being saved, updates are being downloaded, etc. If you only delete one file the odds are decent that that part of the disk might not be used next. But, if you nuke the entire drive, then you’re probably going to lose something.



  • The front page of the web site is excellent. It describes what it does, and it does its feature set in quick, simple terms.

    I can’t tell you how many times I’ve gone to a website for some open-source software and had no idea what it was or how it was trying to do it. They often dive deep into the 300 different ways of installing it, tell you what the current version is and what features it has over the last version, but often they just assume you know the basics.





  • His mother came from money, being the daughter of a banker, and the granddaughter of a banker. His father was a lawyer who founded a law firm focused on corporate law and technology law. Given that his mom knew Opel personally, and his dad was a technology lawyer, is it any surprise that Gates’ first contract with IBM was so incredibly friendly to Microsoft’s interests?

    In addition, IBM was under pressure at that point because it was being sued for antitrust violations by the US government. That limited how aggressive it could be in new contracts without drawing extra attention. In other words, the antitrust effort from the US government took power away from IBM and allowed for new companies to flourish. Then about 20 years later, Microsoft was sued for its own illegal use of its monopoly (a trial at which Bill Gates lied on the stand, and where Microsoft falsified evidence), and this work to limit the reach of Microsoft allowed for the Internet to flourish and led directly to the rise of companies like Google and Amazon. It’s now time for another round of antitrust to allow more companies to flourish – only hopefully this time the antitrust efforts don’t fade out and are aggressively pursued year after year so we don’t get more shitty monopolies making things awful.


  • I don’t see anything unprofessional there. Just naughty words. But, the naughty words are somewhere where they warn you that the code below doesn’t behave as expected, or complain because there isn’t a better way to do something. That seems like the best time to use strong language.

    Cleaning it up is a great idea in theory, but in practice almost everybody has higher priority things to be doing. Leaving a comment in the code for why something is ugly is the best thing you can do when you don’t clean something up, so that someone coming along after you doesn’t struggle with it. We have no idea how many “naughty” comments are no longer there because the issues they addressed were cleaned up.