Sun 11 June 2017
As anybody who's looked at Cara's capnp->Python conversion code, they may have noticed that I've taken a liking to C++ metaprogramming via templates. I started my initial foray into C++ back in '06 when modifying an existing codebase for a robotics competition. It didn't use templates, and for the …
Mon 20 April 2015
This past Saturday, two friends and I played AoE II HD (Age of Empires II HD) online. We played a semi-custom scenario one of them had made with the three of us as a team in the middle of the map against 5 Hardest computers, high initial resources and starting …
Mon 13 April 2015
Recently, I was looking at the Wordpress Admin page for this blog and everything was responding slowly. I realized that Wordpress is overkill for this blog. I have under 100 posts spread over 7 years, averaging under a post per month, I don't need a full-blown blog engine.
Mon 05 January 2015
I got my Bionic Bird in the mail recently, and I really wanted to start flying it. However, I only have Android devices, nothing that runs iOS, so the official channels were blocked.
Mon 15 December 2014
Firstly, let me acknowledge this is a rare problem. So the lack of documentation I ran into is totally acceptable. The problem: I have a Python package that has a C++ component that isn't an extension, it's a binary. I wanted that binary to be on the PATH of users, but it's not a Python entry point, so the usual way failed while attempting to read the file as text.
So I did some hacking, and after a lot of attempts, I whittled the result back down to something that's actually quite reasonable. If I had ever seen a documentation page or blog post mentioning this is how you do it, I would have been able to just follow along and I would have been happy with the result. Sadly, there was none, so I'm writing it:
Sat 06 December 2014
Tue 02 December 2014
Mon 01 December 2014
Up until this week, cara had been outputting its schema files something like this:
import cara ann = cara.Annotation(name='ann', type=cara.Text) class MyStruct(cara.Struct): field1 = cara.Field(name='field1', type=cara.Int32)
However, this causes various problems due to capnp allowing use of types declared later …
Wed 26 November 2014
Having started a new project that requires RPC, but without the benefits (and restrictions) imposed by my previous employer, I've gone on a detour towards building another RPC layer. However, knowing that building the entire layer from scratch is both a waste of time for me and would just add noise to any community I sent this to, I decided to only create the missing parts and rely on existing technologies wherever I could.