1. 20

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!

Myself? I’ve been working on the Mono Haiku port. Upstream merged changes, but it still doesn’t work, because seemingly some register is getting hosed during the transition from native to managed code, causing 64-bit ints to get mangled. I then fixed up the Mono port so it could work on amd64 Haiku - it gets further into it, enough to start compiling the stdlib, but the garbage collector gets caught in an infinite loop due to possible threading issues.

  1.  

  2. 10

    Blog posts! I’ve actually written 4 blog posts in the last few days. I’ve also taken some of my old, unpublished blog posts and written them in my new style. My latest is on how I implemeneted json-to-elm, if anyone is interested. I’m trying to blog about things that I end up answering on slack, or giving talks about a lot. So that includes problems with Elm, things people find hard to do with Elm, experimental projects, etc. My next blog posts will probably be about server-side Elm, or build tools. It depends if I get more motivation, but I have a blog post written for both right now.

    I’m also working some more on elm-fuse, but no big progress updates other than the rewrite I got done last week!

    1. 2

      Awesome! Can’t wait to read about server-side Elm and build tools.

    2. 5

      Containers! Trying to get our services building into containers, and possibly even running through Kubernetes in one of our environments. I’ve got a decent handle on building the containers and getting them hooked up to a private registry, but the whole deployment and monitoring of containers seems to be a whole different beast. Throw Kubernetes into the mix and some of these problems are answered, but more are opened. If people have good recommended reading for getting Kubernetes running in AWS or other cloud infra I’d love to take a read.

      1. 5
        • Working on blog post about Erlang’s dbg module. I wasn’t able to find any thorough articles on it, so I’m writing one myself.
        • Finishing up my offsite backup setup (using rclone encryption with BackBlaze). Hopefully it will be faster than Duplicity with encryption. Duplicity took almost an hour to backup 7GB to BackBlaze.
        • Finishing another feature PR for asdf version manager.
        1. 3

          Are you aware of the Common Lisp library named ASDF? I don’t usually nitpick names, but the use cases for the two ASDFs are similar enough that it confused me until I browsed through the repo and realized it wasn’t what I thought.

          1. 3

            Yes we are aware. This is pointed out almost every time we post about it on Lobsters or HackerNews. I’m not sure we will ever rename it, but I have thought about trying to rename it to “AEVM” (An Extendable Version Manager). Might be a better name, but not sure if it’s worth the hassle.

        2. 5

          Me? I’ve been finishing up the Myrddin release.

          1. 1

            Awesome job on 0.1!

          2. 4
            • Reading GEB
            • Fooling around with Elixir and Phoenix
            • Looking at bedquiltdb again after a long break
            1. 3

              Started working on Clojure bindings for Apache Camel. The goal is to have an intuitive Clojure DSL for the routes, and Akka+Camel style consumers and producers, such as

              (defconsumer blah "activemq:queue:foo"
                 (fn [body headers] (println (:blah (json/read-str body)))))
              

              Of course if you’re just working with one fixed endpoint then things like Camel make no sense, but I happen to work in cases where the scenario is “Our customer has bought an external AcmeBork provider, their end only accepts SOAP over REST, can you hack thing that reads our requests from ActiveMQ, converts them into AcmeBorks and sends them over the end?” – Camel might work here. Especially if the protocol/format is subject to change at the customers end.

              That said, in my experience, the overall successful abstraction level for Camel is about 60%. That means, in 60% of the cases it has been achieved with a slight modification of message headers + altering the endpoint URI, and in 40% cases that hadn’t been enough (e.g. the component itself requires something zany that cannot be replicated at the Camel level of abstraction). My sample size is more or less 15.

              1. 3

                I just hit spring break, so I’ll be working at my job every day, for starters. In addition, I’ll be taking time to work on school projects that need attention.

                I also plan on spending at least a little bit of time on [PISC](pisc) this week: In no order, and no current timeline for completion:

                • I’d like to improve the docs
                • Add a basic ops per call budget,
                • Build some sort of sandboxed environment for allowing internet supplied code to run for chat-bots
                • Create PISC executables for PC/Mac/Linux that others can download
                • Explain how to build PISC and/or get fossil for developing on it. I might move to github later, but I like the self-hosted nature of fossil. I’ll have to think about that more when I’m ready to ask for contributions (and I’m not there yet).

                I’ve also started helping* out @andyc with http://www.oilshell.org/ here and there. I really like the vision for that project. I’ve been learning the hard way about how much is implicit in most bash scripts, what it’s like to interact with mailing lists, and that time and cd are sometimes builtin, and sometimes not.

                *trying to, anyway. Open source contributing is new to me, so I’m sure I’m making a few mistakes.

                1. 3

                  The alternator for one of our cars arrives today, so I’ll be working on putting said car back together today. I’m on the hunt this week for saws that can sing decently, as I recently finished The Orbiting Human Circus (of the air) and have become enamoured with singing saws. It’s a unique instrument, and while I can always play on my father’s ripsaw (when he’s not using it), it’s decades old and quite stiff.

                  I’m also working on brewing some root beer (5 gallon batch on the way) and gathering supplies for other brewing adventures.

                  1. 3

                    At home I’m slowly playing around with sokoduino, and will maybe start trying to get video on a TV screen this week. Then, I’ve still gotta incorporate a muxer for the 8 buttons instead of just using 8 pins (for learning). Maybe that’ll happen this week.

                    In addition, I’ve been writing a small spec for a programming language that incorporates aspects of scheme and forth together. It’s not very novel, I don’t think, but writing sample programs in it feels pretty good, so we will see what comes of it. The goal of that is to eventually become general purpose enough to be able to build and write a console for 8-bit games on limited hardware, sort of PICO8ish, but not running on the equivalent of a desktop. Sounds kind of far fetched, and yeah, I don’t believe it’ll ever happen, but I’ve surprised myself before!

                    1. 2

                      It sounds rather like PostScript or PISC. If you’re going to try and bootstrap scheme+forth seems like a pretty good combo of easy to parse and powerful

                      1. 2

                        It’s stack based, for sure. There are two fundamental ideas I’m playing with here:

                        • The Forth dictionary looks more like a Scheme environment. You can name stack parameters, which pops them from the stack and stores them in the environment. Those names basically become new, localized, words.
                        • Mixed RPN + prefix notation. In some regards it feels like the -> operator from clojure to do this.
                    2. 2

                      At work I’m currently writing an OpenVPN C plugin to handle deferred authentication. Been a while since I’ve had to flex my (very meagre) C chops in anger, somewhat enjoyable.

                      Outside of work I’ve just picked up a Sony ActionCam, to experiment with some timelapse videoing. Sunsets, DIY projects, sailing, long boring drives are all things I want to shoot (more) of as I find the result very enjoyable to view. Also need to get back into cycling as I’m doing a 130km sportive in 3 weeks and so far this year I’ve only cycled about 8 miles total. (To the pub & back, naturally.)

                      1. 2

                        Work: Learning the ins and outs of some of the AWS services we’re going to be moving our site to by the end of the year. Also putting together a front end build system that minifies and concats all our JS and CSS. Start implementing SASS as the company who built out site initially used it, but never provided us with the source.

                        Personal: Working on a small PHP library that makes working with basic data models way easier. Basically the idea is that you extend this abstract class and it provides all the get/set methods you could want, along with enforcing types and validation for data. Buying a couch and cleaning my apartment.

                        1. 2

                          At work: working on ingesting Python packages. Sensibly, the Python packaging formats are pretty well described and so the base case parsing is quite straightforward (although quite a bit nicer than WebObjects-era Java 1.4, Java 8 really makes me miss Haskell/OCaml’s typesystem). I’m also almost completely up to speed with Windows as my primary driver, which feels like the basest apostasy.

                          Otherwise, tidying up our life in preparation for Number Two Daughter (scheduled release date: March 29), trying to figure out an un-intrusive exercise schedule, and cutting beer way, way back. I’m up to a bigly size and I’d really like not to be out of breath chasing toddlers around the house. Too, I’m going to republish my crappy blog again, but without some actual theme, it probably won’t last long.

                          Finally, I’m thinking of taking up my abandoned OCaml MPEG4 parsing library, but in F#, I guess?

                          1. 2

                            I’m preparing my talk about Erlang Oddities for both the Buenos Aires BEAMBA meetup next week and the Erlang & Elixir Factory @ SF by the end of the month.

                            1. 2

                              I’m working on a ctf parser in rust! Yesterday, I got header parsing work + interop with the elf crate. I’m currently working on finishing up body parsing, and wrapping that in a nice API, as well as providing interop with illumos' C ctf api.

                              I might add gelf/libelf wrappers around the elf crate as well, so it can be used as a drop-in replacement.

                              1. 2

                                Hacking around with my compiler* a bit more this week. Thinking about adding a feature that allows for JIT compilation at runtime as well as an AOT compiler (to possibly get the best of both worlds?). I haven’t seen this done in any other languages, so it may be a bad idea - let me know what you crustaceans think about it. I’ll be reading up on JITs (particularly LuaJIT) over the next week and investigate/experiment more.


                                * Well, if you look closely, it’s current state is an interpreter, but that’s ‘cause I keep getting stuck somewhere in the middle of the compilation process and don’t know how to connect the IR or low level assembly to the higher level language, so I’m working the other direction now :P Still haven’t had a change to play with my FPGA board :’( – however, spring break is next week so I’ll get a whole 7 days to hack around with it :))

                                1. 1

                                  After working on some components of the rust log-structured lock-free b-link tree I’m building, I’ve realized I don’t have a ton of faith that a few of the algorithms are correct, so I’ve set out on a quest to model my lock-free and distributed algorithms in TLA+! I was inspired by @hwayne ’s wonderful Guide to TLA+ :)

                                  1. 1

                                    Hubble Stack across all of my servers. Trying to tweak some OS Query request to find interesting stuff in my environment.

                                    1. 1

                                      Adding support for sending push notifications to Android and iOS through a Node.js application via Amazon SNS. For some reason, the documentation is rather convoluted, making it less than straightforward.

                                      1. 1

                                        At work I’ve been wrapping up a bunch of loose ends for an upcoming patch release.

                                        Outside of work I’ve been working on a Dots and Boxes game in Common Lisp. I had never heard of it before, but stumbled upon the Wikipedia page and decided to implement it.

                                        The code is on GitHub. I started with a version playable from the REPL, but last night I completely removed the REPL version because some of the implementation details were getting in the way for the GUI version.

                                        My plan is to clean up the code a bit, re-implement the REPL version using the newer data structures used by the GUI, and then devise some alternative strategies for the computer player.

                                        I also switched my (practically unused) Github pages blog back to using Jekyll and markdown, so I’m going to try writing up a blog post walking through the creation of the game.

                                        Over the weekend I signed up for FastMail and have been moving everything away from my GMail address to that. Not something I’m actively doing, but as I think of things using the GMail address, I go switch them to the FastMail one.

                                        1. 1

                                          Job hunting. Not the most creative and spiritually-uplifting way to spend my time - I’d rather be coding.

                                          Need a coder? My CV/github/various project links are here: http://scumways.com