1. 14

It’s odd reading Lobsters on a Monday morning before @BruceM has gotten around to posting this thread, so I thought I’d kick it off. :-)

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

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


  2. 11

    $work: Sidetracking from previous work to build a little stresstesting thing to make the suits happy.

    Speaking of suits. Our suits required (not requested) that we set up/use existing twitter accounts to shill for the new corporate one. PSA to suits – don’t do this, it’s scummy. Requiring me to retweet and follow people so you can astroturf the product is crap. Even if I like the product (which I do, or else I wouldn’t work here). It’s much better to inform me that there exists a twitter account, so that I can follow it of my own volition (which I would have done), and retweet it as I desired (which I would have done) to my far greater number of actual followers, rather than the pittance of spam followers my new account has. Telling me to follow at least 5 people a week and retweet your news, telling me that you’ll be checking up on these accounts, that’s not a good way to make me want to help you accomplish what you want to accomplish. Indeed, my retweets might’ve actually meant something if I used my real account, now they’ll just vanish into the ether.

    !$work: Still cranking away on my Sage project. I managed to shelve the Lua thing I was bamboozled into for the moment, but I’ll have to get back to it soon to. Suffice I’m less excited for that. I also set up a nice new USB KM switcher so I can make better use of my multiple machines. That and a multi-input monitor is making for some pretty pleasant working conditions.

    I am having some trouble getting my laptop to boot from this usb stick though, dunno why it’s giving me so much trouble. Is there some setting I need to format it with? Who knows…

    1. 3

      Not everyone has the luxury of just quitting their job, but I would instantly quit if that was the case.

      I actually did have a company once try to put in a contract “Steve must tweet something nice about us once a quarter,” luckily my boss laughed in their face.

      1. 3

        I took the approach of making it glaringly obvious that the shill account was a shill account (handle is “<productname>Dev<myname>, icon is product icon, first tweet is, "I work on this, it’s neat, check it out.”, etc). I should note that they didn’t make it explicit that there would be consequences for failing to comply or anything, merely that they would be ensuring that everyone had done so. I suspect that this is because it’s not quite kosher to do that. I registered my complaint strongly with my boss, who agreed but – as you note, neither of us are in a position to make a stand about it, he was similarly miffed.

        The truly unfortunate thing is that – I think the product is cool and actually really useful. We’re not the only one in the space, but we aren’t the biggest place either. The guy driving the action is, by all accounts, a decent guy (despite his suit-y-ness), and I have no reason to think that he’s malicious, he’s trying to sell his product. If he just said, “Hey, we set up a twitter account, go tweet at it if you want, no pressure.” I would be all over that, but when you start telling me I have to tweet and follow and so on. I will go full ‘best abuse of the rules’, and that’s sort of my favorite game.

        1. 1

          Have you considered being direct with the person in question and pointing out that their requirement is unethical? If, as you suggest, the “suit” in question is just being overzealous, they may be willing to course correct by sending out an email to folks: “Oh, we didn’t mean that you absolutely had to, we’re just excited and want everyone who’s willing to help with the marketing to do so.”

          1. 1

            The guy in question is sufficiently far above me and my boss in the org-chart that capitulation is more cost-efficient than confrontation. Something something fighting city hall. Given that I haven’t heard anything negative about my abuse-of-the-rules approach, and given that I don’t want to spend the political capital (and potentially risk my job), I don’t want to push the issue much further than that.

      2. 1

        I can’t believe this is real. I mean, who cares about social mentions that much? Are they that bad at marketing?

        One question: is this a startup? Just asking… :)

        1. 1

          And if they’re going to spend that amount of time checking up on everyone all the time, why not just spend that time making sockpuppet accounts to retweet things themselves or use one of those “buy thousands of twitter followers” services?

          1. 1

            It’s not a startup, but it’s not a massive company either. I’m hesitant to give more details than that (I try to avoid identifying my employer, though I suspect a bit of googling would reveal it. My guess is that the idea is from someone who’s all gung ho about ‘social media viral marketing synergy’ or some such pushed it, and that led to the appropriate sequence of suits adjusting their ties and ‘Hmm’-ing in unison as they decided to do something suit-y.

            1. 1

              No worries! Hope it all passes soon.

        2. 9

          This week has been a bit lighter for me.

          While documenting some code, I found a bunch of little items that could be worked on inside the Dylan compiler. If someone’s interested in some introductory stuff, I have a good set of things.

          For Open Dylan, I:

          • Wrote a new History page on the website.
          • Published a post on Dylan and Gradual Typing.
          • Started to document our LLVM library and realized that our documentation generator needed a lot of love. (Not yet pushed out.)
          • Spent a couple of days of spare time fixing up the documentation generator to better extract data.
          • Documented a good bit about how warnings and other program notes are handled within the compiler.
          • Started converting the comments from the PPML (pretty print markup language) library into standalone documentation for it. (Not yet pushed out.)
          • I also got my libuv bindings building again and started fixing a couple of things in them.
          • Started a discussion about putting more things in our bug tracker and following a tagging scheme similar to that of Rust to try to keep things manageable. I’ve noticed that my memory is significantly worse than it used to be and I want to dump more things from my brain into written form.

          A lot more code has landed for our LLVM backend and it is starting to get really close to being something that can work from the master branch. This is pretty exciting as it will allow us to revive all sorts of functionality that has been dead for a couple of years or only ever worked on Windows (like our REPL, interactive debugging, etc.). I can’t wait for this to happen.

          I also managed to get in some good fiction reading time as I’ve needed some down time after recovering from the infection of the week before. And this weekend, we went up to Bangkok to take our daughter to a NASA exhibit so that she can learn about rockets and other fun things.

          1. 7

            I just (last night) noticed that GHC’s static pointer extension precisely corresponds to something called “box” from modal logic. What’s cool is that we have a lot of usages for box outside of distributed computing for things like forcing the separation of computations. Now I’m just tugging at the thread to see what will fall out :)

            For $(work) I’m doing some research with verified proofs in a proof assistant called Twelf so I’m working through a bunch related proofs other people have produced in Twelf. It’s a strange combination of math and legacy code :)

            1. 5

              Last week a colleague and I wrote a patch for a downstream team to change the way they consume our API. I also tested the system before & after application of said patch and wrote up the results, which was a 10-fold improvement in throughput replaying access log from one day in the previous week. It turns out they didn’t need more convincing as this morning they had deployed our patch to production before I got to the office :-) They were slightly disappointed that average latency went up slightly, but jumped for joy when we told them to look at their max latency as this had been massively improved. Every other metric had improved.

              This week I’m doing more benchmarking on different changes to hopefully reclaim some of the increase in average latency we lost with that change.

              At home I’m mainly panicking about impending move across the country. Since this is in the UK it is only a 3-hour train journey, so it’s not the distance that is frightening. It’s the loss of income & impending stay-at-home dad status that is both exciting and slightly daunting :-)

              1. [Comment removed by author]

                1. 1

                  How are you handling algebraic data types in Ruby?

                  1. [Comment removed by author]

                    1. 1

                      The standard OO approach for modelling ADTs would be the Visitor pattern.

                2. 5

                  I’ll be speaking at Lambda Conf in Boulder - it’s in late May this year.

                  Still working on the book. Preparing a raft of material for another round of review. Things are going well.

                  1. 2

                    Woo, everyone should come to Boulder!

                    1. 2

                      I’m kind of thinking of moving there from Italy this summer. Conference looks cool, but quite a bit of cash if we’ve just made the big expensive move. Also a bit light on Erlang, which is my primary interest in FP.

                  2. 4

                    Last week I:

                    • Was incapacitated for a day due to dental work.
                    • Finally finished Chapter 3 of my Jasmine Testing book.
                    • Wrote an article on the new concise method definition syntax in ES6 (will appear in A Drip of JavaScript tomorrow).
                    • Completed a chapter of my steampunk novel.

                    This week I plan to:

                    • Upgrade the form validation library I’m using at work, and then refactor a lot of repetitive validation patterns.
                    • Catch up on book and Drip-related emails.
                    • Write an article for A Drip of JavaScript, possibly on classes.
                    • Begin work on the email template redesign.
                    • Do more research on historical characters in my Steampunk novel.
                    1. 2

                      How is TypeScript stuff going for you?

                      1. 1

                        A little early to say. I’ve got the initial conversion done, but a couple of unrelated bugs have prevented me from merging that back into our develop branch yet. Hopefully I’ll know more in the next few days. :-)

                    2. 4

                      I’ve restarted work on my personal chef infrastructure, developing it to manage my website and other servers. Unfortunately, I’ve also broken a lot of things over the weekend so it looks like I’ll be spending all week fixing things.

                      But it does give me an excuse to buy more VPSs from LowEndBox which I probably have an unhealthy habit of doing so.

                      1. 4

                        I’m trying to get some of the major features of Rust that have basically no documentation to at least have some. Threading, Closures, and Associated types are pretty much only documented in their RFCs.

                        Today starts a ‘snowpocalypse’ in NYC, so we’ll see how that goes. Hopefully it’s calmed down by Thurday, because…

                        I’m also beginning a super long, complicated trip at the end of the week. I’m going to Brussels (via Moscow, yay partner airlines), then from there to Australia. If anyone is going to be at FOSDEM, API Days Syndey, or Ruby Conf Australia, I’ll see you there!

                        1. 3

                          Kinda fell off the Hython wagon in weeks past, so I’m trying to climb back on. Yesterday, I added support for default arguments in functions. I enjoyed doing that.

                          I’d like to add support for the splat args construct (*args) this week, along with object IDs. The latter is a bit tedious because I need to hand out IDs to every object as they’re constructed. If I don’t like that, I’ll fall back to working on generators.

                          I’ll be at the Compose Conference later this week, so say hello if you are there.

                          1. 2

                            This is the joy of working on a compiler and the surrounding tools. No matter what you’re interested in doing, there’s almost certainly something that can be done involving that with the compiler or related tools. Every day can be forward progress of some sort, even if it isn’t what you expected at all. :) (Hence my status updates…)

                          2. 2

                            I am getting nothing done, what is wrong with me! Instead of working on firestr or my todo list Muda, I got distracted. I decided to implement deep learning stuff from scratch based on original papers just so i get how it works. Sometimes you just have to let your hair down…

                            1. 2

                              With my first eBook about designing 3D objects with a programming language, “Designing with OpenSCAD”, I started the marketing webpage, and started thinking about the benefits, the story to tell, and the copy to write. I’m also looking for communities that would be interested in the book. https://leanpub.com/designing_with_openscad

                              I finished the decision tree learner that I’d been working on. I also implemented a basic testing suite for machine learning algorithms that separate out test and cross validation sets to determine the error rate. The decision tree learned has an accuracy of around 80% for 2 attributes, and around 83% for 3 attributes. In its current implementation, it’s too slow to count fast (for 4 attributes and higher). So I am thinking about making adapters for different storage backends, like redis or mongodb, instead of just counting elements in a list of hashes. However, the probability DSL is solid, and I might also try to implement hidden markov models using it. https://github.com/iamwilhelm/decision_tree

                              1. 2

                                I’m hoping to find a bit of time to merge the devel branch of the epgsql Erlang Postgres driver and make a 2.0 release.

                                1. 2

                                  Ok, so this Idris to Erlang compiler is reasonably still a WIP, and yet it looks like it might be “polished” (in the academic sense, not the releasable sense) this week, as I have to give a demo to someone to prove I’ve done some work.

                                  Type stuff is also interesting, but edwin’s new FFI for idris looks amazing, so I’m going to use it. I also need to get writing on the dissertation itself.

                                  As for everything else, this week is the first week of the spring semester, so I’m just getting started with my new courses. It’s kinda weird to think this is my last semester at St Andrews, but on to somewhere else soon if grad school applications are successful. :)

                                  1. 1

                                    For the past month or so, I’ve been working on Davine. Davine is an open-data, open source, and ad-free analytics platform for Vine (Twitter’s social media network based on 6-second video posts). Davine crawls Vine and automatically adds users to our queue of users to crawl daily. I could really use some help with it as this is the first time I’m using Google’s App Engine and exclusively Go for the entire project. Feel free to submit a pull request with whatever you see fit and I’ll pull it into prod.

                                    1. 1

                                      I’ve been playing around with the usbarmouries I got this week. A coworker and I have some ideas for them, and this week I’m trying to get verified u-boot to work.