1. 5

    Not exactly “work”, but providing my public Multics service, I’m continuing to learn more about programming in Multics and trying to bring new things to it’s modern users.

    This week I am hoping to complete an implementation of curses that plays nice (that is, works) with the Multics video window system invoked — there is an existing port of System V Curses which doesn’t, and has some other issues, with no extant sources. Once this is complete, a lot of my 85%+ done projects will essentially be completed. Rogue and NetHack and vi, I’m looking at you!

    The games aren’t “real” work, but they are a great learning experience for me, in addition to being a huge draw for casual users, many of whom stick around to learn more about the system and the fascinating people who worked to create it.

    I have way too many other small things to do, in fact, too many to list, but this is a big one I hope to get done this week since it’s blocking otherwise completed work I can’t show off.

    You can visit at https://ban.ai/multics or connect directly with mosh or ssh to dps8@m.trnsz.com

    1. 2

      The ability of the system to mimic the quality of the target video (like with the Reagan example) is really surprising. I wonder how long it’ll be until this sort of tech can be done in real-time.

      1. 2

        After long thought - being initially excited, I’ve ended up coming full circle to disgust.

        This started when I almost bought tickets to the Maria Callas holographic performance but stopped myself just in time, after thinking about the ethical issues - and that effect on this would have on the arts.

        How would you feel as an artist, if your “real” performances were always second best to a flawless computer generated performance?

        How would you feel if you had to compete against ‘perfect’ performance by others who have been dead for decades?

        Who ultimately profits from this technology and at what cost?

        There is also the issue of consent and artistic integrity - that the artist should be the one who decides their roles, not their overseers or the company that holds their current contract. (The first third of the film ‘The Congress’ explores some these very issues.)

        After some contemplation, I’ve decided that I simply can never support these efforts.

        Maybe I’m the minority here, but I find almost all film and TV produced during or after the 1980’s to be insufferable and it’s because, in my opinion, computer graphics have replaced, poorly, the art of set design, casting, costuming, etc. The result has been nearly 40 years films that lack integrity and and are plagued by hollow performances. The majority of films I can enjoy are those from the 1930s to the 1950s.

        I’ll guess I’ll stick with the operas (the real ones).

        1. 3

          I, too, do not want to support or encourage artists by paying for recordings of their works.

          The flip side is that I’m more inclined than I used to be to pay for tickets for live shows, and happily buy over-priced merchandise while I’m there.

          Watching a close friend work her ass off to grow a spare electronic keyboard into a whole touring band helped me change in this way, too.

      1. 1

        Nearly every point made here is still relevant today.

        1. 3

          Looking at their website, they have a press release claiming OpenVMS is not susceptible to Meltdown and Spectre on Itanium or Alpha. They’re keeping mitigations in mind for x86 port, though.

          Additionally, they’re replacing the network stack with one from Process Software who specialize in OpenVMS software. They claim to have 3,000 customers who probably each pay a decent licensing and/or support fee. They’ve been around for about 30 years. Shows that the niche/legacy markets can still be profitable and sustainable if a company focuses on providing the right stuff.

          1. 2

            I have nothing but praise for Process, they make fine products, and I had good experience with PMDF - as well as MultiNet and TCPware. They also have been very supportive of the personal and hobbyist audience.

            [I’d be interested in knowing if PMDF has been wholly rewritten by now or if it still derived from the venerable MMDF MTA (or the ‘old PMDF’ ancestor written in Pascal).]

          1. 8

            A couple notes on the article (specifically, the one it links to at the beginning, The Logical Disaster of Null).

            Null is a crutch. It’s a placeholder for I don’t know and didn’t want to think about it further

            I disagree. In C, at least, NULL is a preprocessor macro, not a special object, “which expands to an implementation-defined null pointer constant”. In most cases, it’s either 0, or ((void *)0). It has a very specific definition and that definition is used in many places with specific meaning (e.g., malloc returns NULL on an allocation failure). The phrase, “It’s a placeholder for I don’t know and didn’t want to think about it further”, seems to imply that it’s used by programmers who don’t understand their own code, which is a different problem altogether.

            People make up what they think Null means, which is the problem.

            I agree. However, again in C, this problem doesn’t really exist, since there are no objects, only primative types. structs, for example, are just logical groupings of zero or more primative types. I can imagine that, in object-oriented languages, the desire to create some sort of NULL object can result in an object that acts differently than non-NULL objects in exceptional cases, which would lead to inconsistency in the language.

            In another article linked-to in Logical Disaster of Null talks about how using NULL-terminated character arrays to represent strings was a mistake.

            Should the C language represent strings as an address + length tuple or just as the address with a magic character (NUL) marking the end?

            I would certainly choose the NULL-terminated character array representation. Why? Because I can easily just make a struct that has a non-NULL-terminated character array, and a value representing length. This way, I can choose my own way to represent strings. In other words, the NULL-terminated representation just provides flexibility.

            1. 4

              “On Multics C on the Honeywell DPS-8/M and 6180, the pointer value NULL is not 0, but -1|1.”

              1. 3

                The C Standard allows that. It basically states that, in the source code, a value of 0 in a pointer context is a null pointer and shall be converted to whatever value that represents in the local architecture. So that means on a Honeywell DPS-8/M, the code:

                char *p = 0;
                

                is valid, and will set the value of p to be -1. This is done by the compiler. The name NULL is defined so that it stands out in source code. C++ has rejected NULL and you are expected to use the value 0 (I do not agree with this, but I don’t do C++ coding).

                1. 2

                  I believe C++11 introduced the nullptr keyword which can mostly be used like NULL in C.

                  1. 1

                    Correct. Just for reference, from the 1989 standard:

                    “An integral constant expression with the value 0, or such an expression cast to type void * , is called a null pointer constant.”

                2. 3

                  I would certainly choose the NULL-terminated character array representation. Why? Because I can easily just make a struct that has a non-NULL-terminated character array, and a value representing length. This way, I can choose my own way to represent strings. In other words, the NULL-terminated representation just provides flexibility.

                  That’s not a very convincing argument IMO since you can implement either of the options yourself no matter which one is supported by the stdlib, the choice of one doesn’t in any way impact the potential flexibility. On the other hand NULL-terminated strings are much more likely to cause major problems due to how extremely easy it is to accidentally clobber the NULL byte, which happens all the time in real-world code.

                  And the language not supporting Pascal-style strings means that people would need to reach for one of a multitude of different and incompatible third-party libraries and then convince other people on the project that the extra dependency is worth it, and even then you need to be very careful when passing the functions to any other third-party functions that need the string.

                  1. 1

                    You make a good point. Both options for strings can be implemented. As for Pascal strings, it is nice that a string can contain a NULL character somewhere in the middle. I guess back in the day when C was being developed, Ritchie chose NULL-terminated strings due to length being capped at 255 characters (the traditional Pascal string used the first byte to contain length). Nowadays, since computers have more memory, you could just use the first 4 bytes (for example) to represent string length, in which case, in C it could just be written as struct string { int length; char *letters; }; or something like that.

                    From Ritchie: “C treats strings as arrays of characters conventionally terminated by a marker. Aside from one special rule about initialization by string literals, the semantics of strings are fully subsumed by more general rules governing all arrays, and as a result the language is simpler to describe and to translate than one incorporating the string as a unique data type.”

                1. 5

                  I had way too much fun paring the binary down to under 1KB, so thought it would be fun to show off. This is a tool for the very limited use-case of writing your own bare metal kernel (to replace Linux) on a raspi 3.

                  1. 3

                    Nice work. How small did you get it in the end, and did you use any interesting tricks to get the size down?

                    1. 4

                      I wish there were some clever tricks; it might have made an interesting blog post. Since I wrote the code in 32-bit arm first, the biggest help was things that improved in arm64: CRC-32 and integer division are now built-in instructions, which saved me two routines.

                      Other tricks:

                      • “Re-roll” any loops and use subroutines heavily. Don’t paste code or unroll anything. A modern CPU can do thousands of instructions per byte to the UART at 115200bps, so the extra branches won’t matter.
                      • Don’t obey calling conventions near the leaf nodes (which for me, was the entire program). I noted that a leaf routine trashed registers x0 to x3, then made the calling routine (one step higher in the call-stack) use registers x4 - x6 instead. ret {reg} helps a lot here, because the routine prelude can be just mov x7, lr. Effectively, arm64’s generous register file became my stack.
                      • My favorite trick was using extr to rotate a word and add an incoming byte in a single instruction, in uart_read_u32. This is pretty much what extr is for, so it’s not especially clever. I just had to spend an hour reading through the instruction descriptions, looking for interesting ones that might help.
                      • The loss of conditional execution was rough, but it felt like csel and tbz really do cover most of the use cases. In particular, tbz can be used to make a tight loop if you’re counting up to a power of 2.
                      1. 1

                        Thanks for the update, sounds interesting and well worth a blog post to me.

                    2. 1

                      Have you done this? Specifically writing your own bare metal kernel?

                      1. 1

                        I’ve… started. :) I got pretty far in rust in 32-bit mode before deciding I should jump into the deep end and go full 64-bit. I’ll definitely post my progress to github as I get things working.

                        1. 1

                          Very cool! What’s the goal? By that I mean, what features are you looking for in your as yet to be completed kernel?

                          1. 2

                            My loose goal, besides “fun”, is to build a non-posix unikernel that boots into a text environment reminiscent of the old Apple II. No real goal behind that, though it would be nice to get USB & wifi working.

                            1. 2

                              Are you familiar with the Ultibo unikernel for the Pi, which provides a neat Wirthian environment implemented completely in Object Pascal?

                              1. 2

                                I am now! Very cool! :)

                              2. 1

                                SO interesting to me how many people are hearkening back to that time!

                                Makes me think of tic-80 - https://tic.computer/

                                Sounds like a fun project. Good luck!

                                1. 1

                                  There were even TIC-80 demos at Revision this year. This placed #10.

                                  1. 1

                                    Very cool! tic-80 is so much fun. it really evokes the feeling of working in that 8 bit, self contained, everything IMMEDIATELY accessible space while using a modern language, syntax and tools.

                      1. 1

                        The question of ethics or morals seems to come up occasionally. The smog-gate issue, self driving cars killing people, etc. I’m a programmer so I feel both sides of this issue e.g. While my animal brain wants blood for the programmers that wrote the code for these things, my thoughtful brain would never want to be blamed for something “out of my control.” The banality of evil by Hannah Arendt is a good read, it talks about how normal people do terrible terrible things. While I think you can point to high profile individuals like Uncle Bob, Bret Victor, etc. that would have the luxury of authority and context to be “ethical.” I think your general run of the mill programmer would not. Also this ethical conundrum is not isolated to programming. Other fields that seem to have issues are Medical and Financial off the top of my head.

                        At a prior job many years ago, I was shocked at the terrible practices used to “secure” a password. It was some home-grown pseudo hash that was just terrible and trivial to break. After I had updated that code to use industry standard techniques, a request came in from LEO to crack the password of a device used in a case for a drug dealer (drugs are bad, mmmmkay). I happily cracked the password and got a letter of thanks. I was young. Today I would probably refuse on moral grounds but I wonder, given the same situation of negligently bad password securing practices, what I would do.

                        1. 3

                          “Margin Call” in an underrated film that delas oh-so-briefly, but, speaking from experience, meaningfully and realistically, on issues of ethics and morality, as seen through the lens of the (corporate side) of the Very Large Financial Institution, and is well worth a watch.

                          1. 1

                            I’ve seen that one actually, it’s really good! I also really liked a similar German documentary about the ethics behind modern investment banking from the perspective of someone who worked at Deutsche Bank.

                        1. 6

                          Anyone with further interest can access my public Multics system. It should be noted that, at least as of today, I have a higher level of confidence in the Multics instance than most everything else I operate, with a concern that the security of the Multics system is certainly not enhanched by underlying hardware and software which hosts the DPS-8/M virtual machine.

                          It should also be noted that (IMHO) many of the more promising security technologies and enhancements have resulted in a net loss of confidence in systems because they have been weaponized against computer users and owners (DRM, TPM, SMM, ME, etc.)

                          It’s also quite depressing that most security “bolt-ons” (PI firewalling/filtering, access control lists, multilevel labeling, mandatory access controls, capabilities, role-based access controls, SELinux, etc.) are ubiquitously available but remain non-standard, underutilized, minimally configured, and are often consciously disabled for ease of use or compatability concerns.

                          1. 7

                            I was hoping to get some tips I could use, but my use of a CAPTCHA isn’t on the web, it’s to allow legacy Telnet access to my Multics installation. It all started with a MASSIVE amount of automatic cracking attempts, which I linked to the Mirai botnet, but simply have never slowed down!

                            This is issue is affecting many other legacy system providers as well (see their 07-Jun-17, 01-Dec-17, and 04-Dec-17 updates).

                            Example of what I’m seeing over a period of about two or three months:

                             » mlt_ust_captcha
                             CAPTCHA: 32 passed, 18632 failed.
                            

                            My solution was to present untrusted connections via legacy methods like telnet a text-based CAPTCHA - I am using only low ASCII characters for numbers and lowercase letters A through F, because at that stage of the connection, I can’t be sure exactly what terminal type the user is connecting with:

                             Please input the following text to enable access from your host.
                             You have 4 chances, 15 seconds each, or else you will be banned.
                               _          _
                              | |__    __| |  __ _   ___
                              | '_ \  / _` | / _` | / __|
                              | |_) || (_| || (_| || (__
                              |_.__/  \__,_| \__,_| \___|
                              
                              >
                            

                            I tried various methods for turning the tables and lessening the burden of proof on the human to prove they are human, like examining keystroke timing, but everything I tried seemed to increase the false positive rate unacceptably!

                            My biggest complaint with this CAPTCHA system is, by it’s nature, it makes my resources inaccessible to computers - which means it also makes things inaccessible to those who depend on computer-based accessibility tools, such as those used by the blind.

                            For my Multics use-case, it’s OK, because there channels like Mosh or SSH connections that are exempted from the CAPTCHA and won’t affect blind or disabled users. As more and more of the web moves to programmed JavaScript-based pages, I worry that it’s becoming less accessible, or that disabled and blind users will be forced to experience second-rate presentation and content.

                            1. 5

                              Could this visual ASCII art captcha be replaced by a plain string prompt like “please type the following word: peacock” that would work fine from a screen reader? No bot author is actively trying to break it, if I understand you correctly? The hordes of logins are just from a bot that wants to log into crappy IoT kit with exposed telnet and default passwords?

                              1. 2

                                That would probably work pretty well I imagine: bots which just target open telnet ports would fail, but computers could still easily be programmed to automatically log in (if the challenge is always on the form “Please type the following word: (.*)”).

                                1. 2

                                  It guess it absolutely could - yes.

                                  My concern and reason for not doing so originally was a concern that such a trivially solvable solution would quickly be trivially solved.

                                  Of course, my concern might be overblown.

                                  1. 1

                                    Also, in my case - since I offer connections via SSH, Mosh, and VNC I’m less concerned, but, also, if you solve the CAPTCHA just once, that particular IP is exempted from having to solve it ever again.

                              1. 2

                                I’d recommend everyone have a look at https://github.com/vasi/pixz used possibly in combination with https://github.com/kholtman/afio as well.

                                1. 2

                                  This is cool, but is there a “getting started” guide of sorts? It feels a bit dull poking it without any direction of what to expect or where to go at all; and a bit hard to explore when you know none of the “rules” of the system. (Others might not also understand “why Multics?”)

                                  1. 4

                                    I am going to post a follow up with an FAQ this weekend, but, I’ve made every attempt to ensure the system is configured in a way that is secure - especially in the case that a Guest user shouldn’t be capable of breaking anything.

                                    Otherwise - common sense rules apply - don’t be malicious, and if you do discover some clever exploit or privilege escalation I’d appreciate it being reported rather than abused. Users who are obviously intentionally disruptive or abusive in their use of resources may be bumped and eventually banned.

                                    http://www.bitsavers.org/pdf/honeywell/multics/ has full manuals including the command manual.

                                    There is a very complete help system available with “help” - to search the help pages use the “lh” command.

                                    A nicer shell with Emacs-like editing functionality and optional history is available. You can activate this with the following command: stty -ttp vt102;wdc invoke Instead of vt102 (which assumes 80x24) you can use use VT102_132C_50L and VT102_132C_78L for a 132x50 or 132x78 display, respectively.

                                    Common commands are - ls (list), pr (print), cwd (change_wdir), pwd (print directory) cd (create_dir). < is like UNIX .. and > is used instead of / (>udd>u>name might be a path, for example). la is used to show ACL and sa to set them. Other commands to try include “who -lg” and “user all” to see all your attributes. Wildcard parsing is closer to VMS than UNIX. “ls >path>here>**.blah -a”, etc. Use “ls -a” to show all types of entries otherwise it wil only show regular segments. The eor command (or dprint for guests) will request print jobs which can be picked up as formatted PDF files.

                                    The qedx editor is quite nice for a line editor and built around regular expression parsing.

                                    Messaging tools are sm, smx, mail, forum, etc. The “easier to use” tools are snarkily called “xmail” and “xforum”, short for “Executive Mail” and “Executive Forum”. :-)

                                    Other tools to check out are are compose and runoff, the precursors to Unix troff/nroff. Most everything else is well documented but if you questions let me know - it helps for building the FAQ!

                                    1. 2

                                      This is a little dated - but it should also help:

                                      http://multicians.org/multics-commands.html

                                      1. 2

                                        also, when using the line editors and interfaces based on qedx (which is a lot of the system), it helps to know that \f (that is a literal backslash and f) means end of input or file and essentially the equivalent of UNIX EOF or DOS ^Z. (If you see a “level N” after your ready prompt in case of a crash or error or interruption, you can use “rl” to release it, or “rl -a” to release all the levels.)

                                        Knowing that \f tidbit not only helps you to use the system but it makes the Ford Multics shutdown cake picture on the Multicians site quite touching.

                                        1. 1

                                          Since some have asked, here another example, this time, for setting up a plan file as used by the finger daemon, for an account with a User ID of JRDobbs.

                                           cwd [dwd]
                                           pwd
                                           qedx
                                           a
                                           This is my plan.  There are many like it, but this one is fine.
                                           \f
                                           w JRDobbs.plan
                                           q
                                           sa JRDobbs.plan r Service.Daemon.*
                                          

                                          This changes to your default working directory, analogous to your home directory on Unix, and displays it. You are then invoking the QEDX editor, adding/appending your text, then writing it to the file named “JRDobbs.plan” and quitting. The sa is short for set_acl, in which you allow the Service.Daemon user (which runs the finger service daemon) read access to your JRDobbs.plan file.

                                          Nobody has recovered the sources for any of the original Multics finger daemons, nor was I was able to locate any logs of what the original output looked like, so I simply implemented it as it seemed appropriate. When a user is fingered they are notified by the Daemon if they are online - there is no attempt to do any identd mapping yet.

                                          There is no Multics finger client - yet. There is also no option that will allow the user to be excluded from the daemons output to appear as [redacted] in the listing, but these are features that will come soon.

                                      1. 2

                                        Thank you for doing this. I don’t know what I’ll do with this that I can’t do on my BSD machines, but I’ve requested an account and will be poking around.

                                        I wish this had been around a couple of years ago when I was writing my novel Silent Clarion in 2015. I had put my protagonist in the position of trying to crack a Multics installation because while Unix was ubiquitous in her setting, she had no experience with Multics. While I had used http://multicians.org/ for research, reading a website is no substitute for firsthand experience. :)

                                        1. 1

                                          That’s awesome - I’ll have to read it! I should have replied to all account creation requests so far - let me know if you have any issues or didn’t receive your response.

                                          FYI the Multicians working on the Honeywell simulator are incredibly dedicated - I watched as a quiet lurker for 6-8 years as the emulation developed to a “one point zero” release, a success that came only after several years of false-starts and discussion.

                                          I began investigating the feasibility of running a continuously available publicly accessible system soon after that. It took me a many months of research, learning, and discovery to get everything working and to tune the system appropriately, finally getting something online that would be capable of “Internet-scale” workloads.

                                          Once again, I can’t stress enough that this task that would have been quite simply impossible without the help of the many Multicians who still very much love their project.

                                          1. 2

                                            That’s awesome - I’ll have to read it! I should have replied to all account creation requests so far - let me know if you have any issues or didn’t receive your response.

                                            I got your email. I can hook you up with a free copy if you want Kindle or PDF. Otherwise, I’ve got one of the plain-text drafts in the GitHub repository for my website because I had wanted to convert it from Markdown to reStructuredText and put part 1 (“The Geographic Cure”) online.

                                            However, the Multics bits don’t come into play until Chapter 41. :)

                                        1. 2

                                          I love that it runs emacs (I used the terminal type vt100fc and that worked, mostly!) - gets you a nice view into where all this came from.

                                          1. 4

                                            I work with a large amount of REXX and Object REXX and other “unpopular” language code which I have no qualms about. Perhaps an actual non-subjective measurement of risk might be determined or at least conjectured and stated?

                                            I’d imagine there is comparatively very little risk in unpopular but old and established languages while there is a high risk of new and unpopular languages becoming “unviable”.

                                            The problem is that this article gives very little thought to formally defining its criteria in an objective and measurable way.

                                            1. 3

                                              That’s amazingly cool. Is it possible to download a disk image with a ready-to-go system installed?

                                              1. 6

                                                http://multicians.org/simulator.html has links and instructions for running it yourself. While you shouldn’t expect it to easily support hundreds or thousands of users out of the box on eight or more front-end network processors, etc, in the QuickStart configuration - it will include most of the software that my system does.

                                                I do my best to report all the issues I’ve run into (and often I have no choice but to defer to the Multicians for help) so you can be sure that the next release of the Multics distribution (MR12.6g or MR12.7) will contain all of the fixes for issues I’ve run into stress-testing this large configuration.

                                                FYI - I have setup a virtual MIKSD (Multics Internet Kermit Service Daemon - analogous to a FTP site) which will be used to provide an easily accessible archive of new and user-supported and ports to other Multics sites over the Internet, without having to resort to manual, albeit simulated, tape operations, or IMFT/X.25 simulation. I’m still working finalizing the distribution archive format, but the infrastructure is there and running.

                                              1. 2

                                                Sad, wanted to read this but server is 500’ing.

                                                1. 1

                                                  It’s back now!

                                                1. 7

                                                  I don’t know if it’s just the Baader-Meinhof phenomenon, but I feel like just since @hwayne started posting about J here, I’m seeing more and more APL and J stuff everywhere (including other tech link aggregators and Reddit).

                                                  Not that I’m complaining, mind you. So, +1

                                                  1. 0

                                                    I just saw that mentioned on HN. I thought it was too simplistic because (a) I can easily tell with searches that some stuff picks up over time in waves and (b) some of those waves start by people posting things on well-read forums. Gotta eliminate that first.

                                                    Ive not seen people say Baader-Meinhof virtually ever despite being kind of person that likes learning or spoting such things. It got mentioned recently on HN which is said to have millions or tens of millions of views a month. At least one high karma person said it. After that, many other people are repeating it on HN, Reddit (which may have had it before HN), and now Lobsters.

                                                    We normally call these trends, fads, or bandwagons which are themselves even more common by my estimation than Baader-Meinhof obsessions. What I dont know is if you personally saw it on HN or Lobsters recently before saying it now. You might be independent of recent trend I saw on social media. Im guessing you read others, though, with you seeing on one. If so, it’s a just a fad.

                                                    1. 2

                                                      I only use lobste.rs - certainly never Reddit nor HN - but, the post here on kdb+ I found interesting because I had just recently mentioned it in a private discussion about some language and tools which used used in very specific industries (we were talking about ‘big finance’, VLFIs [Very Large Financial Insutitions], and high frequency trading), so it was certainly a great example of synchronicity to see it mentioned here.

                                                      I always enjoy playing with APL because it causes you to excercise a different way of thinking, and would encourage all programmers to explore some recreational APL.

                                                      Doesn’t mean it might not be a fad, however, but I’d like to see such a tag, if only because I find APL and APL-derived languages and environments fascinating and enjoy reading about them.

                                                      Edit: I absolutely boycott all social media and do not use nor even access Facebook or Twitter or what not - but that doesn’t completely isolate me from influences from the people who do.

                                                      1. 1

                                                        I was talking specifically about “Baader-Meinhof” in that comment. APL has had a lot of interesting posts here on Lobsters. That by itself is a little trend that could justify a tag with the upswing in interest. That might explain you seeing it here around same time you mentioned it but it’s still a little uncommon. Still might be an interesting coincidence.

                                                        “ I absolutely boycott all social media and do not use nor even access Facebook or Twitter or what not”

                                                        Good for you! It will save you a lot of time and headaches better spent on your life or hobbies. :)

                                                        1. 4

                                                          I strongly suspect the people using the term (aside from the eye-roll worthy, pseudo-intellectual aspect) don’t know who the Baader-Meinhof Gang, the Red Army Faction or the German Autumn were, nor do they know how tenuous the connection between the group and the phenomenon is (go on…you know who you are…scramble to Wikipeadia to catch up). Maybe we use ‘frequency illusion’ or some equivalent term instead. RAF are horrible people that don’t need any more attention.

                                                          That said, I think an APL tag would be apropos.

                                                          1. 2

                                                            Somehow I’ve never heard of the “Baader-Meinhof phenomenon” in this context! o_o

                                                            However, I recommend the The Baader Meinhof Complex (2008) available via the Criterion Collection.

                                                  1. 1

                                                    SceneSat’s live streaming service will have a 4-day series of streaming shows: #1, #2, #3, #4. They usually have an outdoor camera as well.

                                                    1. 1

                                                      Outdoor camera provided by Twitch this year, it seems.

                                                      1. 3

                                                        What is MVT? Is this a specialized APL implementation? A collection of APL routines? Something else?

                                                        1. 3

                                                          MVT is a version of MVS, the operating system for the IBM System/360 mainframe. This is a customized distribution built from sources, which is rebuilt especially to run on modern systems via an included customized Hercules emulator.

                                                          IBM APL\360 is a seminal release of the APL system, which is described in depth in APL\360: An Interactive Approach. You can find further information via the Computer History Museum APL\360 site, which hosts the source code used to build the package.

                                                          The APL\360 system goes beyond a mere application. It “took control of the whole machine. It implemented a complete timesharing operating system in addition to a high-level language.”

                                                          1. 1

                                                            Since it runs on contemporary systems, would it be useful as a “daily driver” alternative to GNU APL or is it more interesting as an historical curiosity?

                                                            1. 3

                                                              Probably quite limited as a “daily driver” because the maximum workspace size is 432000 bytes (expansive in the late 1960s/early 1970s), interacting with the host system beyond the keyboard would involve (painful) virtual tapes and EBCDIC conversions, and the license only allows for non-commercial use.

                                                              It’s somewhat better than a mere curisosity, however, as this very software was used, extensively, in actual production environments, doing real work and solving actual problems.

                                                              1. 2

                                                                It’s possible I use tech on a regular basis that was built for this system. The UI sure as heck would fit in the memory. The one you submitted similarly sounded like a great way to keep employees off Solitaire and the Web until you said non-commercial use. (sighs) Back to deleting files out of Windows, Mac, or Linux installs. Haha.

                                                              2. 1

                                                                See What is APL? (An Introduction to APL\360 and Solving Sudoku with APL\360 for examples of the system. Granted, nothing you can’t do in other APL’s, of course.