1. 17

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!

  1. 27

    I was accepted to the Recurse Center and am arranging the logistics of moving to NYC from mid-September to mid-December. If anyone in NYC would like to meet up, message me. I plan to study category theory, dependent types, and, if I can find a study buddy, tools like Coq and TLA+.

    Codewise, I’m tinkering ahead on my current Haskell practice program, a solitaire solver. I’m also making demo Rails apps for my two factor authentication Rails gem.

    1. 4

      Check out @hwayne’s tutorial on learntla.com since it’s on a practical subset. Also, Alloy Analyzer has long been used to do something similar for structural analysis of programs with ease of use vs Coq etc.



      Hopefully, you master it all. TLA+ and Alloy just knock out lots of low-hanging fruit with relatively few people quiting due to difficulty like what happens with big-time provers.

      1. 3

        Great news, looking forward to the blog posts! Is there something similar to Recurse Center in Europe?

        1. 2

          There was “Hacker Retreat” in Berlin that was explicitly inspired by Recurse Center, but it disappeared in October or November 2015. I’m not aware of others, but I haven’t looked.

        2. 3

          Glad to have more RC people here. Enjoy!

          1. 2

            This is wonderful news! Looking forward to hearing all about it :).

            1. 2

              Congrats again, we’re looking forward to having you :)

            2. 11

              A low level information retrieval (fulltext search) library.

              (For those familiar with Lucene, the level I’m aiming for is “primitives for building a single segment with a single field.”)

              1. 7

                Week two of time off in-between jobs. Last week:

                1. Open source maintenance on crochet, my make-Twisted-usable-everywhere library, and eliot, my causal logging library.
                2. Finished my book, “The Programmer’s Guide to a Sane Workweek”.
                3. Blogging.

                This week:

                1. Figure out how to sell an ebook without having to worry about sales tax or VAT MOSS.
                2. Queue up Software Clown emails.
                3. Maybe something not involving computers? I have a cider-making kit that I haven’t gotten around to using yet.
                1. 2

                  Remember, the sooner you start a batch of cider, the sooner you get to enjoy it!

                2. 6

                  After quitting my job, I’ve been making great progress on my lock-free log-structured B+ tree! It is similar to the deuteronomy/bw-tree architecture, so if you need a lock-free log or pagecache, those are available for use as well. This week I’ll be implementing epoch-based GC for making sure that data that has been detached from the accessible structures does not get deallocated / reused until it’s guaranteed that all possibly witnessing threads have moved on. I’m hoping to have significant fault injection & some performance tuning done by the end of the month for a beta release. Eventually this will form the storage component of a revived rasputin distributed database with formally verified components.

                  1. 6

                    I’m finally going to get back to finishing the QBE backend for Myrddin. I’ve also got some queued up OpenBSD hacking so that I can migrate my infrastructure fully off of Linux.

                    1. 5

                      Finished up the final version of a paper that was accepted a few weeks ago, “The narrative logic of Rube Goldberg machines”. It’s part of a procedural content generation project to auto-generate Rube Goldberg machines (either on their own, or eventually as interactive videogame puzzles). But this one is more of an analytical paper (for a narrative conference) trying to map out the structure of these machines in Goldberg’s cartoons.

                      We’re especially interested in Goldberg’s original cartoons, rather than the complex physical machines people have built that also get called Rube Goldberg machines, because the original ones have a kind of characteristic absurd and humorous style that’s almost as much storytelling as machine. Goldberg’s machines usually include characters (animals, humans, etc.) and usually depend on coincidences, but coincidences the reader can immediately spot at a glance; you know that the mouse is going to run towards the cheese, and is going to hit the switch that’s between the mouse and the cheese.

                      1. 5

                        As part of my sabbatical, I’m taking over the Haskell Wireguard userspace implementation.

                        I will focus on the RPC part this week and hopefully fully implement the new text-based protocol until the end of the week.

                        1. 4

                          The hard part is gonna be balancing my time between the two!

                          1. 4

                            $work: I’ve decided that I should be the leader of my team. My manager is overworked with suit-level stuff, and so in my last 1:1 with him I said that I was, in effect, promoting myself to do more of the team-organizational work (my exact phrasing was somewhat more articulate) so that he could remain effective in getting us resources from the suits. To that end, I’ve been organizing our ticket board, surveying the workload, and trying to rationalize what the hell it is we’re actually doing.

                            This is particularly nice because I’ve broadly decided I don’t like programming or devopsing very much at all, but I do enjoy making it possible for other people to be efficient, so this product owner-type role is hopefully going to be a bit better for me. It’s definitely still a hybrid technical implementer / product owner role, but the grass does appear a bit greener than before.

                            $!work: I’ve got about a million million projects at home, we’re installing a new dishwasher (and cleaning up all the insane shortcuts the previous owner took in the process), I’m installing some electrical in my garage/shop area, I’ve got a few handplanes on the restoration bench, and my 3d printer kit just got here today; so I’ve got a busy week of pretty fun activity.

                            I’m having a party in a couple of weeks, too, so there’s a mountain of organizational stuff I need to get done for that.

                            1. 3

                              Web developer is always made of 2 parts :

                              • daily job
                              • study

                              My daily job is to help job-seekers through a good Rails/jQuery app. I study how to integrate VueJS as nicely as possible with Rails to structure the front-end part.

                              1. 3
                                • Consolidating another VM onto my Hetzner box
                                • Getting my third car running, as the battery is dead currently
                                • Wiring the engine fan up on the second car, as that’s currently off the road due to the cooling system being in bits
                                • More cycling, got a fortnight till my ride(s) round Northern Scotland
                                • Test-fitting the kit I need to the bike for ^
                                • Fixing the dinghy (currently the Jib isn’t attached to the roller furling gear)
                                1. 3

                                  I just finished the draft slides for my TLA+ presentation. It’s the third draft of the talk, but the first that I think is good enough to get live feedback on. So I’m planning out a couple of rehearsals.

                                  After that I have a couple of essays I’m polishing up. I really enjoy technical writing but haven’t been sharing much of anything and I want to change that.

                                  1. 3

                                    I just moved into my new place this past weekend, so lots of unpacking and changing my address for banks and such. After getting done with all of those tedious things I plan on picking back up on some Rust work. I had written a nom parser for the Redis crate but haven’t attended to it since I started escrow.

                                    1. 3

                                      With the assistance of the good folk of Meta Mesh, I unfu^H^H^H^H rewired my house’s exterior Ethernet runs and also put in some new internal runs after improving my wireless setup a few weeks ago. I’m moving from a series of surface mount terminals to a real patch panel for my network “closet”. What makes this space interesting is that it is above a stairwell, so reach into it is quite limited and it’s not large enough to crawl around in. I long for a better solution, but that better solution will likely be “next house, buy a house with dedicated network core space in mind.”

                                      1. 3

                                        At work I’m finishing up a feature to slightly improve the security of our product for a future release, and also triaging any bugs/cases related to a release coming up in the next few weeks.

                                        Outside of work I’ve been busy with a lot of stuff:

                                        • Building a new bike. I ordered the frame, which I should receive in November, and now I need to start buying the components so that I can build it when the frame gets here. I’m going to keep track of the parts list and design considerations on GitHub, but it’s basically empty right now.
                                        • Teaching myself how to use “modern” OpenGL (GLSL, vertex buffers, etc.) with Common Lisp.
                                        • Possibly building a new computer. My home desktop is a 2010/2011 iMac running Linux, and the graphics card is too old for the AMD binary drivers, so it doesn’t support the OpenGL features I’m trying to learn. I’m working around it with an old machine from my closet (with a still supported NVIDIA graphics card) and a $15 monitor from GoodWill.
                                        1. 2

                                          Almost nothing. We have a company retreat a good part of the week. I’m probably gonna set up upspin in earnest sometime this week. Also, my wife is about to give birth to my fourth child, which means I’m taking a paternity leave for about three months; this will take the place of my summer vacations (in extended form), and I’m kind of looking forward to that (even though from experience I know it’ll absolutely not be vacations). Due date August 25th, so, any minute now. AAAAANY MINUTE NOW.

                                          1. 2

                                            Creating an air-gapped accounting network with KVMs on the terminals http://i.imgur.com/wlDj72I.png

                                            1. 2

                                              Where is the “air” in this diagram?

                                              1. 1

                                                It’s probably too hard to answer your question with a quick comment but it’s there

                                            2. 2

                                              After a couple of weeks of mostly tedious research to become more proficient at Azure devops, finally moving on to Azure F# functions and work with Azure queues.

                                              1. 2

                                                Well…seems I’m sucked back into Azure devops. I got a reply to an outstanding S.O. post of mine, https://stackoverflow.com/questions/45662890/azure-powershell-add-azurekeyvaultmanagedstorageaccount-failing , and I’m still trying to make it work.

                                                Am I the only one who feels like an idiot trying to figure out Azure RBAC?

                                              2. 2

                                                Mostly non-tech activities on my home-stranded vacation. But taking an opportunity to furnish the 19” cabinet a bit. Also contemplate buying a Cisco security license to enable IDS on the 1921 and a VPN endpoint to $work.

                                                1. 2

                                                  Catching up on DEFCON 25 presentations. Also, packing for my trip to go see the solar eclipse next week!

                                                  1. 2

                                                    Mostly working on my burn out. :)

                                                    1. 1

                                                      Started making screencasts about things I enjoy. Here are the first few https://stuffbyexample.com/genstage

                                                      Hoping to keep the content creation steady every month.

                                                      1. 1

                                                        Writing scrapers, per the usual. Also looking into ways to consolidate logs across several different nodes running Python clients.

                                                        1. 1

                                                          Pardon my ignorance, but what are you scraping exactly? I’ve written a few very simple ones just to crawl links on pages, but nothing that has ever been of any use or worth logging/saving.

                                                          Just curious!

                                                          1. 3

                                                            I work for a data aggregation company that collects financial data–essentially bank balances and stock positions and transactions for that sort of account. The data is formatted and served through an API, but my piece is diving into the malformed HTML of the web and extracting tabular data.

                                                            What did you use for scraping?

                                                            1. 1

                                                              I’ve used Go for just crawling links, and Python for scraping. It seems like something that could be fun as a hobby, but without a goal there’s just too much to scrape!

                                                        2. 1

                                                          This week:

                                                          • Building a token authentication mechanism and letting api’s accept either that or the the Authorization header while authenticating users. The aim to have a full fledged user management system (akin to spring security/django auth). Shifting our existing authentication flows to either of these is pretty hard, hence kind of re-implementing the wheel (learning things too!)
                                                          • I integrated react-redux into my django website last week. Now need to start slowly shifting the pages from django to react.
                                                          • Thinking about writing a blog post on Django internals (request resolution, authentication, view logic, response/exception handling). Might not be able to do it this week, but have added it to the list.