1. 5

    After ~24 hours, the answer would appear to be “no”.

    That’s a shame. I know it’s blasphemous, but I think Swift is a more elegant and usable language than Rust. I’m sad that it’s probably going to be Apple-only for the foreseeable future.

    1.  

      Swift for most part, is an “application” language. To me, a good application language can express interactions with end-users in succinct manner. When we speak non-Apple language in production environment, what most people refer to would be either Android apps, Windows apps, Web backend or micro-services (maybe with the exception of games).

      Android apps / Windows apps, it would be a good fit but apparently no. Swift is too immature and people won’t want to shoot their foot with a language that is not officially blessed by the platform. Windows is probably more open in that regard, but it takes time to mature on that platform.

      Web backend, these are dominated with Go / JavaScript at the moment. Swift have some open-source frameworks, but it is going to be niche. Web backend for most part aggregates data from micro-services and do some basic business logic. The language is simply not there for basic building blocks that we think would be good for efficient web backend logic such as coroutines.

      Micro-services, this is a big category with all kinds of different requirements. Swift is actually not a bad language for these, but it doesn’t have a nice deployment story as Go / Rust (static binary just supported towards the end of last year, otherwise it requires Swift runtime). Not to mention the lack of coroutines which would be useful for some simple micro-services.

      Games, I think Swift would be excel at that. But we are in a world with only two game engine that matters, and they have their own supported language.

      I personally use Swift for all kinds of things on Linux, from Jupyter notebook to command line tools. The language is nice, but its ecosystem will take another 3 to 5 years to mature.

      Swift does mature slower than Rust or Go though if you consider the language itself is already 7-year old now.

    1.  

      This is beautiful.

      Years ago, we sold routers built on FreeBSD. We had a mode that would run TCP dump on the various interfaces and display the output on the console. It was purely for show: it slowed things down, and it generally scrolled by too fast to be of any use…it was more of a screensaver and a bit of beautiful visualization. I had exactly this sort of thing in mind when I put it in.

      1.  

        That’s pretty neat! When in doubt, make it look cool ;)

      1. 10

        One of the first big “fractal” landscape/terrain generators was a program called Vista. It was very popular on the Amiga and was a really fun program to mess around with. Different versions were included on different magazines’ coverdisks over the years, and I played with all of them.

        One of the fun things it could do while it was running the generator (which could take hours for a big landscape) was convert the mathematical noise into “music”. You could listen to it and it was interesting. Not quite static, not quite regular. It was nice (or maybe that’s just nostalgia talking).

        1.  

          Nice application! I was also fascinated by the dial-up modem handshake sound on 90s. You could hear it going wrong without understanding anything about the protocol.

          The auditory perception offers insanely advanced tools to detect anomalies and patterns I wish I could employ more. For listening to network there could be different sounds for different protocols, different ears for direction of the transmission etc. You could disseminate traffic effortlessly in real-time. I’m currently using only pitch as the relative frequency of number of observed packets on wire.

        1. 1

          So this is bad stuff. The worst I’ve seen in a long while. It harkens back to the kind of things we were seeing in the late 90’s/early 2000’s.

          1. 9

            I’ve been waiting for episode 2 of this to drop for 3 years 😂

            1. 3

              There’s a “drop” word joke here.

              1. 3

                glad you could pick it out? I hope it didn’t cause your eyes to roll?

                1. 3

                  Thx, I didn’t catch that.

              1. 3

                other documents in the web seem to have more in detail documentation about the technology used for the search index etc.. even tho these are quite old. At least these are what ive found:

                https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.157.7362&rep=rep1&type=pdf

                back then they used a system based on an “distributed in memory index” that is queried by requesters using udp broadcasts to locate the requested files stored on the disks.

                I wonder how that system has evolved in the last decade.

                1. 5

                  Until recently, index scans were performed very infrequently because each index scan caused the permanent loss of up to 10 hard disks. The specific cause of the disk failures seems to have been related to insufficient data center cooling capacity. Actively accessing the disks raised the machine room temperature by at least 5 degrees Fahrenheit.

                  That is the greatest thing I’ve read today.

                1. 17

                  Lord knows I’m sure I’ve done the exact same thing with sscanf, but reading the article where it talks about 3D models reminds me of a similar story.

                  I can’t remember where I read it but it was, I believe, a person at Pixar talking about something they wrote for RenderMan. The software used a simple hash function to look up files based on the first character of the filename with a linked list in each of the buckets; not particularly fancy, but it worked fine during testing and everything seemed great.

                  In production it was super slow. Turned out in production, all of the filenames were passed as absolute paths, so every file started with /, so it turned into a linked list traversal for every lookup.

                  I can’t remember where I read it, so I’m sure I’ve forgotten something, but I remember liking the story and thought it was interesting.

                  1. 1

                    That Renderman hash table turning into a linked list one sounds familiar, I believe I’ve heard it too with the same details.

                  1. 2

                    $HOME: We got a cat, so…cat stuff. My kids are in love with him already.

                    $WORK: We’ve got a big order of our stuff so I’m going to be packaging that up and shipping it out. I’m hoping that after that’s done, I’ll be able to (finally!) switch back to doing what I’m actually paid to do, which is R&D.

                    $PLAY: My regular expression engine in Rust is really close. It’s got some very interesting properties. Hopefully I’ll be able to show it off here in the near future.

                    1. 12

                      There’s lots of stuff out there that just isn’t supported.

                      Try running something written in “100% portable ANSI C”:

                      • on a system whose encoding isn’t based on ASCII.
                      • on a system that uses floats based on something other than IEEE-794.
                      • on a system where pointers don’t fit in any integer type.
                      • on a Harvard architecture (C99 defined some stuff to make this more doable, but…).
                      • on a system where CHAR_BITS isn’t 8.
                      1. 6

                        Yeah, people think “oh, just target it to C” - as if C can’t be quite platform dependent already. Sometimes intentionally, sometimes assumptions. Sure, you might never need to port to i8052, PDP-10, VAX, or OS/400, but you never know…

                        1. 6

                          To the Committee’s credit, the Standard does generally address these situations…there’s just a disconnect between what people think the standard is and what it actually guarantees.

                      1. 10

                        This is Ken Iverson’s Elementary Functions, a book that uses APL to illustrate mathematics.

                        Ken’s heirs have placed a lot of his works under Creative Commons licenses. After that was done, I’ve made it a point of finding spare copies and having them digitally scanned so that they can be preserved. Algebra: An Algorithmic Treatment is another example.

                        J Software is kind enough to host the PDFs.

                        1. 3

                          Thank you very much for finding and having this scanned! This looks particularly interesting seeing as it looks like it uses the ‘book APL’ notation from A Programming Language rather than the APL programming language (used in Iverson’s Algebra and Analysis books). This Elementary Functions book was published just after the first APL implementation was finished I think so presumably it was written before / alongside the computer implementation of APL.

                          1. 3

                            What’s “book APL” ? How’s it different? I want to know more!

                            1. 4

                              I can do no better than lorddimwit’s excellent answer :) The book itself is available at softwarepreservation.org here.

                              There’s some more info on the history in The Design of APL in the appendix on the chronology of APL development. In particular it turns out this Elementary Functions book grew out of a high school course Iverson taught in 1964. The students got to use an experimental partial implementation of APL on an IBM 1620 - must have been quite a course! edit: Actually these historical details are in the preface of the Elementary Functions book too.

                              1. 2

                                APL started life as a “blackboard notation” for teaching and communicating mathematics. It was described in the book A Programming Language. In the title, “programming” wasn’t supposed to evoke “computer programming” so much as “designing algorithms and procedures.”

                                For the first several years of its existence, APL was purely a pen-and-paper/chalkboard notation.

                                When Aiden Falkoff wrote the first APL interpreter for a computer, several changes were made to the notation due to the realities of computing hardware at the time.

                                For example, “book” notation for “floor” is ⌊0.4⌋, whereas in “computer” notation, it’s ⌊0.4.

                                The book also uses a beautiful schematic representation of algorithms for loops and jumps; the ∇ notation on the computer approximates it but they’re not the same.

                                Reading A Programming Language to learn computer APL would be a bit like reading Shakespeare to learn modern English. You’d get 85% of the way there and get all the core concepts, but you’d say a lot of things that don’t quite make sense.

                                Interestingly, “book” APL has some stuff that was never completely put into computer APL.

                            2. 3

                              Is there a page collecting links to Ken Iverson’s CC licensed works in PDF? I’d like to post this to an array languages group I visit.

                              (edit) I think I found the page that collects these documents: https://code.jsoftware.com/wiki/Books

                              1. 2

                                Yep, you found it.

                                Which array languages group, if I may ask?

                                1. 2

                                  It’s a group internal to the Recurse Center. I posted these links and got an invite to pair on some katas in J! I may learn APL after all!

                            1. 3

                              Lite’s implementation is one of the most beautiful I’ve seen. It’s one of those programs that you read and it’s just…elegant and beautiful.

                              1. 3

                                I took a look at both the Lua and C code, and it looks nice… although I prefer code with more comments. There are many files without a single comment. Even 1 or 2 well-chosen sentences at the top of the file goes a long way.

                                https://github.com/rxi/lite/tree/master/data/core

                                1. 2

                                  I mean, this whole overview kind of makes what you are asking for redundant.

                                  1. 1

                                    I’m often told that I don’t comment my code enough, so maybe that’s why I like Lite so much. :)

                                1. 2

                                  What if a simpler programming language had first-class representations of a lot more than strings and arrays?

                                  REBOL. You’re looking for REBOL. :)

                                  1. 3

                                    In my mind, reading code feels like putting together a little machine. I feel the pieces move and carry other pieces and click into place.

                                    It’s a really satisfying feeling, at least when the code is well-written.

                                    1. 2

                                      For me, I feel like I hear the programmer explaining to me what they think is important. Sometimes what they are saying sounds very strange, and that’s usually where the bug is.

                                    1. 17

                                      I wrote an IRC bot in Go (nearly a year ago… Time flies) that would randomly respond to people saying “bitcoin” in the channel with “More like buttcoin, am I rite?!”

                                      It has since evolved to do other stupid shit for no reason other than me finding it somewhat funny in the context of the channel. Oh… And it previews links, because why not…

                                      1. 9

                                        Bitcoin trolling sounds like a valid utility to me :)

                                        1. 3

                                          Please make a Lobsters version /s

                                          1. 3

                                            Please make a Lobsters version

                                            Well, it’s mostly tailored to the ##crustaceans channel on Freenode. Source code here if you want to do anything to it: https://github.com/Brekkjern/buttsbot

                                            It’s an absolute mess, but(t) it’s there.

                                          2. 2

                                            I wrote an IRC bot in Go (nearly a year ago… Time flies) that would randomly respond to people saying “bitcoin”

                                            More like buttcoin, am I rite?!

                                          1. 14

                                            Man, this makes me feel sad. I haven’t had time to do anything “fun” in so long. I’m sad because this last week in Texas I had plenty of free time, but, you know…no electricity.

                                            I suppose the last “toy” program I wrote was an operator-precedence parser in Rust, just to get a feel for the language. Of course, that evolved into the parsing component for my regex engine in Rust, so…now it’s not a toy anymore.

                                            Seriously, I’m kinda sad now. All I do is work…

                                            1. 10

                                              Hang in there. Ride and react to your high energy and low energy modes. Don’t beat yourself up in low energy states. Celebrate your successes by keeping a log of projects and notice how many completed ones you collect. This advice is aimed at the both of us. :)

                                              1. 7

                                                I appreciate that, thank you.

                                                1. 3

                                                  This is wisdom. Life has seasons and acknowledging the more and less productive ones as equally valuable to your health is essential.

                                              1. 2

                                                I wonder what’s informations critical mass. Professor A. Dońda did some research on that.

                                                1. 7

                                                  The Bekenstein Bound. That’s the maximum amount of information you can store in a given volume of space before it collapses into a black hole.

                                                1. 4

                                                  Work: Whatever ancient god we pissed off has unleashed his wrath on central Texas and so I’m not driving into the office this week to work in the hardware lab, that’s for sure.

                                                  Play: Gonna finish my custom regex engine in Rust.

                                                  Home: Dealing with the coldest day in Austin since I moved here.

                                                  1. 2

                                                    ${HOME}: Dealing with subzero temperatures in Texas. That’ll be fun. I have no idea what I’m doing from a homeowner’s perspective (I’ve been in colder temperatures before, but it was always in an apartment…)

                                                    ${WORK}: I’m…tired.

                                                    ${PLAY}: Working on my custom regex engine. It’s so close!

                                                    1. 2

                                                      Subzero °C or °F?!

                                                      1. 2

                                                        F! It’s supposed to get down to 0 or possibly -1 this weekend. We’re going to be having nightly freezes until next Saturday, looks like. Crazy.

                                                        1. 2

                                                          Wow… that’s crazy. Be careful if you have to drive!

                                                    1. 13

                                                      If you like combinatory logic and this kind of deconstruction, I highly recommend Raymond Smullyan’s book “To Mock a Mockingbird,” which teaches combinatory logic through an extended tale of birds in a forest, and poses a variety of puzzles to compose birds (combinators) together to produce different results!

                                                      1. 3

                                                        Oh, thank you. I have Smullyan’s guide to mathematical logic and it’s a good read. I’ll add this to the list.

                                                      1. 8

                                                        Daily drivers for workstations? Yeah it’s pretty much x86/x86_64/ARM/ARM64, with a smattering of POWER and SPARC.

                                                        Production systems? There’s a ton of IBM z in critical business environments. MIPS is popular as an embedded processor, especially in the networking space. POWER and SPARC are still around in the server space and it wasn’t that long ago that I remember large installations of PA-RISC. The M68k still floats around as an embedded or cheap processor.

                                                        But for workstations, I’d be willing to guess you’d cover 99.5% of people with x86/x86_64/ARM/ARM64.

                                                        (What’s gonna happen to HP-UX? There doesn’t seem to be any plans to port it to anything and the only supported architectures are both discontinued…)

                                                        (There’s also the Longsoon architecture that is required to be used in certain things in China, and is used in those places and nowhere else really. Same goes for a few very specific avionics/process control architectures in the rest of the world.)

                                                        (Oh and the plethora of embedded processors with Harvard architectures or weird word sizes or what-have-you. It’s a whole different world there.)

                                                        1. 4

                                                          I have a big soft spot for PA-RISC. My first job out of college was on a K250 running 10.20 (I’m OLD! I’m SO OLD!).

                                                          1. 6

                                                            My youngest coworker at my current job asked me who Johnny Cash was. I died inside a little.

                                                            1. 1

                                                              So, who is that ?

                                                              1. 7

                                                                The inventor of money. That’s why we sometimes call it cash.