1. 13

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

    Wrote a welcome bot for Slack - allie

    Whenever someone joins your slack team, this bot sends them a welcome message.

    1. 4

      I attended and spoke at Rust Belt Rust last week, and left feeling really excited and energized. So I’ve got a few projects I’d had in mind for a while that I’m finally putting some time into.

      • drow: will be an opinionated static site generator that I intend to use to power my blog, Suspect Semantics.
      • caffrey: is a work-in-progress framework for generating fake content from some underlying corpus of real content. It is loosely inspired by forgery, a Ruby library.

      There are also some issues I plan to open on various repositories based on discussions from Rust Belt Rust. Got a variety of ideas for making Rustdoc better, and I’m excited to get moving on that.

      1. 3

        Outside of work, I’ve been reading through Nature of Code (NoC) and trying to regain lost electrical engineering skills. The big push with NoC is to learn more and not let my perfectionism with professional software engineering get in the way — a lot of projects I’ve started have died because I insisted on doing them The Right Way™ and ended up not having the time or energy to see them through. The reason I picked NoC is because it gives a good background for the concepts that I think I’ll need to get through Cities and Complexity; I made it through about two or so chapters, but didn’t really have the background to understand it. Those two chapters were fascinating, though, and it’s a subject of a lot of interest to me.

        For the electrical engineering side, learning to play some instruments has gotten me thinking about audio electronics, which is driving me to start tinkering with that again.

        1. 4

          The Right Way™ is all too common a problem with me. I can crank out little utilities that I actually need, but larger projects, which I expect to eventually talk about and try to promote some, I find I get really defensive and struggle to settle on a way, mostly, I think out of fear of criticism.

          Being criticized on the Internet, for a technical choice made is all too common, and I simply would rather not deal with it. The problem, though, with being this defensive, is that realistically speaking, exactly no one cares about my project but me, unless it has something of value in it that people relate to. So, in theory, whatever. But in practice, it’s hard for me to convince myself that no one will care about my ideas because I believe in them.

          Still haven’t come to grips with this. Would NoC help?

          1. 1

            There’s a couple things about NoC that made me choose it:

            • You use Processing, which is a language intended for artists and beginners. I don’t know how to modularise things in it or do anything really but open a new sketch and put code in the IDE.
            • Processing is all Java, which I had no interest in learning. Now, I just don’t care; it’s what comes of it that makes me care.
            • It’s all an exploration of ideas without having to worry about things that would be production quality.
            • Getting things like sound and graphics Just Works (in my experience, on an XPS-13 running Ubuntu), so you don’t really spend time trying to fight a build system.

            There’s a Processing app for Android as well that builds an app on the phone (v. the iPhone version that lets you run sketches, sort of) and lets you import libraries. This means you have a handheld device with a lot of sensors and interesting interaction possibilities, so I’ve pressed my old Nexus 5 back into service as a WiFi-only handheld computing device, much like what I used to use my Nokia N810 for.

            I completely sympathise with your concerns. I work in security engineering, and have been fairly focused on crypto, which is a constant defensive battle and a battle to try to get people to care about the things I’m working on and to use the things I’m working on instead of hacks and workarounds.

            1. 2

              Now, I just don’t care; it’s what comes of it that makes me care.

              I’ve written a blog post about this sort of philosophy when it comes to programming languages. I think of them as a means to an end, not an identity. The post tells a story about a feature that I wish existed in Go, and how people got defensive because “why would you need it?” This interaction made me realize that they are “Go programmers” in their minds, not just “programmers” and as as result, I was insulting them directly.

              Ironically, I haven’t published this post because I’m not happy with the way I tell the tale. I got some feedback from a trusted friend who suggested I make some suggestions to the tone, which I agreed with, but haven’t yet done.

              Also, Processing is great. I played around with it a ton when it first came out and was super excited about it, made lots of sketches, and had a blast. I opened it up a couple of months ago, and it’s largely unchanged from what it was originally, but the ecosystem has exploded, which is simply amazing! I’ll consider the book, if not, just to play around with something fun. Thanks!

              1. 3

                ’ll consider the book, if not, just to play around with something fun.

                The book, for me, is a means to an end — it explains the concepts I’m interested (all of the things that I need plus a few extra things) and just happens to use Processing; the real goal here is to end up being able to understand Cities and Complexity.

                This interaction made me realize that they are “Go programmers” in their minds, not just “programmers” and as as result, I was insulting them directly.

                This phenomena, where people base their identity on a particular technology (including programming language), is usually where I lose interest. I used to think like that, so I understand it, but it’s so very wearisome anymore. I find that so many of the trivialities that people get worked up about in tech are absolutely uninteresting anymore, particularly so because many of the end products are things that I either don’t see much value in or just don’t care about. I think that as I get older, I’m focusing on what things I want to do, not how I want to do them. Processing sketches that I write as I work through the book aren’t going to end up needing to be maintained; I might refer back to them, but I find that the notes I take are on the concepts and not how to implement them. For embedded devices, there’s PlatformIO that uses an Atom package. In the past, as a stalwart emacs user, I’d have taken umbrage at the thought of using Atom, but I find it’s a useful tool to have around.

        2. 2

          Work: I was put on a month-long turn around for an entire website (sans content). Simple enough, basic WordPress install with a pretty generic template.

          Home: Busting out my Arduino Due, buying some note pads and starting some basic prototypes for a USB MIDI sequencer I want to write. I am thinking of going deeper than Arduino and looking up the C/C++ libraries and interfaces for the actual ATMEL chip on the board. Probably will be too much work though.

          1. 2

            I’m going to finish module 4 and 5 of the data science class I’ve been taking, and then, I’ll go through the case studies one by one, although that last bit will only get started this week, there’s two case studies per module, and they should take between 1-3 hours each.

            For work, I’m doing some data plumbing, trying to make some systems play nicely with one another. In effect, this means that at some point this week there’s gonna be API things to consume the output of the data pipeline. It will have been a fun endeavor so far.

            In other news, I wish I could grow some discipline out of my spine. Any tips on that? It’s been a recurring pain point for me.

            1. 2

              I worked a bit more on a fast and responsive empathy theme: https://github.com/meskarune/SimpleBubble.AdiumMessageStyle

              Empathy normally uses adium themes which may or may not work well with it. I created a css only bubble chat theme and added some javascript that turns links to images into thumbnail image links. I might try and support html5 audio too, but so far my theme hasn’t gained a lot of popularity or feature requests.

              1. 2

                Working on client projects, but more interestingly trying to build an RSS reader that fits with modern web development/design/architecture standards.

                Looking for input on that too! What kind of things would you all like to see in a new RSS reader?

                1. 2

                  I happily pay for NewsBlur. It’s not perfect, but it has good mobile clients, which is by far the most important aspect of a news reader.

                  1. 1

                    I like NewsBlur (and the whole model around it), but use tt-rss for my RSS consumption (I can’t remember exactly why, but I think it was the simpler, easier-to-manage deployment).

                    A few things I like:

                    1. Client/server model (I much prefer it to client only). Nice to have is multi-user/multi-tenant deployment with support for the major open source databases.
                    2. Plugins and themes.
                    3. Good mobile support. For me this means supporting an API that third party mobile apps use (eg, Fever). I can then use apps like Reeder (for iOS/Mac) or The Old Reader (iPad) to read feeds. I like reading feeds offline (eg, on the train), so this is crucial.
                2. 2

                  Despite already having a lot on the go, last week I started a new project for managing public roadmaps. Most “transparent businesses” that already share their upcoming, in-progress, and completed tasks use trello, but of course it’s not made for this exact use-case. So handling user suggestions is a hack, and you can’t generate a nice changelog from it, for example. It’s a generic task management tool, not a tool for public roadmaps. Anyway, we (Hello Code) currently use trello for our apps' roadmaps too, but I’ve been building something better that we can first test for ourselves, with our users, and then hopefully offer to others. I’m pretty pumped about it, so I’ve been working a bit harder than usual trying to get it done. I’m hoping by the end of this week it’ll be ready for us to use.

                  And hey, if anyone here needs something like this, send me a message!

                  1. 1

                    I’ll try again to package Fire★ using AppImage. I will also play around with getting a QML shell up to start rewriting UI. Long term goal is to make it phone and tablet friendly.

                    1. 1

                      Migrating old swig templates to nunjucks. Initially, it seems pretty easy, but there are a lot of odd quirks that keep breaking random pages and it’s driving me up the wall.

                      1. 1

                        At work: Learning React. I’ve spent the last two (maybe three?) years doing back-end work. The first hour or so it was pretty much as described in How it feels to learn JavaScript in 2016 so I guess it’s going to be fun :-)

                        Personal: Trying for the n-th time to bootstrap my own company. I have several ideas but I rarely actually finish something. Hopefully I’ll be a bit more organized this time.

                        1. 1

                          A chatops bot - slack-today-i-did

                          A chatops bot framework designed around being usable through multiple interfaces, with the ability to enable/disable featuresets at will. Right now it has a Slack UI and a repl UI. I like the repl one more, but the Slack UI is better for working across teams.

                          It originally started as a project to try and solve the problem of async standups across a distrubuted team working very different time zones.

                          Some of my favourite features:

                          • Ability to reboot itself from a given branch
                          • Micro-service like extensions which can be enabled/disabled trivially
                          • Live reload of function code
                          • Type errors (e.g you tried to use say-hi but say-hi needs a string argument for person_name!)
                          • A simple DSL with full typing (including handling of function pointers)
                          • A helpful chatty response system as shown here

                          The type system is implemented using Python 3.6’s type annotations. We’re not using mypy directly, instead spinning our own type hinting system for our DSL.

                          1. 1

                            Was skimming this Lisp Machine manual and fantasizing about making up some lisp-processor-like emulator. Does anybody have resources on the assembly language used by Lisp Machines (check chapter 27, page 432 of pdf) or the Ivory processors? I cant find a full reference online.

                            1. 1

                              Prepping for a huge customer demo at work, which of course involves adding code for features that the sales side promised that weren’t actually, you know, there.

                              1. 1

                                I accepted an offer to work at Dropbox, so am taking November off to work on side projects and develop a running habit.

                                1. 1

                                  start removing the camlp4 dependencies from crosspad. i think i can use angstrom to replace both mikmatch and bitstring.