[C++-sig] How can I make myself usefull?

Niall Douglas s_sourceforge at nedprod.com
Tue May 8 16:08:33 CEST 2012

On 8 May 2012 at 1:14, Matthew Scouten wrote:

> Hello,
> 	I have recently been laid off from a job where a made a lot of good
> use of Boost.Python. I would like to give something back (while incidentally
> keeping my skills from getting rusty). I have already been following the
> boost-python tag on stackoverflow and answering a lot of question there
> (http://stackoverflow.com/users/8508/matthew-scouten). I haven't hacked on
> the internals of BP much, but now that I have time.

Firstly, my commiserations to you on losing your job. Secondly, my 
thanks to you for contributing to the SO community. Too few people 
bother. The fact you have used your misfortune to aid others I think 
is especially commendable.

> While I was there, I had some code (now lost to me) that made BP easier to
> use.  

Almost certainly the original code's copyright would have been a 
problem anyway. Besides, reimplementation tends to be of higher 
quality than first attempt, and you'll need that to pass Boost peer 

> Here is some of that I had: 
> * A deepcopyable suite, so that any c++ class with an appropriate copy ctor
> could be quickly given a __deepcopy__, a __copy__ and a copying __init__,
> with a single line.
> * A similar compare suite, so that classes with == and < could be given a
> full set of comparison operators, with a single line
> * 2 function templates, SafePointer2Object and SafeObject2Pointer which
> dealt with conversions between bp::objects that might be None and  pointers
> to c++ classes that might be NULL
> * Simple RAII objects that dealt with acquiring and freeing the GIL around
> callbacks on different threads. A similar one for freeing the GIL around a
> code block. An idea that maybe this could be a call policy. 

I would need to see the design of this before I could say if it was 
correct or not. It's very easy to have something suitable for 
application code, but not suitable to be inside a library, and 
particularly not in BPL.

> * No_compare_indexing_suite is vector_indexing_suite for classes without ==
> I would like to recreate some of these up for inclusion in BP, if you are
> interested. Or if there is other work that needs doing....

html (generic runtime type registry, second paragraph onwards)


No, seriously, if you have the free time and can finance an extended 
period of unemployment while you implement such a signature project, 
I would be highly surprised if employment remains a problem. It would 
be a significant commitment in time though. I'd estimate for myself 
around nine months from start to finish, especially as Boost.Python 
and Boost.Spirit would need porting to the new framework, and their 
authors will be very exacting. It would really stand to you long run 
though. I recently was made a job offer by a North American company 
on the basis of signature work I did a decade ago when I was a far 
less capable programmer :)


Technology & Consulting Services - ned Productions Limited.
http://www.nedproductions.biz/. VAT reg: IE 9708311Q.
Work Portfolio: http://careers.stackoverflow.com/nialldouglas/

More information about the Cplusplus-sig mailing list