Starting new blog
I used to have a blog at use.perl.org but I just was too lazy to write often. One problem it seems you need a certain discipline to keep doing that. Also I just didn't like this site blogging engine....
View Articleboost::thread and boost::mutex tutorial
For most Boost's libraries its documentation requires you to read everything from the start to the end before you can write any code. Compare that with most of CPAN modules where usually you can start...
View Articlevolatile and threading
Until recently I hadn't much experience writing multi-threading programs in C++ so when I tried to I found that I'm really confused how multi-threading programs mix with volatile variables. So I did a...
View Article4 silly mistakes in use of MySQL indexes
1. Not learning how to use EXPLAIN SELECTI'm really surprised how many developers who use MySQL all the time and who do not know or understand how to use EXPLAIN SELECT. I've seen several times...
View Articlelibxml++ vs xerces C++
When I was reading "API: Design Matters" I recalled one example of good API vs bad API. Actually my example is more about good API documentation vs bad API documentation but I suspect there is a...
View ArticlePerl as replacement for shell scripting (Part I)
By shell scripting I mean bash as it is what most (all?) Linux distributions use. Bash can be used as a quite capable programming language. Bash allows programmer to build rather complex scripts by...
View ArticleBeyond XSS and SQL injections
What is common about HTML, XML and CSV files, SQL and LDAP queries, filenames and shell commands? All these things are based on text which is often generated by programs. And one commonly observed flaw...
View ArticleSTL strings vs C strings for parsing
I'm working on a project where I need to build custom high performance HTTP server. One piece of this server is a parser for URLs in incoming requests. It is very simple and on the first glance it...
View ArticleErlang debugging tips
I've just started playing with Erlang so I have a lot to discover but so far I've found several things which help me to debug my programs:I tried to write my programs using OTP principles but the...
View ArticleStomp messaging for non-Java programmers on top of Apache ActiveMQ
Recently I was researching available options for messaging between Perl programs. In the past I had quite a lot of experience with Spread and I don't want to repeat. I hated Spread as it was buggy and...
View ArticleRunning Puppet on big scale
This is a rehash of my comment in slashdot discussion and my comment on Alexey Kovrygin's blog post.We run Puppet on hundreds of servers in two datacenters and it was pain to get it working right....
View ArticleMongoDB client library: C vs C++
I've been playing a bit with MongoDB recently. Particularly I've looked into source code for client libraries as I was interested in how hard is to change the client API to support async mode of...
View ArticleMongoDB pain points
Recently I was contacted by 10gen's account manager soliciting a feedback on our use of MongoDB at the company I'm working at. I wrote a lengthy reply on what we do with MongoDB and the problems we see...
View Article