1. 8

Feel free to tell what you plan on doing this weekend and even ask for help or feedback.

Please keep in mind it’s more than OK to do nothing at all too!

  1.  

  2. 8

    Advent of Code day 1.

    1. 1

      Me too! My test this year is to write it in Pharo Smalltalk

      1. 1

        Me too! Day one is done, now i need to learn how to check Smalltalk code into git. The alien environment takes getting used to, but you get glimpses of why people love it.

        1. 1

          I’m still stuck on problem two. I have one method day1p2 and make heavy use of lambda blocks. I hope it’s idiomatic enough.

          Are temporary vars in the traditional railroad tracks of python idiomatic? I don’t think so…

          Edit! Found a solution! I hope it’s idiomatic…

    2. 5

      Playing with my new Librem 5. I received it late on Wednesday and had Thankgiving with family most of yesterday, so I’ve pretty much only played with it as it comes and there’s not much to do but browse the web.

      Mostly, I’m probably going to start figuring out how to develop and package apps for it. So, if anyone has suggestions/reading material for how to develop with (rust) futures & gtk or the first thing about building deb packages, please send them my way.

      1. 1

        Cool! I am still hoping for a future where I can run NixOS on a phone atomic upgrades and rollbacks would be awesome!

        How fit is GTK+ for mobile interfaces? It always seemed to me that Qt is more fit for mobile interfaces with Quick/QML. But maybe I am mistaken!

        1. 2

          Yeah! One of my long term goals is to get Guix System running on mine. I’m probably going to be lazy and wait for all the drivers to finish getting upstreamed in the mainline kenel though.

          The purism devs made libhandy which let’s you design responsive UIs in gtk applications. This post has some videos showing it in action: https://wp.puri.sm/posts/librem-5-june-software-update/

      2. 3

        I moved back to Melbourne, after being away for six or so years. A lot has changed; especially my old friends.

        Getting over jet lag and getting outside.

        1. 1

          Good luck on the new life.

          1.  

            Thank you. I’m settling in!

        2. 3

          Nothing, probably.

          1. 3

            I’ve been working on a Lua implementation in Rust

            I finally got the bytecode compilation to … mostly work and to be able to execute a bit of it. Now I’m going to take a break and clean up the code to actually report errors in the right line and keep source maps around.

            1. 3

              I had (have? it’s more under control lately) a bad habit of deleting code, deleting blog posts, etc., when I feel insecure about their quality. I actually just found a pretty reasonable backup of many decent things (scripts, blog posts, repositories) I’ve deleted over the years, so I’m going through them, reading them, and restoring them if I can.

              Note: I’m starting to like gist.github.com for the small, single-file things.

              1. 2
                1. Update my blog to a merge request workflow.
                2. Modify blog post layout and few other.
                3. Continue research on my first OSS project.
                1. 2

                  Start working on changing top level syntax in Next Generation Shell ( https://ngs-lang.org/ ). I do sorry that instead of thinking deeper, when I started NGS it was “of course top level syntax should be subset of bash so that if you have just couple of programs to run it should be easy”.

                  In practice, not only our scripts in NGS but others’ bash scripts contain a lot of other things besides running external commands.

                  … and if you only run couple of external programs you don’t need NGS.

                  I guess I will think about this a bit more before starting.

                  1. 2

                    Would like to go skiing, but not sure I want to contend with the holiday traffic. It might not be too bad Saturday, but the high temperature is predicted to be 9° F. Sunday’s warmer, but traffic will be heavier. On the other hand, we got 2 feet of snow in Boulder on Tuesday, and there might still be enough to cross country ski around the park here, with no traffic at all. Tough decisions :-)

                    Other than that I’m going to tidy up my apartment, read more of “Anton’s OpenGL Tutorial” and work on my REPL-centric OpenGL library.

                    1. 2

                      Probably working on the module system of the language I’m playing with.

                      The huge problem is to how to gracefully deal with the removal of “static” members that are part of some typeclass.

                      Before modules, you’d have something like …

                      trait Num[T]
                        fun +(that: T): T
                        // same for -, *, /
                        @static fun zero: T
                      

                      … and either do …

                      class Int supports Num[Int]
                        fun +(that: Int): Int = /* intrinsic */
                        // same for -, *, /
                        @static let zero: Int = 0
                      

                      … or supply an impl externally.

                      With modules, the static members in classes are replaced with members in modules:

                      class Int supports Num[Int]
                        fun +(that: Int): Int = /* intrinsic */
                        // same for -, *, /
                      
                      module Int /* supports <something>? */
                        let zero: Int = 0
                      

                      The problem is that with modules it’s not clear where Num’s zero should go, and how to “tie the knot” again. All approaches so far seem to be unappealing:

                      • I don’t want to introduce special “module traits”.
                      • I also don’t want to introduce special “combination traits” that tie together a trait and its “module trait”.
                      • etc.

                      A basic, very verbose approach would be to

                      • split zero into its own typeclass
                      • have a builtin moduleOf operator that returns back a class’ module (or fails to compile if the class has no module)
                      • tie the constraints together at the use-site, as in:
                      trait Num[T]
                        fun +(that: T): T
                        // same for -, *, /
                      
                      trait Zero[T]
                        fun zero: T
                      
                      fun multWithZero[T : Num & moduleOf[T] : Zero](x: T): T = x * T.zero
                      
                      1. 2

                        Chipping away at the article draft bin that is overflowing, got some interesting things to put out there before EOY, maybe as early as next week. Submitted something for a conference, the aftermath anxiety tend to bring out some good ol’ insomnia so there’s that. PoCing a vulnerability or two. Finishing an open source proposal @ work. Processing the death of a friend and fellow explorer.

                        1. 2

                          Finish a blog post I am writing. Advent of Code day 1.

                          1. 2
                            • Visiting my parents.
                            • Hopefully indoor climbing tomorrow (our daughter has a mild cold, so we have to see how that pans out).
                            • Get some more presents for Sinterklaas, which is celebrated on Dec 5.
                            • Decide whether to participate in Advent of Code and if so, which language (having difficulty to think of a language that I don’t know yet, but might be useful to know in the future).
                            • Pick up the DVB-T receiver that I ordered for tracking planes. No practical use, but it’s fun :).
                            1. 1
                              • Flu Jab (🥴)
                              • Go visit the Sailing Club where our new clubhouse is partially built. Mostly to shoot some aerial pictures with the drone, partly to have a nosy myself in person.
                              • Update website with promotional stuff around Sailing Club fundraiser
                              • Service my car, so of course it’s about 1°C outside this weekend. Needs doing though, and I have all the pieces.
                              • Sunday Lunch with family and extended friends, who I’ve not properly seen for a few weeks so should be nice to catch up