1. 14

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. 4

    Took a break from work to volunteer at the quebec beer festival for a few days. Starting again tomorrow with another crunch, hoping I’ll be able to finish most of what I’ve working on this month so that next week can be dedicated solely to testing.

    I’m also trying to identify software needs in the brewing industry, as I feel their workflow is maybe lacking in a few tools right now.

    1. 4

      I got a user for the little music player I’m working on; a friend of mine, who also translated it into Japanese or his own uses. He said he didn’t have to use Winamp over the weekend when he had to use Windows for something. I also polished up various things related to it, such as the website.

      The best feeling when programming is when you feel that you’ve actually helped someone.

      1. 4

        I’m trying to explain to my colleagues why Design by Contract is a vital software design tool, and how it helps you understand classes of errors and what to do about each, and how it helps you write effective unit testing.

        Any pointers to useful source material would be most welcome.

        1. 3

          I suggest just Googling Meyer’s and Eiffel’s stuff on it since they’ve written the most plus applied it in industry. Here’s the intro I normally send people:

          https://www.eiffel.com/values/design-by-contract/introduction/

          His original paper on it to give you ideas or more understanding:

          http://se.ethz.ch/~meyer/publications/computer/contract.pdf

          Recently, they got positive results from getting people to write even stronger specifications than before:

          http://people.csail.mit.edu/polikarn/publications/icse13.pdf

          After reading a lot, I intuitively think you’ll get the best results by combining DbC with assertion-based and random test generation (fuzzing). Assertion-based is also called property-based testing if you’re Googling tools.

          1. 2

            Thanks, I certainly have read the Eiffel stuff and his book, but I hadn’t seen that paper.

        2. 3

          I am working on a language design project which I have been working on sporadically for a number of years now. Super yak shavey - I’m currently working on an assembler for a bytecode format for an eventual bytecode vm which I eventually want to write a compiler for itself in, and once I have done that write the actual language I want to write in it…

          The interesting part of the vm is that I am trying to design the bytecode to be easy to write a compiler in. So polymorphic row types and quantifiers are the basic primitives.

          We will see how well this idea works when there is enough of it to actually run a trivial program…

          1. 1

            I think @rain1 was thinking that sounds like it’s right up the area of bootstrapping research. Might even be useful for others. I hope to see it published in case you come up with some neat ideas. For now, here’s the site @rain1 and I have been uploading a lot of interesting projects like that in case you find anything useful for your project:

            https://bootstrapping.miraheze.org/wiki/Main_Page

            1. 2

              It is for use bootstrapping some other stuff I actually want to write. Basically wanting to write ‘a piece of firm ground’ that I can then build other stuff on. I have been burned far too many times by things changing out from under me.

              The organisation that I am doing most of this stuff under is here: https://github.com/kropaya Not much to show for the VM idea yet though.

              1. 2

                I hear you. One old one was P-code which got ported to around 70 architectures w/ support of using Pascal. The Bootstrapping link has others for you to consider. I think the next one I’ll do will try to approximate C-like languages while keeping close to the imperative languages people write verified compilers for. Then, I can use those if I choose. They usually have expressions, control reduced to While, maybe stack operations, maybe heap operations, and maybe a way to call foreign code. Optionally a concurrency model like Eiffel’s SCOOP or Rust’s. That against a lightweight, cross-platform runtime done in itself should be quite futureproof w/ ecosystem benefits.

                Just an idea for now as I don’t have time for a custom, bootstrapping design. Good luck on yours, though. It does look quite ambitious for full language.

              2. 2

                This collection of links is fantastic, thank you!

            2. 3

              I’ve decided to spice up my schedule by giving out 1-hour long mentornig/coaching sessions for early stage startups/projects. If you know someone who is either stuck or needs a brain to pick - I’d be glad to help.

              Free of charge, no strings attached -wanted to start giving something back to the community. Details http://generativestuff.com/sparring/

              1. 3

                Ongoing: fuck you, dysthymia. Also, need to start back at gym and start reassembling my life after having a kid.

                This week: hoping to do some more work on a VM in C(++) using the Monads for Free in C paper. That should be fun. Related to that, I submitted a PR for libhandler that makes it work on macOS last week.

                1. 3

                  $home Got another pi3 to run plex for a local media server. Works like a charm!

                  $work Taste testing new $work opportunities. Built out a dev environment with docker compose for one, thinking of a project to do for another.

                  1. 2

                    Full plate at work after vacation:

                    • taking a shot a sub-millis node synchronization in an experimental project
                    • tracking down a mysterious bug experienced by a customer, unfortunately without remote access
                    • some bugfixing in an ALSA driver for one of the products (although thankfully most of that is offloaded to a contractor)
                    • stress-testing the newly designed handset in wake of coming IK09 impact test
                    • handling production schedule issues and EOL components with manufacturing contractor

                    At home, a small feasibility study of a new kind of key-value store system. That is if I get this stupid Apple laptop build my things as they were on Linux.

                    1. 1

                      Staying with friends in Scotland for a couple of weeks, so not too much technical. Training where I can this week for next week’s adventures where I’m intending on a few long cycle rides. (Current plan is a couple of 80 miles loops from Elgin, then a two day adventure covering the 206 miles from Elgin to John o’ Groats wild sleeping overnight.)

                      1. 1

                        Hanging out with my family for the past two weeks, just wrote a build shell script to automate a few things that I often do in working with PISC.

                        I’ve also taken to using VS Code on Windows as a sort of Bash ISE (Kinda like Powershell’s ISE), due to ease with which it can mix windows and terminals (Sublime doesn’t do this, and vim/emacs are a bit more effort to get going on Windows than VS Code). This allows me to record TODOs into cat’ed heredocs that get printed when I use a “goto project” bash functions.

                        So other than standard stuff, more bash than usual.

                        1. 1

                          So I’ve experienced the eclipse so that part of what I’m working on this week is over. The rest of the week is enjoying the rest of my vacation.

                          1. 1

                            My family is planning a one night camping trip, to see if we like it. After that, I’ll spend some time in Racket building out my simple slideshow language, which is a sent inspired language targeting Racket’s Slideshow lang.