1. 1

    Lua is a great example of being the “right tool for the right job”. Because it really is meant to be used in specific ways inside of specific applications/domains. Using Lua means you understand the system it is being used inside of. And, honestly, thinking this way about any tool has helped me gain a lot more perspective about the systems I’ve been given to work with or I’m currently building.

    1. 1

      This is great. The Plausible codebase has been very helpful to me for getting ideas and learning more about Elixir. It’s not just another Phoenix app, and it has such a specific use case that there isn’t too much going on, so you can snoop around and understand what each thing does.

      1. 2

        For me, 2021 is the year of Elixir and the Phoenix Framework. I have plans to complete some project with them. Elixir seems to have a lot of enthusiasm behind it, but I don’t know how much compared to other languages. But, that’s not super important to me. I really like Elixir, so I’m going all in (besides my usual work in C and Lua). Any other folks tackling Elixir this year?

        1. 1
          • Fiction: Dead Man’s Walk by Larry McMurty (part of the Lonesome Dove series)

          • Non-fiction: Indwelling Sin by John Owen

          • Programming: Programming Ecto

          1. 5

            I picked up Dune over the holiday period, but it feels pretty slow going so far, although I’ve heard such great things I’m going to push through.

            Otherwise, I’ve also been going through programming Phoenix 1.4, to get more up to speed with Phoenix and start writing more Elixir in my spare time.

            1. 3

              Dune is fantastic, though it pays to remember the era in which it was written.

              I will say though, and with sadness, that the sequels were just…not good (obviously that’s subjective but a lot of people seem to agree).

              1. 3

                I thought Dune Messiah felt like the actual ending to Dune. Like the publishers cut it out of the first one and then turned it into another book after Dune got popular. It was much less action and a lot more internal philosophizing though.

              2. 2

                Just read Dune too. And I’ve been working on my Phoenix skills as well. Almost done with Programming Ecto and it surprisingly has made me feel much more confident with Phoenix than the Phoenix book. Understanding the data portion of applications always seems to make things click for me.

                1. 2

                  Dune’s on my list of books to read next.

                  1. 2

                    I started reading Dune a month ago but abandoned it midway through because it was not interesting. I know, I know… I would highly recommend Children Of Time by Adrian Chaikovsky.

                    1. 1

                      I read Children of Time and it’s sequel Children of Ruin, and I absolutely loved every minute of it, I couldn’t get enough!

                      Are there any other books that you enjoyed as much?

                    2. 1

                      I re-read Dune and Heretics of Dune (the first book in the series I read) and Dune is the real deal. It’s essential (English-language) SF!

                      http://gerikson.com/blog/books/read/Dune-and-Heretics.html

                    1. 3

                      The article is not very in depth, and technically only uses Erlang as an example, not Elixir. But, I did not know Erlang had Lua embedded. Seems like it could be very useful, I’m going to give it a try. Here is the Erlang Lua library discussed in the article.

                      1. 3

                        I’ve used Luerl very briefly and ran into some serious bugs in how it handles optional function arguments. Those would probably not be a problem in the use case discussed in the article, but I’d caution against assuming Luerl is compatible with existing Lua code in general.

                        Still, a very cool tool to have around.

                        1. 1

                          This is really good to know!

                      1. 1

                        I have been meaning to spend some time learning LPEG. I usually just reach for lrexlib when I need something more than regular Lua patterns. But, the composability of LPEG seems very powerful. Just need to spend some time wrapping my head around it.

                        1. 4

                          I started a Perl project couple years ago and still writing it. There is no high-level language I know of that can match its stability, maturity, and install base. With care and avoidance of libs, it just works most of the time. As a spiritual being, I consider its author’s spirituality a huge asset as well.

                          https://raw.githubusercontent.com/qvtqht/shitmyself/master/doc/role_of_religion.txt

                          For portability’s sake, again, I use PHP or SSI to glue it all to the web server.

                          1. 4

                            Larry Wall writings or talks are always a great balance of tremendously goofy and tremendously insightful. I had not read this one before, but it’s great too. My favorite is this one.

                            1. 2

                              Thank you! Great essay I enjoyed reading.

                          1. 2

                            You don’t need to worry if you will be able to use this language somewhere

                            I have become a fan of C for this reason. I don’t actively build things in it at work, but I work with project written in it every day. So, learning it has really helped me work with those systems and feel more confident about how I’m using them.

                            For anyone whose wanted to learn, but can’t get passed issues with pointers. I really recommend this course that is specifically about pointers. After working my way through it, I finally felt capable of understanding pointers and working my way through segfaults on my projects.

                            1. 3

                              You don’t need to worry if you will be able to use this language somewhere

                              IMO this is more or less the only good thing about C. The compiler is already installed on the system, no matter what the system is. That’s it.

                              1. 1

                                Even that is less of a benefit than it used to be. GCC used to be a good C compiler and a fairly crappy C++ compiler. Both GCC and Clang are now focusing on C++ for optimisation and so you’re likely to have at least as good a C++ compiler available as you have a C compiler (and that C compiler is probably written in C++, so you need to have a working C++ compiler for bootstrapping). Visual Studio is now, finally, getting C11 support, but was stuck on C89 for ages, so even 8-9 years ago you had C++11 everywhere but only C89 everywhere. C99 was a modest jump from C89 compared to C++98 to C++11 but it’s still quite painful using C89 in comparison (and not having C11 atomics makes it impossible to write the kind of low-level lockless data structures that you actually want a C-like language for).

                            1. 1

                              Finishing Dune Messiah (the second book in the Frank Herbert series). Then moving over to the Larry McMurty Thulia series.

                              1. 2

                                Ducking out to Joshua Tree for a night just to get away. Not camping since we didn’t really plan ahead, but it’s always nice to scramble around and Joshua Tree Coffee Company is my favorite coffee shop.

                                1. 1

                                  Rock climbing? Or just hiking?

                                  1. 1

                                    Just scrambling around a bit. Haven’t really climbed at jtree before.

                                1. 3

                                  Saturday:
                                  Chores, daemon programming, and reading The Linux Programming Interface.

                                  Sunday:
                                  Meeting my girlfriend for sushi.

                                  1. 2

                                    How are you enjoying TLPI?

                                    1. 2

                                      It has a lot of helpful information and most of the content isn’t Linux specific.

                                    2. 1

                                      Girlfriend? Noice! Sushi?? Double noice! TPI??? Triple noice!

                                    1. 3

                                      At my place of employ we have a great PHP dev who keeps the business running because at some point a PHP guy built new stuff instead of the old Perl stuff. We also have a great Perl dev who keep things running too because at some point people started the company on Perl. And in a few years we will have a great Python dev who keeps things running…..I am fairly new but I am starting to feel that knowing a particular tool well seems to make you more useful than having opinions on Ramsay tool. So keep going you PHP devs!

                                      1. 8

                                        I wrote my Master’s Thesis in Literature and Writing based on Ivan Illich. Now after all these years seeing his philosophy on my favorite programming website is quite a “trip”! This talk is very good and deserves a full read through. But, for anyone just passing through, the simple quote “complexity has to live somewhere” also deserves some thoughtful consideration.

                                        1. 2

                                          I’m using their paid service just because I wanted to try it free before installing it, but since it is only $15 a year, I just paid. The app itself is great and fast.

                                          1. 3

                                            Opened package.json to see:

                                            "dependencies": {}

                                            Hats off to the author. Much respect.

                                            1. 6

                                              I’ve been working with LiveView for a couple months now, and this article gives a good example of the simplicity of making dynamic web sites in LiveView. It feels like magic, but if you do liveSocket.enableDebug() while developing all the magic is laid out right in front of you which is cool to see.

                                              1. 8

                                                We’re going to start seeing more licensing along the lines of - Use it for your project as you like, but you can’t use it as a for-profit hosting service. This has been a huge fight with Elastic and Amazon, where Amazon offered hosted elasticsearch in AWS causing harm to Elastic that had their own cloud - so Elastic changed their license to prevent this, and Amazon went out of their way to make the “open distro” with them supporting an equivalent API in a permissive license.

                                                Redis protected themselves here, and others are starting to do so as well. It’s very likely we’ll see adoption of a limited/permissive license soon (like a modified MIT/APL/BSD) that folks can use without worrying that a cloud provider will swoop in and make money off the backs of small open source creators backs.

                                                1. 3

                                                  Yeap, the odd thing is that Redis & elastic seem to have gotten a lot of bad press out of it. Which to me seems insane, since it was question of not giving amazon and google a free hand to run them into the ground.

                                                  1. 1

                                                    What is the bad press about? Like what are they saying is wrong about the change? Just that it’s not in the “spirit” of free software?

                                                  2. 2

                                                    Yeah, this does seem like a necessary change for a lot of free software projects. The software is free (as in beer), but someone (ideally the original creators) still owns and “controls” its use.

                                                    1. 2

                                                      I mean, it’s more so than free as in beer, since it’s also open source.

                                                      If anything, it’s more of the opposite, the software is always open, but not always free (i.e. not if you want to use it in a proprietary product).

                                                      1. 1

                                                        Yeah, that is a good point. Open is the right word there. It makes sense to me to do this.

                                                      2. 2

                                                        It’s expensive to write, it’s free to copy. If your business model involves writing the software for free and then hoping you have some way of recouping that cost later then you may need a new business model. If your software works fine and needs no further modification, what do you lose by letting Google / Amazon deploy it at scale? If it needs updates / bug fixes / security updates, then those large deployments are a great place to look for people willing to fund them. If you stop producing them, then people who have built critical infrastructure on top are going to suddenly realise that was a very expensive mistake.

                                                      3. 2

                                                        This has been a huge fight with Elastic and Amazon, where Amazon offered hosted elasticsearch in AWS causing harm to Elastic that had their own cloud - so Elastic changed their license to prevent this, and Amazon went out of their way to make the “open distro” with them supporting an equivalent API in a permissive license.

                                                        This is not what happened. Elasticsearch as a commercial offering was always dual open-source and closed-source, where the licensed part are Elastics “value-add” features like access control. Elastic at some point opened op the closed-source parts under a commercial license and added them to the main repository.

                                                        Amazons complaint and reason for forking their own distribution was that Elastics main repos contains commits that apply to both parts of the codebase. They started to maintain a clean source version. It also ships with some open source addons out of the community. https://opendistro.github.io/for-elasticsearch/

                                                        (That was a very rough summary)

                                                      1. 15

                                                        I’m a big fan of janet and have written a few libs and programs that I find quite useful:

                                                        Anyway, my point is janet is quite fun and usable, I encourage you to give it a try, and feel free to ask questions in the community gitter.

                                                        I feel like janet has a few killer features I want to elaborate further on, but would require more explanation than I can post here.

                                                        1. 5

                                                          Thanks for sharing! I know it’s a sort of “depends” kind of question, but is Janet comparable to Lua in terms of speed and memory footprint?

                                                          1. 3

                                                            A janet vm currently takes about 700kb to run, The design is very similar to lua, so I suspect if the performance doesn’t match lua currently, it would be able to match it. It definitely is not as fast as something like luajit.

                                                            1. 2

                                                              For comparison, the latest version of the reference Lua VM complies to 278kb.

                                                              1. 2

                                                                Small followup:

                                                                https://github.com/MikeBeller/janet-benchmarksgame/tree/master/binarytrees

                                                                Janet does beat lua and python in a few benchmarks here.

                                                          2. 3

                                                            I would love to learn more and read your elaboration, actually.

                                                          1. 8

                                                            Damian Conway won the Larry Wall Award for Practical Utility three times in a row and was barred from further competitions, with the award being renamed to the Damian Conway Award.

                                                            1. 4

                                                              That is awesome. The Perl community is fun because it is such a self-aware community. They can do many cool things all while poking fun at themselves. It’s feels very postmodern.