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.
Working on a programming-centric space exploration game: http://technomancy.itch.io/bussard
Basically it’s a spaceflight simulator that attempts to model “realistic” in-game computers–the stations with which you dock and trade run a faux-unix variant, and your ship itself runs a Lua REPL where various ship systems are exposed via APIs you can call from your own functions and bind to keystrokes in a config file.
I’m hoping that eventually it could serve as an introduction to programming. Lua is very accessible, and there’s nothing like the context of a spaceship to provide interesting problems to solve using code.
Also it’s basically got an Emacs port too because if the future doesn’t involve Emacs what’s the point.
The last week has been pretty good. I had some unhappy medical news a couple of weeks ago (but not that unhappy) and I’ve had to start making some changes to my lifestyle. Those are working out pretty well and I feel better already. We’ll see. This might explain some of the other things that have been going on for me for a while.
I submitted some cleanups to LLDB, continuing my role as a code janitor there.
I also fixed a lot of compiler warnings that were happening when running the emscripten test suite.
In Dylan land, I started working on some new bindings, like for kqueue. In doing so, I saw a bunch of minor things in how our C parser and bindings generator worked that could be cleaned up. So I did… I also fixed a bug in our GTK+ backend for our GUI code (we were passing invalid data to cairo_arc).
We got someone new working on a project in Dylan and I’ve been helping them along with a lot of questions. It is nice to have someone asking lots of questions as it helps give me ideas what we need to improve. Along those lines, I added some examples for a section of our documentation today for the core library.
I’ve also been looking at RumpKernel stuff for a while, but got a bit closer this week. I’m working with a NetBSD person on a port of Open Dylan to NetBSD. I also found out that someone has been running an old Dylan interpreter on top of the rump kernel for a while. This was an old interpreter that we’d abandoned, but I decided to bring it back for fun and because they could make good use of it. Using cmake + ninja, I can build the interpreter, the compiler for it, and the core Dylan libraries that it uses in under 4 seconds (user, real is around a second). This might also give me a vehichle for doing some quick prototyping of new things in Dylan as it is so fast to work with and easy to make changes to the entire codebase.
I got an email back from one of the people involved in bi-directional type checking and I’m hoping that leads to something bigger. I’d really like to start evolving the Dylan compiler’s type system to be based on bi-directional type checking and then to start evolving the language specification in that direction.
This week, I have a lot of work to do with emscripten, LLDB and Dylan and I’m looking forward to it.
I’d like to finish this write up talking about understanding classical logic computationally. I think there’s an interesting argument to be made for intuitionism here so hopefully that’ll come out well.
Programming wise I’ve got some feature I want to add to JonPRL’s tactic system (making reduce/unfold better behaved) so hopefully I’ll be writing that this week :)
Today I realized I misused the word “sabbatical” a few times this month—apparently it implies you’re on paid leave. I’m one month into a 3-6 month unpaid break from client work.
I wish I could concisely summarize the project and the type of guidance I would like to get, but it’s all pretty overwhelming (what I’ve done, what I need to do, what I could do, fear of everyone hating it, etc).
+1 for “fear of everyone hating it”
I spent last week at the office, and it was super productive. I was able to get my Jetson talking to our power meter – VXI11 is not a protocol I ever anticipated learning, but hey, it’s pretty cool to be able to control instrumentation. This week, I’m home, and working on getting multiple Caffe models into memory. Two gigs sounds like a lot of RAM for a guy who got his first computer in 1984, but it’s really not any more.
Other than work, I’m going to be installing Linux on a spare SSD on the big machine at home (for training models), which means NixOS, because life is too goddamned short for dealing with apt garbage.
Last week I mentioned that I’d be working on improving high-dpi for gtk on Windows. I made a lot of progress on that, but there are a few outstanding issues with it still. Sadly a higher-priority issue came up at work that I need to switch over to, plus this is a short week for me since I’m heading off to ElixirConf, so I’m not sure if I’ll be able to finish the high-dpi work this week.
My side project has also made some progress. I’m rewriting a personal project from Rails into Elixir. I’m actually also learning/exploring React.js so I’ve been using that for the frontend and it’s slowing me down some because it’s also new to me. Phoenix uses brunch.io for frontend assets by default, and I’ve found brunch to be really awful and difficult to learn, but a friend helped me get switched over to webpack and I feel like things are much more manageable now.
Struggling to work on RADIUS module (FreeRADIUS). Struggling because I realized that I’m suffering burnout and extreme frustration. The burnout is due to every effort I put in seems to be a complete waste of time. On side project this is exemplified by countless efforts that have gone absolutely nowhere. @work this is exemplified by putting in a lot of effort to think about and solve problems despite a completely dysfunctional working environment.
The frustration is due to the perception of very unbalanced effort. For this RADIUS project I have to admit the FreeRADIUS mailing list has been exemplary in terms of fast response. However I ran into an issue with VPN server (ASA 5505) where multiple Reply-Message’s are not handled by IKEv1. Until this point I have never dealt with RADIUS, VPN’s or ASA 5505’s. With help I got the 5505 configured locally, I figured out how to enable enough debug to log what I was seeing and posted on reddit, StackOverflow, Cisco Support Forum, and email to the person that helped me configure the ASA 5505 in the first place. This specific instance is not the frustrating part, its a death by a thousand cuts that’s been going on for longer than I care to admit.
So after getting the module ready, I guess I will be faced with looking over what source code I can glean from Cisco’s documentation about open source they use. It feels very unbalanced but I realize that I need to suck it up. I just am having a difficult time doing that right now.
I just figured out how to build dynamic amounts of components from a webpack config, which means that theming for the component library I’m working on just got a whole lot nicer. I also have to build out some testing infrastructure that can handle css-modules/babel as well as writing some integration tests for an sdk to function as a warning mechanism for API contract changes. Probably also going to start implementing redux on an existing application so my week is starting to feel a bit packed.
Working on building a bookmarking app. In 2015. Clearly, this is a solid idea. I’m learning React/Flux today/tomorrow. More architecture planning later in the week. This is more an exercise in building a modern frontend and realtime backend than it is something useful to other humans (but I really hope it will be). It also comes with some interesting problems that I’m interested in solving that may be releasable in their own rights.
My bookmarks are currently in my email tagged with toread. The fact that i have hundreds of them completely unread should tell you how much this idea is working…
That’s reassuring. I do exactly the same thing right now :)
Working on some marketing collateral - specifically a document titled “Working with Fogbeam” that describes our approach to engagements, and how we work to ensure that we maximize the business value a customer receives from working with us.
Beyond that, still tinkering with this AI bot1 that I’ve been building as a sandbox to work with AI techniques, and doing a lot of reading and studying. Still working on leveling-up with both R and Common Lisp.
For Ph.D. research, still fixing bugs related to adding MMIO support to rocket-chip. I ran a bunch of ASM tests and made sure Linux can boot with the default configuration. But using a different configuration which simply shrinks some cache sizes and disables the FPU, things are broken in various incredibly puzzling ways. Looks like I’m not done staring at waveforms yet.
For classes, we have the usual paper readings and problem sets, plus a coding assignment to write an AST to bytecode compiler.
On vacation for a wedding (not mine!) for the first part of the week, but then back to trying to model our environment in Vagrant so I can test puppet changes. (I’ve inherited a rather large puppet repo, with no tests and even less documentation. This is probably not made much easier by being my first real use of puppet.) Current challenges:
I use Magit, and Magit-gh-pulls to create a lot of one-commit PRs. Because of that I end up re-typing the commit summary a lot, and I’m trying to add a default to magit-gh-pulls to pick the summary from the first commit in the PR. It’s my first attempt at a PR for emacs lisp packages and I’m fairly stuck. My current WIP PR. I’d love some help on this :-)
At work: Drive code rewrite is still dragging on, but I am making progress. In the next day or two I’m going to submit the first code review, which was basically ripping out the existing code from the “master service” and putting it in its own “drive manager” and adding (and improving) comments. All of the unit tests are passing as well as the commit smoke test we use, as well as some other integration tests I’ve made up.
I’m really looking forward to getting this reviewed and moving on to the next step, which will be refactoring everything to remove some inefficiencies and throw out some redundant code.
Outside of work, salsa dancing lessons are going well, and I’m signing up for another month.
Cyclocross racing is also going pretty well. I came in second place in the morning race on Saturday, but got a flat and DNF in the afternoon race.
Usual 9-5 work then getting my head around React/JSX for my personal project which is a Slack integration.
I’m at the International Computer Music Conference this week, and having a good time so far. Not presenting anything, but I live in Houston currently, and it’s near Dallas this year, so it was driving distance, and it’s a community I like to keep up with. I’ve only ever published two papers there, almost a decade apart, and don’t mostly work in computer-music, but I really like the interdisciplinary group of people. When I work in other areas, like (what I normally do) AI-assisted videogame authoring tools, procedural content generation for games, etc., I often find that computer-music people have tackled similar questions and have relevant techniques (often developed decades earlier).
I also like the conference setup. Long days, but varied. Mornings are paper sessions, heavy on computer scientists but also with some music people. Afternoons are mostly music people setting up interactive installations or premiering electroacoustic works, kind of a modern-classical flavor with the use of computers as an instrument or instrument-augmenter. Nights are in a club/bar, with jazz/noise/EDM performances, not as oriented towards modern classical, and with more participation of technical folks (who seem to often have sidelines doing noise gigs with their tools).
The mushrooms project is done so I’ve just got back from a week’s holiday at the beach with the family. I’ll be presenting on the more technically interesting bits for the project at OSDC2015.
I cleaned up and released the Java IPFS API last week. Also fixed a nasty bug in my TweetNaCl port, and another bug in Peergos wihch was hidden by it.
This week @boddy and I hope to try using IPFS in Peergos, as well as getting Peergos to display who each file is shared with, and get cut/copy and paste working. Might also look at getting Peergos to store the encrypted file metadata in the DHT to ease the load on the “Core nodes” which currently host the username <=> public key, encrypted follow requests, as well as the encrypted metadata.
Tomorrow I’m presenting a lunch and learn talk about Lambda Architectures, and I got asked to present my Go Introduction talk again in another context, outside of work. Hopefully exposure to crowds will get me more comfortable with talking in front of crowds. XD
Right, gotta finish up them slides. Have a good week!
Presentation went awesome. Much better than I expected!
I uploaded an alpha of my dopewars clone ix, last week.
current task is updating the server to use json and conduits.