1. 17

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!

  1.  

  2. 5

    My programming languages class is coming to an end next week. All that’s left are the students’ final project presentations, the last lab, final exam prep, and the exam itself. So this week is going to be all about grading. I want to have all the grading done prior to the final exam, that way I’m not rushing to grade a bunch of stuff between the exam and the final grade submission date.

    1. 4

      Working on a PDF parser in Lua which is a misguided plugin for my highlighting hex viewer, and making some progress with my MPD client so that I can finally uninstall Sonata/ario for good.

      1. 4

        I’d like to get started on a FP PL interpreter, so I am learning the CEK machine. Current plan is to a-normalize and then run that on the CEK machine.

        Am starting with the semantics first because I’ve come at interpreters from the down and dirty perspective previously, and I’m ready to learn.

        Also, keeping the kid alive. Already at 3mos.

        1. 2

          This thing:

          http://matt.might.net/articles/cek-machines/

          Interesting stuff even though not my area. I like how the progression of concepts is straight-forward except for the Pierce part. I keep thinking that will be a heavy-ass book to read and putting it off.

          1. 2

            Yep, working off his tutorials on this. It is fun to start with a simple machine that only knows how to halt and then extend it with each form to really grok how it works through computations. It is rather beautiful: it uses continuations to preserve the callstack during evaluation, which lets you (among other things) easily surface first-class continuations.

            Agree on the Pierce book. I have it on my bookshelf but still haven’t made headway on it. I like the idea of it but it feels like it expects a graduate course to accompany it.

            1. 1

              Yeah, I still dont even know what a type is or how Id build a type system. Most works like Pierce’s are really math-heavy or do FP. You know any simple, easy tutorials for imperative stuff?

              I will say, though, that your description of building up computation from the ground up does seem awesome. I was just studying something like that in the Milawa, verified prover by Davis that works from human-verifiable logic upward in layers to finish at first-order prover.

              1. 3

                Type systems are completely opaque to me, and I hope to hobble through one. I appreciate them while also recognizing they can be quicksand when tinkering around with a language.

                Quite interested in trying a layered approach to building a PL as a way to cut down on LoC, which really means multiple languages/IRs involved. I’m also aware this approach is not at all new, but I’m using it as a way to try to think more imaginatively about computing, as opposed to simply throwing more code at every problem that comes along.

                1. 2

                  I remember I know some basics of type systems for imperative languages.

                  For an imperative language, I’ve always annotated the AST with a type field that I fill out after parsing and before type checking. (You can also transform the AST into a typed variant if your language prefers that). Type checking behaves like evaluation, where you’re recursing through the structure of the program, except this time you’re verifying that types match up.

                  You can extend this basic system with more capabilities, but from what I can see, the gap between a simple type system and something like System F is…nontrivial.

          2. 4

            Trying to wrestle ffmpeg into our framework, to take advantage of their network video capture capabilities. We’ve been using it to read/write movie files for a while now, but just beginning to take advantage of the amazing scope of the project.

            Might even sign on to do some contracting on the side today too. I have my first daughter going to college in the fall so every little $$$$ helps. Any hints on learning Salt Stack?

            1. 4

              I am funemployed between jobs this week, so I will be working on a few small projects that I have accumulated through the last approximately 5 to 8 years. One of which is to prepare my home office to be a real home office, as I will technically be a remote employee in my new job.

              I think the first up is a very simple one day project to create a parser for the keepachangelog format in a jvm language, probably Java with a Groovy wrapper for Gradle integration.

              I also want to work on a Reddit bot that will search for meetup.com links and post more information about the linked Meetup as a comment.

              Another on my list is a informal job offer sharing bot for Slack. People can tell the bought their offer details and then the bought will ask the question to the room so that people can ask for evaluation of an offer’s terms anonymously.

              I might also do some additional analysis of the Pittsburgh Code and Supply compensation survey data.

              I had thought about working on an Audio over DNS solution, but my preliminary research into it showed it was not something I could probably do inside of a week.

              1. 4

                Had an offer accepted on a house, so full steam ahead with lining up the pieces to make that happen now. Also appear to be doing all-the-things outside of work this week, culminating in a weekend of sporting activities. Friend of mine had the idea of doing a half-ironman-ish distance over three days, so we’re sea swimming on Saturday, cycling 65 miles in a hilly sportive on Sunday and then running on Monday. Should be … painfu^Winteresting.

                For those of you following along with my hetzner-meets-smartos experiments, I solidified the networking & got the load balancer zone up and running via puppet. Now to move actual things like my static & php-driven websites across to it, then I can move sites I host for other people and cancel my other servers!

                1. 4

                  Wrote a trivial memory leak tracker for a deeply embedded system. Works very nicely.

                  Tried to do it in gdb/guile…

                  • Maybe I should have been on the latest guile, (I’m on latest gdb and 2.0.11 guile) but it seemed a little flaky.
                  • The guile/gdb documentation needs a bit of work to make it a bit friendlier to a noob. Maybe I should submit something.
                  • I had most of the infrastructure I needed in ye olde gdb commands so eventually backed off and used that.
                  • Having been living in the world of Ruby and D and Turtles all the way down languages…. I just expected sort to work on a list of (string.number) pairs. It doesn’t. Turtles all the way down languages really are easier.

                  Continuing to wade though Patterns in Network Architecture… it’s a hard slog. It needed an editor to whack the author over the head and say, “Do you really expect your readers to have read and still care about a twenty year old paper!?”

                  1. 4

                    I’m working on a side project:

                    https://sftpplease.io/ which will be a super simple and to the point service. At the moment it is not open the the public and there is polishing to be done, my sftp backend is working, though probably has lurking bugs so want to do a full code audit and some fuzz testing.

                    One issue I need to tackle is finding an appropriate way to get terms and conditions for the site written. Another issue is getting alpha testers to mess around with all sorts of sftp clients. I also want some help making my scp implementation in Go and would be willing to pay while I have other work to do :).

                    1. 3

                      My fun side project is https://github.com/m50d/tierney , a hybrid free applicative/monad in Scala designed to be explicit about the difference between parallelizable and serial calls. I’m struggling with partial type constructor unification not working as I’d like though ( https://github.com/scala/bug/issues/10310 ). I think I’ll have to write old-fashioned Unapply instances, or give up and switch to Haskell/Idris/similar.

                      1. 3

                        I’m trying to finalize the scripting interface for Tulip Charts. I really want to release a public alpha soon. I’m trying to find the right balance between brevity and simplicity and elegance fro the API. In the end I guess I’ll just need to pick something and go with it.

                        1. 1

                          Why wait to open source it if that was your intention from the start?

                          1. 1

                            No real reason, other than it’s less work to publish it later. I’ll probably put it up on Github soon anyway.

                        2. 3

                          I’m working a little bit on PISC, trying to wrap the Key/Value part of Storm into something that would be useful for chatbots of various flavors. I’ve also been pondering how to take PISC into the multiprocess world in a mostly safe way. Current plan is to have each type indicate if it’s safe to send across a go channel, and/or implement copying for types that aren’t safe to send as is, and errors for types that can’t be sent across a channel at all (These will likely be closures around Go types like file handles that don’t have a mutex keeping them go-routine safe).

                          1. 3

                            Got a talk accepted at the AISB Serendipity Symposium in London next week. A historical talk on how the word (and arguably sometimes the concept) “serendipity” shows up periodically in AI planning systems to mean various things. Abstract here on Twitter b/c they haven’t put up abstracts on the website yet.

                            Finally found a suitably low-tech and cheap backup method I like. I take periodic tar.xz snapshots of directories I want backed up (Maildir, files, etc.), using cron, and push them to B2 using rclone. Then occasionally manually prune snapshots I don’t need anymore (may automate that at some point). I considered a fancier incremental backup method, but I like the fewer moving parts approach of self-contained snapshots like Maildir-20170605.tar.xz, and both transfer and storage are cheap enough these days for the size of data I have that it’s fine.

                            In further trivial fiddling with my academic publications page (see last week), I’ve started sticking images on the Abstracts pages to make them less monochromatic and boring blurbs of text. Example. Welcome 2 the multimedia future of cyberspace!

                            1. 3

                              Engaging in a rewrite of a Perl CLI framework to be smaller, simpler, less magical (more explicit), harderfasterbetterstronger, and most importantly of all, fatpackable. It’s almost ready for a first release.

                              But sadly, that’s mostly last week’s work. This week will mostly be spent chasing deadlines on a $WORK project about which I may not speak.

                              1. 3

                                I am finishing up an internship in this and the next week. It’s been the ground work for my Bachelor’s thesis, which will be at the very same institute. The internship was mostly concerned with gathering data but for the thesis I’ll get to analyze it with machine learning. I am really excited for that part.

                                Also, since I am about to get my first degree I am thinking about where I am going to do my Master’s. I am thinking about applying to the University of Bonn since they supposedly have an amazing theoretical focus in their studies but I am not sure if I am able to keep up, or get accepted in the first place, anyways – I am currently enrolled in a university of applied sciences. Maybe I will enroll in a Technical University in Germany. Currently I am thinking about TU Munich or TU Darmstadt.

                                1. 3

                                  For my job I’m rushing to get a bunch of stuff into MAGDA for the end of June - primarily and authentication and discussion mechanism for datasets.

                                  Also been making a surprisingly large amount of progress towards the first MVP of my side project NicheTester - an injured wrist keeping me out of Judo has lead to a bunch more free side project time :).

                                  1. 2

                                    Your project looks great.

                                    1. 1

                                      Thanks :D

                                      1. 1

                                        I can see a paid path for the future to export the fake site to a real one using something like shopify. I’ll be curious to see if any companies people validate on your platform take off.

                                  2. 2

                                    Couldn’t complete my distro due to disk space issues. Looking forward to finishing that this week. I believe I’ve recovered from my knee injury sufficiently to start streaking again.

                                    1. 1

                                      I had same issue albeit slightly different: disc of an old one broke so Im making a LiveCD/USB for it use remaining CPU life for heavy computation. The backup was too full, though. Another day..

                                    2. 2

                                      Well, as of right now, I’m making an effort to be more involved on Lobste.rs :-)

                                      As for what I’m actually working on, it’s a couple of things:

                                      • I’m continuing the march to at least reach ‘useful for my own site’ status on my static(ish) site generator. Text based files are handled already (md, scss/sass, template layouts, xml sitemaps etc), currently tweaking the ‘configure’ subcommand, to generate a working Makefile, so dependency & change related partial builds work as expected.

                                      • I’ve started working on building Debian 9 Vagrant boxes (based on the RC ISOs) for inclusion in https://atlas.hashicorp.com/koalephant.

                                      • Trying to find time for two client projects

                                      • Applying for a visa extension