Index ¦ Archives ¦ RSS

Cara ready to be tried externally!

Wed 29 April 2015

After months of internal use without problems, we're ready to release cara for others to use. We would be very happy if others picked up cara and made it work for them. If you've been looking at the Cap'n Proto project but were hesitant to shoehorn it ...

Continue reading →

AoE II HD - Ludikris map size

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 ...

Continue reading →

New Blog Layout

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.

Continue reading →

Bionic Bird Android app

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.

tl:dr; I made a quick app using the Evothings client app. (Click the first link on a mobile phone, or follow instructions in the readme on github)

Continue reading →

Building a binary into your Python package

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:

Continue reading →

Mint Plus (Braava) Hacking Part II

Mon 08 December 2014

Following up from almost a year ago when I first attempted to hack (and broke) my Mint Plus, I've tried again! See?

Wired up Mint Plus

Continue reading →

Why only internal use?

Sat 06 December 2014

Because I have 3 tests covering 67% of the code base and my only docs are blog posts. If you're way more adventurous than I am, the code is available at for your daring consumption.

Edit: I didn't mean it won't be ...

Continue reading →

Cara ready for internal use!

Sat 06 December 2014

After about a month of work, cara (Cap'n proto Alternative RPC API) is finally ready for internal use for Chain Reaction Mfg's main project.

The features required are finally working (and tested): 1. Send raw data and structs over the wire (like everybody else). 2. Send interfaces over the wire in both directions. 3. Support a reasonable io event loop.

The second one is the most important (and unique) feature for me. It means I can call a function on a server that returns another function (or rather, a set of functions) as well as some data.

Continue reading →

Cara generation finished

Tue 02 December 2014

Generation of python from schema files is finished!

Continue reading →

Cara generation method changed; delayed

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 ...

Continue reading →

© Fahrzin Hemmati. Built using Pelican. Theme by Giulio Fidente on github.