1. 23

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!

  1. 14

    I started working on a git web frontend in Go (my first real Go project). It’s been interesting. I’m so used to getting off the ground quickly with Ruby or Scheme, that I feel a bit stilted writing in anything else.

    Despite the slow-ish development, I’m liking certain aspects of Go. It’s low level while still being (mostly) safe, fast, extremely transparent, and has a superb standard library. I can see why it’s grown in popularity, and am interested in seeing how easy it is to support a medium-sized project in it.

    1. 2

      I’ve felt the same way about web app productivity in Go - but also experienced some benefits in correctness and maintainability.

      1. 4

        Yeah, I definitely think it’ll lead to clear code. My biggest gripe so far has been the error handling. I really like the transparency as opposed to exceptions, but the fact that I can’t nest or chain some function calls really irks me. I wish the syntax allowed for more chaining.

      2. 1

        Sounds very ambitious! Make sure to share lots of in-progress stuff here so we can encourage you :D

        1. 3

          Thanks! I’ll definitely be posting updates in the weekly threads, and I’m planning on doing a proper show lobsters once I get version 1.0 out the door :)

      3. 11

        I had to turn in an assignment on reinforcement learning at midnight and now have to prepare a small presentation about the topic until the end of January. Still not sure if I should present in German or English.

        For another course, I am writing a vhdl program for Elliptic Curve Cryptography. Well, essentially it’s going to be a basic hardware point multiplier. What needs to be done is

        • binary extended Euclidean algorithm
        • point addition
        • point doubling
        • repeated adding and doubling, alias multiplying.
        1. 8

          Split the difference and present in Frisian!

          1. 1

            I think part of the grading process is going to be about how well the audience understood the speaker so I am afraid that’s not a viable option.

          2. 6

            Benefit of English is it can be distributed widely. I collect and pass on tons of cutting-edge papers but only if they’re English. I apparently missed a few, good works in Germany and France at one point since they used native language. I wasn’t only one from what I could tell on forums with people outside America.

            If it’s not intended for widespread utility, then its language should be tied to what your audience is most receptive of. Do whatever language they’d prefer in a presentation in that context.

            1. 3

              I’m surprised that there’s any research being done where the results are not published in the lingua franca of science. I was told that French institutes have to publish their abstract in their native language but besides that I thought it’d be all English.

              The work is not cutting-edge at all so it does not factor into it much. The paper I wrote is English anyways.

              I actually didn’t really think about my audience, they might benefit from German more, while English would be an opportunity for me to practice. And it might be less work since the scientific terms do not have to be translated.

              1. 4

                On practice side, you might do both languages regardless so you still get the practice. Then have someone review the English copy.

                Example of one in German is uSINApaper in 2003 below in German where most from that group were English. Fortunately, a translation turned up plus descriptions in sections of other papers.


                1. 4

                  …and while you’re at it practising, why not also write in Frisian, Arabic, Russian, Japanese and Xhosa, think of the long term benefits! ;)

                  1. 2

                    English, Spanish, Russian, Chinese, German, and Arabic probably have you covered if wanting job or political prospects in powerful countries from here to the future. ;)

                  2. 3

                    That would probably be the best, then I could just let the others vote on it.

                    Huh, the more you know. Thanks for showing me that.

            2. 7

              Figuring out how to start implementing a vast project that’s been in the “discovery phase” forever.

              1. 7


                I wanted to build this correspondence chess game over SMS. For the longest time I had a lot of ambitions for it but never got anywhere with them. Then finally one day I just hacked out the smallest dumbest prototype and it worked. If I hadn’t done that, I would’ve never gotten anywhere with it.

              2. 7

                At home: actually diving into the world of Arduino and micro controllers. My first project is to build a game of Sokoban that my 5yr old can play on our TV. So far, Ive gotten so far as playing the game over the serial port, and using a button to switch levels. The next step is to denounce the button press, and then buy some more buttons, a 4051 mux, and some prototype board to build a 5, or 6 button controller (directions and level switching).

                I’m trying to document all my progress, but it’s very Arduino 101 at this point. sokoduino on GitHub.

                1. 5

                  Sorting out my home server, some long overdue upgrades on there are finally causing me pain. Got the puppet-master-over-ssh working nicely, and some bug fixes in that solved over the weekend. Should open source that really, it’s kinda useful.

                  Also need to replace some of the cooling system on the Project BMW as well. One of the coolant pipes decided it was too old & knackered and that splitting on me 40 miles from home was a helpful situation to put me in. On the plus side, the mechanic took so long to arrive I could still do my 5km parkrun whilst waiting, which was nice. (Delamere Forest, lovely flatish forest course. 32:16, not bad for first run in months.)

                  1. 5

                    This week is all about yearly appraisal meetings at my company. As the CTO, I’ll meet for an hour with each employee (and the CEO) to review their 2016 performance and talk about goals for 2017. Even when I have regular monthly meetings with each employee, this is no doubt the most exhausting time of the year for me.

                    1. 5

                      Not 100% satisfied with battstat so I’m thinking about refactoring the code to add printf(1) style formatting instead of space delimited replacement tokens.

                      I finally got around to setting up a blog (Ghost running on docker) but I’m not sure how much or how little information I want to share on it, and what topics to cover. Getting in the habit of writing more was my intention so we’ll see how long it lasts.

                      1. 2

                        battstat is cool; thanks!

                      2. 4

                        Some contracting work, mostly setting up Unbound for a small VPN I set up a month ago, and looking over the planning documents for the next few phases of this project.

                        and of course job interviews!

                        1. 4

                          This week I’m replacing an old modal plugin in dozens of instances, on a handful of websites, with a new modal I built from scratch that works better.

                          Not the most glamorous work, but I think we’ll see enough difference in $$$ after it’s done to justify it :D

                          1. 3

                            Personal: spent my weekend making a CLI tool in Python for the first time. It’s a real mess. Anyway, enjoy it if you want: https://github.com/Gusbenz/mer Gonna try to learn more about that this week and add some useful stuff to it. Was inspired by this: http://whatthecommit.com/

                            Work: protect Cassandra instance with auth (Done). Continue to remake an older API using Node.

                            1. 3

                              Taking Michael Kennedy/Talk Python To Me Training’s awesome course Python for Entrepreneurs. I’m not an entrepreneur by any means, but I’d love to get a better understanding of developing web applications, and this course takes a very modern approach to the topic. Also I’m fascinated by the Pyramid Python web framework it uses.

                              1. 3

                                Completely rewiring Osmocom’s openbsc internals. (yes, the open source mobile phone network software)

                                Traditionally, we had BSC, MSC, VLR and HLR collapsed into the OsmoNITB (Network In The Box), but with recent developments…

                                • we want to also have true 3G authentication (milenage), which our HLR couldn’t do;
                                • also for 3G, we’re separating MSC from BSC;
                                • we want a separate Home Location Register for asynchronous DB access;
                                • and Harald Welte has prepared a completely new Virtual Location Register implemented in well-defined finite state machines, basically completely replacing our previous attach/auth/ciphering code, which I’m now settling into place.

                                As a result I have the joy of wildly destructing legacy code, lancing whole new end-to-end test suites to verify the state machines and invent new data structures to unweld the layers of OpenBSC. I get to see every hidden fold, I get to completely trash ugly corners of the code with a machete and am making good and focused progress: it’s super fun! :D

                                Looking forward to merging this to master, hopefully in one or two months' time…

                                1. 1

                                  all those acronyms … it’s “Visitor Location Register”, not “Virtual”. Actually “Volatile” would be the best match for what it does…

                                2. 3

                                  I’m working on a websocket app server for a client, using node.js and Google Cloud Platform services. I’ve learned that PubSub is really pretty amazing, and Datastore is also pretty amazing when you consider what it’s doing, but not the right choice for the kind of app I’m writing, where there’s a high throughput of data updates on the same entities.

                                  On the node.js side, I’ve never been much of a fan, and a bunch of the stuff it makes you deal with is pretty painful - but I’ve found that with babel translations, you can tame quite a lot of it using redux for reasonably sane state management, along with redux-saga for managing asynchrony and task composition with generators, instead of tons of hassle with callbacks or promises. I’ve also been using ajv to validate incoming messages against a JSON schema, and generating redux action definitions from the message-type schemas was pretty fun.

                                  I feel a bit like I’ve swallowed a hipster dictionary with all that lot, but it seems like you have to use a lot of these things to get round a bunch of pretty fundamental issues with the language & environment. I still find I have to work quite hard to make things seem sane with Javascript, and with Redux there’s a lot of boilerplate (or a little more magic than I’d usually prefer, when you start generating the boilerplate). But all in all, once I’d worked out the key spells, using modern slices of JS in anger like this has definitely been the most tolerable way of writing it I’ve found so far. I’d still hate to have to do anything with it on the client side though, all that inconsistency and incompatibility, brrrr.

                                  1. 2

                                    This week I’m mentally preparing myself to go back to work after a three week vacation.

                                    Over said vacation, one of the projects I worked on was updating my blogging engine which is yes, written in C (I initially wrote it in 1999 and have been using it since).

                                    I also wrote some code in Lua to parse EXIF data from JPEG files. It’s an annoying format to parse as it can be in little or big endian formats. I have it working, but I’m still debating if I should release it or not (I wrote it to help with the posting of images on my blog, but found that jhead does most of what I wanted).

                                    1. 2

                                      I’m going to try and finish the Clojure Koans: https://github.com/functional-koans/clojure-koans/.

                                      1. 2

                                        Setting up Continuous Integration in a Gitlab opensource project. Not the best tool in the world for compiled software, but good enough for our needs.

                                        1. 2

                                          I’ve been playing with rust+emscript to create web front end stuff. I was able to do some basic stuff like event callbacks and ajax requests. I’m trying to create something like a high level API, so I’m trying wild ideas at this point. For example: https://github.com/seppo0010/test-webplatform/blob/master/src/main.rs#L62

                                          1. 2

                                            Finishing up a joomla contract (Hopefully the last contract I’ll need to do for a while) and doing a few job interviews, I’ve already done two interviews and waiting for a third one tomorrow morning.

                                            1. 2

                                              I tried to write a grafana datasource plugin. Very difficult! If someone has strong Typescript / prior experience writing one, please reach out. Would love to pick your brain.

                                              1. 1

                                                Learning Rust by making an n-dimensional array library (yes, I know one already exists, this is just for me) and using it to implement some linear programming algorithms.

                                                1. 1

                                                  I bought a Roland Juno-DS keyboard over the holidays, and I’ve been working through a piano lesson book and watching the lecture videos for Yale’s “Listening to Music” class as well as reading the associated text book.

                                                  At work I’ve been working through my case backlog before some larger feature work.

                                                  An interesting mini-project I’ve been working on for the past few months is a Common Lisp package for interacting with and debugging our storage cluster product (which is written in C++). It’s essentially just a low level wrapper around our REST API along with some higher level functionality built on top of that, and some assorted functions for running shell commands on nodes via ssh, interacting with the Zookeeper database, collecting/scanning log files, redeploying binaries, etc.

                                                  I use it in the Slime REPL inside Emacs and it’s made me significantly more efficient at debugging with our test clusters.