What are you reading these days? (Low End news, Dijkstra, Fedora, FILE type in C, Vim, Zhuangzi)

Not_OlesNot_Oles Hosting ProviderContent Writer
edited August 2023 in General

Hello!

This morning I first checked the Hetzner Auction to find that the server I was going to buy when the price decreased another one Euro already was gone. :) Next chance may be this evening! :)

Next, I read a couple of emails, then checked LET, Nodeseek, here at LES, HN, and the Fedora Development Discussion email archive. Then I updated and rebooted my server.

The big Low End news for this morning seems to have been the LET raindog308 20K thanks thread, which even made it to Nodeseek.

HN had a post about Edsger Dijkstra. So I went off and read the Wikipedia article about Dijkstra.

For this afternoon I have several possibilities. I've been reading about compiling kernels the Fedora way, and bits and pieces of a bunch of C programming books. I'm looking for an explanation of why the FILE type is capitalized and most (all?) other types are not capitalized. The GNU C Library Manual mentions "historical reasons" for why a "stream type" is called FILE but doesn't elaborate on what those historical reason;s were. Could someone here please share what the historical reasons are for "stream" being called "FILE" and for "FILE" being capitalized? Is it as simple as, before networking, the "only" streams were to and from local files?

Probably everybody knows that Bram Moolenaar passed away. It isn't reading, but sometime soon I want to watch his 7 Habits for Effective Text Editing presentation at Google.

I used to read a little philosophy and religion. Recently I got Graham's Chuang-Tzu, but I haven't started reading it yet.

What are you guys reading these days?

Best from NYC and Sonora! 🗽🇺🇸🇲🇽🏜️

Tom

I hope everyone gets the servers they want!

Thanked by (2)nullnothere ehab
«1

Comments

  • havochavoc OGContent Writer

    Much to my shame I've been buying more books than reading.

    btw highly recommend Amazon kindle daily sales. It's approximately 95% garbage. But if you check it daily against a list of book you desire that 5% rapidly means you got a giant library of books at 1 buck each. Any kindle book you like > add to list, then go to list, sort by price and anything on their 0.99 sale will be at top.

    Read Folding Beijing recently (Chinese short story). For a dystopian story that definitely felt a little too real...

  • Not_OlesNot_Oles Hosting ProviderContent Writer

    I hope everyone gets the servers they want!

  • I've got the latest Red Rising audiobook I'm listening to if that's on topic. Other than that it's perusing AP for news stories and such throughout the day in off moments, links here to tech news, and researching interesting (semi-) work related topics: playing with ssh multiplexing for the first time, setting up jump hosts, etc... currently.

    Thanked by (1)Not_Oles
  • Not_OlesNot_Oles Hosting ProviderContent Writer

    Wow! https://en.wikipedia.org/wiki/Red_Rising

    +1 for science fiction about social class conflict :)

    I hope everyone gets the servers they want!

  • Empornium to see if there are new scenes that meet my criteria, then The Athletic to see if Forest have signed anyone of if anyone got injured during the Giants training camp.

    Following a quick hand-shandy, I usually peruse the classifieds on AVForums then spend the rest of the day reading crap on Twitter until bedtime, when I switch to Reddit.

  • Probably everybody knows that [Bram Moolenaar passed away.

    Just me who did not even know who this was, let alone that they’d died?

  • @Nekki said:

    Probably everybody knows that [Bram Moolenaar passed away.

    Just me who did not even know who this was, let alone that they’d died?

    Things I knew:
    *) Vim had a creator
    *) Vim is far superior to emacs and the one true editor

    Things I did not know:
    *) VIm's creator was Bram Moolenaar
    *) Vim's creator had passed away

    Thanked by (1)Nekki
  • somiksomik OG
    edited August 2023

    @skorous said:

    @Nekki said:

    Probably everybody knows that [Bram Moolenaar passed away.

    Just me who did not even know who this was, let alone that they’d died?

    Things I knew:
    *) Vim had a creator
    *) Vim is far superior to emacs and the one true editor

    Things I did not know:
    *) VIm's creator was Bram Moolenaar
    *) Vim's creator had passed away

    Things I did not know:
    *) Vim existed out of Fallout 4's Far Harbor DLC

    Thanked by (1)Nekki

    Websites have ads, I have ad-blocker.

  • edited August 2023

    Yo

    The Glory and the Dream

    Chinaman holds in high regard for the Yankees

    Thanked by (1)Not_Oles

    smartass shitposting satirist

  • Hi Tom ! Every day I am reading LES & LET in case something comes up but I am always learning computer stuff. For example, yesterday I was dealing with small ACER laptops with emmc disks where wasn't easy to change Windows to GNU/Linux and Win10 was working too bad and getting the disk almost full. Now they're having a great Debian 12.1 :). Moreover I am getting curious this week about RFID cloning, so there're many things to read about. Regards!

    Thanked by (1)Not_Oles
  • @havoc said:
    Much to my shame I've been buying more books than reading.

    btw highly recommend Amazon kindle daily sales. It's approximately 95% garbage. But if you check it daily against a list of book you desire that 5% rapidly means you got a giant library of books at 1 buck each. Any kindle book you like > add to list, then go to list, sort by price and anything on their 0.99 sale will be at top.

    Read Folding Beijing recently (Chinese short story). For a dystopian story that definitely felt a little too real...

    we (me and dad) always do that then my mom gets super angry on us, 60% of our house is probably books.

    youtube.com/watch?v=k1BneeJTDcU

  • I am currently trying to get Windows to be installed in a BTRFS partition by possibly modding the bootloader and the setup and whatnot. I have currently only modded install.wim and boot.wim to recognize BTRFS but setup wont let me install to BTRFS... if anyone knows anything, please do tell.

    youtube.com/watch?v=k1BneeJTDcU

  • edited August 2023

    Websites related to Low End Hosting:
    My favorite is: https://LowEndSpirit..com

    -> I actively encourage others to avoid LowEndTalk (LET). They should feel ashamed and embarrassed for what is allowed there. They do not deserve your support in any form. I do not look at the LET website, period. Neither should you.

    Books:
    Current read - A family member gifted me:
    "The Film Music of John Williams", 2nd edition, by Emilio Audissino. I am enjoying this book very much, but it is a challenge to read. Have a dictionary at your side for the expansive American English vocabulary, and there are many film-music-specific terms as well. It is academic and reads like a graduate textbook, which I don't mind, but do not expect a "light read" despite the subject.

    I just finished reading these two books, which I borrowed from the local public library:

    "How LINUX Works, What Every Superuser Should Know", 3rd edition, by Brian Ward - Highly recommended.

    "Learning Modern Linux: a handbook for the cloud native practitioner" by Michael Hausenblas - I read the opening chapters, but then it got into a depth that was beyond my personal interest, so I flipped pages and skimmed the rest. Others here may find it more apropos, such as those who are interested in virtualization, containers, etc.

    Journal:
    I have been a regular reader of "The Internet Protocol Journal" for over 20 years. It comes out quarterly. The current issue (June 2023) was an especially enjoyable read for me personally. Two articles caught my eye:
    One is about WiFi Privacy (page 12). I am dealing with issues associated with randomized MAC addresses on the home WiFi network, and this article talks about those issues.
    The other is an exceptional "History of the Internet" (page 23). We have all seen articles on that subject many times before, but this one is unique and very different. It is written from the perspective of the underlying protocols that developed and evolved, and how the economics drove their development and evolution. I do not generally disclose much personal information in forums like this, but let us say that I was "around" for the development and standardization of certain protocols.
    Website: www.protocoljournal.org
    June 2023 (Current Issue) described above:
    https://ipj.dreamhosters.com/wp-content/uploads/2023/05/261-ipj.pdf

    Thanked by (2)Not_Oles FrankZ
  • Not_OlesNot_Oles Hosting ProviderContent Writer
    edited August 2023

    Hi @xleet!

    Thanks for your comment! I looked at both of the Linux books you mentioned. I should read more from both of them!

    Probably you have seen the classic UNIX and Linux System Administration Handbook, by Evi Nemeth and others. The 5th Edition came out in 2017.

    Thanks to you, as of this morning, I now have all three of these wonderful books conveniently on my Chromebook! I also grabbed a copy of the Internet Protocol Journal to which you linked. I didn't know about IPJ, so thanks yet again!

    Always best wishes!

    Tom

    Thanked by (1)xleet

    I hope everyone gets the servers they want!

  • Not_OlesNot_Oles Hosting ProviderContent Writer
    edited August 2023

    @Not_Oles said: I'm looking for an explanation of why the FILE type is capitalized and most (all?) other types are not capitalized. The GNU C Library Manual mentions "historical reasons" for why a "stream type" is called FILE but doesn't elaborate on what those historical reason;s were. Could someone here please share what the historical reasons are for "stream" being called "FILE" and for "FILE" being capitalized? Is it as simple as, before networking, the "only" streams were to and from local files?

    From page 96 of Jens Gustedt. Modern C. Manning, 2019, 9781617295812. ffhal-02383654f :

    Up to now, we have only seen how to output to the terminal. Often, you’ll want to write results to permanent storage, and the type FILE* for streams provides an abstraction for this. There are two functions, fputs and fputc, that generalize the idea of unformatted output to streams:

    int fputc (int c, FILE * stream ) ;
    int fputs ( char const s[ static 1] , FILE * stream ) ;
    

    [ . . . ]

    The identifier FILE represents an opaque type, for which we don’t know more than is provided by the functional interfaces that we will see in this section. The fact that it is implemented as a macro, and the misuse of the name “FILE” for a stream is a reminder that this is one of the historical interfaces that predate standardization.

    Takeaway 1.8.3.1 Opaque types are specified through functional interfaces.

    Takeaway 1.8.3.2 Don’t rely on implementation details of opaque types.

    I guess I still don't know why FILE is in capital letters. Also, I wonder what are the other "historical interfaces that predate standardization." :)

    I hope everyone gets the servers they want!

  • edited August 2023

    @Not_Oles said: Could someone here please share what the historical reasons are for "stream" being called "FILE" and for "FILE" being capitalized?

    I'm not sure, but maybe you've heard that "Everything is a file in Unix", and my teacher said the socket may be an exception, or not.
    I read a book titled "Linux and the Unix Philosophy" many years ago, which you may be interested in too.
    It's only about 200-page thick.

    Thanked by (1)Not_Oles

    MicroLXC is lovable. Uptime of C1V

  • Not_OlesNot_Oles Hosting ProviderContent Writer

    @bliss said:

    @Not_Oles said: Could someone here please share what the historical reasons are for "stream" being called "FILE" and for "FILE" being capitalized?

    I'm not sure, but maybe you've heard that "Everything is a file in Unix",

    Thanks for the pointer to the Wikipedia article on "Everything is a File." I hadn't seen that article.

    and my teacher said the socket may be an exception, or not.

    Okay, maybe or maybe not. :)

    I read a book titled "Linux and the Unix Philosophy" many years ago, which you may be interested in too.
    It's only about 200-page thick.

    I will take a look!


    In the last couple of days I've looked briefly at Warren Toomey's TUHS Unix Tree archive and, also briefly, at the dspinellis unix-history-repo.

    Professor Spinellis has an overview article called A Repository of Unix History and Evolution

    Additionally, I looked at Dennis Ritchie's article The Evolution of the Unix Time-sharing System, and the Wikipedia article on BCPL, according to which BCPL is "typeless," i.e., everything is a word.

    I got a copy of what seems to be the C89 standard. The FILE type appears many times in the 1989 C Standard.

    chronos@penguin:~/new$ grep FILE c89-standard.txt
    #define INCFILE "vers1.h"
    #define INCFILE "vers2.h"
    #define INCFILE "versN.h"
    #include INCFILE
    #define INCFILE(n) vers ## n /* from previous #include example */
    #include xstr(INCFILE(2).h)
    FILE ) remain constant throughout the translation unit.
    the preprocessing macros FILE and LINE ) on the standard error
    FILE
    FILENAME_MAX
    which are expressions of type ``pointer to FILE '' that point to the
    FILE objects associated, respectively, with the standard error, input,
    disassociated from the file. The value of a pointer to a FILE object
    The address of the FILE object used to control a stream may be
    significant; a copy of a FILE object may not necessarily serve in
    FILE *tmpfile(void);
    int fclose(FILE *stream);
    int fflush(FILE *stream);
    FILE *fopen(const char *filename, const char *mode);
    FILE *freopen(const char *filename, const char *mode,
    FILE *stream);
    void setbuf(FILE *stream, char *buf);
    int setvbuf(FILE *stream, char *buf, int mode, size_t size);
    int fprintf(FILE *stream, const char *format, ...);
    int fscanf(FILE *stream, const char *format, ...);
    int vfprintf(FILE *stream, const char *format, va_list arg);
    int fgetc(FILE *stream);
    char *fgets(char *s, int n, FILE *stream);
    int fputc(int c, FILE *stream);
    int fputs(const char *s, FILE *stream);
    int getc(FILE *stream);
    int putc(int c, FILE *stream);
    int ungetc(int c, FILE *stream);
    FILE *stream);
    FILE *stream);
    int fgetpos(FILE *stream, fpos_t *pos);
    int fseek(FILE *stream, long int offset, int whence);
    int fsetpos(FILE *stream, const fpos_t *pos);
    long int ftell(FILE *stream);
    void rewind(FILE *stream);
    void clearerr(FILE *stream);
    int feof(FILE *stream);
    int ferror(FILE *stream);
    FILE
    FILENAME_MAX
    FILE *tmpfile(void);
    int fclose(FILE *stream);
    int fflush(FILE *stream);
    FILE *fopen(const char *filename, const char *mode);
    FILE *freopen(const char *filename, const char *mode,
    FILE *stream);
    void setbuf(FILE *stream, char *buf);
    int setvbuf(FILE *stream, char *buf, int mode, size_t size);
    int fprintf(FILE *stream, const char *format, ...);
    int fscanf(FILE *stream, const char *format, ...);
    int vfprintf(FILE *stream, const char *format, va_list arg);
    int fgetc(FILE *stream);
    char *fgets(char *s, int n, FILE *stream);
    int fputc(int c, FILE *stream);
    int fputs(const char *s, FILE *stream);
    int getc(FILE *stream);
    int putc(int c, FILE *stream);
    int ungetc(int c, FILE *stream);
    FILE *stream);
    FILE *stream);
    int fgetpos(FILE *stream, fpos_t *pos);
    int fseek(FILE *stream, long int offset, int whence);
    int fsetpos(FILE *stream, const fpos_t *pos);
    long int ftell(FILE *stream);
    void rewind(FILE *stream);
    void clearerr(FILE *stream);
    int feof(FILE *stream);
    int ferror(FILE *stream);
    #undef preprocessing directive: defined , LINE , FILE ,
    has type FILE .
    chronos@penguin:~/new$

    There is a lot to look at in all of this! :)

    Given the historical development sequence from BCPL to B to C, it seems clear from the BCPL Wikipedia article, that the FILE type was not in C's ancestor BCPL (because BCPL didn't have any types). But the FILE type was in C by the time of the C89 Standard (which had FILE and also additional types).

    I am guessing that the FILE type might have appeared in B before the beginning of C's development.

    Eventually I might be able to figure out just when the FILE type appeared and why, unlike C's other types, FILE is in capital letters.

    Thanks @bliss for your helpful comment! Friendly greetings! :)

    I hope everyone gets the servers they want!

  • edited August 2023

    -> Ignore this post and skip to the next one unless you noticed what I said about the film music book in my previous post above.

    WARNING:
    I mentioned The Film Music of John Williams, 2nd edition, by Emilio Audissino in my earlier post above.

    I want to warn people about that book. It is truly a graduate-level textbook. It is not a casual read. You may love John Williams' film music and the soundtracks he composed, but that won't get you very far with this book. You must have a deep understanding of music theory that spans both classical and jazz music. You must be intimately familiar with the music soundtracks of many films by many film composers from the 1930s to the present. By "intimately familiar", I mean that someone can name a film by title, director, and year and you can "hear" the music from that film in your mind. I did not count the number of film references in the book, but I estimate that the book mentions at least 100-150 films. Even so, there were one or two dozen films referenced in the book that I had never heard of. (By the way, the references do not always name the composer - you know or you don't.)

    With that understanding in mind, The Film Music of John Williams, 2nd edition is an "okay" book at best. It is written in a pretentious style, overusing academic words and expressions when simple ones would do. Some descriptions go to an absurd level of detail. Some note-by-note descriptions of melodies made me laugh. The author describes the choice of each note in the melody and gives each note a deep emotive connotation. My gut tells me that the composer simply came up with a "catchy tune" that fit the need at that point in the film. The composer may have spent time refining the melody until sounded "just right", but I doubt that they spent those hours agonizing over the emotional meaning of each note one-by-one. That is just my feeling.

    Anyway, I hope you get the point. If you are a genuine film music aficionado with extensive musical training, you may enjoy this book. The film and TV music business has many people working in it, along with students and others who hope to break into the business. They live it and love it. They might enjoy this book. Others beware.

    This is LowEndSpirit, and I understand that this review does not fit here. I mentioned the book above, and felt that without this warning, the title might lead others to buy it and find themselves dissatisfied soon after.

    Thanked by (1)Not_Oles
  • AuroraZeroAuroraZero ModeratorHosting Provider

    Mostly Cybersecurity blogs and CompTIA+ things. Also have to read school books which kind of suck the southbound side of a northbound facing donkey.

    Free Hosting at YetiNode | Cryptid Security | URL Shortener | LaunchVPS | ExtraVM | Host-C | In the Node, or Out of the Loop?

  • I've been reading EPL match reports. Welcome back to the Premier League, Burnley.

    Also, Newcastle will challenge this year. Believe it.

    Thanked by (1)bikegremlin
  • edited August 2023

    @Not_Oles said: I guess I still don't know why FILE is in capital letters. Also, I wonder what are the other "historical interfaces that predate standardization." :)

    I can guess that it's the same thing that holds for NULL. Macros and typedefs are usually defined with capital letters to remind that they are such definitions.

    For example, from an early gnu stdio.h implementation:

    ...
    struct __sFile 
    {
      int unused;
    };
    
    typedef struct __sFILE FILE;
    ...
    

    and equivalently:

    ...
    #ifndef NULL
    #define NULL    0
    #endif
    ...
    

    From: https://www.gnu.org/software/m68hc11/examples/stdio_8h-source.html

    I am not quite sure what he means for historical reasons, but I do not believe that there is such a thing in language and in C standard library. All C defined types are in capital letters before or after standardization, see Win32 API for example:

    https://learn.microsoft.com/en-us/windows/win32/winprog/windows-data-types

    Is he confusing C with C++?

    Edit: Reading again I think that they are talking about the confusion between "file" and "stream" terms, not capitalization.

    Thanked by (1)Not_Oles
  • edited August 2023

    When ya use C interface in C++

    std::shared_ptr<FILE> f(
        fopen(path, "r+"),
        [](FILE* p) {
            if(p) fclose(p);
        }
    );
    
    Thanked by (1)Not_Oles

    smartass shitposting satirist

  • FrankZFrankZ Moderator

    I was waiting to see if someone would come up with a definitive answer but IIRC FILE was capitalized in fortran which is from the 50's so that predates C.

    FILE = fname

    Thanked by (2)Not_Oles bikegremlin

    For staff assistance or support issues please use the helpdesk ticket system at https://support.lowendspirit.com/index.php?a=add

  • By the way, in this sense, the "historical reasons" that are mentioned for the "streams" term, is of course a reference to UNIX philosophy.

    C was created to implement UNIX system utilities, so C evolved alongside with UNIX and vice versa.

    UNIX primary philosophy was simplicity, as opposed to the previous OS implementations, thus the motto "everything is a file"

    C FILE structure and the related functions were initially implemented to support files.

    However it seems that as UNIX evolved to represent "everything as a file", in the sense that an os "file" descriptor is enough to represent a stream of data, so C stayed agnostic of what a FILE structure actually holds in the OS.

    In that sense, STREAM would be more appropriate and less confusing, since FILE as a term refers to a file in the file system.

    Thanked by (1)Not_Oles
  • Thanks for asking Tom! I read voraciously. I like to keep my current reading progress updated on my personal site. I also have a jelu site to keep track of books I own and want to read. I'm a rather large sci-fi nerd so that's mostly what I read. Who are your favorite authors?

    Thanked by (1)Not_Oles
  • Beginner's Guide to Safely Foraging for Wild Mushrooms: Identifying and Collecting Mushrooms Sustainably with Confidence
    Silvopasture: A Guide to Managing Grazing Animals, Forage Crops, and Trees in a Temperate Farm Ecosystem
    Pandora's Lunchbox: How Processed Food Took Over the American Meal
    Any of you fellas using: https://github.com/janeczku/calibre-web ?

    Thanked by (1)Not_Oles
  • edited August 2023

    LES & LET,but work takes up too much of my free time.

  • edited August 2023

    @LiQi said: work takes up too much of my free time

    Yo slacking off then, care to join the shitposting club?

    smartass shitposting satirist

  • I am reading Linux Command Line and Shell Scripting Bible currently, what a wonderful book for me.

    Thanked by (1)Not_Oles
  • Not_OlesNot_Oles Hosting ProviderContent Writer

    @picard said:
    I am reading Linux Command Line and Shell Scripting Bible currently, what a wonderful book for me.

    HI @picard!

    Welcome to LES! I grabbed a copy of your recommended book. Thanks for mentioning it!

    By the way, maybe you also have seen the Wooledge Bash Guide. Somebody whom I imagine to be highly knowledgeable reliably insists emphatically that Wooledge is the first place one needs to look for information about bash scripting. I'm not an expert, so I don't have any opinion, but maybe you might want to take a look at Wooledge if you do not already know about it.

    Have fun here at LES! And elsewhere too!

    Best!

    Tom

    Thanked by (1)picard

    I hope everyone gets the servers they want!

Sign In or Register to comment.