1. 18

This is the weekly thread to discuss what you have done recently and are working on this week.

Please be descriptive and don’t hesitate to champion your accomplishments or ask for help, advice or other guidance.

  1.  

  2. 8

    I’ve got a notification that the last parts of gear arrived that I need to setup a LoRa TTN Gateway, so that means I can start testing around with it. I plan to use that to have remote temperature sensors relay information to my local hass.io instance and do things with it. LoRa would enable much more lifetime than other solutions like a Node MCU with Wifi.

    I’ve been picking up work on my kernel again, I updated a lot of things to later releases, most of which made a lot of things simpler (the new x86_64 crate in rust can do paging now). One problem has been the lack of a good kernel allocator in rust. There are some slab-based ones but they all have a global lock. So I’ve been tinkering on making an atomic+reentrant allocator to fix that. A feature I’ve been wanting is to enable eternal objects, ie, kernel objects that don’t die, ever. It’s something that Rust doesn’t really like.

    Otherwise, there is some general upkeep I need to consider. My hosting box at hetzner has been running out of IOPS and I’ve been considering to add 2TB SSDs to it and migrate to them.

    1. 8

      I’m looking into studying Esperanto again. I’m gonna use this site to do it. I hope that by doing this, I can help my future studies into French become a lot easier.

      1. 2

        Saluton!

        1. 2

          Why not try to learn French directly?

          1. 2

            I have been, I’m having issues with it. I’ve been using Duolingo, a textbook and talking with a few people close to me in Montreal; but it’s not really coming to me very easily yet.

            1. 1

              As someone who learned English as a child in a literally British (Army) school and then had to try to learn French in high school, I feel you. Good luck! Esperanto seems cool - I’ve only encountered in restaurant menus[1] and it’s fascinating how much I can grok from context.

              [1] http://fandado.se/eng/

          2. 2

            Why not Romanian?

          3. 4

            Learning rust and practicing my domain-driven design skills while using a task management application. Rust is tough, even for 10+ years of programming experience and a dozen of languages and tech stacks.

            If you’re interested in collaboration, please PM me. Project is open-source.

            1. 4

              Finding a way to liquidate €15K worth of no demand electronic components with least loss. Checking first what scavengers have to offer, otherwise putting it online wholesale.

              Dev side of things, some more DSP work with software and bit of a back&forth with contractors around audio amp board design.

              1. 3

                So far I have been working on some changes for Inko’s’ HashMap’s implementation. One problem was that the hashers were reused across different processes, which could lead to incorrect hashes being produced (see this commit for more info).

                The other problem is that depending on the hashes produced, rehashing does not work properly. I implemented this by rehashing the list of buckets in place, but this sometimes produces the wrong results. The solution I will likely go with is to just produce a new list of buckets, replacing the old one. This is not the most efficient solution, but preliminary testing suggests it works well, and it can always be improved later on.

                Apart from all that, I believe I finished porting the lexer to Inko. I am considering removing one keyword, but I need to let this idea stew for a day or two before making a decision. I also have to add a few more tests, and then I can start working on the parser.

                1. 3

                  Lots of things, but the one thing that isn’t the usual stuff: Nativescript Vue. I’ve dabbled a bit with beginner level Android development (with Kotlin), but I’m going to see if this “write mobile apps with Javascript” stuff is as easy as it’s marketed to be.

                  1. 1

                    What do you want to write? We’re building something similar to nativescript, but you can npm install whatever you want. It’s NodeJS on iOS.

                    I’m guessing you’re targeting android though.

                    1. 1

                      We already have a specific need or app in mind. It’ll be a port of a website that needs a dash of native spice, like push notifications. So, it’ll be hitting an existing REST API.

                      And, yes, Android.

                  2. 3

                    I’ve been working on a before/after screenshot tool (site, code). I like to take before/after pics for small UI/css changes at work and attach them to code reviews.

                    Code is very much a result of some late night work where I’m half concentrating on it, but it’s Working (for now), and also intentionally done without a front-end framework.

                    Also finished my first big project at work last week and that was fun :)

                    1. 3

                      I’ve been working on a Ruby gem to calculate compounding interest for fun and would love feedback. The first draft is here:

                      https://github.com/briankung/compounding/pull/1

                      1. 3

                        Non day-job work:

                        I recently launched a new website and blog for myself and need to fix a couple issues and add some stuff:

                        • the generated sitemap is missing some things
                        • add a projects page for info and posts about the things I’m working on
                        • keep writing

                        One of those projects is 30 Hour Jobs. I want to hire a writer to help me with content on the blog.

                        1. 2

                          I’d like to learn the GLL algorithm this week.

                          I’ve read the original paper a few times and picked up some things from it. It looks like the main idea consists of trampolining the expansion of each production such that you can keep track of where you’ve been before. This is how it handles left recursion without getting stuck. What I don’t see is where the graph-structured stack comes in; is this an optimization to make it a feasible parsing strategy?

                          1. 2

                            Last week I opened a pull request for processing the metadata I added to portable globe files. During testing of the PR we realized I wasn’t forgot to handle the case of “composite globes”, which have portable maps and globes embedded in them. This week I’m going to fix that, and then work on one a test automation task.

                            Outside of work, I’m going to finish reading Let Over Lambda. I’m on chapter 7, and I’m learning quite a bit about macros and the more obscure corners of Common Lisp, which is exactly what I was hoping for. One thing I haven’t liked is the author’s immature jabs at other languages and strongly opinionated views on certain topics.

                            I’ve also been going back and cleaning up some code in my Blend2D CL binding, and in some other old projects. And I’d like to get all of my projects mirrored on Sourcehut - I’ve been manually adding repos to sr.ht when I work on them, but I might go ahead and script the process and move all of my repos over at once. I’m not quitting GitHub anytime soon, but it’ll be good to have backups.

                            1. 2

                              Have been writing a series of articles on my blog on the topic of testing in Golang, working on the latest article covering naming conventions (file, function and variable names).

                              P.S. If someone feels like proofreading or reviewing please reach out!

                              1. 2

                                Work: finishing up a couple of things we’ve been working on for a couple of weeks, and a few months. Be good to get both of those landed and onto new things. Also need to start planning in ruby & rails upgrades, as we’re not currently too far adrift, but the longer we leave it the more painful it will be.

                                Home: Finally gotten annoyed with having to turn my desk on and off myself, so wiring a Shelly 1 into an extension strip to solve that problem. (It was using a Sonoff S20 previously, but I had one melt so stopped using them. I think I was pulling more than 10A through them, so melting is somewhat expected. Shelly is rated to 16A so shouldn’t have that issue with 13A kit plugged in.)

                                Now the green bins have been emptied as well, I need to take the massive pile of cut grass that’s on the lawn and fill the green bin again. Also started moving things round in the garden, but need to break out the spanners to move a slide from one climbing frame to another. Should probably burn the mountain of stuff that’s building up and overflowing the burn box too. (Or fix my shredder…)

                                1. 2

                                  Work: Finishing testing for our Argo Workflows deployment. We’re using it to run an evaluate a bunch of untrusted containers so I have to pay a lot of attention to security models that I don’t fully understand. It is the really satisfying part of the project where it’s mostly wrapping up loose ends before actual users get to use it though, so I’m sure I’ll enjoy it.

                                  Personal Software: Finally ran ethernet to my old desktop so I’m going to turn that into some combination of a Nextcloud instance and a Kodi server. Any advice on self hosting storage would be appreciated, never committed this hard to it before and I’m hoping to get my family onto it so I’d like resilience.

                                  Other: Tank shoes. I want to find a way to mount tank treads onto shoes. Like those old heely shoes, except with tank treads and power. Goal is to get version 1 done this week, which would be taking a premade kit and gluing it onto an old pair of sneakers.