1. 20

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. 18
    • Job interviews continue. Kissed a few frogs in the last two months, but currently chatting with three I could definitely see working at.
    • Lobsters has been getting a lot of pull requests the last couple weeks, so hopefully I’ll be merging all the active ones this week. Really thrilled to see so many contributors that they entirely take up the Code + Coffee time I put to Lobsters.
    • Last week I finished coding the rails app for the podcast I’m starting (1100 lines of code + tests, not big). Plan is to have conversations with folks doing interesting in computing, especially at the intersection of practice and theory, then editing to 10-15m episodes. Sorta Fresh Air crossed with Planet Money but topically more like Why Are Computers? This week I’m sending out some initial interview requests and deploying the site. Going to take a run at guix for that, we’ll see how it goes.
    • An old friend is in from out of town, so plenty of catching up and board games.
    1. 6

      I like the idea of the podcast. I was messing with some ideas about a podcast like that a little while ago. If you’re interested in any help with it, I’m willing to do what I can. (I think the intersection of practice and theory is the most interesting place for research and had I stayed in academia, I would be working in that space.)

      1. 1

        A big chunk of the wallclock time around podcasts is in the editing. At least that’s what I found.

        1. 2

          I don’t doubt that! I trained as a music producer for a couple of years and editing on an early 90s Mac is what got me into programming. I quite liked editing (even did it with 2” and 1/2” tape) but it is certainly time consuming.

          1. 2

            Yeah. I also think that’s where a lot of the value to listeners is. I’m tapped out on the podcast format where two dudes shoot the breeze until one says “well, we’re coming up on an hour here”. So part of my prep was dusting off my non-linear editing skills from high school to learn my way around Ardour. I’m not going to be putting out something slick and beautiful like Radiolab, but the “life without the little flubs” style of Fresh Air should be attainable, and I’ll see how it develops.

            1. 2

              Gotta say I’m also pretty tapped out on that format as a listener. I enjoy it up to a point because you get a real sense of the personalities involved, but my time and attention are a precious commodity and I just don’t have enough of it to spend listening to folks banter.

              I love podcasts, but lately I’ve come to realize that they can very easily expand to fill all available time and more, so I’m being a bit more selective about what I listen to.

        2. 3

          Thank you for all your work maintaining Lobsters :) +1 to really looking forward to the podcast!

          1. 2

            Wow seriously can’t wait for your podcast! I always enjoyed Garbage despite being pretty much BSD clueless. (Well other than setting up a few FreeBSD boxes in the early 90s :)

            I would so love to get back into Podcasting. Have an idea, been having trouble finding the spare seconds to put it together. I miss it. I really enjoyed co-hosting Podcast.__init__.

          2. 10

            The autumn 2018 run of the Lisp Game Jam starts in just a few days: https://itch.io/jam/autumn-lisp-game-jam-2018

            Why not join the fun?

            1. 10

              Work: Reading materials on marketing and consulting to pitch to companies better. Doing a bunch of revisions of the 3 day TLA+ workshop to make it simpler and cover more. Rehearsing a beta of my CodeMesh talk.

              Fun: Trying to find some knitting classes in Chicago. Figuring out what kind of volunteering to do.

              1. 9

                Hacking on a registry for twtxt (https://tildegit.org/tildeverse/twtxt-registry).

                Also looking at getting a notification system added to bbj, a small little bulletin server with a lovely curses interface.

                1. 4

                  I’ve never used twtxt, only spot-read the source code, but it seems like a fun project to hack on. What brought you to it?

                  1. 6

                    It was submitted to the lobsters instance that I run: https://tilde.news/s/e1vadw/twtxt_is_decentralised_minimalist

                2. 8

                  After running into various Markdown-related XSS-problems towards the end of last week when auditing my own product for initial release I decided to take matters into my own hands today, so I built and released a library for handling markdown where secure by default is the core philosophy instead of opt-in security.


                  I just posted about it here on lobste.rs

                  1. 8

                    Most of the week will be spent cleaning up some technical debt, but the highlight will be giving a talk at the university I graduated from, which is happening on Wednesday :)

                    1. 7

                      Over the weekend I did a failover of lobste.rs from a physical host with an L5520 CPU to a physical host with an E5-2660. I didn’t have a lobste.rs-specific reason for doing this: it happened as a side-effect of patching L1TF, which I’ll continue working on this week.

                      All the same, I’ll be curious to spot-check lobste.rs and see whether it changes how the site performs.

                      1. 3

                        Shows 45nm servers are still practical. The Rocket core for RISC-V was deployed to 45nm ROI. The newest ones are 28nm but 45nm is cheaper for development. I think L5520 performance shows there’s plenty of mileage to be gained for open hardware on older nodes if anyone can harvest the free/cheap labor advantage combined with discounted tools at universities.

                      2. 7

                        Trying to get an MVS installation working locally with the Hercules emulator so I can program in an environment that you might have used in the 70s. I was aiming to do the same for the 60s and OS/360 but software for that era is hard to find.

                        1. 7

                          I’m trying to port OMEMO encryption to Irssi : https://github.com/ailin-nemui/lurch/

                          already sent and received some messages but there seems to be still many bits missing……

                          1. 7

                            I’ve just begun learning Pony. The language is great and given the current status of development and engagement of the community, I believe in a couple of years it will get on the main stage. It has a lot of good parts and so far, no bad parts.

                            Today I started the tutorial and developed an overengineered fizzbuzz. Maybe tomorrow I will make it concurrent and lazy.

                            My goal for the week is to finish the tutorial and maybe try to solve some LHF on some part of the standard library and see if there’s space for a beginner to contribute meaningful code. Otherwise I will reproduce some of my favourite libraries/tools from some other language and see if they stick.

                            1. 6

                              Continuing to write a Mattermost bot in Go that keeps score of channel arguments. The first draft is done but it could use a lot of polishing

                              1. 6

                                At work I’m still doing bug triage. The bug stream from our testing team has died down, so now I’m looking at some of our flaky unit tests.

                                Outside of work, I started helping maintain ST-JSON. TBH, there’s really not much to do, but I’m going to add a README, and see if it makes sense to move over any of the changes in my private fork.

                                My book scanner/database is going okay, but slow. Last week I had given up on scanning with the webcam, and this week I’ve given up on using gphoto2 (for now). The new workflow will be to take pictures of ~10-15 book at a time with my SLR, copy the images to my hard drive, scan each image with zbar, lookup the ISBNs, and add the books to the database. Then I’ll make a second pass for books without ISBN barcodes, where I’ll take a picture of their title page, use tesseract to extract the title and lookup the book that way. It’s not as interactive as I wanted, but it’ll get the job done.

                                1. 6

                                  For my hobby project (simulating space flight within the solar system [1]), I’ve switched from tinkering with the display to working on the mathy parts, which is the mini-programming language that offers the user various orbital and propulsive maneuvers to get from A to B. In this context I’m working on a blog post titled “Dodging Greenspun’s tenth” which looks increasingly more like “How I didn’t dodge Greenspun’s tenth”

                                  1. 6

                                    We released version 0.2.7 of the Yggdrasil Network over the weekend, and I’ve been meaning to sit and write some blog posts about the things we’ve learned in the development process. In particular, I hope to dedicate some time to write about security on mesh networks and possibly even service discovery.

                                    I’m also still trying to pick up some Japanese on the side. It’s proving to be an insanely difficult language to learn without supervision, so I’m trying to figure out a good learning strategy.

                                    1. 6

                                      At work: I’m definitely reworking one component to be multi-threaded (earlier discussion here: https://lobste.rs/s/amaftk/what_are_you_working_on_this_week#c_tvpswu). As part of that, I’m writing a custom IntelliJ refactoring. One of the really common patterns is:

                                      List<MutableType> list = obj.getBlah();
                                      for (MutableType elem : list) { 
                                         // doStuff();

                                      My strategy is to leave the underlying objects mutable, but give them an immutable interface. One section of the code will do all the setup, the rest will consume the immutable interfaces. I’m hoping that writing a custom refactoring will be a slight win on time, and definitely more interesting than doing everything by hand (I’ve written one before, so I have a rough idea of it). Unfortunately, I really don’t enjoy the IntelliJ code manipulation libraries: they seem to be undocumented, with very little help from the types. Does anyone have a refactoring library they like?

                                      Edit: I did some string processing in Perl6 for work. I have no idea if it’s a good language (and I have almost no perl5 experience), but it’s fun in a weird way.

                                      Outside of work, I’m bouncing around from project to project.

                                      1. 5

                                        I figured out that clang fix and now I’m shepherding my change through the review process! Additionally, some typechecker stuff for work.

                                        1. 5

                                          Packing stuff to move into my new apartment next weekend. The old one is overpriced, ground level, has no sunshine the whole year except in winter. The new apartment is the opposite: Quiet, large, and full of sunlight. I’m super happy to move there, especially as I’m really stressed out the last few weeks (combination of work, university, and planning the move). I’m sure the cat will love the sunlight and balcony too.

                                          Other than that I’m trying to stay on top of everything at work and university. I can definitely feel the stress taking a toll on my health, which is really bad.

                                          Coding wise, I’m working on a freelance (next to work coding and university) project in the medical field. Simple project, but big potential. I’m really happy to be able to work on this on the side as it can make a difference.

                                          1. 5
                                            • trying to convert some Json to myself tables. Anybody have a good way to extract some nested json data in mysql8? … CTE
                                            • American Presidency Project to go live Oct 22nd.
                                            • Added Google captcha form over weekend to some forms in APP using cusim Drupal code.
                                            1. 5
                                              • $WORK
                                                • Working on using succinct data structures for a new Haskell JSON lib. The parser preserves all sorts of nice properties, like parse . print = id, so there is no loss of information. Yes, another JSON lib, but Aeson is a bit long in the tooth and there are design decisions I disagree with. Also succinct data structures are soooo much fun, and so sodding fast, omg.
                                                • More visualisation research with a goal to lay the groundwork for some sweet graphics and visualisation packages.
                                              • $ME
                                                • Peering into the abyss that is the world of machine learning, for funsies
                                                • Keep on reading, keep on reading, keep on reading.
                                                • Lift something, heavy.
                                              1. 5

                                                Dusting off my rusty C skills and diving into Linux to fix or more realistically better understand / provide better test/debug data for https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1796614

                                                I’m totally fascinated by the complexities of the modern LInux desktop environment. GDM interacting with X interacting with device drivers interacting with the kernel.

                                                1. 2

                                                  That fascination will pass. The quote from #dri-devel fits well - “ nothing involved with X should ever be unable to find a bar.” The interface is race condition by design, logind/gdm/xorg/(plymouth?) fighting for drmSetMaster? VT switch once gets someone to release it.

                                                  1. 1

                                                    Nope. Not in my instance of the bug. Flipping VTs doesn’t do anything for me.

                                                    1. 1

                                                      I agree with you though that there seems to be SO much complexity at play here I question whether or not it all makes sense.

                                                      Design by accretion in action I suppose?

                                                    2. 1

                                                      Turns out I managed to work around this with configuration. Turning off gdm’s wayland detection fixed the problem and Gnome now comes up properly on boot.

                                                    3. 5

                                                      I wrote a very simple data compression library called BriefLZ many years ago, which recently appears to have found some use in a few other projects.

                                                      I’ve been implementing some algorithms to get better compression out of it without changing the data format. I am hoping to get a few of these polished enough to release.

                                                      1. 5

                                                        Improving the compliance of my Rockstar implementation with the reference implementation tests

                                                        1. 4
                                                          • I’m making some small adjustments to an image recoloring bot I’ve been building with a friend. (Mostly, just limiting size this week.)
                                                          • I’m starting to add a simple, year-based view to my projects viewer that uses GitHub as a data source.
                                                          1. 4

                                                            → Understanding how to provide gmaster.io users the value we see in the tool as soon as possible. → Preparing for Unite LA 2018

                                                            1. 4

                                                              This week I’m doing a couple of product demos and on-boarding users to the new letter sending feature of NewBusinessMonitor. This will bring in more revenue. I’ll also be working on a load of account management stuff for the service — a necessary chore.

                                                              1. 4
                                                                • continuing to integrate the changes to our dependency management stuff at work. Everything here takes a lot longer than anything ought to.
                                                                • continuing on my streak of good mental health that I mentioned last week, which is important
                                                                • hoping to get my website updated, and at least one of my in-progress articles published
                                                                • again, I’ll aim to make at least one small movement on one of my many side-projects
                                                                1. 3

                                                                  Work - I have spent most of this week on user support.

                                                                  Personal - I am trying to improve my object-oriented design skills. I finished Object-Oriented Design Heuristics this weekend and have started reading Object Design.

                                                                  1. 3

                                                                    I’m continuing to work on deploying Prometheus to my personal k8s cluster so that I can monitor/alert around an SLO. I’ve been blogging my progress here, and will continue to do so if anyone has any interest in following along :)

                                                                    As a side note, if there are any k8s users here, I’d love to hear more about how you organize your k8s namespaces. I’m not sure if I want to do just environment based namespaces (i.e. dev, staging, prod) or environment+application based namespaces (i.e. dev-blog, dev-monitoring, prod-blog…). Thanks in advance for any tips :)

                                                                    1. 2

                                                                      Building a protoype/porting test of an older python web app into rust and actix-web. I’ve been using actix with tokio for a desktop project and have been liking it a lot so thought I would give the actix-web portion a go.

                                                                      Working on a service for pulling structured data from repetitive pdf files.

                                                                      Getting started on a teen titans go! Raven costume for my daughter for halloween.

                                                                      1. 2

                                                                        I will continue to learn ansible. I’ve already created my first playbooks and made big improvement in my work with it. I’ll now change SNMP configuration on the thousands of routers in my company to be able to monitor them properly. Uniformity and automation is the key.