1. 19

This is 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!


  2. 10

    Working on a toy type system in Rust to help me understand first-class polymorphism, based on the papers Practical type inference for arbitrary-rank types and FPH: First-class Polymorphism for Haskell.

    1. 7

      I was given a bunch of awesome books for Christmas (thanks Dad! :D), so I’ve been reading/working through SICP and the Dragon Book - both of which have been awesome.

      I also got The Little MLer, which has been a fun dive into static typing. I’ve only really worked with static typing in Java and C++ before so it’s interesting to see how much more flexible a type system can be.

      As for my compiler projects:

      • My x86 assembler/compiler backend has received a lot of work over the last week. It can now generate ELF executables (which was fun, considering how little documentation there is on the subject), and I started working on an IR for it (got stack-based variable definitions and simple arithmetic working). I’ve been reading the chapter in the Dragon Book about IRs, but I’d also be interested if anyone has examples of minimalist IRs (like QBE) that I can look at for a reference.
      1. 4

        As someone who has used the Dragon Book as both a student and a lecturer, and as someone who now works on Swift and Clang/LLVM, I suggest that if you read it, read another, more modern book on compiler construction (like one of Appel’s books). There’s nothing wrong with it, but unless it has been radically overhauled, it’s rather outdated. As I recall, it puts a lot of emphasis on lexing/parsing, which isn’t really where you’re going to spend a lot of time. (That said, they’re important! Don’t skip them.)

        1. 2

          are there any good books out there that go over things like incremental compilation or error recovery for parsing and the like? They seem more relevant than ever

      2. 4

        MicroPython for ESP32 which I’m doing some hacking on and will be talking about at the Open Hardware Miniconf at LinuxConf in a couple of weeks …

        1. 4

          Going to try to write a better AI for QuickGo as GNU Go can’t seem to be configured to play capture-go. Open to suggestions/tips from anyone with experience in this area!

          1. 4

            Vacations are doing me a great service. I still have a week left and i intend to use at least a few hours to play Final Fantasy XV, which was SO worth the wait.

            Otherwise, i started having happy thoughts about difficult ideas; in the new year I’d like to work on causal consistency in heterogenous distributed systems. By heterogenous, i mean a service consuming one or more services that may consume themselves more services. Sounds like a fun problem. There’s a few papers on the matter that i have to track down. But yeah. Fun.

            1. 4

              Writing some Erlang code to add Swagger to a RESTful API for a social network app for dogs and dogsitters. Also, conducting yearly appraisal meetings with the employees at my company. Finally, if I manage to find time, I’ll start writing Inaka’s REST guides

              1. 1

                Do dogs use social networks that much?

                1. 1

                  Do IoT dog collars/pet wearables count? Maybe there’s a way to repurpose pets.com!

              2. 4

                I’m taking an old project out of the drawer and I’m determined to finishing and launching it.

                It’s nothing fancy, just polishing a bunch of scripts I’ve been using for the past few years to receive RSS feeds over mail.

                There are similar services out there, but mine sucks less :) and has some interesting new features.

                I still don’t have a landing page, however, if you’re interested, let me know! I’ll be publishing it as a SAAS app and, if possible, allowing full configuration over email (like mailman)

                1. 4

                  Working on Tulip Node - technical analysis indicator library for node.js.

                  Also adding features to my stock charting software, Tulip Charts, so I can publish it soon.

                  I’m also working on cleaning up my C code for the incomplete beta function, and writing it up to publish on my blog. I haven’t seen code for it that’s short, easy to copy-paste, and liberally licensed, so I wrote my own.

                  1. 1

                    Published the incomplete beta function C code: https://codeplea.com/incomplete-beta-function-c

                  2. 3

                    I’ve started using Rust to write a blog to familiarize myself with diesel and rocket. My end goal is to create a tool similar to rails for quickly designing websites.

                    1. 1

                      What kind of tool? A rails-style command line tool? Or a framework?

                      1. 2

                        More like a rails-style command line tool.

                      2. 1

                        I’ve just started using rocket and diesel in the last week — I didn’t think I’d be seeing STL-type error messages again so soon!

                      3. 3

                        Just coming off holiday vacation, which was great. Really needed the break tbh. Unfortunately, also just discovered that our landlord is selling the house we’re renting, so we have to move by the end of the month. Welcome to 2017! :(

                        I did some hacking over the holidays on the RTL8710 to get Rust up and running. Was a fun little project, hoping to dedicate some more time to it in the future. Particularly since I have no idea what I’m doing and it was a great learning experience :)

                        Spent a bunch of time tuning up my astrophoto mount and doing some shakedown runs. Need to pack it all up for the move, but managed to acquire my first narrowband image which was exciting.

                        And finally, getting back to working on my podcast (it’s a show which does quick overviews of CS algorithm/data structure papers). Trying to build up a backlog of completed shows before I go live, so that I can have a buffer in case I miss some weeks.

                        1. 2

                          At work, I’ll be catching up on all the stuff that has been sitting around waiting for attention. I’m also going to try and set up a separate user account for work stuff on my desktop machine, see how well that works. Otherwise, my wife and I rather than come up with discrete resolutions, decide on a theme for the year. This year, it’s “back in the habit”, and I’m going to start building up better habits. This morning, I went for a long walk; tonight, I’m going to do guitar exercises. I also am going to finally get Hakyll running and start writing words more than once a year.

                          1. 2

                            Recently I’ve done a lot of travelling to see family and friends over the holiday period. This week most of my uptime will be taken up by work-work. Apart from that I’ll continue trying to find a different job. Maybe I’ll finally get round to starting a thread about it.

                            When I have time, I’ll help out with GoshawkDB (“a distributed, transactional, fault-tolerant object store”). The DB only exposes a few operations, which makes it fairly easy (IMHO) to understand and reason about, but we want to build some higher-level structures on top of it to make it more practical.

                            1. 1

                              I poked around the website a bit and can’t find a description of the transaction protocol or high level descriptions of the implementation – short of reading the code, could you provide some pointers on where to find things like this for GoshawkDB?

                              1. 2

                                I think the best place to start is the CodeMesh talk; you can find links to the video and slides on the documentation page.

                            2. 2

                              Working on adding support for Bitbucket and GitLab repositories to https://libraries.io

                              1. 2

                                Vacation time! I hope to finish “Yesterday’s Kin” and improve my Haskell-fu

                                1. 2

                                  Over the winter break I worked on a little CLI battery status indicator, battstat, that works on Linux, macOS, and OpenBSD. It could still use a little bit of work especially for machines with multiple batteries.

                                  This week I’m determined to get a blog up and running because I’ve been wanting to brush up on my terrible writing skills. I’ll probably end up going with Ghost running in a docker container since my homepage is already running in a nginx container. Of course the issue with exposing multiple web containers on a single host is port conflicts so I’ll have to setup another nginx container as a proxy to sit in front of the services.

                                  1. 1
                                    • Defining annual goals for both my personal and professional life
                                    • Setting up my brand new Surface Book for work
                                    • Reorganizing my office to include spaces for exercise and non-screen thinking
                                    • Getting back to my novel writing
                                    1. 1

                                      Haskell book by Chris Allen, traveling to see my parents, and reading lots of history.

                                      I’ve been listening to The Great Courses audio lectures on Audible during my commutes. Better than tech podcasts IMO.

                                      1. 1

                                        Back to work for me, trying to remember how computers work from the get go. Realised this morning that I haven’t touched a computer over the festive period, which surprised me but I don’t think is a big deal really. Probably shows I need to do more away from the computer on a regular basis more than anything.

                                        I did write a Readme for a little cli tool I want though - to autocomplete hostnames based on predefined patterns and freeform input. ha, looking forward to implementing that slowly.

                                        1. 1

                                          After the holiday’s stop, a time when most of my projects were on hold (a good 2017 for you all), this week I will learn and play a little more with rust, in order to be more comfortable with the language. I hope later this month to start a real project using rust.

                                          1. 1

                                            Back to work, but now with a new Agile Methodology™. Anyone have experience with Spotify’s approach (pdf)? It looks like that’s what I’m going to be dealing with.