1. 7

    I’m getting ready to launch my CUDA as a service startup Veeocho.

    1. 2

      I decided to learn go by creating a stack based language.

      Bob Nystrom’s game programming patterns was quite useful and surprisingly fun to read.

      1. 2

        Nice idea. Starting a new Express project can be gruelling for the first couple hours as you scan through old code to find everything you need.

        However, I find GPLv3 is quite a restrictive license to use for a “starter pack”. It forces the license on every project that is started from it, which really limits its usefulness in my opinion.

        1. 2

          However, I find GPLv3 is quite a restrictive license to use for a “starter pack”.

          Great point. I have now changed the license of the project to MIT.

        1. 13

          Howdy!

          Last week, I turned 40. I used to have trouble imagining that I would survive past 35, but I did. I definitely never would have predicted the life that I have now though even 6 years ago. My daughter turns 4 this week.

          In my spare time in the last week, I’ve been doing a variety of things. (This is in addition to work, family, errands and a bunch of other stuff!)

          I’ve been working on some “window” management code to contribute to libtickit. This is a conversion of some code from the Perl Tickit project into C. I’ve gotten a lot of the basics working (over the last couple of weeks), but in the last week, I finally started porting the tests over from Perl. Hopefully, I’ll be able to start getting this into the upstream libtickit distribution soon.

          Last week, I mentioned that I was working on some changes to the testworks-specs library in Open Dylan. I’ve made further progress on that. I’ve updated the documentation for testworks to document testworks-specs for the first time. I also did some trial builds of various test suites based on testworks-specs with my updated version and have been fixing various issues that I found. Not all of the issues were in my new code though! My changes to make some errors be visible at compile time resulted in some trivial errors being visible for the first time and I’ve pushed a variety of fixes to the various test suites. I’ve got a draft of a blog post underway that describes the changes in more detail and demonstrates some of the differences between the old and new behaviors.

          We got some new interest in Dylan from some people in the last week and that may well prove to be exciting. I’m hoping they stick around and help us take things to a new level (especially on Microsoft Windows).

          I also started on a Dylan binding for nanovg. This can be found within my calvino repository where I keep various graphics-related bindings libraries.

          This has been pretty fun. In the process, I found a bug in the Open Dylan compiler’s support for structs-by-value and submitted a pull request that fixed it.

          I also used this opportunity to dig into some other issues.

          Our bindings generator, melange, allows you to specify an interface file which is processed by melange to generate the actual C-FFI bindings. I wanted to mark my C-FFI bindings for nanovg as being inlineable so that a lot of overhead from boxing and other things could be optimized away. Until now, this wasn’t supported by melange but I just landed a commit that adds this support.

          Another thing that I ran into is that when inline-only is specified for a C-FFI function, a confluence of factors can result in this not getting inlined and then multiple out-of-line copies of the function being generated. I haven’t solved this yet, but I’ve been using it as an excuse to dive into the compiler and learn about how the inliner and related parts of the optimizer work.

          I am producing a nanovg binding because it seemed fun and useful, and a good excuse to continue diving into parts of the compiler and tools that could always use some love. But I am also going to take a shot at writing an OpenGL / nanovg backend for our DUIM user interface library and see how it goes. I’ve mentioned DUIM before, but as a reminder, it was written by one of the people who worked on CLIM in Common Lisp and prior to that, Dynamic Windows at Symbolics for the Genera Lisp Machine OS.

          One thing that I could use some advice on: When I write my widget rendering code with nanovg, it seems like it would make sense to make it possible to control some of that via something like a stylesheet. Qt (4.x and later) does this pretty well from what I remember. But many people also complain about CSS syntax and suggest that there could or should be something better. What other examples of controlling rendering in a UI library are out there? Are there popular alternatives to providing something like CSS?

          1. 1

            Are there popular alternatives to providing something like CSS?

            Have you looked into CSS preprocessors like sass and less? They make working with CSS less painful.

            Personally, I use sass, but less compiles quicker.

          1. 3

            Last week I did not have the time to work on mpm, so I’ll work on that this week.

            As I said last week, I am trying to translate the help text into more languages. If I have time, I’ll work on setting up a registry for mpm packages.

            1. 3

              This week, I will attempt to add support for recursive dependencies to mpm, my node.js package manager.

              If I have the time, I will add more languages.

              I would appreciate any feedback.