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.  

  2. 11

    I just had shoulder surgery and they, somewhat unexpectedly, had to reattach my bicep. This week in going to be working on typing without slowing down my recovery.

    1. 4

      That sounds awful. What happened?

      1. 2

        The truth? I watched secret life of Walter Mitty and was inspired to Longboard down my street. I promptly crashed because I suck at skateboards.

        Ignored it for several years and combined that with a few nasty climbing falls and the result was worsening pain.

        So now I have 5 stitches in my labrum, a freshly ground bone spur and (I think) a reattached bicep.

        1. 1

          Crazy late reply but I definitely get that. I have a skateboard I’m too scared to really use anymore. I tried to ollie and fell so hard on the landing that I’m still grateful I didn’t break my arm.

          I also had pain in my hand after a non-skateboarding fall that I ignored for like 8 months before it went away, I hope that doesn’t come back to bite me.

    2. 9

      Back from Poland—Kraków was an amazing place. Worth visiting, I think I’ll be going back. Auschwitz was harrowing, everyone should visit if they can. Just the scale & efficiency of what was achieved there was mind-bending, and of course utterly horrific.

      This week I’m mostly tidying up things at work after a big migration of infrastructure. Feels good to be at the point we’re deleting code/configuration because it’s no longer needed 😁

      Also preparing for heading off to Prague this weekend, looking forward to that. Be interesting to see how it differs to Poland!

      1. 7

        This week I have an in-person interview as a follow up to a phone screening. I hope I get the job! Along with that, I will be submitting my resume to a few more tech companies (both remote positions and a couple I found in the Phoenix valley) for system administration positions. Fingers crossed!

        In programming news, I’ll be creating a WebRTC signaling server and TURN REST API proxy. I’m developing what amounts to a serverless P2P coder’s notepad, but unfortunately that’s not possible. You still need a couple of servers in today’s internet – the signaling server and the TURN server. (Yay NAT.) So I already have a TURN server, but with just a few hardcoded credentials; not something I can send out along with the JS application code. So using this RFC and coturn I’ll be able to generate ephemeral credentials for each WebRTC session. Hopefully, anyways.

        1. 6

          At work I’m working on setting up a very basic Elm web app and hooking it into a servant API. If anybody knows of well rounded elm app templates that could be interesting.

          At home, I’m starting a mooc! Havent tried one in a while, but somebody on Mastodon got me interested. It covers Pharo, a smalltalk like language.

          1. 5

            My interpreter for a subset of x86 is almost done. Just call and ret instructions left, and then I should be able to start using it as a target for a Mu compiler.

            (Back-link to last week’s update: https://lobste.rs/s/odedmi/what_are_you_working_on_this_week#c_ery2wy)

            1. 5

              Earlier this year, I replaced some light switches in my apartment with Insteon’s dimmer switches, and also picked up their hardware controller. I’ve been using the switches in dumb dimmer mode for the last couple months. Last Wednesday, mostly to get it off my desk, I hooked up the hardware controller and started writing a Go library for the serial protocol. On Thursday, I figured out enough to turn on and off my lights. This week I plan on cleaning up what I’ve done and get it released onto GitHub. Look for it in next week’s thread. :)

              1. 5

                I become a real manager in a week when the first employee under me starts. I’ve been managing people for 12 years of my 10 year career † but this is the first time I’ve been responsible for “signing” someone’s paycheck. I’ve got a great set of peers and a manager of my own, all of whom are supporting me well in this new endeavor.

                Now, I need to make sure my new employee has work to do and can commit on day 1!

                † I hired and managed ~36 people while editor of my college newspaper, but beer money is quite different from “pay the bills and retirement” money.

                1. 3

                  I recently switched to Windows after nearly a decade of Linux desktops. I’ve been containerizing app in a effort to keep the base os in a clean state. I’ve also been searching for how to create a pico driver to no success but If I figure it out I plan on writing a toy OS and programming language in the windows kernel.

                  1. 2

                    Why the switch to Windows? Seems kind of backwards!

                  2. 3

                    Spending most of my work week working on a talk that I am giving in November. At home, probably spending some time doing some things in Racket: I have some ideas for enhancements to slideshow, but will likely end up working on something less useful.

                    1. 3

                      Reviewing a book on Go. Really excited because it is the way I want it written

                      1. 3

                        Job 1: Trying to figure out just how to get through locked down firewalls via just 80/443. Need to come up with a URL scheme to get the requests to our servers. Document the Salt work I’ve done so far. Write some Python support scripts. Perhaps begin the slow withdrawal here finally.

                        Job 2: QWebEngine work has been going pretty well. Initial prototyping was good, now to fold it into our code and #ifdef it for choosing between it and QWebKit. Get our internal JavaScript working completely asynchronously.

                        Home: Not much time for technical stuff. Our co-op gaming group will start Ghost Recon: Wildlands, assuming I can get it to run better.

                        1. 3

                          The migration to the new server went smoothly. Going from one sysadm to a team requires a bit more process to avoid stepping on toes–I’m glad to have put enough of a playbook together for pushcx and I to work together on admin tasks. I have a long tail of cleanup tasks, many of which I hope land in that repository this week.

                          Last week also involved live patching Xen which required shuffling around our NetBSD VPSes. We decided to disable linear (nested) page tables to work around XSA-240, since that XSA could not be live patched.

                          This week I’m hoping for time to attend to routine tasks that we don’t manage time for when we’ve got a maintenance window. If I get my head above water I’d like to spend some time working on our spam-handling infrastructure. I’ve been migrating it to a new system and not everything is working smoothly yet.

                          1. 2

                            !$work: Turning some bowls on the lathe (christmas presents). Making various jigs for the shop. Planning out springtime upgrades to the shop (it’s going to be big, I’m putting up a french cleat system, building shop cabinets, wood rack, I’m basically building the rest of the shop). I’m probably going to get started on my next plane restoration this weekend too (a #4 (which, to me, looks more like a #3) Stanley Handyman for my Dad for christmas, it’s not the nicest plane in the world, but it’s likely going to be more of a thing to look at more than use, and it was probably originally made around his birthday, so it seemed appropriate).

                            $work: We had a major hardware failure two weeks ago on friday. Worked a double to fix it. We then had to redo a release last friday. Worked a double to get that done. This week it’s paperwork, paperwork, and apparently another release. I’m also trying to steer members of my team toward building the new environment that will prevent the need for this hellish release cycle; but that takes a considerable amount of political and social effort to keep on the burner.

                            1. 2

                              This week will be working on a data center migration plan and updating open job descriptions as we are working through fundraising. A very odd combination but it’s under very odd circumstances for us to be honest.

                              1. 1

                                My data center lease is up next quarter so I’ve been doing my own share of data center related work. I’m curious about your own situation. Why are you migrating? How far between your current DC and your new one? How much time are you planning it to take? Or, rather, how much overlap between being up at your old and new DC?

                                1. 2

                                  To clarify, by DC, I’m referring to our cloud DC in AWS. But similarly, our contract with them is ending in the coming months. At the same time though, we are in the process of spinning out of $parent, which presents its own challenges. For example, even if we plan on sticking with AWS, we still need to plan to migrate to a new AWS account. Since that’s the case, I’m taking the time now to re-evaluate our cloud DC options. As for timing, we’ll want to be off the old DC at the latest by the time we’ve separated from $parent, and hopefully minimizing overlap to a minimum to avoid the additional cost of running both DCs at the same time. Likely the whole process will need to be capped to a month at most.

                                  Are you migrating physical DCs? I’ve never actually had to do that before, but sounds really interesting. Do you need to physically move all your servers too, or do you lease those with the DC?

                                  1. 1

                                    I don’t envy you your task, here. You’ll be doing a bunch of work just to get back to where you started. :-/

                                    In my case migrating physical DCs is on the table, but not decided yet. I have that “opportunity” because my current lease is expiring. We have moved data centers before, and it’s what you’d expect: turn off the equipment, pull it out of the rack, drive it to the new data center, and stand it back up. It helps if the data centers are both near each other and you can migrate work between servers.

                                    We lease our racks but own our equipment. If we didn’t own the equipment or if the data centers were too far away we could migrate over the internet by standing up both data centers in parallel. In that event we’d likely take a disk snapshot, physically carry it to the new location, and sync the differences once it was there. It would otherwise take too long.

                                    Are you in multiple AWS regions?

                                    1. 1

                                      Ah got it. Still sounds like a PITA though to get a bunch of trucks or vans to schlep big boxes around. Are rack configurations pretty standard nowadays? I don’t know if your servers operate any funky rack-aware software, but I’ve heard that can really mess things up for network software that does rack-local things. How many actual servers do you guys own?

                                      And no, thankfully we’re not yet, so data snapshots, etc. should be fairly straightforward. To be honest, I’m quite happy at this point to get to re-evaluate our cloud provider, as the first time around was less than scientific (in fact, likely to try out GCP this time around for their insanely competitive pricing!). But it’s just a bit of a nightmare in terms of keeping 24/7 services up and running through the transition and quite frankly, just creating the big Checklist of Things (TM) is making me anxious just thinking about it.

                              2. 2

                                I’m currently working on a new experimental lexer for my configuration language.

                                Currently I used a character-based state-machine garble thingy that mangles input into a valid … thing. While it works, it has some un-nice properties and feels hard to maintain, so I’ll replace it with something fancy with regex. This will probably also include a small rework of the parser stages so I can include position information in elements and give better error feedback.

                                I’m also thinking about how to implement variables and scopes, I could need some of those in my projects (mainly to shorten the configs a bit and some DRY)

                                1. 1

                                  Looking into cryptocurrency mining now that the weather is getting colder. My heat is electric so I might as well get paid to compute something.

                                  1. 1

                                    I’m working on Helmspoint, a Heroku for ML apps. Still wrestling with some image setup stuff. Will have to start deploying the application itself.

                                    I’m also working on a sushi blog post, about how delicious sushi is isn’t tied to how recently the fish was hauled off the boat. https://medium.com/torodex/the-sushi-you-eat-isnt-fresh-f3478c99eb2

                                    1. 1

                                      Learning Haskell lenses. I’ve been wanting an excuse to play with them, and I’ve now got a real use-case: I have a nice little Haskell program for manipulating data (program ASTs sent via stdio), but the bash code that’s grown around it is now intolerably slow.

                                      It’s using jq to pack and unpack JSON arrays/objects with nested loops, where we’re spawning a jq process to pull out the content of a field, spawning the Haskell program to manipulate it, spawning another jq to store the result into a field, and a few more jq and cut processes to manipulate some metadata.

                                      Hopefully by converting this to Haskell, I’ll be able to:

                                      • Replace these short-lived processes with function calls
                                      • Import the existing Haskell code as a library and use it directly, rather than calling it as a process and having to convert intermediate values to JSON and back
                                      • Remove the overhead of bash’s interpreter
                                      • Gain more confidence in the code (types, etc.)
                                      • Learn lenses (lens and lens-aeson) :)
                                      1. 1

                                        I’ll be writing new articles to my Go programming blog.