1. 21

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!


  2. 7

    Nothing. I’ve decided I don’t want to work so much on open source projects for the time being, and want to generally avoid overworking in all manners.

    1. 6

      Done with finals - time to be productive :D

      I’m focusing mainly on my x86 assembler this week. Its almost at the point of usability, which is exciting. I added a bunch of opcodes this week and got relative jumps working, so now all I have to do is add memory access, and forward label declaration, and the assembler will be mostly finished. Then I’ll have to figure out how to generate elf object files (no idea yet - I’ll have to investigate how to do that).

      I’m not going to write a linker (for now), but I might add that in the future.

      Once I finish the assembler up, I’ll work on an IR for my lisp compiler, because going directly to x86 is a bit complex, and it’ll help in the future when I start working on optimizations.

      I’m also planning on installing OpenBSD on my laptop again, because I heard 6.0 has gotten a lot faster - and since I have free time during Christmas break, it’s the perfect time to give it another shot.

      1. 5

        The Scheme assembler looks pretty clean. Interesting to see someone building on the Incremental Compiler paper I keep sharing. It potentially has value in verifiable builds to bootstrap other compilers from source. One suggestion is to save a snapshot of the state of your compiler after you complete each step. It might become a de facto reference codebase for this paper if you finish it as clean as the assembler. People trying to write it having trouble at a step might lean on your codebase. People just trying to read and understand it all to verify the bootstrapping compiler won’t have to write the code themselves.

        That it’s about Scheme to bare metal and you mentioned an IR leads me to drop these two links in case they’re of any use:

        PreScheme, original Scheme for system programming, along with reference papers


        QBE does a simplified, optimizing, C compiler with a new IR claimed to improve on LLVM’s


        1. 3

          Thanks! I might go through after I finish a bit more and make the git history line up with the paper more. There’s also another repo that completely implements the incremental compiler (I used it as a reference a bit in my own code).

          Those two links will come in handy. I’ve seen QBE before, but didn’t think to look through the IR - might learn a thing or two from it.

          PreScheme also looks interesting. I’ll have to read into it more as it looks like it’s kinda what I’m looking to do with my IR.

      2. 5

        Making the mountain of stuff that will be due next year just a little smaller.

        Other than work I am preparing for 33c3, The Chaos Communication Congress is definitely one of the highlights of the year. If anyone from lobsters is going feel free to contact me!

        1. 1

          I will be at 33c3 too! Looking forward to it. I will probably hang out at the BSD village or at la quadrature’s tea house when not running about or attending talks.

          1. 1

            Oh awesome, I will probably drop by the BSD village at some point. I will be with the Scottish Consulate for the most part, our little traveling circus of Scottish mentalness.

        2. 5

          I just released two open-source projects: Tulip Indicators and Tulip Cell.

          Tulip Indicators is a collection of over 100 technical analysis functions written in C, and Tulip Cell is an Excel add-in providing the same functions. I’ve released both under the LGPL license.

          So this week I’m working on those, fixing any issues that crop up, and hopefully getting some valuable feedback (seriously, take a look, check it out, let me know what you think).

          </shameless plug>

          1. 4

            Office Christmas Party Recovery Plan + Not Being Able To Wait For Vacations.

            During my vacations, I wanna do stuff completely unrelated to my profession for the first week, and maybe treat myself to another week of that afterwards. Starting in January, I should be moving teams, which should be helping morale to some extent, and then there’s gonna be resolutions n stuff, that hopefully I’ll keep too.

            I’ll take the opportunity to wish you all a merry Christmas or however you spend the end of the year, thank you all for the great content, I’m really glad that this exists.

            1. 3

              I have actually bit the bullet and started wrapping my head around using React. Being unemployed and having almost solely a web development background will make you do crazy things.

              Still working on a small blog in PHP for myself.

              1. 3

                Just got back from a (poorly timed) vacation, so I have to get up to speed with work stuff just in time to see all my coworkers disappear for the holidays. Ah well. Probably just take on a bunch of small, discrete tasks that I can power through over the next few days.

                Otherwise, I was away from the computer for a week, so I have a lot of Advent of Code to catch up on. I’ve been doing the work in Haskell, and it’s a pretty fun way to play around with learning language idiom and the basics of the standard library.

                1. 3

                  Very slowly wrapping up a new werc release.

                  1. 3

                    Still working on a little online service I’m making for fun. It is an alternative to dropbox for technical users. It does client side encryption, signing and deduplication, talks to the server via ssh and has an open source client written in go. I’m hoping to get some real users soon and get feedback.

                    It’s good experience in the creation and operation of an online business from scratch.

                    1. 3

                      I’m getting ready to open source a small project I’m very excited about. I’ve implemented some algorithms from a arxiv paper on streaming computations for probabilistic frequency counting with bounded errors. Essentially it’s an extremely memory efficient streaming way of reporting on things like top urls, top ips, etc. It comes with some good guarantees around errors.

                      When compared to a naive map[entry]counter and a few gigabytes of data it takes the memory usage from hundreds of megabytes to 10.

                      1. 2

                        I’m digging around some more deep inside the bowels of Xorg, looking for treasure as per this blog post: dating my X and this: youtube video

                        1. 2


                          Finishing up the release candidate for firmware that will be shipping soon!

                          Today, investigating ways to detect/work around a nasty silicon bug in the SPI peripheral in this microcontroller. Under certain extremely idiosyncratic circumstances, when the MCU tries to read a message from an external flash memory chip, it receives the response, but fails with a timeout – it erroneously thinks the read was one byte too short. My hunch is that there’s a possible off-by-one bug in the silicon’s buffering logic, triggered by a race condition when an interrupt occurs at just the right time.

                          The bug isn’t listed in the chip’s errata, but there’s another with the same symptoms and a viable workaround, just different preconditions. I ran into it several weeks ago, but in that case it was easy to detect and work around: I put an impossible response byte in the buffer (for that specific context), read, and if I got a timeout error, check if I still got a valid response. If so, cancel the read, so the driver wasn’t left in an invalid state, and return the result. In this case, there isn’t an obvious impossible value, so I need to distinguish it another way. I’ve found a way to consistently reproduce the value in about two minutes of operations, so I can be confident about whether my fix detects it.

                          Otherwise, dealing with snow, getting some rest, and preparing for the holidays.

                          1. 2

                            Re-moralized by helpful comments from Lobste.rs members and thanks to a colleague who introduced me to problem 11 in the Advent of Code 2016 (I’d not been keeping up) in my spare time I’m working on implementing A* using rank-paired heaps in common lisp to solve p11.

                            1. 2

                              Still working on NeuralObjects.com stuff. Right now I’m focusing on integrating GPG so we can email sensitive information to customers (login credentials and the like). So I’ll be implementing some code to allow users to upload and manage public keys and revocations, as well as backend code to encrypt data when needed.

                              Once that’s done, I have another task queued up to setup a scheduled job to automatically renew our Let’s Encrypt certificates.

                              Once those are done, we’re real close to having enough of the provisioning stuff done to support a beta test. But there’s still work to be done on the Job API and the Prediction API before then as well. So hopefully by next week or so I can start shifting my focus to one of those areas and put the provisioning stuff to bed for a little while.

                              Oh, and I also have some stuff I want to do in terms of internal analytics / reporting. So at some point I’ll be looking at pulling some data from the Twitter API and possibly other social media sources, as well as Google Analytics.

                              And then when I’m not working, I’ve got a couple of books I’m reading. I’m chugging through The Penguin History Of The World for one.

                              1. 2

                                Learning Clojure & fixing legacy software, which has a lot of technical debt.

                                1. 2

                                  at work i’m trying to finish writing a proposal.

                                  at home i’m trying to make progress with the tensorflow-haskell library, but i’m not having a great time, and i’m getting a bit overly frustrated by it.

                                  i think i need to relax and take a bit of break.

                                  1. 1

                                    Renegotiating my mobile contract, as one of my mogul club students accidentally stepped on it.

                                    1. 1

                                      Currently learning all about VueJS and Electron, with an eye to getting started on a particular project some time this week.

                                      At $DAYJOB I’m winding down towards the holidays with a nice small project, which will be our first time trying out Typescript.

                                      1. 1


                                        • Still going through Chris Allen’s Haskell book
                                        • Elixir learning
                                        • After the recent “how can an intermediate developer improve?” thread, making a plan to better myself in 2017


                                        • More A/B tests
                                        1. 1

                                          For fun, I’ve been been polishing a game I helped build for Ludum Dare 37 https://github.com/Goomplez/Ludum-Dare-37 It’s written in Love2D+Lua, and has been properly fun to work on.

                                          For work, I’m fixing some paypal stuff for a client’s website, and then will be extending the capabilities of the reporting system for our CRM.

                                          1. 1

                                            At work there’s a certain amount of sitting on my hands and not breaking things, since so few people are around to help me fix them if it comes to that. (Our holiday allowance is quite generous.)

                                            At home I’m trying to make mu4e respect format=flowed (I forget the RFC number, and am on my phone so it’s difficult to search) for viewing. This requires a change to the C/C++ mu backend mostly, as well as Emacs lisp. I have a proof of concept (in fact I have two) but I think I am ready for a helping hand. Will prepare work in progress PR and report back if anyone’s interested.

                                            1. 1

                                              Probably trying to come up with an idea for DonationCoders yearly NANY event to see if I can get another mug.

                                              1. 1

                                                I started working on a datomic-like database for embedded (read: C-like) development out of personal interest. Implementation is in Rust (plus a C interface) and persistence will be handled by Sqlite (I’m no fan of reinventing the wheel).

                                                1. 1

                                                  Finishing off everything that needs to be merged and cleaned up before the next feature freeze, since I’m off work as of Thursday!

                                                  Been too busy to really be working on stuff outside of work, unfortunately.