Monthly Archives: March 2014

Boost, GCC, and C++11

I really like c++11. It makes C++ as dynamic as python, while still giving me the type checking and fixed interfaces I like. But using C++11 on debian at the moment has some issues, that show up in the form of subtle ABI breakage when using client code with c++11 turned on that interacts with c++ code that was compiled without c++11.

This is mainly an issue for me in my projects that use Boost and Pion. The ABI breakage causes ASIO to either infinite loop inside the io_service threads, or fail on every request.

The best solution is to compile pion and boost locally, with the correct flags defined. At least for me, this was a problem as pion-net 4 did not seem to respect the CXXFLAGS environment variable, so I had to forcibly edit the input files for autogen (in the common/build folder).

All is well after recompiling, but i moved to linux so I /wouldn’t/ need to do this.

Django and wsgi

Looking to make the manpage site into a django web app, instead of the php hack-fest it currently is. Still thinking static data, no real need for a full database for this.

This reminds me of my first website which was perl+cgi. Times have changed….

More Docs

After building the gphoto2 documentation, I started thinking about hosting more documentation. There are a few sites that host manpages, but it is not clear what distribution they are for. It might be nice to start hosting manpages for several distributions and tracking versions.

For starters, I will be hosting a selection of manpages from Debian 7 and Linux Mint 16, availible at the links below. They are a work in progress, and at start will be little more than plain text, but I hope to get a nice auto generated site with links to source code and search.

 http://www.unlimitedautomata.com/man/mint16/
http://www.unlimitedautomata.com/man/debian7/

I am providing source code links for the man pages, which i think is sufficient to meet the license requirement for redistributing the documents. Currently the debian docs are only the default installed man pages from “main”, I am looking into a way to automate extracting the man page source from all of main, and also looking at the license requirements for the other sections, contrib and non-free.

libgphoto2 documentation

I was looking for an up-to-date copy of the documentation for http://www.gphoto.org/proj/libgphoto2/ but wasn’t able to find it. I built a copy, and have posted below here for now. The first link is for the external libgphoto2 API, and the second link is for the library internals.

http://www.unlimitedautomata.com/global/libgphoto2-2.5.3.1/libgphoto2-api.html/

http://www.unlimitedautomata.com/global/libgphoto2-2.5.3.1/libgphoto2-internals.html/

Enjoy! Overall, I have been pretty happy with libgphoto2. It is much easier to multithread (thread per camera) than the canon sdk. It also does not suffer from some other annoying bugs like canon’s inability to read body serial numbers in recent releases (~2.12)