1. 30

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

      Still job hunting, the last place I interviewed with decided to go with 3 part time interns instead of one full time developer..

      This is a pretty sad week actually, as I Just lost my dog, had him for 15 years. My parents left on a vacation so I had to take care of our two dogs at my apartment in the city. Everything was going fine until we were attacked by a dog that wasnt on it’s leash. My first dog died of his wounds and my second dog has big bite marks on her neck and head, thankfully, she’s fine.

      So for the next two weeks I’m back at my parents house taking care of the surviving dog, I guess I’ll spend some time reading SICP, doing some personal coding, sending out resumes and maybe play some baldur’s gate.

      1. 11

        decided to go with 3 part time interns instead of one full time developer

        Call them back in six months, they’ll really want you then. I have been the consultant cleaning up that mistake more than once.

        1. 2

          Well I’m going on vacation in may for a month, so if dont have a job when I get back I sure will!

      2. 4

        Oh man, that’s terrible. Condolences.

      3. 3

        I have also started the job hunt. It’s depressing. If it helps you’re not the only one out there bummed out by it.

        Also, condolences on the dog.

      4. 3

        What a horrible thing to happen. Sorry to hear it.

      5. 3

        That’s horrible, I’m so sorry for your loss.

      6. 1

        Still job hunting, the last place I interviewed with decided to go with 3 part time interns instead of one full time developer.

        You should know that you’re not alone in that sort of experience. This is only getting worse over the years: too few senior jobs, lots of junior jobs. I hope that it will reverse a bit when the “unicorn” bubble ends and inexperience stops being fashionable. It’s frustrating and insulting but, as @pushcx notes, it will generate consulting opportunities when these companies get burned.

        Good luck. Also, sorry to hear about your dog. That’s brutal.

        1. 3

          too few senior jobs, lots of junior jobs.

          Interesting to hear you say that. I have the opposite impression from a number of conversations, and from watching job postings in Texas (Austin, Houston and Dallas, smaller companies, startup or otherwise). Everyone seems to want seniors right now and no one has time to train up juniors or invest in their skills. That said, the middling compensation being offered by these companies that hold out for seniors leads me to believe they might simply lack industry or market awareness.

          They also don’t seem to recognize the notion of a developer tier between junior and senior. Speaking recently with a CEO who was fretting about the price of senior Python developers in his area, I suggested that he try to identify some latent senior devs* and build them into the team he needs. Surely would take some work, but it would beat him waiting around another 2-3 months for the senior dev that he can’t seem to find.

          He, citing a handful of details, dismissed my idea.

          *Here “latent senior dev” is a word choice I pulled out of a hat, to try and convince him someone who isn’t quite a “senior” might also be not completely “junior”.

    2. 15

      For work/fun: I built a 4-node Open Compute cluster to use as a desktop and home lab. I had X budget to spend on a new laptop/desktop…most people choose a Macbook Pro or a standard desktop. I decided to build a 4-node cluster using ebay'ed parts. It turned out pretty well! Pictures: https://imgur.com/a/c2SD4

      For work, this week I’m mostly updating the Definitive Guide. Authoring a book is, as I’ve discovered, a never-ending anchor. We need to stop changing the software so I can take a break from updating the book! :angryfist:

      Otherwise, the rest of my free time is going to wedding planning/logistics, so not much in the way of fun projects for a while. I’ve put my various hobbies on hold, otherwise I wouldn’t be helpful at all and my SO would be quite upset :)

      1. 1

        The cluster looks amazing, what’re you planning on using it for?

        1. 3

          Thanks! One of the nodes will be my day-to-day desktop. I’ve been using a Macbook Air for the last few years. It was fine for a while, but as I’ve moved into more intensive projects, it just doesn’t cut it. Our integration tests take like 40 minutes :)

          The full cluster will be powered up when I need to run large Elasticsearch benchmarks/tests. I packed them full of memory so I could either run 4 nodes with a ton of resources, or spin up 12 nodes w/ 32gb each. I usually use a beefy Hetzner server for this sort of thing, but can decommission that now.

      2. 1

        That’s awesome! For a second, I thought the transformer was a car battery charger. :)

        It never ceases to amaze me that people would blow their hardware budget on Macbooks when you can get so much more interesting/powerful stuff at that price.

        My last company managed to double acquisition costs because they wouldn’t just let the devs build our own damn machines. :(

        1. 1

          What notebook do you recommend as a replacement for the Macbook Pro? I am checking Dell XPS 13 and Thinkpad X1 Carbon.

          1. 3

            Amusingly, for the price of a Macbook Pro I was able to build the 4-node OCP cluster and get a refurbished i5 XPS 13 touch model. :)

            Admittedly, everything was used/refurbished, but still.

            That said, the XPS 13 has been…problematic so far. The touch pad is really jumpy (need to tweak some Chrome and touchpad settings), mine refused to sleep when the lid is closed so now it’s set to hibernate, it makes a high pitch coil whine at times, etc. I’ve heard it doesn’t run Linux well either, so I’m attempting to see how much Win10 bothers me.

            The hardware is really slick, it’s just the software/firmware that’s been a bit touch-and-go so far.

          2. 3

            I use the Thinkpad X1 Carbon with the highest tier i7 they offered. It’s 2015’s model aka “3rd Gen”, so Broadwell-based, rather than Skylake-based, which might have issues [0].

            I run Linux Mint 17.3, and it works great. Battery life is better than any Linux laptop I’ve had, with the exception of an old Netbook that ran Gentoo. Anywhere from 3ish hours under heavy load to 7 hours on light browsing and text editing. Build quality of the X1C hardware has impressed me so far as well. Only downside I can pick at is the screen at full brightness isn’t quite as bright as I sometimes hope.

            I’ve gotten to play with the newest XPS 13 (i.e. used two different ones for a day each), but not in Linux. For what it’s worth I didn’t have any of the issues that polyfractal describes. In my experience, Thinkpads end up getting their Linux hardware issues hammered out sooner-or-later. I have heard similar about the Dell lines that sell with Ubuntu pre-loaded, but I have no direct experience in the matter.

            If you’re considering either of them a replacement for an Macbook Pro, I assume you must mean the MBP 13-inch, and I could at least recommend my 3rd Gen X1C. Neither of them would stand up to a 15-inch MBP, and I haven’t bothered to investigate which laptops might.

            [0] http://mjg59.dreamwidth.org/41713.html

          3. 1

            So, my laptop is actually a kinda-chunky Lenovo Ideapad Y510p. It’s big, has a decent graphics card, full keyboard, and most importantly a matte screen. I’m pretty blind, so high-resolution displays don’t really do much for me sadly. I swapped it into using a Samsung SSD recently, and that’s made it an even happier camper. Battery life sans cable is about an hour and a half or two hours, less if I’m running it at full tilt boogie.

            I tend to spend a lot of time around desktops and workstations, and the laptop is for the occasional blog writing at coffee shops or vacation gaming. I don’t really understand using littler keyboards, using touchpads, or wanting something svelte. I believe that if you’re on a machine, you use the best and most machine you can for your task, and ignore aesthetic considerations within reason.

            That said, I make no claims that my approach is the only one–it’s just what’s worked for me. :)

        2. 1

          Thanks! I agree, when I started looking around at specs of the MBP vs what I could get in other notebooks… and then full desktops… and then used server equipment… it just seemed ridiculous to get an MBP.

          But I’m pretty new to the whole OSX ecosystem (~2 years), so perhaps I’m just not quite as embedded as other folks :)

      3. 1

        Did you think about adding GPUs or did you run out of budget for that?

        1. 1

          I added an old Radeon HD6350 to the “desktop” node, which is powering a lower-res monitor. GPUs are a bit problematic in these units for a few reasons. First is just compatibility, other people are reporting issues with various newer GPUs, presumably because the BIOS is like 6 years old. Second is physical limitations, the plastic baffle that directs airflow limits the length of cards that can be placed in the riser. If you pull the baffle you could probably add a longer card, but then you’d need to make sure you have a unit stacked on top (and keep an eye on temps). And lastly, just weight. The riser card is pretty wobbly, I imagine a heavier card would start to bend the riser downwards precariously.

          I’m planning on making a “tower box rack” for these soonish, and am going to see if I can get a PCI cable riser, then bolt the GPU to the case. Might make it easier to play around with better cards.

    3. 11

      About fifteen minutes ago I subbmited Barnacles to YC News and it’s currently #1, so that’s probably going to eat up my day.

      Last week I got the taxes done and started marketing for my book; this week is more outreach to podcasts and typesetting that. I hope to get a modified Tufte latex class into the Softcover system, but there’s some conflicts that may require deep LaTeX debugging to fix. Or it may just not be possible to fit into the system.

      1. 1

        Barnacles looks amazing. Great work! I’m curious where are you promoting it?

        1. 1

          In a few private business-oriented Slacks and it was #1 on YC News for a few hours.

      2. 1

        One minor thing–can you please fix the gold border on the green show tags? It looks really pixelly. Just do solid green.

        1. 2

          Yeah, nice touch. It was carried over from the regular tags. Fix pushed.

          1. 1


    4. 7

      I made this over the weekend. It’s a jewel game that plays itself: http://max.io/jewels.html

      This week I am going to write a blog post on it during my spare time. Work takes up about 50 hours every week, so I am hoping to get in 4 hours or so to write the post (I’m a slow writer!).

      The gist is that for many years I’ve been fascinated by the thought of how machines will eventually require entertainment. As people for some reason we get bored, and we do seemingly silly things like organize blocks of colors into chains of 3 for points. What is the strong AI equivalent? Probably not a jewel game that makes their CPU fan spin, but its a start. I also created this other project several years ago on the same premise, http://binarymax.com/backgammon/ …and I will probably create others as well.

      If you think the first link is too small, I made a larger version here: http://max.io/jewels24.html

      I did make a human playable version too, but I found it mundane :)

      1. 2

        woah, super cool! i can’t tell if the squares are subtly changing color or if it’s just an optical illusion :P

        1. 1

          Your eyes do not deceive you. The blocks, they are glowing :)

          That was one of the tiny fun little pieces to write actually, it works by interpolation of two hex colors (a light and a dark) over a random number of frames. Took about 15 mins to write and test, and turned out really nice and subtle.

    5. 7

      Finally broke down and bought Lisp in Small Peices so I have more of a reference while working on my lisp impelementation (which is now undergoing it’s 3rd complete rewrite, because I have no idea what I’m doing).

      Didn’t get much work done on my text editor last week so I’ll probably do a bit more with piping out sections of text this week.

    6. 5

      Multimonitor utilities for use with window managers that don’t support them.


    7. 4

      I accepted an offer with Sonatype, so I’m going to be spending some time this week warming up my thinking muscles. Having five months off with the baby has been great, no question, wouldn’t do it differently; but it’s definitely time to get back to being something more than a parent.

      Probably will install NixOS on bare metal this week; I’ve been running it in a VM, and that works fine, but it’d be nice to have access to all the GPU resources on my Titans without running Windows. We’ll see how that goes; I may give up in a rage at dealing with X and Linux and whatnot.

      1. 1

        Oh, cool, so are you working remotely? Or do they have offices in TO?

        1. 2

          I’ll be working remotely. I was approved for permanent residence in Canada in February, so that made the whole process a lot simpler.

    8. 4

      First time posting in this thread for me!

      At work, I’m trying to give myself a crash course in web application performance measurement, focusing mainly on backend for now. I’m really starting from zero here. I know vaguely that I want to know how long the backend takes to respond to each request, and I’d like to know how long the requests to each of the endpoint’s dependencies take. I’d also like to figure out what specifically causes the exponential increase in performance times as the API servers reach maximum capacity, and where the bottleneck comes from. It seems that there are almost no resources around for explaining best practices for making these kinds of measurements.

      Outside of work, I’m busy preparing for a talk I’ll be giving at my city’s WebGL meetup next week. I’m working on documenting and refactoring a project that I wrote last year, which I’ll be using to explain how I created some of the effects I used.

    9. 4

      Killing it at my first ever “grown up” job. People seem to like me and I definitely like them; really lucky to be working with intelligent, cool people, as I was willing to settle for anything coming off a pretty severe bottom.

      I’m trying to get them to let me livestream programming on TwitchTV as part of my job (to promote our coding “boot camp”). I think it’s actually a great idea, and I think there’s a 50% chance they’ll actually let me do it.

    10. 3

      This simple joke bot in Python as an example for Python programming beginners (some of whom I’m teaching, and also for fun).

    11. 3

      Continuing to setup my new hetzner box. Finally got it installed with FreeBSD, and enough services/config that I could login remotely after first reboot to continue configuring it. Variously forgot:- to set a root password; to enable sshd on boot; that root ssh is disabled; to add my ssh key to my user. Got there in the end.

      Also ordered & fitted a programmable control board for my Filco Majestouch 2 from Bathroom Epiphanies, so my project this evening is amending the keymap for it to something that mirrors the built in mac keyboard layout. (Media keys, power button, fn key, etc) so I can do away with Karabiner on all my macs.

    12. 3

      At work:

      • Putting together a project proposal to dramatically improve some of our security practices
      • Figuring out how to dehydrate one of our in-memory data-stores in a way that won’t murder performance

      Personal time:

      • Still want to add TOML support to Factor; I’ve not had time recently
    13. 3

      Continuing my series on core.async error handling with the greater goal of working into some more general work on error handling in concurrent systems. It’s going well!

      I just finished a staycation that involved a lot of noodling around, some programming, and a LOT of self-administered cognitive behavioural therapy, which I think went pretty well.

    14. 3

      Last week I started work on renewing SSL certificates. Continuing that this week, but I think I’ve managed to break the back of it now. This work has been complicated by a buggy Icinga check, and trying to make sense of three different strategies for SSL certificates. Wildcard Cerys with additional SANs etc. It’s the gift that never stops giving.

    15. 3

      Got a new job, in a new country! Moving next month to Falmouth, which is in Cornwall, in the UK. I’ll be a researcher in the new MetaMakers Institute, a university-affiliated research institute at Falmouth University, working on computational creativity, generative art, procedural content generation for games, computer music, and related subjects. Since much of my research is on exactly that, it seems like it’ll be a great fit. And living on the Cornish coast sounds interesting too. Slightly remote, but not so remote that you can’t get places (~5 hours from London by train).

    16. 3

      Currently, trying to put together a series of blog posts dissecting the mechanisms of karma in HN/Lobsters-style sites, and discussing the various bad behaviors they incentivize.

      After that, maybe some drone stuff later this week?

    17. 2

      Thermal simulations for MRI Gradient coils and aiming to write the first words of my thesis. Trying to get a head start on it so it doesn’t all happen in 2 weeks like my undergraduate thesis.

      Usually more to talk about but focus will be on PhD related work for the next little while.

    18. 2

      Most of my free time now is taken up with studying OEC for ski patrol. At work, porting an old asp page to asp.net MVC.

      1. 2

        What mountain’s ski patrol is this for?

        1. 2

          Boston Mills/Brandywine/Alpine valley in NE Ohio. (all three resorts share the same patrol).

    19. 2

      Trying to get chrome to compile so i can play with their headless api.

    20. 2

      Trying to get Gitlab Runner’s up and going on a machine that only has a 100Kb/s pipe… which means all the possible caching mechanisms I can think of (local-npm, local docker registry, pypi mirror, etc). Otherwise builds can take 8 minutes just to really get rolling. I also run the gitlab runner cache, but it seems to take almost 3 minutes to set up a build from a cache. Anyone have any suggestions? It’s a project that uses node modules, python modules, and currently build in a docker container.

    21. 2

      I’m creating a UI component library in ClojureScript based off of Elm. It’s at github.com/tel/oak and you can boot it up now, run a live coding environment, and start playing around. More or less it’s nothing more than Elm in Cljs, but I’m fiddling with a new feature called an “oracle” (not married to this name) for handling “application” state.

      My theory is that there are essentially two kinds of state in a UI. One one side you have interface state (“is this dropdown dropped or collapsed?” “what number am I displaying?”) which is denormalized, synchronous, and takes the exact same tree shape as your UI structured itself. On the other side, you have “application” state which is normal, likely asynchronous, and really only descends through the upper areas of your UI tree.

      Oak tries to separate these more completely by providing a good way of talking about and requesting application state in parallel to interface state. Ultimately it does the same Elm trick of doing essentially nothing at all tricky so the components are more of a “pattern” that an actual library (lacking types, I can’t abstract over them, so it’s sort of up to the user) and the real challenge is just seeing whether this idea actually helps provide some comfortable hooks to hang the complexities of UI state management off of.

      Anyway, it’s mostly just an experiment I ran this weekend. I may try writing a TodoMVC soon and I’d appreciate feedback or ideas for how to test it.

      1. 1

        For the full plug, here’s a link http://github.com/tel/oak

        I really ought to get a compilation pipeline that throws the examples into the project page, too.

    22. [Comment removed by author]

    23. 2

      Two things I need to get around to doing. No wait, three.

      Plan time: Because if I don’t, I’ll get around to doing exactly zero of the other two things.

      Jira FS: I wanted to try to rewrite my Jira CLI in Elixir, as a way to learn the language and tools. So far so good. then I got the awesome idea that I could always write a tiny FUSE virtual filesystem and hook that up to the thing. Mostly for fun. And for using standard tools to work with tickets, for example. I understand it’d be terrible to a lot of extents, but the experiment entertains me. Also, I can’t seem to compile erlang-efuse which seems to be the most recent binding available, it looked like it had a nice API, can’t get it to compile so I can import it. I don’t know if I’m ready to write out a FUSE lib just to work with Jira, yet. :( If anyone has ideas, I’d welcome pointers.

      Blog : I need to write more blog posts for my blog about disconnecting the internet at home.

      I also have to work a full week, as regular, but hey. That’s regular.

      1. 1

        Jira FS

        Reminds me of this http://tools.suckless.org/ii/

    24. 2

      Home: My pet project is making some good strides. The bug I’ve been hunting is still alluding me but I’m progress in other areas in the meantime and I feel like I’m really starting to get the hang of how GTK works. It’s daunting up front but once you get into it, it’s not that bad actually.

      Work: More of the same. I’ve started looking for remote work. I’ve never done it before and don’t know what to expect, but hopefully it will work for me.

      1. 2

        I work remotely (and have for a good chunk of the last 5 years). It really depends on the company/team you’re working with. Some are great, some are like being isolated and slowly choked out of the company. Right now I work with a mostly remote software team (2 of 3 of us are remote full time, the other is the CIO and goes into the office a few times a week) and things are great. We are a small company that is focused on making remote work, though. We have video meetings every day (standup), so we still get to see and talk to each other often enough that you don’t feel left out.

      2. 2

        I tried getting into Gtk+ with C, it was tough but with Vala it’s crazy smooth. Have you tried building for OS X or windows yet?

        1. 1

          No, never tried. I dont have a Windows box to try on and honestly it never occurred to me to try it on my wife’s Mac.

    25. 2

      Work: Prepping some demos on new stuff we wrote the last couple weeks. Then updating our agreement/signup process for some new options.

      Personal: Refinishing the deck. Maybe starting to stain boards for the new pool fence

    26. 2

      At work:

      • Working on some requested feature for the search infrastructure
      • Word embedding with word2vec, trying to cluster a words from customer’s chat, reviews, etc. We will use this for another Machine Learning task.


      • Balancing work, school and life. (It’s hard but it’s possible)
      • Have fun with TensorFlow
      • Preparing exam
    27. 2


      • Helping some coworkers get up to speed on our new UI framework and infrastructure
      • New features on my employer’s school admin product


      • Working on some promotions for the YA Fantasy novel I published last week
      • Preparing my family for a cross-country move next month
      1. 1

        What kind of personal stuff can you even do with TensorFlow?

    28. 2


      • Still working on various group projects at university. The one about modelling biochemical interactions between an enzyme and a substrate has gone very well :)
      • Continually iterating on my dissertation. My supervisor suggested that I significantly change the layout, which was painful at first since I liked it how it was. However, I’ve come to realise that he was right; it’s now far more readable (two columns seems to work well for papers, but for large bodies of text with lots of figures, a single column seems to be more flexible).


      • My search for additional funding for my master’s degree isn’t going swimmingly; after sending around 20 introduction (not application!) letters out, I’ve had around 8 rejections already. Frustratingly, many of these are telling me that the funding bodies are no longer functional.
      • I booked flights for various trips this Summer, including my internship @ Google Munich, a holiday in Dublin, and graduation in Manchester. Working to tight budgets has been tricky here, but I’m glad all sorted. Yay!
      • I’m not getting chance to pursue any personal programming/tinkering at the moment because of the volume of university work :(
    29. 2

      Seeking gainful employment – RoR developer.

      Adjusting to the post-OSX world I now live in. Wiped my SDD on the MBP to put Ubuntu minimal in there.

      Building Rails apps for practice. 5hrs a day.

    30. 2

      work: I’m going to be prototyping Confidant, by Lyft, and giving it a spin. Secret storage is a pain, and Confidant appears to be a good solution.

      home: either revivifying my (defunct) home page or working on an idea I have for semantic file search.

    31. 2

      At work, creating a testing framework for the ELK stack using bats. It’s almost ready, I need to figure how to approach mapping testing.

      At home I’m flirting with the idea of start learning Go. I have ruby/sinatra which I’d like to re-write in Go and add some JS on top :-)

    32. 2

      Still working on NeuralObjects, our Machine Learning as a Service offering. Last week I made a lot of progress with getting all the SSO stuff working, got a basic user signup flow working, etc. Starting from this week I’ll be working on building the UI for managing analytics environments, managing billing and payment information, and will hopefully get to Stripe integration.

      Depending on how all that goes, I hope to also do some working on the APIs for loading data, running jobs, and making predictions. I also need to get Zeppelin integrated with this.

      I’m also taking another R class on Coursera right now, so I’ll have homework to do. I’m also on a non-stop quest to learn more maths, so I’ll be spending some time on Youtube watching videos on Statistics, Calculus, etc. Trying to work my way up to Differential Equations and Linear Algebra over the course of this year.

    33. 2

      This is my last week as an Engineering Director at Rent the Runway.

      I’m currently working on getting sonic-sketches, my music generation program written in Clojure & Overtone, set up inside of a Vagrant environment for the purposes of turning it into a bot: https://github.com/mwunsch/sonic-sketches

      I’ve been working on this project for some time and have been sending out logs of my progress from: http://tinyletter.com/wunsch

      As of this afternoon, I’ve gotten the program running and generating music inside of my Ubuntu VirtualBox.

    34. 2

      Studying for exams, first one in a months time.

      Also trying to get a decent mail setup working, freelancing, and playing with an MQTT<->IRC bridge so that hopefully IRC can be used nicely on mobile. I haven’t managed to find a FOSS solution for this yet.

      1. 1

        Why MQTT? why not web sockets? a good IRC client on mobile is very appealing :)

        1. 1

          I read a bit about MQTT, seemed like a good idea for lightweight mobile networking, having been designed for the IoT. Also has something already a bit like channels.

          But… honestly? Now that you mention it, websockets hadn’t even crossed my mind. I guess because when you say websockets I just think web browser. Good idea though, would make browser clients easy too! I’ll have a look.

          I was originally thinking about using XMPP as mobile -> server, then a program there to connect to ZNC. Didn’t know much about it at the time, then realised that XMPP really is not what I wanted for that.

          I’m planning on writing the server side part, then finding an open source Android messaging app (I really quite dislike UI, and if there is already a solution…) to modify to connect to my server. Hopefully it’ll work out!

    35. 2

      Work: building out some administration and instrumentation dashboards for a few things. Making some good time on it using Laravel and Vuejs (I might also be exercising a bit of “lets see if I can build anything useful with this stuff”).

      Home/Fun: More biking. I’ve got about 500 miles ridden since 4/10; looking at adding a few hundred more than its warmed up a bit.

    36. 2

      This weekend I ported the sfxr sound effect generator to TypeScript, mainly as an exercise in using TypeScript and webpack together.


    37. 2

      This week I’m going to be uncovering and rebuilding my girlfriend’s well, continuing to work on bringing her Jeep back to life, playing some more with ocsigen/eliom, and assuming the surveyor can make it this week, starting on a new fence to keep in the animals around the farm.

    38. 2

      work: mostly involving malware classification, wrangling data, oddly some frontend stuff (blessed are those who kept up with CSS and its malcontents), etc.

      home: band practice and reading ET Jaynes Probability Theory: The Language of Science

    39. 1

      building monster ETL pipeline with Spark and Scala. I just learned last night how to use implicits to add custom methods on DataFrames, and it really cleaned up my code. Spark is definitely more expressive and more fun to write than hadoop jobs, but it also seems less stable. (random OOM problems if you’re not super careful)