1. 16

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

    At work, it’s review time, so I have to do that. I’m in a good position where my team is extremely good, and we’re getting loads of cool shit done, so it’s not that I have to have The Talk with any of my people; but it’s still this sort of ugly kabuki nonsense. I’m looking forward to being done with it for another six months as soon as humanly possible.

    At home, I had the baby to myself all weekend as the wife and the big girl went camping. It was amazing, but I’m very glad that everybody is home now. We’re in a really good spot with the girls; they’re 18m and 3y and are tight as thieves.

    I’ve started assembling a “new” PC out of parts I’ve had lying around, and I got it all hooked up and … bupkis. The motherboard is getting power (there are LEDs on the ethernet jack that light up) but the fans don’t start and the power switch does nothing. So I have a couple of evenings “fun” swapping parts around to try and narrow down what’s busted. At the very least, it’s not the CPU, so that’s a $1200 relief.

    I’m also playing around with NixOS on the one working computer; I stand by my declaration that this is the only sensible way to configure and maintain a computer, but I am increasingly disenchanted with the nix/nixos specific experience. I hate the language, and the tooling is pretty weak, and the documentation is not good at all. I think I should start blogging about it, so that someone coming after me will have additional documentation, but that smacks of work and I am so very tired.

    1. 4

      I’m also playing around with NixOS on the one working computer; I stand by my declaration that this is the only sensible way to configure and maintain a computer, but I am increasingly disenchanted with the nix/nixos specific experience. I hate the language, and the tooling is pretty weak, and the documentation is not good at all. I think I should start blogging about it, so that someone coming after me will have additional documentation, but that smacks of work and I am so very tired.

      I’ve been meaning to try GuixSD/NixOS for a while as it seems a lot more sane than the current way of doing things. Have you tried GuixSD? What are the problems you’ve found with the nix language/NixOS? To me it seems that guile lisp is better than the nix language, but I don’t know how the ecosystem compares between both systems.

      1. 3

        nix-the-language is just a shittier, untyped version of Haskell, with terrible, terrible documentation. The tooling is bad, but improving. I haven’t tried Guix, which I would expect to like better because scheme, but be less useful to me because of maturity and the strict approach to software freedom.

        1. 2

          nix-the-language is just a shittier, untyped version of Haskell, with terrible, terrible documentation. The tooling is bad, but improving.

          As a newbie trying really hard to figure things out in NixOS, this si so damn true.

          1. 2

            why didn’t they just create a minimal version haskell? (instead of inventing a whole now, subpar, language)

            1. 1

              I don’t know. The people behind nix and NixOS are very smart, however, so I would expect them to have a good reason (Chesterton’s Fence, and all).

          2. 2

            This comment reminded me to submit this story, which pretty much summarized my Nix experience; while the idea of declarative OS config did seem cool at first, it quickly gave way to frustration with the obscure and under documented tooling…

            1. 1

              This comment reminded me to submit this story, which pretty much summarized my Nix experience; while the idea of declarative OS config did seem cool at first, it quickly gave way to frustration with the obscure and under documented tooling…

        2. 8

          Still looking for a job. If anyone has any need of a Ruby or Python developer from now until October, especially in the Berlin area (remote also works), please let me know. Brief summaryfull CV/resume

          Besides that I’m making the final arrangements for a group I’ve organized to walk in Berlin’s LGBT Pride parade on Saturday.

          1. 1

            job

            If you’re ok with doing fairly non-exciting work with an ERP system in Python then write me at svenstaro@gmail.com.

          2. 8

            Reverse engineering and suppressing my cat litter box’s DRM to allow me to refill the soap cartridge.

            1. 7

              This is simultaneously a cool hack and the most depressing sentence I’ve read in weeks.

              1. 4

                Agreed, when I first bought it I thought that it was just tracking uses to be helpfully but it basically becomes a brick after a set number of washes with each official cartridge.

            2. 5

              On the personal side I’m getting deep into category theory and the theoretical side of lenses in haskell (I got a haskell tattoo last week so now I feel the pressure to expand my knowledge, as stupid as that sounds :D).

              At work I’m refactoring the frontend rendering engine to be able to plug a wasm version in the near future.

              1. 5

                I enjoyed this article (https://peter.bourgon.org/go-for-industrial-programming/) so I would like to revisit some Go code I’ve written at work and make it better. I’m lazy with testing, tracing, metrics, all of the above.

                1. 5

                  Today I’m working with the rest of the team on getting a new version of Wallaroo (wallaroolabs.com) out, and working on a blog post that describes one of the new features.

                  Out side of work I’ll probably be fiddling with my Pony workshop (https://github.com/aturley/pony-workshop) and maybe putting together a short Pony reference capability talk.

                  1. 4

                    I should probably spend my free time this week on catching up on the prolog course.

                    However, this weekend, I hacked together a tool to use code coverage/property based testing tools to show you input-output pairs that take different paths through code (https://github.com/hyperpape/QuickTheories). I’d like to implement shrinking, and I’m also poking around at symbolic execution, as it seems like that’s the right way to implement a robust version of the tool. I’d also like to create an IDE plugin that lets me trigger this for methods in my code, and see if it’s as helpful as I imagine it being.

                    Right now at work: I don’t know what I’ll be working on before the day starts…

                    1. 4

                      Away from work, I’ve started on a (very WIP) set of documentation for PISC, which has involved:

                      • Parsing documentation comments,
                      • Editing documentation comments,
                      • Adding break and continue to the loops in the language
                      • Writing some basic support for writing out a iolist (a nested vector of strings and vectors, inspired by Erlang’s iolist) type, to avoid N^2 string concatenation to PISC’s IO libraries
                      • Fixing/expanding the PISC test suite.

                      Having these documents built from my Go/PISC source code has demonstrated how poorly a good chunk of the PISC code is documented. Having basic access to the same documents at the command line (names and function signatures) has proved surprisingly useful, reducing the amount of “And I have two code windows open” going on by a lot. I’m considering trying to write a sort of command-line documentation generator for C# that works in a similar fashion, just to have easy access to function/method signatures. Intellisense provides this to some extent, but having this might make it easier to not depend on Intellisense.

                      At work, getting ready to be on maintenance for a couple weeks, which should be nice.

                      1. 4

                        Aside from some client work, I’m working on building a Bitcoin full node entirely in Elixir. It’s entirely for learning purposes (my own), and I’m documenting my progress along the way. Fun stuff.

                        1. 3

                          Apart from regular work and my master thesis, I have an offer from a really interesting company in Amsterdam, and I am trying to figure out if I could actually afford to move there. That may sound dumb, but the rents in that city are absolutely crazy (and there are basically no apartments under 1.5K€/month). Dutch crustaceans, any recommendations or tips?

                          1. 2

                            How far into your thesis are you? I’ve been considering going back to school for a bit now, but have been hesitant. Any regrets so far?

                            1. 1

                              Not as far as I would like to, hahaha. I have most of the experimentation done and verified, now I just need to actually write everything down, so this is the tedious part. Honestly, I think learned far more things in the company I started working a half a year ago than in the master degree, but I guess that depends on a lot of personal things.

                          2. 3

                            Working on version 2 of the ambassador lottery for Merit. Making changes based on community feedback. Got sidetracked over the weekend and last week fixing bugs and keeping things running. But the community keeps growing at a faster and faster rate so it’s pretty fun to see people use your work.

                            1. 3

                              Work:

                              • A few hand-off things on a mini-contract “productionizing” and updating the deployment of a little web app
                              • Catching up on various administrative things about freelancing that I hate and procrastinate on.
                              • Contemplating going back to FTE, rather than the freelancing thing, as the aforementioned client has expressed interest, and it’s been a pretty great group to work with.

                              Not work:

                              • Generally enjoying a coincidence of my last big contract ending and nice summer weather – my little mini-sabbatical/vacation.
                              • Experimenting with building a UI over a github repo and/or gist that exposes a series of commits in a format specifically aimed at didactic purposes… a tool to demo the how and why of something small, but non-trivial or needing step-by-step explanation, in code.
                              • Sorting and prioritizing various other little someday/maybe projects that I’d like to do some work on.
                              • Getting my personal home network, desktop, laptop, and development environments up to date.
                              • Continuing to work through the exercises from Elements of Computing Systems
                              1. 3

                                A talk for EuroPython 2018 (which has already started D: ) about using Rust and Python together.

                                1. 2

                                  Continuing the never-ending process of documenting my PBX. It was fruitful in that published a small intro piece last week.

                                  Also started a BGP darknet with some mesh people which I hope to keep building out this week now that people are back from HOPE.

                                  1. 2

                                    back on a cryptography thing at work, integrating vault’s transit backend into our app. also considering modernising a back office tool by deleting it and using our CRM for its purposes, if that is possible.

                                    non-work: final choir practice before Warwick Folk Festival. playing some violin duets with a colleague. more writing of OOP the Easy Way.

                                    1. 2

                                      I spent around the last 5 months working on the back end for my saas I have been working on. Appdoctor.io . I finally feel it is done(tests and all) and am now starting on the front end. The back end is built in elixir / hosted across multiple regions on digital ocean.

                                      The application does a couple things.

                                      1. It can proxy requests. Ex. Google-com-ACCOUNTID.appdoctor.io will make a request like your calling google.com directly. This request is searchable and you can assign rules to trigger on…so something like if a request to Google takes longer then 1 second email team 1.

                                      2. Used for public status pages. Can be configured to send health checks and set up public status pages at status.appdoctor.io/uniquename much like statuspage.io including response times / failed requests ect

                                      3.Can be used to set up complex automated tests against production apis from multiple regions. Ex. Should request Google from Europe region and pass if response is faster then 300ms Sleep x amount of time Some other request/assertion from another region. I even splurged a little and took some time so users can right lua assertions if the basic assertion syntax is not enough.

                                      I am really excited to finally be “done” with the backend and able to get one step closer to launch. I used all the in’s and outs of elixir extensively so feel free to as any questions.

                                      Random tidbits

                                      using distributed elixir so when a server crashes another server will pick up it’s work(a running test for example)

                                      Test run in a spawned execution genserver and stop themself once the test is done. I love that elixir can act as my job runner.