• 1 Post
  • 29 Comments
Joined 2 years ago
cake
Cake day: June 13th, 2023

help-circle


  • I wanted to publish a tiny utility I created to GitHub (you know, it might be useful to someone else…). Before that, I wanted to some cleanup, rebasing/squashing a bit, etc. In the middle of that:

    $ git checkout featurebranch
    The following untracked working tree files would be overwritten by checkout:
    .gitignore
    .idea/…
    etc...
    

    Oh, sure, no problem…

    $ rm -rf * .*
    $ git checkout featurebranch
    fatal: not a git repository (or any of the parent directories): .git
    

    D’oh! (Never mind, it probably wouldn’t have been useful to anyone else, anyway.)









  • Sure, strtok is a terrible misfeature, a relic of ancient times, but it’s plainly the heritage of C, not C++ (just like e.g. strcpy). The C++ problems are things like braced initialization list having different meaning depending on the set of available constructors, or the significantly non-zero cost of various abstractions, caused by strange backward-compatible limitations of the standard/ABI definitions, or the distinctness of vector<bool> etc.



  • Beware the DWIM!

    In one notorious incident, Warren added a DWIM feature to the command interpreter used at Xerox PARC. One day another hacker there typed delete *$ to free up some disk space. (The editor there named backup files by appending $ to the original file name, so he was trying to delete any backup files left over from old editing sessions.) It happened that there weren’t any editor backup files, so DWIM helpfully reported *$ not found, assuming you meant ‘delete *’. It then started to delete all the files on the disk!

    http://www.catb.org/jargon/html/D/DWIM.html