1. 13

This is the weekly thread to discuss what you have done recently and are working on this week.

Please be descriptive and don’t hesitate to champion your accomplishments or ask for help, advice or other guidance.

  1.  

  2. 6

    Starting work on a 2d game engine, like LÖVE. The difference is that the scripting language is JavaScript.

    I’m using Microsoft’s ChakraCore as the JS engine. I did some experimenting over the weekend and their API is quite intuitive to use.

    1. 6

      The weekend pre-release work mostly went as planned, with a few tests mandating additional work. As a lobste.rs teaser of one of the features: (youtube video) My WM is a file-system.

      In the research department, I’m:

      • looking into the specifics of compositing HDR and SDR formats, particularly metadata retrieval, colour formats, tone mapping etc.
      • playing around with ‘cuckooing’ Android SurfaceFlinger, ripping out its internals, keeping its system interface.
      • testing out packing formats for text that support mixing shaping, BiDi, 24-bit color, fixed and variable width.

      Also stumbled across an eye tracker that will get some play-time.

      1. 5

        $HOME – I released a new version of molten this weekend. The highlight being websocket support; I don’t really need websockets for anything in particular but I realised I’d never read the spec before so my inner yak shaver took over and did what he does best. This week, I’m probably going to give Dramatiq a little love since folks have opened a couple of PRs I haven’t had a chance to look at yet.

        $WORK – I’m going to be working on coming up with new ways to make it easier for folks to integrate with our product.

        1. 1

          Where does molten fit on the flask -> pyramid -> django spectrum of complexity / included batteries?

          1. 1

            I would say the core framework is simpler (in the sense of fewer, less coupled components) than flask:

            • API-focused,
            • no external dependencies other than typing-extensions and typing-inspect which are tiny,
            • no global request context,
            • no blueprints,
            • no CLI,
            • no development server,
            • no sessions or templating.

            It does, however, have everything you would need to build and API w/o bringing in other dependencies. The molten.contrib package then lays more functionality (sessions, templates, ORM, etc.) on top of that (and more dependencies!).

            I would probably place it somewhere between flask and pyramid.

            1. 1

              Cool, sounds interesting. I think not having a development server might raise the barrier to entry, though. Every time I’ve started something with flask or pyramid it’s been with the development server. Sometimes that’s even enough for small internal projects or throwaways.

              Blueprints have been one of the most confusing things in flask for me (though it’s been a few years since I tried to use them, maybe they’re better now).

        2. 5

          I’ve continued working on my solo entrepreneur SaaS product, NewBusinessMonitor. I’ve added a feature where users can save searches they’ve made so they can recall them later. I also moved all georadius queries from Redis to PostgreSQL, and I’ve added caching with Redis. This week I want to combine the saved searches with scheduled reports, so every morning you can wake up with a CSV of specific types of businesses you’re interested in.

          Tech: Haskell, Elm, Nix.

          1. 1

            Nice little update: NewBusinessMonitor was accepted to the 2018 Y Combinator Startup School, on the advisory track :)

          2. 5

            I’ve done a bunch of fixes and improvements to my PEG parser library today, https://github.com/rain-1/racket-peg/ I’m very pleased with it and value all the contributors who pushed me to make it even better. I think the next step may be to write some tutorials and guides on how to use it best.

            1. 5

              Last week I did the TLA+ workshop, which was a blast. Everybody loved it and thought it was going to change how they programed! This week I’m taking the feedback and improving the workshop, like expanding some of my explanations and fleshing out exercises.

              I’m also looking for corporate opportunities, so if you or anyone you know would be interested in using it at work, get in touch :)

              Funwise, I’m teaching myself minizinc and constraint programming. It’s fun stuff but I don’t think it’s that applicable to the kind of work I do. But I might try to throw up a demo with a physics simulation.

              1. 4

                I spent several weeks recently wrapping a godawful cryptographic RPC service with a pythonic interface, only to discover later that vendor for said service was not forthright about their pricing or licensing restrictions. So this week I get to finish rejiggering my nice pythonic interface to work with a different, far less ugly cryptographic service.

                1. 1

                  Link to the good and bad one please. No need to say which is which.

                  1. 3

                    One or the other: https://www.gemalto.com And another: https://aws.amazon.com/kms/

                2. 4

                  Home/Personal: I’ve been reading through “Unauthorised Windows 95”, by Andrew Scullman and playing a bit of EXAPUNKS (which is the first Zachtronics game that I’ve printed out the documentation for). I’ve also been reading “A Philosophy of Software Design”, by John Ousterhout, which has been good reading. I’m unsure I agree with it 100%, but it’s the sort of book I think every programmer should read at least once.

                  Work: I wrote a tool for walking some of our forms and generate some Python/Selenium code for working on our automated tests, mostly over the weekend, which was kinda fun.

                  1. 3

                    Its not my month apparently, so this week I’m recovering from a stomach bug, and continuing with mostly the same as last week

                    • $CLIENT1: ongoing dev, ZF1 > Bamboo v5 model migration, and helping one of the other devs with getting his CSP into the provisioning system.
                    • $COMPANY: ongoing, albeit likely slower/less focussed, progress on Bamboo v6 changes.
                    • $HOME: due to work, and then the aforementioned stomach bug, I got basically nothing done on home wiring last week (I did manage to replace an unwanted mature Banana plant with Black Bamboo though), so that’s still on the agenda for this week.
                    1. 3

                      I spent yesterday adding $(foo) style backquotes to my Windows based shell, Yori. I expected this to be simple since the traditional backtick style was already there, but nested backquotes make for more sophisticated parsing at execute time, and tab completion wants to determine the currently “active” command in order to know which completion rules apply. And obviously, since you’re still building a command when hitting tab, it can’t assume a well formed expression, sigh.

                      Back at work, my boss is back this week. Another sigh.

                      1. 2

                        Why build Yori, when Powershell and Git bash/mingw both exist and cover a lot of similar ground? (Not to say you shouldn’t, but I’m curious as to the motivation)

                        1. 3

                          Obviously this is somewhat opinionated, but…

                          Powershell, IMO, is a very powerful shell. Its object model provides for quite reliable scripting, and the way it exposes many aspects of the Windows system makes it very useful for system administration. At work we have a requirement to do this type of administration, and it’s the right tool for the job there. As a developer who’s primarily after an interactive shell though, the benefits aren’t readily apparent (my compiler, editor, revision control etc are not Powershell commandlets) and it’s rather verbose/cumbersome.

                          Cygwin/msys are useful tools for people who want to use Windows but have a fully Linux-oriented command environment. I say “fully” because integrating Windows tools into a Linux toolchain is a little clumsy due to their different semantics - eg., direction of path separators, which component does wildcard expansion, migrating environment variables between the two, etc. Obviously there are ways to do interop, but using one of these shells to invoke primarily Win32 processes doesn’t seem great.

                          So the short answer is that just due to where I am, I’m a developer using predominantly Win32 native code tools, and neither of the above options are really optimal for that. Cmd is just ancient; Yori trying to rethink what a native Win32 shell would be in this decade, and heavily borrows from Linux shells but implements it with a view to invoking native Win32 tools. Some day I probably won’t be a developer working on predominantly Win32 native code tools, and when that day comes, Yori will be a lot less interesting/useful to me. I mean, I certainly don’t see any point porting it to other platforms, for example.

                      2. 3

                        I’m writing a little website in Python to track my weight. I’ve used various apps and have never been entirely happy with them, and my needs are simple (three line charts with different time ranges), so I’m just going to roll my own.

                        Right now I’m trying to figure out which charting library to use. There’s matplotlib (workhorse, but a bit confusing) and some more recent alternatives.

                        1. 3

                          Trying to publish a helm chart for Magda this week made me really wish that there was something like NPM for Helm where I could just write publish, so I’ve decided to make one.

                          Shouldn’t be that hard, just a wrapper around Chart Museum, although so far I haven’t even managed to get Minikube to run on my home linux box :(.

                          1. 2
                            • Work search is ramping up. The spreadsheets I’ll have at least six interviews this week for contracts/jobs and this morning I’m reaching out to a couple companies (Mozilla, GitHub) that friends work at. I’d appreciate hearing about more opportunities, but the very short version is that I do full-stack web dev mostly with small teams (Chicago /remote).
                            • Spent a few hours playing with Obelisk after watching this exciting talk (slides on integrated web + mobile development. It woke up a daydream project of mine for a not-awful calorie tracker + meal planner + grocery list app so I’m jotting down lots of notes until this urge passes.
                            • Podcast plumbing - banking issues blocked payments for commercial services, that’s fixed so I’m working on that alongside the site.
                            1. 2

                              Working a job during the day and saving the internet during the night. The work never ends.

                              1. 2

                                Back from a 3 weeks vacations, so this is more of a wrap-up/ what is plan. Home: Finally had time to work on my text-web-base game :)! Change the view engine from Thymeleaf to Groovy template engine. The change is finally over and I must say I’m mixed about the result. On one hand I like how to work with the views and I think I will be able to check statically if the view compile so that will be a plus, but there is a lot less stuff available to help with the writings of the views.

                                I should be able to have a schedule to work on the project soon since I’ve dropped the gaming from my life at the moment (I was addicted to it), so I need I clear and healthy relation with my computer at home.

                                Work: Well I’m back on vacations so I’m catching up with what has been going on.

                                1. 1

                                  Work - Reporting bugs to our DMS (Document Management System) vendor (2 so far this month), the usual support tickets, and maintenance for my employer’s node on a blockchain network.

                                  1. 1

                                    First full week for $work, including nearly all of the company coming together for two whole days at the end of the week which is going to be exciting. (There’s a couple of folk I’ve not met in real life yet, and it’s always nice to see the ones I have met before.) Quite liking Sensu as a monitoring solution, having managed to push it all out to the start of our server farm without needing to lean on puppet’s exported resources as I have in the past with Nagios.

                                    Outside of $work, I’ve finally plucked the road bike out the shed and serviced it, and made it out a couple of times for a ride. Getting back into that being a habit most days is going to be the trickier bit I fear, especially as the weather in the UK will deteriorate quickly into winter now. Also need to migrate some servers around as I’m paying far too much for a physical host when all I need is a simple little VM somewhere for some static sites.