He/him

  • 0 Posts
  • 28 Comments
Joined 3 years ago
cake
Cake day: March 23rd, 2022

help-circle
  • I finally finished reading the Song of Ice and Fire series recently. I read the first four books in high school and never finished A Dance of Dragons, so I read them again to catch up to the story before I read the last book. After that I read Fire & Blood, which is a history book about one of the families in the story. The main series was great, and Fire & Blood was pretty enjoyable too. So now I guess I’m waiting for Winds of Winter. 🙃

    As for what I’m reading now, I needed a change of pace after reading several thousand pages of fantasy over the last few months so I’m reading some sci-fi. I got Foundation, Neuromancer, and Starship Troopers the other day and I’m currently reading Starship Troopers. I’m only a few chapters in and it’s OK so far, but the military lingo makes it a bit hard to follow at times.

    I don’t think I’ve ever gotten any books other than textbooks for school from Amazon. I get most of my books from book stores. I also pirate a lot of ebooks, but never read them.





  • I’ll concede I may have been unfairly dismissive of Lisp and Lisp machines. I’ve done a bit more research into the area, and I’m beginning to see the level of interactivity and customizability offered by the platform that you were referring to. Pretty neat stuff. It’s clear that Lisp is something you’re passionate about, and I’m sorry if I gave offense. I’m still unclear on a few of your points, though.

    Could you expand on what you mean by collectivizing source code? How exactly do REPLs factor into that?

    People can’t freely interact with compiled program code without a REPL; they would have to destroy the generated code and recompile programs in order to change the program.

    Surely once a program is compiled you can’t interact with it with a REPL, right? It would just be machine code at that point. I thought REPLs worked by reading the source code. That way the programmer would have a better idea of what their code does before they compile it.

    If the program code to run hardware was integrated in a REPL; there wouldn’t be a need for an operating system.

    What do you mean by this?

    As for Lisp machines, I was originally under the impression they were just a different type of computer optimized for a different language because of hardware constraints at the time. I would think that due to the advances in general purpose hardware, the performance gains of such uniquely optimized hardware would be minimal. I was previously unaware of the customization options they offered even down to the hardware level. Are there any modern examples of Lisp machines outperforming similarly specced general purpose computers, or are they geared more towards customization and interactivity?

    Leaving Lisp alone, I still disagree with your stance on Unix and the Unix philosophy.

    UNIX promotes cooperative modularity; which provides capitalists the opportunity to extract profit to use them.

    Having small programs uniquely suited to a single simple purpose cooperating to acheive a complex goal sounds more collectivized to me than designing a single unwieldy program from scratch to acheive the same goal. Think about it in terms of people. In my mind, a socialist society would acknowledge that everyone has their strengths and weaknesses and utilize them accordingly. Capitalism, on the other hand, would rather everyone be a Swiss army knife capable of everything. Case in point, the “10x developer.” I can speak to this anecdotally as I’m currently looking for a career in software development. You hardly ever see companies looking for just an SQL person, or just a backend JS person, or just a frontend person. They almost always want someone who knows everything. The capitalists extract profit from everything they can, and Unix is not unique in that regard.

    UNIX was designed for the capitalist, which is why all the tools were free. If UNIX was designed for the average person, then there would be a pricy markup to buy the tools. Well UNIX would be useless at that point; but that doesn’t stop capitalists from selling useless BS that doesn’t work […].

    I don’t understand your line of reasoning here. Wouldn’t something meant for the capitalist be prohibitively expensive from the start because only they would be able to afford it, thus keeping it out of reach of the average consumer?

    I don’t think hardware limitations factored into the UNIX philosophy, though it may be possible.

    It did. The Economy and elegance of design due to size constraints (“salvation through suffering”) is one of the foundational principles of the UNIX philosophy.

    I’ll admit I was wrong regarding hardware considerations in Unix’s development. But is there anything wrong with that? You make it sound like being frugal with hardware resources is a bad thing. The developers were able to do what they wanted with Unix in spite of the hardware constraints of the time.

    The lack of hardware resources and capitalism’s refusal to improve hardware formed the UNIX philosophy.

    I don’t understand the point you’re trying to make here. How did Lisp machines happen if not to address perceived deficiencies in existing hardware? And if capitalism refuses to create better hardware, then how do we have better hardware today? How do personal computers exist? Wouldn’t we still be using massive punchcard mainframes?

    What I’m saying is that there is a possibility that the capitalist could have profit off selling modular programs as independent programs.

    Again, unsure what you’re getting at here. The possibility of modular programs being sold piecemeal even though (AFAIK) they weren’t makes the Unix philosophy a corporate philosophy?

    Supposing the Unix philosophy is a capitalist philosophy, as you propose, what is the alternative? Large, unwieldy, monolithic programs with massive feature sets and no interoperability? To me, it makes more sense for a capitalist to sell those types of programs and continually tack on new features than it would for them to sell a toolkit of modular, easy to use programs once (or even piecemeal) and the developers making their own programs with them.

    This quote from The UNIX Programming Environment puts it very well:

    Even though the UNIX system introduces a number of innovative programs and techniques, no single program or idea makes it work well. Instead, what makes it effective is the approach to programming, a philosophy of using the computer. Although that philosophy can’t be written down in a single sentence, at its heart is the idea that the power of a system comes more from the relationships among programs than from the programs themselves. Many UNIX programs do quite trivial things in isolation, but, combined with other programs, become general and useful tools.

    That sounds pretty darn collectivized to me, and possibly even dialectical.

    Again, I’m sorry if I’m coming across as rude, comrade. That’s not my intent. And I don’t disagree with you on the utility of Lisp. From what I’ve seen it’s capable of a lot of cool stuff, and modern Lisp machines would be an interesting tool. And thank you for showing me those Lisp OSes; I didn’t know any existed. Hell, I’m half-tempted to learn Lisp myself since I have some ebooks on some different Lisp dialects that I’ve never read. My main point of contention with your OP is what I saw as your misrepresentation of Unix and the Unix philosophy. I just want to clarify how I see Unix and the Unix philosophy. In the end, I guess it just boils down to opinion: I am quite fond of Unix-like systems whereas you may not be. We can both have our own opinions, and neither of us would be wrong for having them. I’m just trying to understand your reasoning while explaining mine.



  • An interesting perspective. I can tell you’ve put a lot of thought into this. I agree with a few of the points you made here, but I take issue with others, namely your portrayal of the UNIX philosophy.

    The UNIX Philosophy

    The UNIX philosophy is usually expressed with the maxim “Do one thing and do it well,” but that doesn’t tell the whole story in my opinion. The idea behind the UNIX philosophy (as well as software minimalism, suckless programming, KISS, etc.) is to create small, simple, modular, and reusable programs whose ouput can be the input of other similarly small, simple, modular, and reusable programs. This is referred to as a “pipeline,” where the output of one program is “piped” into another. To quote the Wikipedia page, “The Unix philosophy emphasizes building simple, compact, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators. The Unix philosophy favors composability as opposed to monolithic design.” That is to say building a complex program with a bunch of preexisting simple programs instead of building a complex program completely from scratch. To use a literary example, compare reading a dense stream-of-consciousness-style wall of text with no punctuation to reading a work with clearly defined chapters, sections, and paragraphs. I don’t think hardware limitations factored into the UNIX philosophy, though it may be possible.

    As for the profit motive surrounding the UNIX philosophy, I’m unaware of any examples of UNIX-philosophy-abiding software toolkits being sold piecemeal. As far as I’m aware, UNIX was distributed as a single package.

    For a more in-depth look, you might be interested in reading The UNIX Programming Environment, an introduction to the UNIX toolkit and the UNIX philosophy written by people actually involved in the development of UNIX.

    Lisp and Lisp Machines

    Lisp and the Lisp derivatives like Clojure and Scheme are an interesting family of languages. I don’t have any hands-on experience with Lisp myself, but I’ve heard it’s proponents laud it’s many benefits. As far as I know, Lisp was originally made for AI development, and you can kinda see that in the design of the language since the programs themselves can be used can be used as data for other programs.

    Lisp machines came about due to the hardware demands of running AI programs on the standard computer hardware at the time, which was designed with other languages in mind like Fortran. This led to the creation of machines that were specifically tailored to the Lisp programming language. However, Lisp machines aren’t technologically superior anymore and are no longer relevant since general-purpose computer hardware has been able to run Lisp programs faster than Lisp machines for decades and have since fell out of use. There’s really no more use for Lisp machines.

    REPLs

    I don’t think REPLs are all you make them out to be. Useful, yes, but I see them as being primarily useful for debugging by running your code line by line to make sure every line does what it’s supposed to.

    A REPL promotes interactivity and experimentation, an environment were a person can freely learn at their own pace.

    Someone could freely interact with a programming language without a REPL. They’d just have to recompile whatever code they changed. And Lisp itself is a compiled language, it just also has an interactive environment.

    […] C is a popular programming language in operating systems; because it lacks interactivity.

    The C programming language is so popular for operating systems because the language itself is so simple and it’s close to the hardware. Operating systems go between the user and the hardware, so they need to be able to talk directly to the hardware to allocate resources to programs. C, whose development was closely tied with the development of UNIX, was designed with similar principles in mind. That is, having a small feature set and instead having an extensive software library that can be imported when necessary. That’s why you have to import stdio.h before you can even print a Hello World.

    Although the Linux kernel is free and open source, there is still a contradiction between the program code and the user. The program code runs independently of the user because it was not designed with interactivity in mind.

    That’s where its being FOSS comes into play. If the user of a FOSS program doesn’t like what it does and wants to make changes to it, they have the freedom to do so. They just need to acquire the source code, make their changes, and compile the source with the changes. I don’t fully understand what you mean by “interactivity” in this context.

    You make a few good points. Computers and the Internet were designed with free software, open protocols, and cooperation. I would say they were even designed for those very aspects as well. Of course capitalism has to shoehorn the profit motive everywhere at the expense of everyone, and technology is certainly no exception. I believe this tweet sums it up pretty well.

    Sorry for the TED talk. I know I’m probably coming across as contrarian, and no offense, but it feels like you’re trying to apply a revolutionary message where there is none. I’m not trying to shit on you for making a dialectical analysis. I know next to nothing about diamat myself, and I’m still just a beginner to Marxism. I’m just someone with a CS degree, limited software development experience, and a lot of strong software opinions (this is rambly enough without going into web3 and blockchain 🙃).



  • I gave it a try and I enjoyed it and I think it’s a good concept, but I think that’s all it is: a proof of concept for the book. As a standalone game it’s pretty buggy. On both my playthroughs I had issues with farms producing no food and power plants producing no electricity. Not to mention my emissions went up over 200000 after getting it to 0 for some reason. But like I said, it’s still pretty fun even in it’s current state. It’s a really tough game, but I got the hang of it after a while. I think the key is to fully and immediately switch from fossil fuels to renewables and to fund a bunch of different projects all at once.

    Politically speaking, it’s meh. The creators come across as libsocs, and I don’t think there’s a single mention of Marxism. As such there is no ML faction in the game, but it instead feels like it’s split across multiple factions. There are “accelerationists” who want to use the productive forces to their fullest and give everyone a high standard of living and bring humanity to the space age, the “Fanonists” who are anti-imperialists/anti-colonialists from the global south, and the “authoritarians” who seems like lib left caricatures of MLs (i.e they get mad if you demilitarize the world or abolish prisons).

    Possibly unrelated, but these are the recommended books on the website selling the creators’ book (second from the left).



  • I don’t usually have political dreams, but a while back I had a dream some Nazi group was taking over the country. I decided the best way for me to help the resistance was to infiltrate the ranks of the group and gather intel… despite not even being a part of the resistance movement and my only knowledge of covert ops being from playing 2 Metal Gear games. I remember walking into their compound and seeing their runes and racist slogans everywhere, and the people there looked more like a biker gang than a paramilitary organization, strangely enough. I remember thinking to myself that I was in too deep, knowing they’d probably torture me to death if they found me out. I remember leaving and sharing my fears with some loved ones and then I woke up. Honestly, probably the most frightening dream I’ve had in a while.

    I also had a dream once where I was being chased by a giant hamburger that bit me in half when it caught up with me. Just goes to show the diversity of my dreams. 🙃



  • Privacy concerns aside, I think it’s a convenient solution for people without the time or know-how to do anything different. It’s as simple as drag and drop and they don’t have to worry about replacing faulty hardware if the server goes down. But like you said, the privacy aspect kinda invalidates all that for those who care about privacy. I’ve stopped using cloud storage since I’ve become more privacy-conscious a few years ago and have moved to syncing important files across my devices with Syncthing instead. I have been toying with the idea of self-hosting my own cloud storage, but I don’t really have any reliable hardware at the moment.

    It’s also worth mentioning that it may be possible to securely use a cloud storage service with the help of a tool like Cryptomator. I haven’t used it myself, but it’s a FOSS program that allows you encrypt your data yourself before you upload it to the cloud.