1. 4

    If the main purpose is to setup VPS and remote servers, I would consider NixOS where you can automate everything including the OS in a declarative way.

    1. 2

      I want to look into it some day.

    1. 2

      CommaFeed is great. It’s the closest thing I’ve found that resembles Google Reader, which I loved.

      https://www.commafeed.com/

      1. 1

        Also it is self-hosted, which is big plus for me.

      1. 1

        tqdm is great for quick progress indicators in scripts. I am using it maybe five yqars and what I like most is how easy it is to use. You realize that you need a progress bar, wrap the iterable with tqdm generator and thats it.

          1. 28

            Stephen Wolfram is considered a crank by professional scientists; see for example Scott Aaronson’s review of Wolfram’s A new kind of science.

            The “buyer beware” signal from this breathless celebration of Wolfram’s genius (by Wolfram) is strong.

            1. 10

              Also this one about him suing people for writing math proofs: http://bactra.org/reviews/wolfram/

              1. 3

                Thanks so much for sharing that. It’s sent me down a rabbit hole for the past two hours, in the course of which I have discovered many fascinating things. Like Natalie Portman having an Erdös-Bacon-Sabbath number of 11.

              2. 3

                I approach these kinds of things from a philosophical perspective so for me reading Stephen Hawking and reading the Bhagavad Gita are both valid forms of investigation of the universe. The idea that ‘professional scientists don’t approve your choice of reading material’ has always been something that I find very annoying and unhelpful. It is essentially none of their business what I read.

                Even if I were about to spend money or time building an experimental setup based on the information in that article, that would still be valid science if I did it rigorously and correctly. Any result achieved by the setup would be valid science and either falsify or fail to falsify the tested hypothesis.

                If thinkers always listened to what ‘professional scientists’ said we would have no plate tectonics, no theory of evolution, and no germ theory, to name just a few.

                I think I phrased this more harshly than I meant to, your comment is relevant and may be of use to some readers. But I can’t let it go unchallenged as I find there are a lot of impressionable science enthusiasts that read something like that and take it as an invitation to start sending hate mail and flaming people on forums for discussing this kind of idea. I feel like blindly clinging to accepted dogma is extremely detrimental to the practice of good science, whereas wild imaginative ideas with little supporting evidence have proven to be quite beneficial to it in the past.

                I will also admit that the breathless celebration of one’s own genius, as shown by Wolfram and others, is also annoying and unhelpful. Nevertheless I found this article fascinating and I am glad it was shared here.

                1. 2

                  I feel like blindly clinging to accepted dogma is extremely detrimental to the practice of good science, whereas wild imaginative ideas with little supporting evidence have proven to be quite beneficial to it in the past.

                  I agree and I’m going to explain how at length.

                  The scientific method is a way of establishing consensus. It is a tool made by humans for other humans. Over time a culture and a way of doing things has developed around it.

                  The two main products of science are theories that explain observed phenomena and observations and experiments that can confirm or refute theories. Because of the values of the culture of science (squishy humans like the things they know), any new theory has to explain existing observations as well or better than the incumbents. A more complex, technically difficult, or simply innovative can only replace existing theories if it explains more known phenomena, or predicts new phenomena that can be verified.

                  This is how, for example, the Copernican view of the solar system won out, or how general relativity replaced Newtonian gravity, a vastly simpler theory. As far as I know, wild imaginative ideas (quantum mechanics, relativity, Newtonian physics, the Copernican view, …) have won out because they have been supported by evidence (the double-slit experiment, the Michelson-Morley experiment, elliptical orbits, phases on Venus, …).

                  When Einstein proposed general relativity, he was literally an Einstein in the current cultural meaning of the term. Nonetheless, he had to provide an extensive list of predictions (gravity lenses, the orbit of Mercury, gravitational redshift) that were not explained by Newton’s theory for his extremely technically complicated new theory to be accepted.

                  This brings us to Wolfram. He has done none of those things. He has not shown how his framework explains existing phenomena. He has not made new predictions that can be verified experimentally. What he has done is make some models and proclaimed himself a genius. He doesn’t want to do the work needed to be accepted within the scientific system, and just new ideas are not enough to move the consensus.

                  The thing is, his ideas are out there. If he explains them well enough, they can be picked up by people who are willing to work within the squishy system of science. If they have genuinely new things to offer, they will be accepted, because they’ll offer a competitive advantage to the people who accept them, who will be able to figure out new things faster.

                  Wolfram has been proclaiming himself a genius since the 80’s, and no one has yet taken him up on his offerings.

                  I approach these kinds of things from a philosophical perspective so for me reading Stephen Hawking and reading the Bhagavad Gita are both valid forms of investigation of the universe.

                  Hey, whatever works for you. Historically, we’ve tried similar approaches to building knowledge consensus (shamanism, ancient Greek philosophy, religion, etc) and when they work they end up much more dogmatic and hostile to outside challenges than the scientific method. If you’re just doing things for yourself you don’t need any consensus.

                  1. 1

                    This brings us to Wolfram. He has done none of those things. He has not shown how his framework explains existing phenomena.

                    Isn’t that what the Physics project is about? Also in this article, he explains several existing phenomena, at least in broad outlines with links to details. I am not in position to verify his claims, but the article offers some explanations and link to details.

                2. 3

                  I read Wolfram always with some kind of hope. I am kind of biased in that what he aims for most likely won’t work / fail, but on the other hand, I think sometimes there are interesting ideas in between. I’m looking there sometimes for smaller ideas that I can comprehend.

                  But thanks for the critique! I needed that

                  1. 4

                    He definitely has a habit of claiming original insights and not citing prior work. But I think “crank” means something different – it’s someone who doesn’t actually understand the field, has no background in it, but claims original insights (that usually fall down really quickly).

                    I think Scott Aaronson has a good page about how to tell if someone’s a crank without doing a full reading.

                    https://www.scottaaronson.com/blog/?p=304

                    Wolfram goes beyond factual claims and “sells” his stuff pretty hard, and this post seems like a good example of that.

                    I would put him in a different category than “crank” though. He’s more like talented guy who became an “outsider scientist”, and I would say there’s nonzero probability that he’s right about something interesting, even if he is going about it in a very ham-fisted way…

                    It’s definitely impressive he managed to build a profitable company and work on improving the same software for decades… Cranks don’t do that. You can’t be totally “out of it” and accomplish that.

                    1. 2

                      If you read through the article, it covers many of Scott Aarsonson’s concerns.

                    1. 1

                      Very interesting. I’ve been working on something like this before, with various success.

                      1. 7

                        I have mixed feelings about this. No longer mixed because of how yeah, this just seems very disrespectful.

                        Mostly, it can be summed up as “can you just not?”

                        This project is famous because of why it came to be, and who created it. It was the result of Terry’s mental illness which was also the unfortunate cause of his death. Trying to piggyback on it feels incredibly disingenuous and almost disrespectful, especially given the circumstances around its creation.

                        Let it rest with Terry.

                        EDIT: I completely forgot about that description - “A TempleOS distro for heretics” - this just sounds incredibly disrespectful.

                        1. 25

                          Trying to piggyback on it feels incredibly disingenuous and almost disrespectful, especially given the circumstances around its creation. Let it rest with Terry.

                          I think that on contrary, we should use, study and think about the lessons Terry gave us in form of the Temple OS. There is nothing disrespectful in trying to build on his legacy.

                          1. 16

                            I agree - Terry didn’t take his software with him to the grave - he shared it with the world and made it public domain.

                            1. 9

                              Gotta agree here as well. I can appreciate that great care should be taken to give proper respect to the nature of his illness and personal circumstances but that said I think his work has a LOT of interesting technical details that could be studied and might inspire others.

                            2. 14

                              So in your opinion, Terry’s work should just be left to wither and die, out of respect for him. Would this be true if he hadn’t been mentally ill? Would it be true if he hadn’t died?

                              You assume the author of Shrine has forked TempleOS to acquire fame. What if he didn’t?

                              1. 10

                                It was released before Terry’s passing

                                1. 1

                                  That doesn’t change much.

                                  1. 5

                                    Sincere question here - should the entire work product of someone who became mentally ill and whose work might potentially contain some aspects which were a product of delusions they experienced as a result be excluded from future scholarship out of respect?

                                    (The answer may very well be yes - I’m just trying to understand the point you’re making.)

                                2. 7

                                  I’m confused here that this is upvoted so high. Why is it disrespectful? It’s public domain fork of a public domain project. Why do people need to be so uptight about everything?

                                  1. 2

                                    I’m absolutely in favor of studying TempleOS, it was clearly meant for that. Just, yes, this particular approach does seem intentionally disrespectful. It’s a matter of opinion; I certainly won’t try to stop them from doing that, but that’s my opinion.

                                    1. 2

                                      It was the result of Terry’s mental illness

                                      I think it is a result of Terry’s genius and mental illness. And projects like this that make it easier to utilize and explore Terry’s great work.

                                    1. 2

                                      I liked this tweet from the @chatur_shalabh

                                      Interesting stuff.

                                      “Objects are self-describing.”

                                      “Binary objects and arrays have a special “type” slot that must contain a symbol reference. This slot is used to attach type information to these objects.”

                                      “There are no “windows”, just views that look like windows”

                                      1. 2

                                        I want to write an article on this topic for a long time, because I’ve noticed same problem as you. I’ve even seen people talking about how python is not good language for running the production.

                                        1. 8

                                          The reason for UNIX-like OS’s having low level abstractions like byte streams, filesystems of blocks/inodes/directories and hundreds of other like things, was to retain the efficiencies of the low level machine exported to time multiplexed processes on a single processor, where you could build upon them whatever complexity you’d like.

                                          Many OS types I knew from the 69’s-70’s never even saw a LISP Machine (LISPM) OS, nor had much contact with such systems that never had any interest in retaining low level abstractions, because those users were more interested in high level abstractions to be fleshed out rapidly so they could be used on the machine, and then as they were used, they would be refined to make them efficient enough.

                                          We’re in a very different universe of multicore, cluster, and cloud, where you can buy all the cycles you want in the world for the nanoseconds you might need them. Waiting to code/debug/process/parallelize high to low level to run on a low-level OS takes more time than the high level abstraction itself needs to function. So there is “anti-efficiency” many face.

                                          Why is this happening? Well … standards. Like POSIX. Now that we’ve finally made them work, they can’t be replaced, too much depends on them. And, unlike on LISPM’s, you can’t just rebuild the APIs on the fly to suite your need, because several billion others need to work with them at the same time, and they want to build there own differently for both good and bad reasons.

                                          There’s no escape through metastandards either, because that evasion will be countered in turn by efficiency arguments (which are mostly specious because people work off of fear and not measured, pragmatic study because that takes considerable talent/skill/work, which often isn’t valued as much as it should be).

                                          We are at a crossroads where we need something to break the logjam w/o being sucked back into to old standards, but since no one trusts anyone to do it, it never goes anywhere. Such is what happens when the free OS’s sucked all the air out of OS research decades ago because it was no longer necessary, because the truth of a common low level OS was all we would ever need.

                                          Well guess what, we have it now, and by golly its nowhere near what we need for the future.

                                          1. 1

                                            Well guess what, we have it now, and by golly its nowhere near what we need for the future.

                                            Its also nowhere near to what we need for now. I literally created (and still create) same abstractions over and over again just to get away from this.

                                          1. 16

                                            The Newton OS was based on some similar thinking to this, though not the networking part, because nobody had a network back then!

                                            In Newton OS you store the language-level objects (which are key/value containers kind of like JavaScript objects) directly in the not-a-filesystem object store and retrieve them (by content, not by name). Those stored objects could be executable — a function is just a simple object with a few slots, one of which is a blob of bytecode. We had some further ambitions for when the hardware got bigger that we didn’t get to realize.

                                            If you google for “persistent object systems” you can still see a bunch of the papers we were reading back then. It was a hot topic for a while.

                                            To quote my ancient overview paper:

                                            The object store has many advantages over a more traditional filesystem. Applications do not need to implement their own methods of translating objects between runtime form and persistent form, so they are smaller and easier to write. It is very easy for Newton applications to share data, since they all get the same high-level interface to it; we encourage developers to share their persistent data structures to foster the creation of highly cooperative applications.

                                            1. 4

                                              Thanks for reminding us of the Newton (and for your creation, NewtonScript). I really like the name for the object store… ‘soups’. I had a message pad 1000 and it was a system way ahead of its time.

                                              1. 2

                                                I’ve read Object-Oriented Database Systems by Elisa Bertino & Lorenzo Martino (ISBN 978020162439), so I have some idea about object databases of the 90’s.

                                                In Newton OS you store the language-level objects (which are key/value containers kind of like JavaScript objects) directly in the not-a-filesystem object store and retrieve them (by content, not by name). Those stored objects could be executable — a function is just a simple object with a few slots, one of which is a blob of bytecode. We had some further ambitions for when the hardware got bigger that we didn’t get to realize.

                                                That sounds kinda similar to Self. I’ll have to look into that.

                                                The Newton OS was based on some similar thinking to this, though not the networking part, because nobody had a network back then!

                                                Didn’t Newton used Telescript for this? Edit: hah, it didn’t, sorry.

                                                1. 4

                                                  The NewtonScript data model and language were certainly influenced by Self. The object store was probably most strongly influenced by Eliot Moss’s work at UMass (e.g., Working with Persistent Objects: To Swizzle or Not to Swizzle). There was also a lot of pondering of various single-address-space research, but we never got to the point of using it. Well, now that I think about it, we did use a variation of it (not as clever) for 3rd party application packages.

                                              1. 28

                                                A number of the “wishes” in here were already in the BeOS, and of course now live on in Haiku:

                                                Configuration files and their various formats exist because the filesystem can’t save a structure. If it could, you could just save a given object or dictionary, with all its keys and values, and you’d be able to use them directly next time you’d needed them. … When a program needs to send data to other program, it doesn’t send a serialized version, messages are not sent as stream of bytes, but as structured messages, natively supported by the OS kernel.

                                                This mostly lines up with the “Messages and Ports” concepts in BeOS and Haiku.

                                                Programs as collections of addressable code blocks in a database … Once you publish them, you stop having to communicate using the old stream-based methods (sockets, files, …) - it suffices you to just return structured data.

                                                Since on Haiku, every window is its own thread, applications communicate even with themselves using messages; and if they allow it, any application can send them messages, and even ask what messages they accept.

                                                A database instead of a filesystem … I’m talking here about a generic structured system of storing data on media that supports data types, atomicity, indexing, transactions, journals and storage of arbitrarily structured data, including large blocks of purely binary data.

                                                BeOS and Haiku make extensive use of (typed) extended attributes, which are then indexed and can be queried. Haiku’s Email client utilizes this by storing each e-mail as its own file, with attributes like MAIL:from, MAIL:subject, etc. There are also attributes like BE:caret_position, which specifies where the caret last was when you closed a (text) file, so any editor can restore your position, no matter which one you last opened a file in.

                                                1. 6

                                                  Since on Haiku, every window is its own thread, applications communicate even with themselves using messages; and if they allow it, any application can send them messages, and even ask what messages they accept.

                                                  This is also the case, I believe, in Plan 9

                                                  1. 2

                                                    I’ll have to look into Haiku some day, thanks for the pointers.

                                                  1. 37
                                                      The venerable master Qc Na was walking with his student, Anton.  Hoping to
                                                    prompt the master into a discussion, Anton said "Master, I have heard that
                                                    objects are a very good thing - is this true?"  Qc Na looked pityingly at
                                                    his student and replied, "Foolish pupil - objects are merely a poor man's
                                                    closures."
                                                    
                                                      Chastised, Anton took his leave from his master and returned to his cell,
                                                    intent on studying closures.  He carefully read the entire "Lambda: The
                                                    Ultimate..." series of papers and its cousins, and implemented a small
                                                    Scheme interpreter with a closure-based object system.  He learned much, and
                                                    looked forward to informing his master of his progress.
                                                    
                                                      On his next walk with Qc Na, Anton attempted to impress his master by
                                                    saying "Master, I have diligently studied the matter, and now understand
                                                    that objects are truly a poor man's closures."  Qc Na responded by hitting
                                                    Anton with his stick, saying "When will you learn? Closures are a poor man's
                                                    object."  At that moment, Anton became enlightened.
                                                    
                                                    --- Anton van Straaten
                                                    
                                                    1. 5

                                                      Lo, I came here to post that very koan, and saw upon my arrival that it had already been done.

                                                      1. 14

                                                        And now you are enlightened.

                                                      2. 2

                                                        This is especially true if you know how objects in Smalltalk / Self work.

                                                      1. 1

                                                        I’ve read the readme and I still have no idea what it is or why should I use it.

                                                        Make your functions return something meaningful, typed, and safe!

                                                        Ok.. This doesn’t make any sense. My returns are typed and meaningful enough, thank you very much.

                                                        Enforces better architecture

                                                        How?! Bunch of typing doesn’t enforce better architecture and all of this anyway depends on the definition of “better”.

                                                        Pythonic and pleasant to write and to read

                                                        And the first example is this stuff:

                                                        user: Optional[User]
                                                        
                                                        can_buy_stuff: Maybe[bool] = Maybe.new(user).map(  # type hint is not required
                                                            lambda real_user: real_user.get_balance(),
                                                        ).map(
                                                            lambda balance: balance.credit_amount(),
                                                        ).map(
                                                            lambda balance_credit: balance_credit > 0,
                                                        )
                                                        

                                                        This is just very unpythonic java in python syntax. It is said that it is beter than

                                                        user: Optional[User]
                                                        
                                                        if user is not None:
                                                             balance = user.get_balance()
                                                             if balance is not None:
                                                                 balance_credit = balance.credit_amount()
                                                                 if balance_credit is not None and balance_credit > 0:
                                                                     can_buy_stuff = True
                                                        else:
                                                            can_buy_stuff = False
                                                        

                                                        because this is long and contain a lot of fluff with checking the value to None (functions returning None when they should clearly raise errors are antipattern by itself). But this can be shortened to:

                                                        try:
                                                            can_buy_stuff = user.get_balance().credit_amount() > 0
                                                        except AttributeError:
                                                            can_buy_stuff = False
                                                        

                                                        This is imho perfectly readable and much better than chained maps with lambdas.

                                                        1. 4

                                                          Requires login to read it -> nope.

                                                          1. 1

                                                            There is an “x” in the overlay to close it. You don’t have to log in.

                                                            1. 1

                                                              I think that depends on how many articles from medium you’ve read that month. I opened the article at work and there was overlay that didn’t have “x” and required me to log in.

                                                              Edit: https://imgur.com/a/1kSEv9d <- just opened few other articles, I think the limit is something like four articles.

                                                              1. 1

                                                                That’s unfortunate :(

                                                          1. 2

                                                            I’ve worked on generator of meaningness.com to epub: https://github.com/Bystroushaak/meaningness.com_epub_generator

                                                            I’ve also did a bit of 3D modeling in blender on the illustration I want to use in blog.

                                                            1. 17

                                                              Wouldn’t it make more sense to ask for a retrospective, that is “What you did this weekend?”

                                                              I follow lobsters using RSS and I would like to contribute to this threads, but my plans almost never really work. But I do keep a log and write summaries in retrospective. I think that it may be easier for more people to write what they did, instead of what they want to do.

                                                              1. 14

                                                                Seconded. Telling people you are going to do something is a great way to not do it.

                                                                1. 2

                                                                  There is a second camp of thought that says telling other people (“throwing your hat over the wall”) will spur you on to doing it.

                                                                  1. 3
                                                                    1. 1

                                                                      Psychological research is always flip-flopping. The problem, of course, is poor experimental methods.

                                                                      For the particular effect in question, this review is interesting: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4931712/

                                                                      The current meta-analysis estimated the magnitude of the impact of asking intention and self-prediction questions on rates of subsequent behavior, and examined mediators and moderators of this question-behavior effect (QBE). Random-effects meta-analysis on 116 published tests of the effect indicated that intention/prediction questions have a small positive effect on behavior (d+ = 0.24). Little support was observed for attitude accessibility, cognitive dissonance, behavioral simulation, or processing fluency explanations of the QBE. Multivariate analyses indicated significant effects of social desirability of behavior/behavior domain (larger effects for more desirable and less risky behaviors), difficulty of behavior (larger effects for easy-to-perform behaviors), and sample type (larger effects among student samples). Although this review controls for co-occurrence of moderators in multivariate analyses, future primary research should systematically vary moderators in fully factorial designs. Further primary research is also needed to unravel the mechanisms underlying different variants of the QBE.

                                                                  2. 1

                                                                    Agreed, this as well as not wanting to feel like I failed myself when my interest shifts, are why I don’t contribute to these threads anymore.

                                                                    1. 1

                                                                      Now I know why I never want to write anything here :)

                                                                    2. 2

                                                                      We could hold each other accountable for our grandiose ideas by following up to say what we actually did.

                                                                      1. 2

                                                                        Why? To what end?

                                                                        Why does actually measuring our communal throughput matter?

                                                                        I personally find these threads delightful and don’t give a rat’s posterior whether any of it actually happens or not.

                                                                        1. 2

                                                                          I am going to solve world hunger and invent time travel … unless the Earth continues to rotate around its axis creating a period of light and darkness. In that case? I’ll have to go to plan B, watching Bonanza reruns and eating 14 pounds of cheese puffs.

                                                                          Just kidding, of course. I think of these things as aspiration, more like “Have you thought about what you would like to do this weekend?” which many times is what I need to get off my ass and something, anything. Also I do not eat cheese puffs.

                                                                        2. 2

                                                                          Why no say what you intend to do this weekend and then on sunday night reply to your own comment with what you did do?

                                                                          1. 3

                                                                            Because whole lobsters nature is shortlived discusions. On sunday night is good chance that no one will ever read it. This is even more true with “this week threads”.

                                                                          2. 2

                                                                            This thread could be useful to lobsters:

                                                                            • to either get ideas of what they could also be doing in the weekend
                                                                            • to help / give feedback to those asking for it

                                                                            I get your point and I agree but maybe an additional thread “What you did this weekend?” should be created instead.

                                                                            1. 1

                                                                              FWIW, there’s nothing special about these threads, they’re just normal submissions tagged “ask”, so anybody (including you ;-) can post a “What did you do this weekend?” thread on Monday.

                                                                              1. 2

                                                                                Yeah, I know, I just feel like it would be too much spam for some.

                                                                            1. 1
                                                                              1. 14

                                                                                There’s a couple of people on Lobsters who have used Self or are involved in it. Self is still a (slowly) ongoing project, available for MacOS and Linux. I guess I’m the main Self guy at the moment, so happy to answer any questions.

                                                                                1. 3

                                                                                  Whoaaaa. I just wanted to say: SUCH A COOL FUCKING PROJECT! THANK YOU for working on it.

                                                                                  I know I’m not supposed to yell like that, but… whatever, it’s deserved.

                                                                                  The reason I’m so happy that something like Self exists is that it serves as an example of “graphical programming”, which is a concept that somehow got lost between the 90’s and now. Project Oberon is another excellent example.

                                                                                  Basically, you’re able to interactively explore a system and link arrows together. It’s a flow chart, not a text file. (It can be a text file, of course, but a text file doesn’t help you examine runtime state.)

                                                                                  Not even React / Redux tooling is as advanced. You can inspect state, but you can’t really do anything using their tooling.

                                                                                  1. 4

                                                                                    I just help keep it ticking over, but thanks.

                                                                                    There is such a large amount of computing history which has been effectively forgotten. It’s amazing given how short the history of computing is! And every so often people reinvent something :)

                                                                                  2. 1

                                                                                    Do you have a text summary of what this even is, for those of us who don’t want to invest time in watching videos?

                                                                                    1. 4

                                                                                      Self is a research programming system first developed at Sun in the 80s, comprising a prototype based language, GUI and VM. The VM was for its time groundbreaking for its use of generational garbage collection and JIT compilation and is an ancestor of the HotSpot JVM. The language is clean and simple, “like Smalltalk but more so” - everything is a message send including local variable access, control structures and arithmetic. The GUI focuses on immediacy and concreteness and allows for multiple independent developers to collaboratively interact with objects on a shared canvas.

                                                                                      1. 1

                                                                                        Thank you! I’ll make sure to add this to my list of things to watch!

                                                                                        1. 1

                                                                                          I’ve written about self this Series of articles: http://blog.rfox.eu/en/Series_about_Self.html