1. 11

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. 26

      Tomorrow, I’m getting married, which is a pretty big step.

      1. 1

        Wow. Have fun and congrats.

      2. 1

        All the best, congratulations!

    2. 10

      Probably getting ready for Hurricane Dorian

      1. 8

        Yikes, be safe.

    3. 6

      I am working on a mini image gallery (like flickr, 500px, google photos I guess)

      Started off as a way to publish my photos in groups and view exif data in a very simple way, but I got carried away…

      1. 1

        Do you have more to share on that topic? Maybe a link to a blog or the source code? The problem always sounds so simple but actually creating something like this then blows up in complexity unfortunately.

        1. 5

          If it sees the light of production, then for sure I will open source and blog-cument the process.

          Turns out PHP is a good language for this kind of mockup, it has stuff like exif_read_data() built in!

          1. 1

            Thanks, I’m looking forward to it!

    4. 6

      I haven’t been able to work on tilerswift tiler this week (NES tile editor written in Qt). Maybe I can get back to it this weekend.

      But probably not tomorrow! Tomorrow I’m going to a taco festival!



    5. 5

      Bought some redheart last week, gonna turn some seamrippers. Also probably going to put some time in on the hammock out back. It’s gonna be a really nice weekend, and I’m going to try to do as little as possible.

    6. 4

      Get better a D! I’ve been using it (and loving it!) in a project at work and I want to get better at it.

      1. 3

        Yay, D! I am enjoying it a lot too. If you wan to chat about it in irc, #d in Freenode has been pretty helpful to me.

      2. 2

        I love D. Unfortunately, it’s still a rebel without cause.

        1. 4

          I disagree. It’s the C++ I always wanted. Expressive, fast, unopinionated, flexible, easy to use. That’s its cause. Everyone is always like “but the GC…” and I’ve never cared about that. Maybe I’m not low-level enough or something, but the GC suits me just fine because I’ve never noticed it’s there.

          1. 3

            I spent the day rewriting a lot of my personal scripts in D, and all I have to say is, “wow.” What a great language. Everything I struggled to do in C – strings, arrays, memory – doesn’t exist in D. It’s pretty expressive for a type-sensitive language. It reminds me a lot of Go.

    7. 4

      Learning the deep end of LaTeX stuff like writing your own classes and packages. Not going to lie, it’s a lot more straight-forward than I thought. It’s just a couple of identifiable macros (\NeedsTeXFormat and \ProvidesClass) and declare your new settings.

      1. 2

        I still find the \makeatletter command mildly amusing.

        1. 2

          Ha. Not that deep yet. DIY document classes, though, are relatively “deep” when any question or information you want to find on-line are 99% of the time “oh just use the so-so package!” and piling features thick on a article-classed per-document basis. Heck, I didn’t know what \makeatletter really did until you brought it up.

      2. 1

        Congratulations on taking the dive into LaTeX! I can highly recommend reading some of the TeXbook by Don E. Knuth and getting an understanding of Plain TeX and exactly where the boundary is between TeX and LaTeX.

    8. 4

      This Saturday I will be having a BBQ to celebrate my birthday. There are still a bunch of things I need to buy, and an ants nest to exterminate in my lawn (right where I want to BBQ).

      Coding wise, I am still working on porting the parser for Inko from Ruby to Inko. This is taking quite some time now as I am making various syntax changes as we go along, mostly in the form of removing syntax or making it more strict. A challenge that I am currently facing is support for arguments without parentheses, allowing you to write something like this:

      person.update 'Alice', 24

      Support for this syntax was mostly inherited from Ruby, and it allows you to write something like this:

      some_value.if true: { ... }, false: { ... }
      some_value.if_true { ... }

      Unfortunately, at the parser level this requires a whitelist of tokens that are valid for arguments, otherwise we might parse foo! as foo(!) instead of foo()! (in this case ! is used to cast from ?T to T). Another example would be foo[10], which without the whitelist would be parsed as foo([10]) and not foo()[10]. Since I don’t like whitelists, I have been thinking about limiting the possible values to: a single closure, or a list of keyword arguments with values. This still requires that we limit the amount of expected/allowed values at the parser level, but this list is much smaller than allowing arbitrary expressions.

      I also thought about just removing arguments without parentheses, but this leads to code I am not a fan of, such as:

      some_value.if(true: { ... }, false: { ... })

      Or when breaking it over multiple lines:

        true: {
        false: {

      Instead of what you can currently do:

      some_vale.if true: {
      }, false: {

      Hopefully this weekend I can reach a decision on which path to take

      Finally, I need to start writing this month’s progress update for Inko, which I expect will take a day or two.

      1. 3

        Happy birthday to you!

        1. 1


    9. 4

      I’ve been rewriting my Mastodon client TUI from scratch using urwid. I’m pretty happy where it is now.

      Here’s a short demo: https://asciinema.org/a/264863

      1. 1

        How have you found working with urwid? I’ve been working on a project that uses the TreeListBox, and while I find myself having to read and then re-read a fair bit of source code ultimately I’m able to display the information in the manner I’m after. I haven’t settled just yet on the library, though the #urwid channel on Freenode has been a help–folk wander in with the same kinds of questions I’ve also had, and one person even wrote me a mock-up solving my instance of a problem we both broadly had.

        1. 2

          I found urwid pretty tough to get a hang of initially, but after a while of banging my head against that wall I feel OK working with it, and the results are very nice.

          The most frequent problem I had was using a wrong type of widget (box/flow/fixed). The problem is a lack of error reporting. The common exceptions are explained in the FAQ, but they really should just throw an exception saying what the issue is. I guess this is a good point of entry for contributing to urwid.

          BTW, the IRC channel is on oftc, not freenode. You had me confused for a bit. :)

          1. 1

            BTW, the IRC channel is on oftc, not freenode.

            Correct, my mistake. Good catch.

    10. 4

      I’m taking my girlfriend to play minigolf.

      She has never heard of minigolf.

      1. 1

        lol, I recently had a lot of fun doing the same, enjoy.

    11. 3

      I hope to find some time to work on a small performance optimization in CHICKEN Scheme, to avoid consing optional arguments (which are currently treated as a standard rest argument list). I hope this will improve performance of at least SRFI-13 (which is horribly slow).

    12. 3

      I’m looking into Flutter’s internals. Specifically more into how the widget tree gets initially rendered, then how only changed parts get updated, i.e. the widget/element/render trees, plus keys (local/global etc), and the relationship between Builder, StatefulBuilder, StatefulWidget and StatelessWidget.

      Anyone want to compare notes?

      1. 2

        I don’t have any notes to compare, but I’m just getting started with Flutter myself and I would love to read what you find if you have a blog or something.

        1. 2

          No blog on this type of stuff sorry. What do people use to collaborate together on a topic? Dare I say I miss something like Google Wave, i.e. a combination of collaborative wiki, question/answer forum?

          1. 2

            I miss Google Wave too…

      2. 2

        I don’t have any notes, but I remember the Xi editor guy recommending this talk about Flutter’s internals in his talk about Rust GUI: https://www.youtube.com/watch?v=UUfXWzp0-DU

    13. 3

      Getting ready for the holidays! I’m leaving for Hungary on the 2nd with some friends. I’ve been working almost all of August so I’ve really been looking forward to pulling the plug for a while.

    14. 3

      Travelling to Toronto for a week onboarding at new remote job. Simultaneously excited about the week to come and dreading the long flight—and week away from family!

      1. 1

        Picked a good week for it, weather-wise.

    15. 3

      I’m getting a copy of Practical TLA+ so I’ll be reading that this weekend.

    16. 3

      Finishing my third Western novel (Elmore Leonard’s Forty Lashes One Less). Otherwise, chilling with the in-laws on the Oregon coast.

    17. 3

      I’m setting up a vive in the living room! Gonna play beat saber and stuff.

      EDIT: apparently we have enough space for both the vive and the PSVR to be set up side by side! Awesome!

      1. 2

        Ooo, you’re in for a treat. First vive experience is magical. Google Earth VR is fun too.

        Beat Saber has a huge modding community. Someone even turned the entire Shrek movie into a beatsaber map. https://www.youtube.com/watch?v=dF6ufGDSmNs

        1. 2

          Yeah, I’ve been doing some beat saber with my PSVR for a while. My fiancé and I have been plugging through various modded beat saber maps, but the recent beat saber update broke all the mods lol.

          I really like Tetris Effect on the PSVR, here’s one of my gameplay videos: https://www.youtube.com/watch?v=jUimYG1lozo

    18. 3

      I have to finish and polish a C library that aims to make fork servers easier to use by abstracting out most of the gory UNIX programming. A fork server are a nice hack allowing to use the fork(2) system call without too much pain in multithreaded programs (especially if execve is not used immediately after fork).

    19. 3

      Writing something in Nim.

      1. 1

        Do you know how the Nim ecosystem is these days with following the XDG Base Dir spec? I’ve been looking at the github issues about it but it’s kind of hard to tell how compliant Nim is or if I have to use workarounds.

        1. 2

          Nim follows XDG_CONFIG_HOME and XDG_CACHE_HOME. If you see something broken please ping me or open an issue :)

        2. 1

          XDG Base Dir spec

          Who made this spec and why is it authoritative in your eyes?

          1. 1

            Freedesktop.org made it.

            Not sure if it matter what I think of it, it just happens to be confusing from an outsider’s perspective of how Nim handles user directories and stuff like just from Github, and I was hoping federico had the inside scoop.

            1. 1

              I’m just asking because I genuinely don’t know what is the ‘right’ way to deal with dot files or why.

              1. 1

                For Windows, %AppData% and similar directories should be used. Dotfiles/dotfolders aren’t even hidden on Windows and can cause issues, so they shouldn’t be used at all really. MacOS, I think it’s just ~/Library? Take the last two with a grain of salt because I don’t use them.

                For Linux, XDG Base Dirs is the ‘right’ way. I think the Arch Wiki page has the best summary of it. Most modern languages will have a package for it, older languages usually entail manual implementation. Dvisvgm is an example of a C++ program that recently followed it.

                I hope that helps, not sure if that’s what you were looking for.

                Edit: actually now that I think about it, I’ve heard many MacOS users prefer XDG Base Dirs, so if lazy one can just use XDG Base Dir spec for all Unixy OSes I think.

                1. 1

                  I agree. While I have a ton of dotfiles in my home directory, putting things in ~/.config is the standard for most newer software on my machine. On the other hand, considering how popular just adding a dotfolder to the home directory is, I doubt most users would care too much if your software did that instead.

                  1. 2

                    I’m not sure about the proportion of users, but there are definitely many that do not appreciate it.

                    Rob Pike for example:

                    Second, and much worse, the idea of a “hidden” or “dot” file was created. As a consequence, more lazy programmers started dropping files into everyone’s home directory. I don’t have all that much stuff installed on the machine I’m using to type this, but my home directory has about a hundred dot files and I don’t even know what most of them are or whether they’re still needed. Every file name evaluation that goes through my home directory is slowed down by this accumulated sludge.


                    Some Reddit threads about the frustration:



                    Similar frustrations on Windows:




                    Debian seems to refer to it as a bug to be reported:

                    Debian does not require packages to conform to the XDGBDS and there is not (yet) a coordinated effort to encourage upstreams to do so. But to avoid duplication of effort we can collect upstream bug reports here regarding XDGBDS conformance.


                    GNOME has a long list of reasons why you shouldn’t:


                    Even ancient programs such as Emacs are seeing movement towards adopting the spec:


                    There’s probably more but it’s my general experience that people do care.

                    The spec is followed by Qt, GTK, GNOME, KDE, LXDE/LXQT, Xfce, etc. (add Redhat and others and that’s most of what Freedesktop.org is, maybe minus the GUI toolkits). There is clearly an agreement of the biggest players in the Linux desktop world. The original Arch wiki page I linked has a long list of software and their compliance status.

                    Personally, for anyone reading this, I beg you to listen to the spec. Please.

    20. 3

      Got back from a work conference this afternoon and spent the evening having dinner with a friend.

      I took along “Implementations of Prolog” to read on the plane and at the hotel, and now I’m so far in I think I’ll keep reading before I jump back to “Parallel Logic Programming”.

      I haven’t been able to ride all week, so I’m definitely riding somewhere, maybe even an overnight trip somewhere.

      1. 1

        Is https://mitpress.mit.edu/books/parallel-logic-programming the one you’re talking about? Is there a ebook that can be purchased?

        1. 1

          That’s the one. I don’t know of an ebook - mine’s a used copy.

          I’ve only read 3 chapters so far, but I’ve skimmed ahead a little bit, and it’s great so far. The code examples are explained well, and each one is given in Prolog and Flat Guarded Horn Clauses to show both “OR parallelism” and “AND parallelism”.

    21. 2
      • Working on trading in my old laptop for a new one.
      • Finishing up moving Mockturtule’s source/config into the lobsters-ansible repo.
    22. 2

      Figuring out how to move my desktop’s file system from LVM on one disk to something that can take advantage of all of the available disks.

    23. 2

      Anniversary dinner tonight! Getting dining room chairs from Structube tomorrow. Recording a new episode of Mr. Rewatch (a good podcast I produce) in light of the new season of Mr. Robot - tomorrow night. Setting up a bird net on my balcony on Sunday (finally a poop-free balcony experience!). And Monday, labour day, I will probably chill and do nothing.

    24. 2

      Experimenting with handheld CNC router, maybe learning Rust, and finishing up a PCB or two.

    25. 2

      Probably going to continue working on my Ben Eater inspired software implementation of the SAP-1 https://git.sr.ht/~vhodges/cputhing and/or starting on the hardware implementation