Index ¦ Archives  ¦ Atom  ¦ RSS > Category: Software ¦ Atom ¦ RSS

KiCad DXF with two lines

Sun 02 July 2017

Do you have a problem with KiCad's default DXF output having two lines instead of one?

Well, apparently it's been fixed! However, it was fixed via this bug in April 2017. As of July 2017, KiCad's latest release is 4.0.6, which was in March 2017.

Continue reading →


C++ Templates I

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 …

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 →


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 https://github.com/chainreactionmfg/cara for your daring consumption.

Edit: I didn't mean it won't be available for others …

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 →


Cap'n proto alternative RPC API in the works

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.

Continue reading →

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