I’ll get this thread started this week.
Feel free to share what you’ve been working on here. Also mention if you need advice, help, or a second pair of eyes.
I’m building a simple app for serving gists similar to Mike Bostock’s bl.ocks but I need the chrome removed and I’m going to integrate it with Embed.ly. The end goal is to be able to host D3.js visualizations inside of Medium blog posts.
I want to do more visualizations for The Secret Lives of Data project but the Raft visualization I did was really time intensive. I think if I can break everything into smaller pieces then it’ll be much faster to implement.
That Raft visualization is really nice.
I have absolutely no idea what I’ll be doing this week apart from contract work on my memory / heap profiler for emscripten. For that, I’ve integrated it with my client’s application and have begun some testing. This isn’t all that interesting yet.
I did some patches to LLVM’s libcxx to support my memory / heap profiler and submitted a diff of that for review / comment. It would be nice for libcxx to support this out of the box as it significantly improves the quality of the data.
An interesting thing in instrumentation of memory allocations is that it is really useful to be able to reconstruct realloc-style operations from what actually happens in C++ code. An example of this is that in resizing a string or vector, the standard library ends up creating the new array, copying the data and then deleting the old. If I can track this as a realloc, then I get to do extra / better analysis on it by tracking how often it resizes and so on. It is a lot more useful to be able to recognize that this is a single object getting enlarged rather than seeing a sequence of ever-increasing allocations.
In the Open Dylan world … things are quiet. As I’ve mentioned in the past, we put out some calls for volunteers, people volunteered and nothing happened. This makes me pretty sad.
I’ve been continuing to write some blog posts with many improvements to a draft post that is an overview of the type system, and a lot of work into one that I call “The Limits of Limited Types” where I start to think about refinement types as a possible path forward.
At any rate, we have a lot of things that we need help with in Dylan land and we’d welcome the help. This ranges from relatively easy stuff up through long and complicated projects. Function types need some help (not hard yet), primitives aren’t correctly getting type checked (probably not hard), Unicode needs some love (lots of very easy things) and so on. I even have an interesting and easy project where I have a DTD that I’d like to use to generate some Dylan classes to represent that sort of data. This is probably an hour or two in Python or Ruby for someone.
I’ve sent out an email to 19 people or so, about half of which are or have been core contributors to Dylan. I’m tired and need help.
In other news, I’m thinking of entering a challenge project (involving news / journalism) and am trying to see if I can shrink the scope on an idea to something where it would be feasible for September 30. Maybe more on that next week.
I’m pleased with the progress I made in the past week on Hython (https://github.com/mattgreen/hython), especially considering recent events. This week, sitting down to work always seemed to require a lot of activation energy; but once I settled in I was reasonably productive.
Last week, I ported control flow to use ContT. I’d been wanting to do this for awhile, and had run around in circles reading about it. It is really awesome to express it in these terms! In doing so, I was able to express these concepts with a minimum of mutable state. I’m still not done with the simplifications yet, either. I also implemented all of the Python 3 arithmetic and bitwise operators.
This week, I’d like to tackle Python’s value-or-tuple-of-values concept.
I’m glad to see that CPS is working out for you :) I’d urge you to write about it somehow, it’s a useful topic that there isn’t enough resources for!
Using ContT feels like cheating because it’s so good.
I thought I had to translate my AST to CPS. In reality, the host language is so amenable to these sorts of things that you really can drop it in and go.
Continuing work on Twenty Milliseconds, documenting what works and what doesn’t in VR interface design. I got an Oculus set up, which is neat because I can actually try/run some of the demos now. I want to write at least seven posts before September 1.
I contacted two companies in SF about hosting a Lobsters meetup and did not hear back from either of them. If you want to help me put on a Lobsters meetup, either by volunteering meeting space, or by presenting talk material, let me know.
I wrote Clojure that writes Java that improves the implementation of Clojure. I’m waiting to see what people’s reaction will be. If it’s positive, I’ll do it some more.
Just started my Ph.D. studies at Berkeley. My current research project is a converter from Flo, Chisel’s intermediate representation, to Verilog.
I’ll be working on my PureScript book again. I have 4 more weeks on my writing schedule and 4 more planned chapters. This week I will either write about monad transformers and writing console apps in NodeJS, or AJAX and solving callback hell using the continuation monad.
I also plan to squash a few more bugs in the PureScript compiler for the upcoming 0.6 release.
Helping a friend of mine with one of his projects, a path tracer for Gamecube/Wii. It’s pretty.
It’s not fast nor realtime or anything, but we have tons of room for improvements (I’m in charge of general optimizations and mostly porting as much code to optimized Gekko ASM as I can, and thank god I have two monitors).
While the Dolphin guys are, like always, being incredibly helpful and informative, I got a physical wii for testing… and thank god I did, we’re getting some rather unusual results on hardware (Wii on the left / Emulator on the right). After the other weird glitch we got yesterday I might consider opening a “Modern art or Wii glitch” thing.
Last week was a “Rust work week,” where the whole team met in SFO for a week of meetings. Lots of productive discussions, and good decisions, and all kinds of things. This week is, in many ways, about taking those decisions and putting them in action. Also, actually sharing all the notes with those who aren’t there.
I’m re-doing the “30 minute introduction to Rust” guide, and then, will be taking shots at various other “guides”, for the next few weeks.
A clone of Boundary’s Flake in Haskell
Have something that seems to work, next step is tests and benchmarks. Particularly I want to see how it behaves under contention. After that, I’ll see about adding Cloud Haskell and HTTP service wrappers.
I started on a book for learning FP and Haskell. It’ll be a long time before I have much, but I’ve already begun testing material with learners. We’ll see how it goes.
I’m working on VirtKick, my open source project for cloud management.
Last week I was implementing the design provided by my UX designer in the clickable prototype. I also did a lot of infrastructure things.
This week I’ll be focusing on the real application - my goal is to get the dashboard and basic virtual machine controls usable.
This looks awesome, both in UX and functionality! Can’t wait to see where it heads.
Thanks, Matt! I’m planning alpha tests in a few weeks - sign up for updates if you’d like to participate. :)
Getting ready for DjangCon US. First time attending, speaking, and organizing a sprint for Django REST Framework. Also spending some time working on a couple of open source libraries like:
I’ve also had to work http://tumblr-to-ghost.herokuapp.com/.
Oh, and I just remember I should be working on some stats and optimizations for FilePreviews.
Been thinking about finite state machines lately, and wanting to start using them in code involving protocol handling and UI states. To that effect, I’ve started working on a library that implements a FSM over backbone’s model. I’ve got some working code, but I’m not entirely happy with the api I’ve exposed, so comments or suggestions are welcomed: https://gist.github.com/sirpengi/e862b9e9c0af70fe42c2
I’m continuing the work on JIT compilation of the ipfw firewall for FreeBSD on netmap using LLVM (theoretically the work is aimed to work on FreeBSD, but it’ll be compatible with Linux as well).
I hope I get it to compile this week, and have some rules written.
Apart writing the usual nix pills, I’m trying to port systemd into initrd for nixos.
Last week I set up Wercker CI to build docker images for a web app and push them to a private repo. I’m liking that the tests run against the same image that will be deployed. Switching to Wercker from Jenkins is a win because of build configuration living with the source code. Also, it’s one less server to maintain.
This week will be setting up a CoreOS cluster running vulcand to load balance the app. I’ve been using Ansible’s ec2 modules to spin up and down an entire cluster for testing.
After I get a grasp of that, I’ll be taking on deployment. I’ve been thinking to use docker tags to denote which environment an image is suitable for. Next, restart the webapp service, which would pull down the updated image and start up the next version. It seems straight forward, but I intend on writing an article about the pain points when I’m done.
I’m giving a talk tomorrow on write-optimization in external memory data structures in DC! You should come! http://www.meetup.com/bigdatadc/events/196161852/
Figuring out how to get yellerapp.com (the exception tracker I built and run) tracking which users were hit by an exception, on top of riak. Going well so far, but now have to write docs a bunch, and change the client libraries a little bit, which is always an annoying part.
I might improve how alerts work in Fire★(github).
Apps stack one on top of another which requires scrolling. If an app alerts out of view, there is no visual indicator which app alerted and which way to scroll.
I’m working on an automated deployment process, starting with packaging up Scala applications into an rpm. Currently packaging uses sbt-assembly and deployment uses scripts managed by puppet.
We use sbt-assembly to package up everything to a .deb which is deployed via Puppet. It’s a Makefile, a Debian rule file and then some .install scripts - pretty straightforward but I wish it were nicer.
I’m really hoping the sbt2nix project will make things a bit nicer:
Full stack automated provisioning environment for a NoSQL database. Using Ansible to deploy multiple KVM instances across single physical hosts. Openvswitch to create the private network for the KVM instances.
A number of things. My startup is going to be in the “demo room” at the upcoming CED Tech Venture Conference, so I’m spending a lot of time just working on the product, cleaning things up, fixing bugs, adding features, anything to make our demo as impressive as possible.
Also, I’m speaking at the All Things Open conference in Raleigh in October, and also at Triangle Java User’s Group in October, so I’m spending some time working on those two talks.
And finally, I’m on a panel on Open Source development at an upcoming NCTA Emerging Trends in Tech breakfast, so I’m working on some notes for that.
Basically, I’m swamped. :-( But in a good way. :-)
We’ve been wrapping up emp, our encrypted messaging protocol. We’re working on cleaning up a few bugs and can always use an extra set of eyes:
The contest to win $100,000+ of Mac Pros and iPad Airs ends tonight at 12:01a Pacific for using Docker to create multi-container apps: http://panamax.io/contest/