1. 14

What are you doing this week? Feel free to share!

Keep in mind it’s OK to do nothing at all, too.

  1.  

  2. 17

    I’m continuing to work on my safe programming language implemented in machine code, that maps mostly 1:1 to machine code (paper [pdf; 25 pages]; repo; blog post). The language is almost all done. It performs almost zero type- or other checks, but it should already be more convenient to work with than machine code purely by automating all the stack management for me. I’m planning to start kicking the wheels on it with some simple programs. Maybe a 4-operation calculator for starters. Then I’ll return to building it. Here’s what my todo list looks like:

    unsafe language with just int types

    [X] parsing function headers
    [X] code-generating primitive instructions
    [X] function calls
    [X] arguments
    [X] return values
    [X] local variables and their reclamation
    [X] register locals and shadowing
    [X] blocks, loops and early exits
    

    unsafe language with user-defined types

    [X] compound types: `addr` and `array`
    [X] `type` for user-defined product types
    [X] creating types on the stack
    [X] `index` for accessing inside array types
    [X] `get` for accessing inside product types
    [ ] `handle` for heap allocations (fat pointers)
    

    safe language

    [ ] types in primitive instructions
    [ ] types in function calls
    [ ] register checks
    [ ] types in `get` instructions
    [ ] `ref` in caller can map to `addr` in callee
    [ ] register lifetime checks in conditionals
    [ ] register lifetime checks in loops
    [ ] check for function result initialization
    [ ] code-generate runtime checks for array bounds
    [ ] code-generate runtime checks for heap lookups
    [ ] checks for the restricted '*' operator
    

    Compare 5 weeks ago.

    1. 12

      The “quarantine” here in Barcelona, Spain has actually been kind of good for me, doing lots of things I didn’t have time for before. Hope I can create a routine so I can continue doing it after all of this ends.

      Personal

      • Have started doing exercise three times a day and meditating twice a day.
      • Have started playing the mandolin.
      • Studying Japanese.
      • Start work on my blog.
      • Maybe continue learning 3D modeling with Blender.
      • Understanding more of NixOS.

      Work

      • Nothing very interesting, working on a project that should be finished in two weeks.
      1. 1

        It’s sad that it took a pandemic to bring this about but both my wife and I are very much enjoying the imposed 100% WFH time.

        Amazing what you can do when you get back 2+ hours a day of not commuting.

      2. 6

        I’m in the US, so we’re just getting started working from home. Video conferencing equipment is harder than I thought—I’ve settled on a standalone pair of headphones and the calibration mic that came with an old home theater receiver. It actually works surprisingly well and sounds pretty good. I didn’t have a comfortable pair of headphones with their own mic lying around, so this improvised solution will have to do.

        As far as software goes, I’ve been pleasantly surprised with Discord (more so than Skype or Zoom). The audio, screen sharing, and text chat features work pretty well.

        1. 2

          Glad your improvised setup is working well for you. I’m really enjoying the Bose NC700 noise cancelling headphones for remote work but they’re spendy and Bluetooth which some people have justifiable concerns over.

          However they work great on Windows, Mac, Linux and IOS which is a nice touch :)

        2. 6

          unfortunately still in the office at work, but there are rumblings that’s going to change, so I’m probably going to compensate for not really being able to go out places by taking the dog for nice long walks and letting her get out and about

          1. 6

            Starting paternity leave. Fifth kid was born today. Taking three months off. 😄

            1. 5

              Keeping up with the quarantine in Greece. Trying to manage and balance work and family. Small children do not react to lockdowns well.

              1. 5

                Schools have closed in The Netherlands as well as my wife’s work (university), so we are working from home while trying to maintain a balanced program for our daughter (where we can work, but she gets at least some varied school-like activities). Today was ok, but we have now written out a program for her to structure things a bit. Since we are not in full quarantine (yet?), I will try to do a bike ride with my daughter every night. It’s pretty quiet after 18:00, so it’s an easy way to get some exercise and fresh air while maintaining social distancing.

                It’s interesting to watch other people. Many people seem to understand the urgency of the situation and act accordingly, while others pretend that nothing is going on and clearly do not do social distancing. Or as someone aptly said on Twitter:

                Imagine being in a global war where all we need to do to win is stay at home, eat a pack of noodles and binge watch Netflix and we’re still somehow losing it.

                1. 5

                  Hopefully starting a new project at work this week.

                  Making much-needed edits to my visual novel.

                  Playing more Overwatch once part two of the current event unlocks.

                  And of course spending some quality time with my partner.

                  1. 2

                    Playing more Overwatch once part two of the current event unlocks.

                    So many great skins in this event!

                    I’ve been waiting for this event since I started maining Wrecking Ball last year, mostly for the High Roller skin and the hamster zoom-in highlight intro :)

                    1. 1

                      I grabbed the new Zarya and Pharah skins right away.

                      1. 1

                        Decent Zarya skins? What a world!

                  2. 5

                    I work in PaaS company and I plan to make easy tutorials on how to run popular open source projects on it. Now I am playing with Grocy, mainly to be able to hoard responsibly without any waste.

                    1. 2

                      Now I am playing with Grocy, mainly to be able to hoard responsibly without any waste.

                      ▲ I and my friend thought about idea on developing an App like this. Grocy definitely looks worthy to give a try!

                    2. 4

                      Last week at where I work. I chose an interesting time to jump from a mid-sized, rather safe company to a startup. Mostly remoting now. With 2 or 4 children.

                      Practicing nim and rust in exercism.io. I’m finding Nim a much more fun language than Rust right now. Many things in Rust are just difficult. There are fine reasons why they are, but it makes the whole experience very awkward sometimes.

                      I have a massage appointment this week, and I’m wondering whether it’s safe to go. I’d rather go, because local businesses are certainly in lots of financial trouble and I’d like to not make that worse by cancelling… but there’s some asthma in my close family. Also my grandparents are over 90.

                      1. 7

                        If you have the financial resources, consider paying them and just not going. It’s going to take everyone staying away from one another to beat this thing.

                        1. 5

                          Thanks for introducing to https://exercism.io/ It Seems like an interesting and community-driven place to sharpen your tools. Planning to give a try!

                          1. 2

                            Could you share some examples of some of things you found difficult to do with Rust? I’m curious as someone just starting with it

                            1. 2

                              One of the exercises was implementing a singly linked list using boxed options. This is a bit brutal task for a Rust programmer. The implementation is basically shown here: https://rust-unofficial.github.io/too-many-lists/second-option.html

                              It’s easy to type from an example, but try to figure all that by yourself as one is supposed to do when exercising. Yikes. Of course, every time the Rust Complainer complains at you, it’s for a very good reason. But figuring out what to do about it can be a bit harrowing experience.

                              Contrived example. I get an error that’s roughly like this if I remember correctly:

                              Expected: &Option<Box<&Node<T>>>
                              Got: &Option<Box<Node<T>>>
                              

                              Try fix it, compile again:

                              Expected: &Option<Box<Node<T>>>
                              Got: &Option<Box<&Node<T>>>
                              

                              This can lead you to a endless maze where the only thing that’s certain is that Rust is too difficult for your tiny tiny brain.

                              But as I said, a linked list (and other general data structures) is probably a bit brutal task for even a moderately skilled Rust programmer. I’m pretty sure you can be an effective Rust programmer in 99% of the tasks out there without knowing how to do this stuff from scratch yourself.

                              1. 2

                                Thanks for the reply! I can understand being frustrated. I think there’s a mantra of sorts that asks one to “lean on the compiler” and let it guide you. Still, the error messages can be arcane and confusing. In any case, your example reminded me of this post about linked lists in Rust a friend of mine shared with me as I was starting to learn about a week ago. I haven’t gone through it yet, but it seems perfect for your use case ;)

                                1. 2

                                  I think there’s a mantra of sorts that asks one to “lean on the compiler” and let it guide you.

                                  Yeah, that works wonderfully if you’re almost doing the right thing. If you’re way off (like I was), the compiler will be just as confused as you are. Obviously.

                                  1. 1

                                    Your link seems to be a bit off. It points to Warp.

                                    1. 2

                                      Corrected! Thanks.

                                  2. 2

                                    Eh, also got annoyed by similar “bistable suggestions” in Rust error messages when I tried learning it recently. I’ve set it aside since, also because of other annoyances, and am having fun with Nim too ;) Though I think I will retry with Rust at some (unspecified) time in the future. Possibly more than once. It took many failed retries until I fell in love with Vim, and only when kinda forced to by life. It would be awesome to also have Rust as a tool in the toolbelt eventually, to conquer it and become fluent.

                              2. 4

                                Came across SmartOS during the weekend and actually gave it a try. Now I’m super excited about it and got into the “I got a new hammer and everything now looks like nails” so I’m trying to stop myself from wiping all my headles machiness I have at home and setting it up on them.

                                Tech
                                • Moving from linux+windows multiboot to linux with windows as a VM
                                • Repartitioning all the drives, setting up bcache
                                • Setting up emacs running as a daemon to sync google calendar to org files
                                Personal
                                • Use the quarantine to rethink the things I do at home and come up with some kind of routine
                                  • Start meditating
                                  • Start journalling
                                1. 3

                                  I want to get nomad running VMs on OpenBSD machines. SmartOS seems cool, but I really want my foundations to be as hard on security practices as possible.

                                  1. 3

                                    Nomad looks cool too. Sadly using it to deploy stuff to three or so machines felt like a huge overhead.

                                    Do I get it right you want to make nomad deploy machines on those openbsd boxes using vmm?

                                    1. 2

                                      Exactly. I want to do that because the less time I ultimately spend in upkeep and scheduling my boxes, the happier I’ll be.

                                      1. 3

                                        That’s understandable. At what scale are you operating if you don’t mind me asking?

                                        1. 2

                                          Tiny, which is where tooling so I don’t do the same thing over and over and over again is even more important.

                                          If I were being paid to operate my three servers I might enjoy the job security (if I ever enjoyed such things, I prefer automation out of a job) but when the servers are incidental to my life, I really need to automate them away.

                                  2. 3

                                    How do you like bcache? I love ZFS but there’s so much extra legwork getting it set up with Linux, since everyone has to tiptoe around the licensing issue.

                                    1. 3

                                      To be honest I’m not sure yet. I use a 1tb spinning rust as the backend device with 30gb partition on an ssd as cache. I lumped these two together and put xfs on top. It seems to work just fine, but I haven’t checked if it actually helps with performance or not. From the day-to-day usage (without any measurements) I probably couldn’t tell the difference so I’m starting to wonder if it is worth it.

                                      What I surely don’t like is the tooling around it, or the lack of it. There’s a tool for formatting the backend and cache devices, then there’s a tool to dump the superblock and unless I’m missing something then that’s it. The rest is done by writing values into places in /sys, which doesn’t feel particularly user friendly and I find it rather error prone.

                                      ZFS sure is nice, but it is a bit of pita on linux unless you’re on a distribution which doesn’t really care, such as ubuntu or nixos.

                                  3. 4
                                    • Trying to keep a sane routine while being stuck at home all day.
                                    • Baking or cooking things to do something “analog”
                                    • Reading books to distract myself from twitter/news
                                    • Working on a write up of a redesign of my blog that I just completed
                                    1. 4

                                      Working from home, trying to build out my new routine. Otherwise business as usual at $WORK.

                                      • Adding back in exercise, going to go for a run today and do an online yoga class tomorrow. Hoping to cut gym costs permanently.
                                      • Cooking at home more–got super reliant on convenience food at work, so I’m trying to get back to less waste and healthier meals.
                                      • Keeping up on a clean house–if you’re here more it’s worth the energy to make it extra nice.
                                      • Knitting a pair of socks, maybe 30% done. Planning to start a cowl next.
                                      1. 4

                                        I’m writing some editor plugins for a command line utility I wrote. I’m pleasantly surprised how easy it is to start making a Vim plugin. The process for VSCode seems very heavy by comparison.

                                        Not sure which will be easier in the long run though! ^_^’

                                        1. 1

                                          In an off chance that you haven’t found it yet, I thoroughly recommend https://learnvimscriptthehardway.stevelosh.com/ , I found it indispensable whenever I need to dabble in vimscript.

                                          1. 1

                                            Yup, I did find it! It’s suuuuuuuuuuuper helpful! 10 out of 10, would recommend.

                                        2. 3

                                          Hacking on NixOS and social distancing. Hopefully I can mitigate some stir-craziness, never thought I’d get that from this whole ordeal.

                                          1. 3

                                            I’m currently refactoring some work from an old game jam project. I’m finding this pretty enlightening: with some distance from the original writing of this code, I’m able to find new ways to refactor this and get something clean and ready for new features.

                                            I’m also looking into a new laptop, but…. keyboards, hard to figure out what would be best

                                            1. 3

                                              Working from home, travelling to see the family for the week (and more if we get further lockdowns), but most interestingly, I’ll be rewriting an existing Vue.js frontend to Svelte (https://svelte.dev), which is making my all giddy just thinking about it

                                              1. 1

                                                When I’ve done frontend in these past few years I’ve mostly used React, what does svelte bring to the table?

                                                1. 2

                                                  Small bundle sizes due to Svelte being a compiler instead of only a library, but what I like most is that the code you write actually looks reasonable, and doesn’t look like you’re frantically trying to work around JavaScript’s shortcomings. Check out this login form for example — it’s fully reactive: https://marisa.cloud/aun/tome-svelte/src/branch/master/src/pages/Login.svelte

                                                  1. 1

                                                    ++ on the small bundle sizes, and when paired with rollup it’s definitely been a space savings for us. I’m really looking forward to it getting official Typescript support.

                                              2. 3

                                                $work: Tons of big projects, not much I can talk about, all very exciting.

                                                !$work: Working on a fun project way out of my comfort zone (computer graphics). Following along with a pretty faithful translation of PBRT to Rust, and noting all the places where I think something different should happen. It’s been interesting, there’s definitely an occupational hazard I’m experiencing where I view everything from the POV of an Ops guy. Lots of questions about different ways to split work across lots of machines, thoughts about making things very complicated. Part of my goal with the project is to help break my ‘Start it and never finish it’ habit, so the discipline of just following along with the book and implementing things faithfully is pretty good practice for just getting something done.

                                                Other than that, mostly just enjoying having the missus working from home and having a two-legged officemate (my usual four-legged officemates are similarly happy). Also washing my hands a lot. Soap and Warm water, 20 seconds, Go wash your hands!

                                                1. 3

                                                  This situation is like having a browser tab that I can’t close, that’s running one of those CPU heavy Javascript things that makes the computer’s fan whir. Doing the best I can, basically.

                                                  1. 3

                                                    @Work I’m working on some testing tasks.

                                                    @home I’m just starting on a Lisp library to show OpenGL animations of vector streamlines that show path finding/obstacle avoidance algorithms like the troop movement in Clash of Clans. I’m just getting started, and have the little bit of OpenGL boilerplate out of the way, and now I’m thinking about how these algorithms might work. I’ll make an attempt or two, and then do some research…

                                                    I also have some bike maintenance to do and would like to get some Spring cleaning and decluttering out of the way.

                                                    1. 3

                                                      Figuring out how to improvise a way to make the classes I’m teaching go online for the 2nd half of the semester. Classes cancelled Mon/Tue for preparation, w/ online teaching starting Wed.

                                                      1. 3

                                                        Writing a relational algebra to (My)SQL compiler. Adding proper errors messages and warnings to a C-like compiler. Working on a Minetest mod. Those are class related things. For my free time I’m beefing up a personal object storage of mine and integrating it with other personal web services to save money.

                                                        Too much.

                                                        Also, waiting on Unicomp’s tenkeyless to release.

                                                        Also, getting my butt beat on counter strike. Thought I would reinstall for quarantine.

                                                        1. 3

                                                          We were already pretty much quarantined from being stay-at-home parents of an 8 month old. So I’m doing that, and for a couple of hours a day I’m doing woodworking.

                                                          I’m making a sturdy workbench. Since yesterday I’m basically done with the top, which is a big chunk of glued-up 2x4s, hand planed to a nice flat surface. I haven’t exactly decided on the plans for the base, but I have some ideas. I want to use drawbored mortise and tenon joints for the long stretchers to avoid having to get huge clamps. And I’m waiting for a leg vise screw that I ordered, and I plan to make the vise body from some maple, so I’m looking forward to more hand planing…

                                                          1. 2

                                                            I need to run another transmission line so I can run two amateur radios at once(one VHF/UHF for local traffic, and one HF for regional or global traffic). With everyone hanging out at home the bands should be busy!

                                                            Also I just learned that Web USB is a thing https://developer.mozilla.org/en-US/docs/Web/API/USB and I want to dig into what’s possible with that.

                                                            1. 2

                                                              Home-working on an app for Oxford’s environmental change institute, and setting up my Amiga 1200 which I liberated from my Dad’s loft last week.

                                                              1. 0

                                                                What stack are you using for the app?

                                                                1. 1

                                                                  I’ve got a Python tool to turn a spreadsheet of data into a SQLite3 database, then a react native app on both android and iOS which visualises the data.

                                                              2. 2

                                                                While I look for work during national emergency, I’ve been creating a tiny MIDI interaction library in Rust for my Novation Launchpad (code). I have a lot of experience working with it from using PureData in the past but Rust opens up some new fresh challenges that I look forward to (MPSC threads for I/O soon).

                                                                Personal

                                                                • Ring Fit Adventure on the daily
                                                                • 99 Ranged grind in Oldschool Runescape
                                                                • Website work with Rust/Zola/GitLab CI
                                                                • Modify and update my NixOS configurations Git for my three devices
                                                                • Attempt data recovery on a 2TB portable HDD
                                                                • Update my zsh aliases/functions after ignoring it for ~2 years
                                                                • Finish working on a Ruby/Wii Homebrew game library checker script

                                                                Hope everyone else is safe and well.

                                                                1. 2

                                                                  The good: able to work from home. Can use my wife’s LG 5K display. We are healthy.

                                                                  The hard: can’t go to gym, need to pivot to bodyweight stuff. Wife is doing a lot of childcare on her own. Need to start waking up before everyone to get more hours in so I can be present with them.

                                                                  1. 2

                                                                    $work: First day working from home, tbh I never quite liked that. I feel so much better working in an office, my head seems to need a clear separation between work and home.

                                                                    $home: I feel I should really take more notes, and document better. I compared a couple of apps and set up jrnl.sh some time ago, but never made it a habit. I was researching what screen I was going to order for my new pc, but since the whole corona thing I’m wondering if I should order or wait for a bit and see how the economy will react in the longer run.

                                                                    1. 1

                                                                      I used to struggle massively with the transition from work -> home when I was in the same house. Finding something I could bind my “work” time to was useful. Currently I’m lucky enough to have an office that I can mostly ignore if I’m not doing $work and that’s enough separation for me. Previously I’ve done things like get changed or swap jumper/hoody at the end of the work day as a way to tell my brain, “we’re done with work now buddy”. Still a struggle though.

                                                                    2. 2

                                                                      Quarantine party!

                                                                      Just kidding. No party, just WFH.

                                                                      1. 2

                                                                        $work: keeping several interview pipelines open, assuming they can actually move into video interviewing. With the prospect of WFH even if I get a contract, I finally committed to a new desktop system for dev/video-editing/rendering last week, where the “need to run VMs” and “need to compile faster” are fig-leafs for the 32GB RAM and Ryzen 7 3700. Now to hope they get here before Seattle locks the city down even further. Practicing up with Execute Program in the meantime.

                                                                        $notwork: I have a Switch but it’s impossible to get a copy of Ring Fit Adventure at this point, so Breath of the Wild in between stealthy walks outside. I emptied my closets to find all of the video discs I’d gotten from sales or used-stores, so I think I have enough for at least the next six months.

                                                                        1. 2

                                                                          I signed up for and am very much enjoying Reuven Lerner’s Weekly Python Exercise.

                                                                          Also continuing to slowly work on Open Parlour - the underlying data layer is looking pretty good so it’s time to start building routes, sticking with my test first strategy.

                                                                          1. 2

                                                                            In my Nim-based no-JVM Android .apk build toolchain, I finally managed to get first simple graphics to display on my phone (weeeeeee!) yesterday evening. Really awesome milestone! I have a goal to try and write a very basic “Flappy Bird” clone as a fun intermediate demo and major milestone; refreshingly simple in terms of the game’s actual logic & code, while showcasing tons of important internal features & subsystems of the toolchain. And (very important for a hobby project) being a fun thing to be looking forward to! \(^v^)/

                                                                            1. 2

                                                                              Self isolating and trying to figure out how to long term work remote out of my bedroom with two laptops and a giant monitor from the office, while my wife, four year old daughter, and I all try to maintain our sanity in a two bedroom apartment.

                                                                              Probably nothing programming related outside of my day job because meetups are now all virtual (and virtually the same as a work call) and I’m already staring at a computer for 8+ hours a day when my family is otherwise 5 feet away.

                                                                              1. 2

                                                                                Self isolating and trying to figure out how to long term work remote out of my bedroom with two laptops and a giant monitor from the office, while my wife, four year old daughter, and I all try to maintain our sanity in a two bedroom apartment.