1. 14

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

    The Boring: I’m teaching a class on Fitnesse to developers and QA analysts. I don’t really like it, but it’s an easy class, I’ve taught it a million times, and the money is good. Later this year, the same contract flies me out to Colorado, which is the real treat.

    The Ominous: The Daily WTF is launching a new feature in the near future, and I have to do a lot of work to make it happen.

    The Stupid: By way of learning Elixir, I’ve been hacking its metaprogramming system into a DSL for describing an interactive fiction engine. Feature-wise, it’s aiming for someplace between a CYOA novel and a MUD. Once I’ve got a little more of the fundamentals done, my goal game is a multiplayer mystery game inspired by Clue/Cluedo. This week, if I get time, I need to learn Phoenix so that it can finally have a UI.

    1. 8


      – getting pmacct <> rabbitmq <> influxdb working, then putting a nice frontend on top of it

      – auditing a Palo Alto install the MSP royally boned on the migration. I know BGP is somewhat obtuse on PANOS but…no excuse. in pre-sales you, unprompted, mentioned having one of four experts qualified to configure whatever is after the top of the line 5000 series. c'mon!

      – quickly utilizing the last six days of my Azure $200/30 day credit to boot OpenBSD, get IPsec tunnels with BFD running, and do some iperf tests between regions for a PoC

      – setup graylog to ingest wireless controller and firewall logs and make nice dashboards for front line support network troubleshooting

      fun work:

      – continue building class outline and course work for a “python for network engineers” (a working title as it’s already in heavy use by Kirk Byers)

      – lots of unikernel stuff. Kafka as a unikernel, pmacct as a unikernel. getting rumpkernels to boot with vmm on OpenBSD. getting ExaBGP into a unikernel, then doing ‘stress’ testing against OpenBGPd

      – osm + packet clearing house IXP list + peeringDB + d3js = transform spreadsheet currently sitting at http://peering.exposed/ (after a particularly whiskey-infused discussion @ RIPE73)

      – play with a couple of network verification tools I recently read and have been reading about, respectively: Propane and NetKAT

      1. 1

        Is there some particular reason you’re going to rabbitmq first instead of tossing to influxdb via statsd or some such first? You just want to persist bits in flight?

        (just curious)

        1. 2

          mostly because pmacct speaks amqp natively, and slightly because I do not wish to run node.js in this instance.

        2. 1

          What are you using for ingesting logs from rabbitmq to InfluxDB?

          I’m looking forward that Paolo releases the support for Redis.

        3. 5

          This week(and next and last) I am trying to finish the slides for my two coming FOSDEM talks. On top of that I am building out a demo, working on a paper and getting ready for a hackathon and meeting the week before FOSDEM.

          Outside of work I am working on more shameless self promotion systems for my blog. I am poking at the atheros wireless drivers in my laptop. I am working with adrian@ to get spectral scanning working on the ar9460 in my c720.

          1. 5

            Main project right now: gitatmite (a git web front-end written in Go): Last week, I got the majority of the client and server written. The server is just a simple Echo web app using libgit2 to get info out of the repo (currently, the codes a mess, but I’ve already wasted a lot of time rewriting it - will save that for later). The client uses gpg keys to sign requests, meaning no http authentication has to take place. This makes authentication much less of a worry for me.

            This week, I’ll be cleaning up the web interface, and adding some cutesy graphs and styling. Planning on doing a 1.0 release at the end of this week :)

            I’m also hoping to get a bit of work done on my compiler backend this week, before school starts up again.

            1. 3

              FYI https://lobste.rs/u/cmn is libgit2 maintainer.

              1. 2

                Cool, thanks for the info :)

            2. 5

              This week, after work I will be doing deep dive into Rust. Recently I’ve been preparing everything to start a new project that will be used to learn more about this language.

              The objective is to be able to detect when any process is accessing the web cam or the microphone and alert the user with a visual notification (I know it will not be “bullet prof” but it might be useful).

              1. 4

                Everything old is new again. I am wrestling with the uncanny valley of Redshift. If it doesn’t have Postgres semantics, please don’t pretend. Ugh.

                Otherwise, my big machine’s motherboard blew a capacitor Friday, so it’s in the shop getting a diagnosis. I really don’t want to spend cash money ($250!) on a replacement part for this adjectival thing. Argh. I get why I don’t have a Macintosh (CUDA) but oh, how I miss the experience. I am taking this opportunity to put the bits into a new case and to expand my zpool to 12TB.

                1. 4

                  Made progress on my fan mod for the old Sun T5220 rackmount server.

                  The default 60mm fans are way too loud to run this thing at home. It sounds like a vacuum cleaner. The project is to replace the six default fans with three 80mm Noctua fans, which are much much quieter.

                  Each fan has four wires: +12v power, ground, pulse-width modulation to control the fan speed, and a tachometer to measure the fan speed. Noctua PWM fans are driven by the same four wires, so it was simple to hook everything up once I knew the proper pinout. I got away with halving the fan count by bridging the tachometer pins. The controller board is fooled into believing there are two fans spinning.

                  At first I was getting a warning light from the ILOM environment manager. I worried there was a problem with my fan hack, but it turned out I had simply left one of the fan boards unplugged. Once I plugged it back in, everything looked peachy!

                  Once I get all the fans replaced, I might need to construct a baffle to ensure proper airflow. I’ll also need to pay attention to CPU temps to ensure it’s not overheating. The Noctua fans do push less air… but I’m hoping that doesn’t matter as long as the server is sitting on my desk instead of a server rack, surrounded by other hot equipment.

                  1. 1

                    I have the same box and this sounds interesting. For now the machine is racked in a DC but who knows if I ever take it home again modding the fans could be useful.

                  2. 3

                    ! $work: preparing for a talk for ScotLUG on networking

                    1. 4

                      Oh awesome, I help to run techmeetup in Aberdeen. We are always looking for speakers, message me if you fancy a trip up to the Granite City sometime.

                    2. 2


                      Building a reverse proxy using golang. Go seems pretty nice for this. Making an nginx->go->nginx sandwitch.


                      Get a workable deb of Firestr out for the Raspberry Pi. I have a build going, just need to get all dependencies appropriately referenced.

                      1. 2

                        Still working on stuff for https://www.neuralobjects.com. Specifically, working on getting Zeppelin into the basic cluster provisioning process. Once that’s working, I’ll probably start on putting DL4J in, and then move to working on the training API and prediction API components.

                        There’s also work to be done on the back-end, related to billing. And then there’s a lot of general code cleanup, refactoring, UI tweaks, etc. to be done.

                        Also, a lot of copy needs to be written for the website it self, and marketing collateral and what-not.

                        So all of that will be keeping me quite busy for several more weeks.

                        1. 2


                          • Developer interviews! A long time overdue, IMO: collect individual feedback on what’s slowing everybody down and plan out some new tools to make things a bit easier for everyone. I get the impression it’s going to be “our logging system is terrible” but we’ll have to see what everyone actually thinks.

                          • Found out why our load servers take so long to boot up. The good news is the fix will tenth their boot times. The bad news is that it involves writing a ruby gem.


                          • Working on a TLA+ talk that I want to shop to local groups in Chicago.

                          • Finally learn lisp and become a lisp weenie.

                          • Carameltastrophe experiments.

                          1. 4

                            I just bought the TLA+ book & going through the hyperbook. I’m now having trouble applying it to some of the “algorithms”.

                            Either they are too simple and it seems not useful or overly complex.

                            1. 3

                              Yeah I get that; it’s a really frustrating process. It took me several weeks of constant effort to get to a point where I could use it for anything practical.

                              I don’t think that’s a problem with the language, though (although it also has a lot of warts). IMO the TLA+ book is really beginner-unfriendly. I’m in the process of writing a set of tutorials that I’m hoping will be more accessible, but those are still in the almost-rough-zeroth-draft stages.

                            2. 2

                              How much experience do you have using TLA+ on realistic software or protocols?

                              1. 2

                                I’ve been using it at work to spec out systems with gnarly business logic. Not gonna say I’ve done major things with it, but before I build something I usually dedicate an afternoon to modeling it first and have found that pretty helpful.

                            3. 2

                              I’m working on Go implementation of Hopfield networks.

                              Why Hopfield network? Because I’m trying to dive into more to me less known concepts like Hopfield and Boltzman machines.

                              Why Go? Hopfield network seems pretty simple to implement, so using something like TensorFlow would just slow me down (given I’m not as familiar with it as I’d like to be) .

                              1. 1

                                Work: Among other things, taking some Go code (a tool for interacting with SolrCloud) and porting it to Java, because there’s no equivalent to SolrJ (which uses ZK to properly balance among the SolrCloud nodes) in Go (as far as I could find). Once that’s out of the way, I’ll look into using the Go ZK client to see if I can use it over a SOCKS5 proxy, because for a reason I still don’t understand, Java’s NIO (which the Java ZK client uses) does not support proxying via SOCKS5. If it does, I’ll see how much of a SolrCloud client I can get going in Go and throw away the Java port.

                                Play: As part of prepping my podcast, I got very sidetracked back into my music creation software (what’s a podcast without a good 5 seconds of music?), so reinstalling everything, updating various synths, drumkits, DAWs, etc. Yak shaving hasn’t been more fun.