Computers have been invented to compute large amounts of data at very high speed, relative to the human brain speed. In a sense, computers have always been about "big data". Although "big data" is probably more a marketing term than a technical one, we must acknowledge that we are at a threshold where data mining can be done on such amounts that new approaches are emerging.Read More
One of the constant reproaches we can hear about C++ is that it is too complex, too hard, too unsafe and has too many features, really these r-value references are useless and dangerous and why would you need variadic templates anyway, and "lol" you are still managing memory manually in 2016.Read More
Weird error - Recently, I have encountered a really strange linker error after a ridiculously small change in the code. Look at the error message and find the reason in 5 seconds without looking further in the text and I owe you a beer ;).Read More
On Amazon's EC2, using EBS as the backend storage for your application has been the de-facto standard. Using the local storage of an EC2 container is risky: data loss occurs when a container is stopped and it is not replicated by default. As such, people should default to using EBS, which is Amazon's version of a SAN.Read More
One of the cool thing about C++ is all these checks you can do at compile time. With compile time checks you can not only write safer code, but also faster code for the simple reason that alls the checks you do at compile time will not have to be done at runtime.Read More
The stabilization algorithm - quasardb is a distributed, peer-to-peer database based on the Chord Algorithm. It is actually much more than that, but for the purpose of this post we will focus on the Chord algorithm and one fundamental process: stabilization.Read More
Many Boost.Filesystem functions and methods (and the pattern also exists in Boost.Asio) will throw a boost::system::error_code in case of error, and sometimes it is not as obvious as you might expect, case in point:Read More
Precision is costly - As you saw in our previous post getting a timestamp as precise as possible is expensive in precious cycles. We do it only when we really need it because we really care about writing the world fastest database.Read More
Oh what a tangled web we weave when we first try to optimize files inclusion in C++. I can hear your sarcasm other-language programmer developer, feel free to flood the comments sections with something along the lines of “We don’t have this problem in fancy-new-language, you paleo-programmer!”.Read More
> The issue described in this post has been fixed in quasardb 1.0.1 released today. We strongly encourage our customers to upgrade their clusters. This issue can cause a denial of service if an attacker has access to the network where your quasardb cluster is installed.Read More
My "Scaling with C++ 11" talk is online.
It's really great to see yourself in video because everything bad about your presentation becomes obvious. I already have a lot of ideas to improve this one and I hope I can deliver something much better at Meeting C++. I hope to see you there!Read More
> Hope you guys are enjoying C++ Now!
We use Boost.Spirit for all our parsing and generation. What I mean by that is that when you have to parse input or generate output, we don’t use std::stringstream, we don’t use the C libraries and we definitely don’t write custom parsers or generators.Read More
We don't actually have "coding rules" at Bureau 14, at least, not in the sense you would expect them.
One one hand, we think it's best to give as much freedom as possible to the developers and prevent rules to get in the way of evolution.Read More
There is a lot of code in this post, it will probably not compile "as is" because of missing headers or compiler's incompatibilities. Nevertheless, we made available through our open source initiative the full working library on github. It has been tested on Clang 3.1, gcc 4.6.1 and MSVC 11 on FreeBSD, Linux and Windows.
At Bureau 14 we highly value code quality: it's the corner stone of our software development strategy and certainly one of our core values as a company. We believe that investing in code quality pays off in the long term, especially when our software is entrusted by our customer with mission-critical data.Read More
By judging the endless stream of blog entries, books, conferences, tweets, status updates, advices, statements and aphorism on the topic, you can certainly figure out that productivity is the hottest topic behind celebrities naked pictures, cats in embarrassing situations and tomorrow’s weather.Read More
Although we edit NoSQL software, I always disliked calling our product a NoSQL database. I know we say in the third paragraph of our web page that wrpme is a NoSQL database, but see, right after it says that we prefer to call it a postmodern database as proposed by Dr. Richard Hipp.Read More
Our website isn't critical, in the sense that, if the website goes down, our operations remain unaffected. However, lately, the website was becoming extremely slow and it was turning into bad publicity.Read More
I'm obsessed with theorizing everything in life. That can be a good thing, and that can be a bad thing. When you know how to stop, I found it can be quite a strength.Read More
Let me tell you why you're here. You're here because you know something. What you know you can't explain, but you feel it. You've felt it your entire life, that there's something wrong with the world. You don't know what it is, but it's there, like a splinter in your mind, driving you mad. It is this feeling that has brought you to me. You want to know what is heap fragmentation.
C++ is the world of do-it-yourself memory management. When discussing programming with someone, as I reach the point where I tell that I mainly work with C++ the first thing I hear is "Oh... But you have to deallocate memory yourself... That's so cumbersome and obsolete!"Read More
You probably heard at least once the hardware is free aphorism. Perhaps you even said it! The underlying notion is that optimizing code is generally more expensive than upgrading the machine or even buying a new one.Read More