Category Archives: C/C++

Less is more, and is not always straightforward

Rob Pike just wrote an article/talk that is the best background on the origins of Go yet. It surprises me how much his considerations match my world view pre-Go, and in a sense give me a fulfilling explanation about why … Continue reading

Posted in Architecture, Article, C/C++, Design, Go, Python | 5 Comments

Ensemble, Go, and MongoDB at Canonical

About 1 year after development started in Ensemble, today the stars finally aligned just the right way (review queue mostly empty, no other pressing needs, etc) for me to start writing the specification about the repository system we’ve been jointly … Continue reading

Posted in Architecture, C/C++, Cloud, Design, Go, PostgreSQL, Project, Python | 7 Comments

Efficient algorithm for expanding circular buffers

Circular buffers are based on an algorithm well known by any developer who’s got past the “Hello world!” days. They offer a number of key characteristics with wide applicability such as constant and efficient memory use, efficient FIFO semantics, etc. … Continue reading

Posted in Architecture, Article, C/C++, Erlang, Go, Haskell, Java, Lua, Perl, Python, Ruby, Snippet | 4 Comments

Integrating Go with C: the ZooKeeper binding experience

ZooKeeper is a clever generic coordination server for distributed systems, and is one of the core softwares which facilitate the development of Ensemble (project for automagic IaaS deployments which we push at Canonical), so it was a natural choice to … Continue reading

Posted in Architecture, Article, C/C++, Go, Project, Snippet | 3 Comments

Introducing The Hacking Sandbox

When I started programming in Python long ago, one of the features which really hooked me up was the quality interactive interpreter offered with the language implementation. It was (and still is) a fantastic way to experiment with syntax, semantics, … Continue reading

Posted in C/C++, Erlang, Go, Haskell, Java, Lua, Perl, Ruby | 10 Comments

Changing people or changing rules

In my previous post I made an open statement which I’d like to clarify a bit further: (…) when the rules don’t work for people, the rules should be changed, not the people. This leaves a lot of room for … Continue reading

Posted in C/C++, Java, Python | Leave a comment

Class member access control: enforcement vs. convention

For a long time I’ve been an advocate of Python’s notion of controlling access to private and protected members (attributes, methods, etc) with conventions, by simply naming them like “_name”, with an initial underline.  Even though Python does support the … Continue reading

Posted in C/C++, Java, Python | 24 Comments

Comparing package versions in PostgreSQL

This weekend I’ve played a bit with PostgreSQL extensions written in C. A while ago I wrote a Python C extension for Smart to compare Debian package versions. Now I was trying to do something similar inside PostgreSQL, and thus … Continue reading

Posted in C/C++, PostgreSQL, Project, Python | 1 Comment

Smart Package Manager is out!

After 6 months of fun working on the project in silence, Smart Package Manager was finally released. As the README says: The Smart Package Manager project has the ambitious objective of creating smart and portable algorithms for solving adequately the … Continue reading

Posted in C/C++, Project, Python | Leave a comment

Embedding Lua interpreter into RPM

I’ve recently committed into the RPM CVS HEAD the internal support for Lua scripts. Please, notice that this is experimental stuff. Why embedding Lua in RPM? Many scripts execute simple operations which in an internal interpreter require no forking at … Continue reading

Posted in C/C++, Lua, Patch | Leave a comment