It’s that time of the week again - time to discuss what you have done recently and any projects you are planning.
Please be descriptive and don’t hesitate to ask for help, advice or other guidance.
As is typical, I’ve done things I had no plans to do in the last
I was pretty interested in the NextBSD
announcement. The dispatch, xpc and related libraries from
Mac OS X are pretty nice and having them more widely available
would be great. (An interesting aside, Microsoft has improved
of the dispatch library on Windows as part of
Thinking about the dispatch library was the prodding that I
needed to get back around to looking at using it from
Dylan. And, so began a few days
of doing other things to get to that point!
We have a bindings generator,
I have largely been the primary maintainer and developer for
over the last couple of years. It contains a home-grown C
header parser as we haven’t had the time to deal with
switching over to libclang.
Attempting to parse dispatch/dispatch.h and friends
immediately ran into some issues:
I fixed all of that over the course of a couple of days of
spare time. Then, I started trying to use the bindings to
call dispatch_async_f to execute some Dylan code via
a dispatch queue. At that point, it crashed once it tried
to invoke a method that hadn’t been optimized to a regular
function call (any dynamic dispatch) as the dispatch process
requires some thread local data that wasn’t set up yet
since we were running on a foreign thread and not one that
had been created from Dylan. I started looking at fixing this
and will (in the coming days / weeks) make it so that the
runtime exports some functions for entering and exiting
a Dylan environment on any thread (not hard) and make that
work with both our C and LLVM compiler back-ends and run-times
(also not hard). Just a matter of time, I suspect … until
I see what else I run into.
This is fun stuff (to me) and a good example of how just
getting something working is just the start of a project.
Quality of implementation and longer term maintenance
take up a lot of time!
Along those lines, I also spent some more time on the
documentation fixing some minor issues and working on
some larger cleanups in the background. The larger work
will land in the coming days.
Finally, I updated our GTK+3 bindings to work with
a relatively current version of GTK+3 (whatever is
provided by homebrew on my Mac). I also fixed a couple
of issues with the GTK+3 backend to
There’s a lot more work to do there, especially work
best done by someone that actually knows GTK+3 (not me).
I’ve also got a backlog of changes to LLDB
to get out and pushed out for review upstream and I’m
working on a fix for an issue with emscripten
All in all, an enjoyable week. This week, my daughter
goes back to school for her reception (kindergarten)
year, so I’m looking forward to some increased productivity.
Over the weekend, I wrote and released a time travelling debugger for Cycle.js.
Here’s a video and here’s a live example.
You can check out the code/instructions here.
I’m really excited by this project. I already can’t imagine writing Cycle.js app without it, and I think it has very cool possibilities. I want to add a feature for recording and exporting integration tests, and investigate fixing bugs in the past with hotloading.
Much of this is inspired by Dan Abramov’s recent talk about similar tools for redux.
This is a bit meta, but I on establishing “What are you working on”-style posts in the Rust community.
I’ve got a lot of community work on my plate this week: reestablishing the Rust Hack and Learn in Berlin and preparing for presenting Rust at OpenSourceBash, which is a Berlin event to present Open Source projects to potential newcomers.
Meh, link to reddit was obviously wrong: https://www.reddit.com/r/rust/comments/3j2820/whats_everyone_working_on_this_week_week_36_2015/
Career planning. Kinda burned out on consulting, have some major life events coming up anyways, so I’m looking around for a new job with new challenges and opportunities to learn and teach. If you know of Chicago or remote work in Haskell or Rails, message me (or ph@ my blog domain).
Otherwise I’m finishing chapter 2 of 9 of the ebook on mutability and side effects in Ruby and week 6 of cis194, depending on free time after phone screens.
I need to do some serious career planning, as well. I like my current gig, but it is short term, and I’m having trouble articulating to myself what I want to be doing and when.
The IBM XL compiler. (My new job.)
It’s fascinating working at IBM after working at a startups for the past five years. Things get very different in a team of 100+ devs and a code base with literally hundreds of man years behind it.
That’s awesome! Can you say what sort of thing you’re doing with it?
And learning a new and huge codebase is a lot of fun. You might enjoy keeping a notebook and seeing how your opinions of various things in the codebase evolves over time as you get to understand it better.
I’ll be working on auto-parallelization transformations as part of the optimization stages. But right now I’m mostly getting used to new workflows.
And keeping a notebook is a good idea.
Enjoy! I interned on the TPO team years back, and enjoyed my time greatly. Working with the JIT team now.
The function proxy and versioning method is clever. The eventListener example seems especially tricky. Nice work!
I’m doing a few things:
Right now I’m looking into getting my amateur radio license technician class. But this weekend I’m going to a hackathon and will be making a DIY smart fridge kit.
I was thinking about that the other day. A simple version could be a largish tablet (10"+?) with magnets stuck to the back just sitting on the fridge. It could default to either a shopping list (Todo or sketch application) or calendar app. Kind of expensive unless you happen to have an old one lying around (I didn’t :( ) and you would need some pretty strong magnets. And you might need charging every week or so? You could have a charger plugged in on the top of the fridge and dangle it down for a few hours each week when you need to charge it?
Running some roundtrip numbers on image recognition in a canned video on the Jetson; depending on results, plugging in a webcam and doing a live test. Also, plugging something less janky than filesystem inotify for IPC between front and back end applications, although inotify is sweet in how simple it is.
Trying to set up a Vagrant test environment for our puppet repository so I can do a spring clean of our puppet & hiera code to remove cruft and be reasonable sure of not bricking the boxes in the datacentre. Having to work around spacewalk & rhn (don’t want to have to register with spacewalk on every vagrant up) and list of minor issues.
Last week I published the code for my TODO list project called Muda. Here is a screenshot. It is a web app written in C++ and has an AGPL license.
This week I am going to add a README and some documentation on how to get it running. I think long term I might host it and make it available for a nominal yearly fee for those that don’t want to run it themselves.
About a month ago I took over a project to redesign/refactor the drive management code in our product, after the person previously working on it left the company. After some transition time and ramp up, I finally got all the unit tests to pass last week. Now I’m working to get the system tests working. I get the feeling it’s going to take a while :-/
Outside of work I’ve been reading Game of Thrones.
I’ve recently developed a small tool to grab the certificate of a TLS service and going through the paces of testing it across a ton of different configurations and servers. It’s surprisingly painful to script getting the certificate using OpenSSL’s or GnuTLS’s CLI tools.
Lastly, I’m looking for a job. If anyone needs an excellent DevOps person, here’s my resume.
Oh man… lots of stuff. Where to start:
One. Just finished putting together a preliminary proposal for a possible project using our products, that came from an unsolicited inbound lead. That’s always exciting, as I like it when people come to us.
Two. A lot of what we do involves integrating existing OSS components into our overall stack. Right now I’m working on writing up our process for evaluating and integrating other projects, as I work through doing one. Once I have it all documented and well defined, I want to start trying to apply some of Doug Engelbart’s ideas about “bootstrapping” (his version of “continous improvement”) to improve our ability at improving our ability to evaluate and incorporate new projects.
That “meta” stuff aside, the project I’m working on right now has a Maven dependency that is broken in the public repos. I’ve been meaning to setup an internal repo for a while anyway, so I think this week I’ll be setting up Artifactory (or whatever) so we’ll have it for local use anyway. And then I’ll download and build that broken dependency and install it into the repo.
Then, I’ll be doing some work on the demo server, and will probably start looking at some work on SSO support in our products that is seriously lagging.
If I have any free time, I’ll be continuing my process of learning some new languages and tools. I’ve got quite a laundry list of things I’m working on (see: http://mindcrime.github.io) including R, Common Lisp and more.
Porting CouchDB 2.0-alpha to Windows. Made a lot of progress over the weekend - I kind of need a break now. This involved getting Erlang 17.5, ICU 55.1, libcurl 44 and SpiderMonkey 1.8.5 to build under VS2013, plus a whole lot of tweaking of various rebar files to get the NIFs to compile correctly.
It runs, though it crashes in some common scenarios now. For now I’m handing off to my partner in crime, but if others feel like helping my latest notes are online.
Nothing too crazy. Getting some lxc containers going with MPI and Slurm on a little linux server (16 cores) so that I can play with a program called CRAM, developed at LLNL. I’m not doing it for any purpose besides learning about these programs. In the future, I’ll be doing some tests on network congestion in supercomputers.
Also, stressing about grad school apps. I’m thinking about getting some sort of research-related position after I finish undergrad this year. I’d like to learn more about HPC and gain some programming skills before starting a Ph.D. in CS. My only idea right now is GaTech Research Institute. Anyone have any ideas?
This week was more an enjoyment week since i got my first job offer.
Just got the news that i have cleared amazon’s first round hence starting to practice competitive programming (which IMO is a waste of time).
Experimenting with Go’s new buildmode, maybe a Go lib to communicate with an API and a Qt desktop interface would be a good idea.
Are you concerned with all the bad publicity Amazon has gotten recently about 80-hour weeks and such?
Not really, I like writing code and solving problems, i have been doing it since i was 12. Plus amazon’s name as a first company is good for my career. If it doesn’t work out it does.
But i need to clear the next rounds first. :)
I got the first file successfully shared through our end-to-end encrypted, file storage network, Peergos, using the demo. Super excited about that. The UI still needs a lot of work, but that was a big milestone. Users can send follow requests to each other in a similar fashion to instagram. However, the network can’t see the sender of a follow request, to hide your friendship graph.
This week I’m also writing a Java binding for the IPFS HTTP api. (We hope to use it in Peergos).