1. 13

What are you doing this week? Feel free to share!

Keep in mind it’s OK to do nothing at all, too.

  1. 7

    Mozilla hosts its biannual company All-Hands events in my home town Berlin and I’m really excited.

    It will be tiring and exhausting but it’s the people time we usually get less of during the rest of the year, so I’m taking it head on.

    1. 4

      Trying to figure out the details of freelancing in the Netherlands. While I have no entitlement nor expectations, it is quite a taxing thing to deal with immigration-related issues / questions in addition to an already big change. So wish me luck!

      1. 6

        The Dutch tax agency (Belastingdienst) occasionally hosts informational evenings about how to start your company (mostly geared towards freelancers). See https://ondernemersplein.kvk.nl/evenementen/seminar-goede-start-met-de-belastingdienst/ for dates and info (Dutch).

        1. 2

          Nice to know this! I’ll attend one.

          The main issue for me is not being a Dutch national - as a migrant, there are more things you need to think about. (Also about making sure your visa stays valid, and will be extended.)

      2. 4

        Challenge 7-25 (not necessarily all this week) of adventofcode.com, in Rust.

        1. 4

          Writing an archive viewer for Zulip in Haskell.

          1. 3

            I’m installing Linux from Scratch (LFS) for the first time (in a VM, not as a daily driver). I have a vague idea to build an experimental system atop the Linux kernel, and LFS seems like a decent way to get a small core of functionality.

            Part of my vague idea involves replacing init and other low-level tools, so we’ll see how it goes!

            1. 3

              Finally getting to grips with Puppet. After that, Terraform.

              1. 1

                Best of luck!

              2. 3

                I think I finally understand the ideas behind nix. I’m gonna try and make docker images with it. Hold my beer.

                1. 1

                  I wanna hear how this goes!

                2. 3

                  Continuing to learn FParsec, (an F# port of parsec). There’s a lot going on…

                  1. 3

                    I mentioned my Java compiler here a while ago. It’s proceeding.

                    I ran into a severe problem: For good and sufficient reasons, the compiler needs more CPU and memory than is usual for a compiler… but it ballooned for bad reasons. When one of my small test programs took an hour and tens of gigabytes to compile (without swapping!) I accepted that it was time to take a detour, because most of that slowness wasn’t due to any desirable feature. So I’ve spent time on a detour, a very difficult one, but now I need only a gigabyte or two to compile small programs.

                    Why even 1-2GB though? Mostly I have found a better way to do garbage collection. Far ahead of Azul, Shenandoah and ZGC. I know Oracle calls ZGC “superfast”, but from my point of view that’s not the right adjective.

                    Mine is much more memory-efficient, quite a bit more CPU-efficient, and with some programmer-friendly features, too. General enough to handle Java and Kotlin, probably not general enough for C. It’s likely that people who have a thousand servers running Java/Kotlin today might need hundreds fewer… how many fewer? Difficult. My measurements are too impressive for me to trust. (I can digress into that in a separate posting, if anyone cares. Actually I’d be happy to.)

                    I need help. It’s been a slog and I’m tired, my motivation slips on too many days: I need to hear that this is cool and interesting. Emails with positive adjective help, and positive adverbs or even interjections too. Please tell people. Basically, it would be really good if there were interested mail in my inbox more mornings. Many mornings. arnt@gulbrandsen.priv.no.

                    FAQ: 1. Android? Definitely possible, but that has a slow edit-compile-debug cycle and poor debugging facilities for this kind of tool, so I’m deferring that. 2. How’s this done? I haven’t told people much about that. First, because I’ve tried, and that was frustrating for me and educational for noone. Second, because my lawyer advised me not to. Third and perhaps most important, because if Oracle were to take interest… let’s say that I’ll be happy to discuss with anyone, but some people at Oracle are known for prolonging conversations beyond any reasonable timeframe, and I’d rather not give them any leverage. 3. Status? It works, with limitations. No multithreading yet, for example, and it doesn’t call finalize(). 4. Source on github? At some point I rather expect so. I decided to make it run before choosing a name, a license and such paraphernalia.

                    1. 1

                      You know, memory usage is the primary thing preventing me from using my language of choice (clojure) on all the low cost platforms I want. I wrote a webapp in golang because I decided the nonprofit running it would be best served with a very tiny memory footprint.

                      Your work sounds cool! Keep it up! Let me know if you need testing on random workloads or something!

                      1. 1

                        I wish I could handle random workloads ;) I still can’t handle the JVM machinery that provides lambdas, my exception support is limited and my threading more so. Most JVM apps use some third-party library that depends on something I don’t handle.

                        Today I’m working on getting joda-time up and running. The sticking point is some lambda usage in code that isn’t actually called, and my compiler’s liveness analysis isn’t good enough to avoid the problem.

                        I’ve only used Clojure for a week, solving an issue that involved some Clojure code. Clojure is all-JVM, right? It doesn’t depend on a library with hundreds of native methods? At some point I ought to have clojure running, then, and I think programs written in clojure ought then to be faster and leaner than a C implementation of the same thing. Not sure whether Go could match it, the Go compiler not (AIUI it’s designed for speed and using gigabyte for analysis would be against their spirit).

                        1. 1

                          Yes, Clojure’s selling point is full interop with Java code. It doesn’t even have its own square root function, just let’s tells you to use Java’s Math library.

                          Joda time is a cool library I use a lot. Sounds cool that you are getting it to work!

                          1. 1

                            Well, I’m not. Yet.

                            The version in java8 (java.time.*) uses lambdas, really and is called by many apps at startup. Joda-time itself is different.

                            I’ve been procrastinating all day, trying to make my mind up whether to tackle lambdas or improve my liveness detector. Lambdas are desperately difficult, but I feel that I cannot delay them very much longer, even if my current test doesn’t really need them. InetAddress, DatetimeFormatter, ObjectInputStream and others use lambdas at startup.

                            EDIT: Now’s the time to lambda. I feel sorry about that. I wanted to do revolutionary GC and as little as possible else, but making apps actually run requires so much else. (I didn’t aim for the speed either; it seems to happen as a side effect. My memory-related blah leads to less pressure on the caches and memory bus, and one of those is often the main performance bottleneck.)

                    2. 2

                      Making a PCB clone of Arduino in Altium as a learning exercise, to eventually do PCB design at my work.

                      1. 2

                        C99 game engine 2D work, pushing towards animated sprites: looping frames and changing sequences. Now 2061 LOC, still haven’t gotten to the scripting language embedding, but worked through input polling (added mouse) and an animation control prototype over the weekend. I still also need to figure out the interface for feeding sprites to the graphics system.

                        1. 2

                          I’m in London for the week, after 6+ weeks in the southern hemisphere – mostly Cape Town, but also two short stays in Rwanda. Items:

                          • work for a long-time client (mostly cmake wrangling, some C++)
                          • work on a control plane side project. (It consists of a CLI client, an API server, and an event-sourced agent. And I’m finally at a point where the agent is doing things. Happy day.)
                          • moving logistics / interview prep for a return to Northern California
                          1. 2

                            Designing a dining table light and a loft bed for the offspring. Neither project has a snowball’s chance in hell of being cleared from headquarters, but a man can dream …

                            1. 2

                              Planning on porting my IRC bot to rust. The async ecosystem is getting stable enough for me to use on a pet project. I’ve got the IRC parsing library written, just have to port the core and some of the plugins now.

                              Also, finishing up my docker talk for PyCascades in a few weeks.

                              1. 2

                                Starting to learn how HTTP/2 works by reading the RFC and starting to port hyperframe to Nim: Hydra. Not sure it’s gonna end up in a real thing ^^

                                1. 2

                                  (last week: https://lobste.rs/s/8uitwq/what_are_you_working_on_this_week#c_kez6sx)

                                  $WORK: Over the weekend, I got some work done on the paper like I wanted, both coding and writing. With the initial draft out of the way, we should be able to start iterating on it and getting some work done. I also finished handing off that other project, so that’s off my plate.

                                  One of my other papers got conditionally accepted with some minor revisions, so that’s my main focus this week: fixing the things our reviewers asked for and polishing for publication, plus starting on the presentation part of it so that I’m prepared for March. I will also need to get the code running again and make sure nothing has bitrotted.

                                  $FUN: I didn’t get around to adding IndieWeb stuff to my website, but maybe I’ll find a few minutes here or there this week to at least get IndieAuth working. I solved my problem of “hard to access my self-hosted apps if they’re running from my network” the easy way: just run it on another network.

                                  For my website/blog posts, I’m currently trying to decide between using lots of HTML things like microformats or just using plain text files. On the one hand: if I marked everything up, I could make good use of things like the recipe microformat and keep my recipes machine readable, and also have nice semantic links to other blogs or posts. However, then I have to give up the super easy “just throw text files on the internet” approach that I’ve been liking. The approach I’m leaning towards is to have things like recipes on their own standalone HTML pages and just link to them from my posts.

                                  1. 2

                                    Its FOSDEM week \o/ Will eat pomme frite, write awkward late night code, possibly die of sleep deprivation.

                                    1. 2

                                      Teaching introduction to Docker and Kubernetes (minikube actually) to a mixed expertise audience.

                                      1. 2

                                        Floundering around with data analysis!

                                        I downloaded three years of my own fitbit data and I’m trying to calculate correlation between exercise and resting heart rate. I have no idea where or how to start!

                                        1. 2

                                          Working on a Github clone, for personal use.

                                          1. 2

                                            I have ordered a few components to build out a little hardware gag project that I’ve wanted for a while. So, I’ll spend some time this week prototyping on a breadboard, and then hopefully get everything together and installed into the object I’m trying to build. I’m not very well practiced at any of this stuff, so it’s likely to end up not at all working…. :)

                                            1. 2

                                              Working on my Neovim GUI written in Rust that I just released! https://github.com/Kethku/neovide

                                              1. 1
                                                • In the office doing the meatspace talking thing for various reasons for a few days
                                                • D&D with the crew at home (running home for this)
                                                • Snooker Club AGM (Annual General Meeting), mostly want to find out what’s happening with the parish council ponying up funds to get the boiler/building fixed/refurbished. (Yay, local council politics…)
                                                • Continuing work on the Sailing Club Race Management System, getting to the point where data entry is sorted and need to start calculating things based off the data.
                                                • Listening to podcasts in the car as I drive to/from work, been enjoying On The Metal lately. Although they basically all make me want to pick up my microcontrollers and do something low[er] level.