1. 13

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

Be descriptive, and don’t hesitate to ask for help!


  2. 7

    I’m starting a multi-part series on how to build your own christmas lights, using RGB LED strings, an ATTiny85 microcontroller and combinations of sensors, bluetooth and other doodads to control your christmas lights from the Internet. As it goes up, it’ll be here. I have the prototype set up already, it’s really nice but I need to get the tree out!

    1. 2

      Cool! I’ll check that out. That’s something I’ve been wanting to do this year.

      1. 1

        Still waiting for your Blogpost :D

        1. 2

          As I mentioned in my message, I done goofed and thought this wasn’t going to be doable until next year. Thanks to you, I was wrong :) I’ve shot some video today, writeup coming soon, I need to go through and edit. I’d probably say some time thursday for the initial post and vid. In the meantime, how about this?

      2. 4

        I managed to get incredibly deep into a rabbit hole of redux sagas and actions on Friday, then when I asked a colleague this morning how to take my next turn he said “don’t do it like that”. For which I’m very grateful, and will spend the first part of the week eating humble pie and writing a simple JavaScript function that does what I want without generators, reducers or any of the other react/redux/ducks ceremony.

        Our machine learning group has an offsite to the national museum of computing on Friday, so some amount of geeking out will occur too.

        1. 4

          I’m doing some maintenance on my Elixir rate-limiting library (hammer), and I’m starting to play with Nim.

          Oh, and we just recorded a monster episode of General Intellect Unit, on the movie Blade Runner 2049, so I’ve got to edit that this week too.

          1. 4

            Starting some free Clojure mentorship, details here. Got a lot of responses already and I plan to accommodate them all even if it costs me sleep, looking forward to it.

            1. 3

              On my spare time I continue working on my note taking app Joplin. Having a try with an Electron client for Windows at the moment. This framework is new to me but I’m impressed how easy is to get things running on it.

              1. 3

                Still working on Pleroma (https://git.pleroma.social/pleroma/pleroma), an OStatus compatible (Mastodon, GNU Social) social network server in Elixer and Vue. It’s pretty far along by now, so it’s mostly small features and bugfixes at the moment.

                1. 3

                  Ill be continuing to polish the “compiler/linker” i wrote to help with writing cli tools in shell. It’s already self-hosting and close to feature complete.

                  For one major client I’ll be progressing with setup of continuous delivery and then likely moving onto a review of some potentially nasty looking sql snippets I saw last week.

                  Personally I’ll be waiting to hear back from the mechanic, and then working out how we get 200km back to his workshop to pickup the car once he finishes unfucking all the parts that fucked themselves yesterday.

                  1. 3

                    continuing working on dependent typing for F# https://github.com/robkuz/robkuz.github.io/issues/6

                    1. 3

                      This week I’m trying to put in the last few things we need to start really talking about Peergos [1], our E2E encrypted social network that doesn’t expose the social graph. Basically server side limits on the max number of accounts, and data stored per account so we don’t get DOS’ed.

                      Last week I managed to speed up writes for us by optimising a call in ipfs itself by 1000x (also my first code merged to go-ipfs), and, in an independent fix, improved our read speed by 3-4x, now the web ui is decently usable speedwise.

                      [1] https://github.com/Peergos/Peergos

                      1. 3

                        I’ve been working on a CSS minifier for quite some time. In many cases it achieves better results than the minifiers normally used, although it doesn’t provide much compatibility options for older browsers. I was currently playing with the idea of using GADTs to refactor a module, which I managed to, but now I’m having issues when mixing them with type classes in another module. I’m hoping type families might help, although that’s beyond my knowledge at the moment. Anyway, I’d love any feedback on the project, so if you have some free time please try it out!

                        1. 2

                          Lots of mechanical fettling this week. Parts arrived last week to hopefully get ProjectBMW back on the road (or at least ready for the MOT.) New radiator is much larger than the last, coupled with the fact it’s bloody cold in the UK now it should stop it overheating again.

                          Mower parts have also arrived, get to fit a new drive chain & sprocket to it so the thing is self-propelled once again. Turns out pushing a self-propelled mower round the garden is more trouble than it’s worth. Fixing this partially-broken one will have still saved me around £170 over buying a refurbished one though, so I’m still happy about it.

                          And finally the ProjectBoat needs some fettling. Need to make a strop for the trailer to recover it using the new fancy electric winch the club has had fitted. Also need to find the cotter pins I ordered to reconnect the forestay to the deck mounting, otherwise I can’t sail her. Which would be a bit of a bugger, given I’m supposed to be racing in her on Sunday.

                          1. 2

                            I’ve noticed that my dedicated server has a CPU so I’m experimenting on mining some crypto during downtimes.

                            This weekend I finished my Google Analytics replacement with a friendly name, it largely consists of hardcoded stuff but is usuable with few modifications. I’ll probably implement a campaign parameter and some other stuff if I get to it.

                            On my dedicated server I’m (besides mining crypto because I can) gonna experiment with finally getting IPv6 to work and setting up a Tor relay on a seperate IP, both of which will require me to clean up my PfSense routing rules.

                            1. 2

                              Last week

                              Keeping things simple this week: primarily working on my soldering skills with a backlog of Boldport projects.

                              I’m continuing to work on my Insteon Go library: I’m struggling with the best API to expose responses from the serial connection. The hardware I have also seems to have issues receiving a new command while still processing the last one, so I’ll need to ensure I don’t send commands too quickly.

                              1. 2

                                Home: more clipmap polishing. Seams are not as easy as I thought and I have overlapping geometry on the other side.

                                Collision detection is an endless source of misery. The fork of squish I’m using has a BC5 encoder but not a decoder, so my triangles were all in the wrong place. The intersections looked correct since I use the quadtree to narrow it down to 8 triangles which limits how wrong they can be, but when I drew the triangles they were obviously not right. There are still some bugs that I am yet to figure out but at this point I’m quite tempted to switch to something like bullet.

                                Work: We had a hackathon Thursday and Friday. I did some baking at the office and kept working on my LZ4 decoder. Last hackathon I was almost able to match the performance of the reference implementation, this time I decided to deviate from the spec and found some nice perf wins so now I’m 25%-33% faster to decode.

                                The big wins were explicitly using AVX loads/stores in the copy loops, and not encoding overlap matches with an offset < 32 (so you don’t have to special case them in the decoder, the AVX copy will just work). I also started working on vectorising the control byte decoding, but ran out of time. I suspect that will be a nice speed boost too but we will have to see.

                                1. 1

                                  I glaring at a REST API using protobuffers.

                                  I feel the schema aware nature of protobuffers completely undermines the discoverability of a rest interface.

                                  I understand the reason for the choice (binary / efficient / apps won’t work unless they they agree precisely on the interface)…..

                                  … but we lose the “anarchic scalability” Fielding natters on about.

                                  The clients can’t even begin unless they have the proto definitions (compiled) for each URL.

                                  I’m wondering how I can automagically convert protobufs to cbor.

                                  1. 1

                                    I’m creating another course for Pluralsight, this time about building web applications in Elm, and I’m developing a tool for visualising Postgres query plans as supporting material for it. Sidetracking a bit, I drafted a couple of blog posts about aspects of JSON parsing in Elm today.