OpenSSL is now available in biicode!

The OpenSSL Project is an implementation of the SSL and TLS protocols written in C. It has multiple cipher algorithms (AES, Blowfish, Camellia…), cryptographic hash functions (MD5, SHA-1, SHA-2…) and public-key cryptography support.
It was born in 1998 and today about 66% of internet servers are using OpenSSL.

Secure connections can now be used from C/C++ source code with biicode and OpenSSL


UPDATE! [10-Feb-2015] OpenSSL last version 1.0.2 is ready on biicode!  We created a block track lasote/openssl(v1.0.2).
Remeber, you can switch between v1.0.1 and v1.0.2 just changing the requirements line in biicode.conf file.

Continue reading

C++ Docker remote API client

I’ve built a block to control Docker daemon from C++ source code. It’s available here: lasote/docker_client


What’s Docker

is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.

What’s Docker remote API?

Docker also exposes a REST API to control your docker service. This API is at least as powerfull as the Docker client.

Why would I need a C++ Docker client for Docker’s remote API?

Because you can fully control Docker daemon from your C++ source code!
For example, you may want to automate the creation of some images, or run some linux instances on demand to build your software, maybe build a CI platform…

Continue reading

How to upload to biicode. Example 5: Libuv

Recently, I wrote a post about biicode’s tracks. “Biicode Tracks” mean just that: Actual working versions of the same lib uploaded into different tracks of the same block. 

Biicode tracks enable quick using and switching of versions.

Let’s see how I used block tracks to upload Libuv. This is a successful example of maintaining a library developed using github with several versions, being each one a different line of development.

libuv's logo

Continue reading

Improving our search engine with Elastic Search

A few days ago, I got a lovely message from Jordi our marketer:

I’m typing “Manu” and the search engine doesn’t find manu343726’s blocks. The search engine is crap.

Well, Jordi was right. Our users are asking to find the libraries available in biicode easily.
So I decided to recharge my batteries and thanks to Elastic Search, I can now show you the new amazing search features.

Improving biicode's blocks search function with Elastic Search

Continue reading

How to upload to biicode. Example 1: JSON11 by Dropbox

A few days ago, we came across this fantastic library from the Dropbox team, to encode and decode JSON using C++11. Syntax is very clean and attractive which makes the library very easy to use.
Also, this library is an ideal example to show how to upload to biicode your library like I did.

Why would you want to upload to biicode your library ?

Once it’s uploaded to biicode, everyone (including yourself) can reuse it easily and without any complex configuration.
This is key: If you make a good job configuring and uploading the library to biicode, nobody will EVER do this job again. The library will work for anyone just by typing #include “lasote/json11/json11.hpp”.

Upload to biicode


Continue reading

Our first DDoS attack!!

Yesterday biicode suffered a DDoS attack on this wordpress blog.

DDoS attack (Distributed Denial of Service) tries to make a resource (this blog) unavailable using servers distributed all over the world.
In this case, sources came from Korea, USA, Europe… More than a hundred simultaneous connections brought down our blog.


DDoS attack can seriously damage your system.

DDoS attack

Continue reading

Connect your Arduino to the World!

OUTDATED: The lasote/weather block is not curretly working due to problems with AVR compiler for Arduino.

In previous blog posts, I showed two blocks:

  1. lasote/weather: To get current weather and forecast from your Arduino.
  2. lasote/carriots_stream: To connect Carriots service and send data to it.

Today I’m going back to check this classes so you can program your own classes for making Arduino talk with the world.

Continue reading