1. 21

Heya lobsters,

It’s Monday again, a new week!

What are you going to work on this week? Feel free to share and seek help/advice if you want.

I’m going to work on product documentation for this week. Been skimming through some of the best ones out there over the weekend ― Parse | Stripe | Ruby Guides | Redis Documentation | Django | Github and others, and there seems to be just one quality that is common to all of them: effort. Such huge effort people!

Let me salute & kudos to all those who’ve toiled & strived to bring such great documentation like we have in our Universe of software today. I personally love the clean design of Rust documentation a lot, like I usually prefer whitespace over colored designs, but that source serif pro typography in there is simply orgasmic. Let’s see where it goes from here. :)

Have a great week ahead!

  1.  

  2. 9

    I started writing an OpenBSD kernel driver for the HID-over-i2c trackpad on my new laptop, but then got sidetracked by a couple of bugs in our XHCI USB3 support. I spent all weekend tracking it down and instrumenting the XHCI and USB hub drivers in Linux and FreeBSD to compare with (our new EFI support makes multibooting 3 different OSes so much easier). I finally figured it out last night and will be cleaning up my changes for committing this week so I can get back to my i2c driver. I’ll probably talk more about the process on my podcast this week if I don’t die from whatever this (non-software) bug is that I’ve caught.

    1. 5

      Lots of Peergos stuff this week. Our alpha testers seem to be doing okay. We’ll do a follow up in a week or so. We are about to add a friend discovery mechanism, still without leaking metadata. We are presenting at an IPFS meetup with the founder, Juan, in London.

      1. 5

        I’ve spent a lot of time trying to learn scheme recently, so one of my recent projects has been an implementation of coreutils in scheme. It’s been fun trying to see how short I can make the programs, since chicken-scheme has some nice string/list manipulation libraries built in.

        1. 5

          I’m going through CIS 194: Introduction to Haskell. Loving it so far.

          1. 5

            I don’t know what I’m going to be doing this week; we have some baby business that is coming up that’ll take us out of commission for a few weeks, and my contract is up at the end of the year, so I guess I need to consider what I’m going to do next year. Polish up the resume. Spend some time catching up with former coworkers. Possibly even shudder LinkedIn.

            I did get notion working, which is great, because it means I can ditch i3, which I was unhappy with. One step closer to a passable X11 environment! Tangent: the Arch Linux wiki is a marvel. I have found excellent information there for almost every single Linux related question I’ve had over the past couple of months, even as I’m using a very different distribution. Kudos to the Arch folks!

            1. 4

              I’ve been learning about radio signals and antenna design. The best resource I’ve found is Andrew McNeil on YouTube. He is ‘merely’ a hobbyist antenna developer, but his designs are excellent and his videos very thorough.

              These four videos comprise the history of his biquad-yagi design which I plan on replicating.

              My goal is to connect to my friend’s wifi ~190m away. I might need to create a second directional antenna at his apartment aiming in my direction… there are quite a few obstacles the signal would need to blast through.

              1. 4

                As I get deeper into learning Elixir, I find that I have trouble using macro-heavy libraries– things just feel too much like magic for me to be comfortable– and really want a tool that I can use to expand macros for the code I’m working with so I can see how the AST is transformed before being fed to the compiler. There’s Mex, which kind of does this, and it’s too tied up in the interactive shell (nowhere near as comfortable as rmate/rsub + Sublime to work in); I’d really like a mix task where I can do something like mix expand Some.Module.In.My.Project and get the expanded version tossed into stdout.

                Of course, I also want to expand only those macros not baked in as language features or, say, from a subset of modules that I’ve pulled in via use/require/import.

                So, shaving my way out of a yak-hole, mostly.

                1. 2

                  I believe Alchemist.el now supports expanding macros inline in your emacs, if you’re using that.

                  1. 1

                    Thanks! I’m not an emacs user, but being able to read through the lisp and see how they approach the problem is going to be very helpful on its own.

                    Edit: It appears the lisp writes a temporary file, hands it off to Elixir, and then does +/- the same thing as mex. Time to go look into some compiler source code.

                2. 3

                  This is my first week back at home in a while. Swarm says that I’ve been to JFK for four weeks in a row now…

                  So mostly it’s settling in, writing more docs, the usual. I have a dentist’s appointment today that I should have taken care of a while ago, it’s giving me some stress…

                  I’ve been enjoying this approach lately: https://github.com/rust-lang/rust/issues/29429 tracking issues for all the things. I’d like to check one or two of those things off the list this week if I can.

                  1. 3

                    New hardware arriving tomorrow - finally upgrading my 2010 macbook to a 2015 macbook pro, moar pixels & battery life!! - means I shall no doubt be spending time dragging my ansible playbook up to date from last time I installed my dev machine.

                    In SmartOS news, I built my first pkgsrc package from scratch. Took nzbget source tarball and wrestled it into submission. Next task is to figure out signing my own packages as that is now strongly recommended (& then get it installed from package on my server.) Also killed my last KVM zone on the server, as I finally realised I could just run mono/sonarr under a debian lx-brand zone and get nearer bare-metal performance (to say nothing about sharing ram with the other zones nicely.) Slightly embarrassed how long it took me to think of doing so.

                    Also have an iOS app designed that I want to try building out, which given new hardware should be a lot less painful than the current dev machine. Fairly simple, just entering weight/fat %age from my scales into HealthKit on my phone. Haven’t found an existing app that is simple enough for my needs, and I feel comfortable enough with swift/storyboards to get it working.

                    1. 1

                      I have toyed with the idea of setting up a puppet manifest for my machine. But I am wondering if I install machines so rarely that it’s more efficient just doing it by hand every time it happens.

                      1. 1

                        Yeah … I’m hoping this will still be useful. I reinstalled my $work machine over the summer and wrote this playbook to install it from scratch which seemed to work quite well. Then de-$work’d it and ran it against my personal laptop too - which also seemed to work.

                        I figure even if it gets me going a few hours quicker and sets up things like Finder preferences that I’d otherwise forget about on new machines then it’s still a winner. I don’t make much effort to keep it up to date with changes though, not sure how far either current machine have diverged from the playbook. >:-)

                    2. 3

                      At work I am familiarising myself with Spacewalk, and supposed to set up logging to Papertrail from python services running on ElasticBeanstalk docker instances.

                      At home I am slowly chugging through Cryptopals set 1 in Clojure. I’m trying to see how far I can get without using any libraries (except test.check) so have had fun with hex and Base64 encodings. Currently working on the Base64 decoder for challenge 6.

                      1. 3
                        • Lots of paperwork (new car, etc)
                        • Dental surgery
                        • Explaining the planned UI architecture to coworkers
                        • Showing off our new internal CSS framework
                        • Adding the last features/bug fixes to the CSS framework :-)
                        1. 3

                          Writing: I’m publishing a blog post on ActiveRecord methods that don’t enforce data validity and as many words as I can for chapter 2 of The Ruby Fulcrum.

                          Meanwhile, ~20 instances of adult paperwork chores (health insurance, retirement accounts, other exciting things) has all come up at once. I’m glad to get it all squared away, but it’s a big chunk of tedious nitpicking all at once.

                          1. 2

                            I was working on trying to get gtk2 to support high-dpi screens for Win32. I made some progress on this, but had to leave it to travel for work and deal with some higher-priority stuff.. and now I’m finally coming back to it.

                            1. 2

                              I have moved from Chicago to Seattle and am settled in enough to continue Firestr work. Will add UI for securing computer resources like mic.

                              Then I will add screen grab support so that people can build screen sharing software.

                              1. 2

                                At work: secret sauce to make k8s scale significantly higher on DCOS :) Free time: doing some foundational work on rasputin (a linearizable distributed database in rust) leading up to sharding of kv + log + object storage. Last week I wrote rust bindings to the mesos http API, so we can start writing databases that can gracefully handle machine failure and operators' specified desire to bring machines offline.

                                1. 2

                                  I’ve been tripped up by time zones again, so I’ll be figuring out the best way to exchange local times between Postgres and a JavaScript client.

                                  It never ceases to amaze me how many gotchas dates and times have, even though I’ve been dealing with them for years.

                                  1. 2

                                    Node.js and AngularJS work for my 9-5 (MEAN stack), AngularJS and Magento for freelance hours ;)

                                    1. 2

                                      I’m at LISA this week, so most of my work will probably consist of going to talks, taking notes, and trying to keep an eye out for people we can hire. :D

                                      My spare-time project for the past couple days has been setting up an ELK-stack monitoring server and playing around with it. So far I’m less happy with it than I am with Splunk, but free and open source is a strong advantage. We’ll see.