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.


  2. 8

    Morning all!

    I’m keeping busy, it seems.

    I’ve got more changes in progress for the Z3 theorem prover to clean up some more platform support issues. I’m also working on expanding my Rust bindings as well.

    In Zircon / Fuchsia land, I got a lot of my backlog of changes cleared out and then went and submitted a bunch of new changes. One day, Zircon will be the OS kernel with the best spelling.

    My client work is progressing. The devil is in the details and I’m trying to get everything nailed down in the next day or two.

    I’m still reading up and learning about things going on in the materials world with cellulose and lignin. This led me to the interesting world of using chitin from shrimp and crab shells, producing chitosan, and then using that to make biodegradable plastics. So fascinating! A lot of this seems like it needs further work to bring it into affordable production processes though. I’m trying to find some local chemical or materials engineers to meet up with and learn more about this.

    I’m also reading about some ideas from the 1990s on what might be better than a REPL. Also pretty fascinating.

    And this coming weekend, we undergo 30 or so hours of door to door travel to head to the US for a couple of weeks.

    1. 2

      I’m also reading about some ideas from the 1990s on what might be better than a REPL. Also pretty fascinating.

      Sounds very interesting, can you share some links and/or thoughts?

      1. 3

        Right now, I’m looking at the thesis of Wolfgang Weck: ftp://ftp.inf.ethz.ch/pub/publications/dissertations/th11817.abstract

        This is rooted in the Oberon world. This was also similar to how MPW worked way-back-when.

        @nickpsecurity also posted a link to a paper from the Oberon world on ActiveText recently. That’s related to this as well.

        1. 1

          Thanks for credit. That’s this paper for folks wondering. Honestly, I haven’t read it yet due to lack of time/energy: it just looked really good as I skimmed it seeing ideas I’ve seen in other good work. I guess I should bump it up on my backlog since you’re recommending it. Might do Weck’s at same time since you say they’re related.

          Note: Weck’s stuff is paywalled but I found a page with links to dissertations that was broken. I’ll email admin in case any of those links were free PDF’s and they fix it.

          1. 2

            I’ve had the Active Text paper around for a while myself … but you re-brought it to the front of my mind as I was looking into similar things again. :)

            As for Weck’s thesis: ftp://ftp.inf.ethz.ch/pub/publications/dissertations/th11817.ps.gz

      2. 1

        I’m also reading about some ideas from the 1990s on what might be better than a REPL. Also pretty fascinating.

        I love this stuff! It’s really interesting to see the things that were tried, and that…well, not that failed, but that didn’t become popular. I think by the 1990s we were pretty doubled-down on the edit-compile-debug cycle, and sufficiently burned by CASE tools to be sceptical of anything more complex than a text editor with a “build” button.

        Some stuff never left academia, some didn’t get traction, and some was genuinely not a good idea :). Trying to work out which is which is fascinating.

      3. 7

        When I’ve had time over the week or two, I’ve been working on my blog series on decreasing the cost of running a personal k8s cluster. Just yesterday, I wrapped up a post on utilizing Reserved Instances and Spot Instances to decrease the overall bill by ~40%. As I have time this week, I’ll work on decreasing/stabilizing costs by running a single External Load Balancer via Ingress and optimizing Kops’ default EBS volume allocations.

        I also just finished reading Google’s Site Reliability Workbook, so I’ll hopefully have some time at work to think about applying some of its ideas.

        1. 1

          It’s really funny for me reading some of your comments on reducing k8s costs, because you’re talking about reducing $160/mo by 40%, and my personal nerd-golf is to try to reduce my cloud budget to < $10/mo (free tier doesn’t count)

          (I’m not deriding your hobby, just appreciating how it’s so similar in intent but so different in scope than my own)

          1. 1

            Haha yeah, definitely wouldn’t recommend running a personal Kubernetes cluster if cost-savings is a predominant concern :) I think for me, the experience I’m gaining with Kubernetes/Cloud Native, and the fun I’m having working with it, justifies the extra cost.

          2. 1

            I got one down to 5$ a month on GKE: http://www.doxsey.net/blog/kubernetes--the-surprisingly-affordable-platform-for-personal-projects.

            It helps that they run the control plane for free but I still had to run my own load balancer, since the built-in one is 18$/mo.

            Digital Ocean will have a managed k8s soon that might be great for personal clusters, but I haven’t tried it yet.

            1. 1

              Very cool! Saved your post for later to give it a good look :)

          3. 5

            As part of implementing transaction support in sled I’ve been writing an STM library for Rust with a focus on learning about how much of an STM implementation can be exhaustively tested, and how to build confidence in the areas where that is not feasible. As an API goal for this, I’d like to let people write a concurrent doubly-linked list without much more trouble than the current effort to write a non-concurrent singly-linked list.

            So far, I’ve just been applying parts of the Cicada paper, and intentionally violating constraints (changing equality operations on read/write timestamps, omitting certain checks etc…) and ensuring that tests immediately break.

            This week will probably see the implementation of a few hermitage-style tests that look for specific anomalies, but at high levels of concurrency and contention.

            Sled recently got support for reverse iterators and a monotonic ID generator that can dish out 75-125 million sustained ID’s per second on a macbook pro, and not double-allocate across crashes (although it will skip some), so the path to MVCC is pretty much clear now. I’d like to get the first version of a transactional database out by the end of the 35c3 this year :]

            Looking forward to seeing friends and family in the old country, flying to NYC on Saturday for a little more than a week!

            1. 4

              Mostly working an Exercism exercise involving leap year detection, in C++ since that’s what I’m working on learning. I’ve implemented it the simple minded way using 3 conditionals just fine, but my mentor is guiding me towards a more elegant solution involving a single complex Boolean logic conditional instead.

              it’s exactly the kind of hard work I need to be doing to up my game, and while I’m kind of embarrassed to admit how hard I’m finding it to come to a working solution, there’s only one way to build up a skill or a muscle - just keep working it, intelligently, guided by someone who’s an expert.

              I’m almost there - I think I’m mis-understanding the stated formula - right now the only test that’s failing is the year 1900.

              Also slowly moving through Advent of Code because most of my limited brain power is going to the above :)

              1. 4

                Besides mucking around in the Windows Services API (some of our clients need a thing to run in the background when their Windows server boots), and again going to try a few other theories about where the 422 errors that bors is getting from GitHub come from.

                Also, https://github.com/rust-lang/rust/pull/56568 (which I also spent a decent chunk of the weekend on).

                1. 4
                  • For personal interest/fun: building a Pinboard API client in Rust, which I’ll be using to extract content from there and into my local notes app. I’ve been digging into Zettelkasten as a research tool, and I want to get all my stuff in one place.
                  • For personal work, I’m moving a bit more slowly because I noted that I’d overdone it a bit and was risking slipping back into the burnout I experienced this fall.
                  • At work, I’m going to be removing jQuery entirely and dropping IE11 support from a fairly large web application, and I’m rather excited to see what kind of build size wins we get out of that.
                  1. 1

                    It took me a long time to actually find out what Zettelkasten is: unless I missed it, the front page of their site doesn’t actually describe the method. Eventually I noticed that the Alan Jacobs piece you linked to contains a link to their description.

                    1. 2

                      I had the same problem. 😆 I should write a “What’s a Zettelkasten, anyway?” post and mostly just link it to that page. I’ll also ping one of their editors on Twitter and tell them “Hey, add a ‘What’s a Zettelkasten’ link to your home page!”

                      This overview post is also really helpful.

                  2. 3

                    I’m taking two days off from work, but by coincidence, it’s snowing and I have two kids who won’t be going to school. So I’ll have less time than I thought.

                    I think I’m going to try and continue working on string matching algorithms. I’ll probably try to implement BNDM and BOM.

                    1. 3

                      Business development is my biggest problem, and my goal to advance this week. December is expensive, and the Labrary doesn’t have any clients yet. If you have time, I’d appreciate it if you could take a look at my website, and tell me whether it’s clear what my company offers after a read, and whether there are circumstances under which you would take up that offering or recommend it to a peer or manager. Am I even letting people know they can give me money?

                      I’m checking out the local meet-ups, talking to the business development networks, startup incubators, and university departments. When I get bored of that, I am finishing the day with some research and pet projects to apply learned skills. At the moment that’s about learning Swift, but also after the recent thread on whether Fortran is still a thing, I’ve realised that I have some pretty unique experience relevant to scientific computing so I’m dusting out CUDA, OpenCL, and numerical methods.

                      1. 3

                        I’m not quite clear how a lab library and a consulting detective go together. Also, you’re diverting people to DCI Barnaby before you get to your pitch, which seems… less than optimal.

                        I’d go for one of these metaphors and run with it. If you can get to the point that people can hire you for improving their processes while they’re still on the front page, I’d consider that a plus.

                        1. 1

                          Thanks, I appreciate that! I agree that the two metaphors don’t work together or support each other.

                      2. 3

                        For curiosity purposes I’m looking into clockless computers. On a marketing level, they appear to solve the architectural issues that allow vulnerabilities like Spectre & Meltdown. They also seem to address the ever-hungrier power needs of computers, so there’s an environmental sustainability aspect as well. But there doesn’t seem to be a lot of hard details & real world experience with working with them. I’m reading Computer Science Reconsidered: The Invocation Model of Process Expression, which has an interesting programming language for dealing with computers that are lazy at the circuit level. However, in reading the book, it seems like the author wasn’t aware of Haskell and all the work that’s gone to it and it’s variants. Still, I’m working through the topic. If I get deep into it and it still seems like a good idea, I’ll plan some side projects to see what I can do to popularize the concept. I have no idea if it’s even worthwhile yet, but it seems like it might be.

                        1. 1

                          Look up disadvantages of asynchronous logic to see shy they havent taken off. I still follow them, though, cuz the advantages are pretty significant. Far as side channels, they’re not guarantee since they make certain operations happen faster which might be measured somehow.

                        2. 3

                          Outside of proposal drafting and invoice hounding for my consultancy, I’ll be working on the landing site for one of my side project. From there, I’ll hope to garner some general interest to keep it moving. Also might record a video of me trying and critiquing NextCloud’s implementation of ActivityPub that was announced recently.

                          Lots of Social Web stuff.

                          1. 2

                            Week 2 at the new job. Last week was mostly onboarding, this week is a little bit more of that, but I now have a real task to work on. It’s a testing task, which is great for getting familiar with how everything works.

                            This is my first fully remote job, and I’m enjoying it so far, but I’m not fully adjusted yet. It’s different than I expected, but not in a bad way.

                            Outside of work I’m writing a Common Lisp interface to Renderman. Initially I was going to write a binding to the C API, and I’d still like to, but for now I’m going to write RIB files. The C API heavily uses variable length argument lists, and most calls have a few required parameters followed by a variable length parameter list. I started work on a macro to handle it all, but writing the RIB files is a lot easier and has other advantages.

                            1. 2

                              I’m writing an XML generator using xml-conduit and xml-hamlet. The XML documents I’m generating represent an application to switch your electricity provider in Northern Ireland. It’s for the Moneygains website. If you live in Northern Ireland, we’ll soon be able to allow you to switch to a better energy tariff, saving you potentially hundreds of pounds a year.

                              1. 1

                                I’m gearing up to launch some new 44CON training in March, working on sponsor pack info and (hopefully) working on some procedural image generation work using p5 to generate photo-inspired art for a project I’m going to run next year.

                                Also working on moving away from Shopify, because fsck Shopify.

                                1. 1

                                  I’m working on new features for fx JSON terminal viewer: https://github.com/antonmedv/fx

                                  1. 1

                                    I have been investing my spare time-cycles into a self hosted podcast publishing platform with optional federation support. Exciting now that Mastodon has decided to accept audio.

                                    1. 1

                                      Hoping to finally resolve a problem that has been bugging my mind for a week. Christmas party is also happening, which would be really hard to bear without drinking alcohol.

                                      I have also reached a point at my current job when frustration is all over my head. So, that will be a mission as well!

                                      1. 0

                                        Mostly work.

                                        In my spare time, I hope to get some time to dust off my old laptop running Arch Linux, and customize it so that it is easier to use. Perhaps experiment with a new window manager, and get my personal “roadmap” Org files in order so that I have a clear path before me for all the learning I plan to do. It is overwhelming to keep track of all the technical books, papers and talks I need to go through, so I felt it would be good to take notes on everything I learn and keep them in one place.