Lessons learnt adapting CppMicroServices to biicode

This post summarizes the lessons learnt from adapting the CppMicroServices framework to a biicode compatible format. It does not go into detail about the actual modifications, but focuses on the lessons learnt adapting the framework.


CppMicroServices is an implementation of the OSGi framework, which enables runtime dependency injection. Modules of code (bundles) can be loaded and unloaded at runtime. In the case of CppMicroServices, bundles are either shipped in the form of shared libraries, or statically linked into the executable.


Based on packaging principles, bundles should be packaged and released separately – so that they can be depended on individually. biicode’s dependency management through blocks is suitable as a dependency management tool that supports this flow.

Continue reading

Our Story (II): Miguel Hernando’s road to entrepreneurship

How did biicode begin?

…certainly not in a parking lot, but Pablo San Segundo and I were pretty close to the one at the University the very first time Diego explained biicode to us.

I consider myself lucky for being part of biicode’s birth. The day we decided its name, or those endless meetings with a chalkboard full of diagrams, the first “battle logo” as we named our first “company mascot”.
In addition, I really enjoy my work as a university professor and engineer. Thanks to the university I have had the opportunity to devote myself to something that fascinated me since I was a child: robotics. But you cannot master robotics without solid programming skills, so I’ve been programming since I started hacking the fascinating Commodore 64, with its “peek” and “poke”, and his incredible voice synthesizer accessible through a simple command: “say”.

Hacking Commodore 64 is the beginning of our story

Hacking the Commodore 64 was classy.

Continue reading

Why C/C++ made me quit a tenure track position at University | Our Story (I)

This is the first chapter of our story, a story in which we embarked on a journey to create biicode. We hope this gives you a hint of the pains and gains of creating a start-up from scratch. This is our story.

Why I quit a tenure track position as professor

I’m Diego Rodriguez-Losada, the first promoter of biicode and one of its founders. Right before embracing this adventure, I had a comfortable position as a professor in Universidad Politecnica de Madrid.

Diego biicode our story

Credit: Sintetia.com

Continue reading

Bit-encoded Graphs

UPDATED: 11/09/2014

Today, by the hand of Pablo San Segundo, we present graph and ugraph, two simple, easy-to-use, C++ wrappers for unweighted graphs encoded as bit strings.


One of the most interesting and versatile applications of bit strings is to encode simple unweighted graphs dynamic in the number of edges (i.e. there is an efficient way to add/remove edges but not so for the vertices). Graphs encoded as bit strings have recently attracted the attention of researchers in relation to  well known NP-hard problems such as vertex coloring or clique. The main reason is that efficient algorithms that exploit bit-parallelism at CPU level have been found for such problems.

Continue reading

Work hard, play hard: new release, biicode 1.0 is already here!

Every once in a while, we all have to work harder than ever. It’s probably different for each one of us, but we all feel the willpower to achieve greatness.

For us, biicoders, it means working pretty hard (for almost two months) on a major release: Biicode 1.0 , with numerous demanded features you have been asking for.

This is a foretaste before you Get Started!

  • no more workspaces.
  • no sign up needed.
  • flat-files, fully integrable with version control systems.
  • greater configuration options of biicode with CMake.
  • you can publish as DEV, the development tag, so you can test your stuff.

And to take a breath right before putting the finishing touches to biicode 1.0, we went to play paint-ball.

Paint-Ball Biicode

After that we joined for a tasty barbecue!

Sign up  today and don’t miss the results of this work hard – play hard!

Stay tuned

Europython 2014 in Berlin

Our employees @hithwen and @fcofdezc are giving talks at @europython!


Credit: EuroPython

Don’t miss our employees’s talks at EuroPython!

Francisco Fernández, @fcofdezc

  •  22 July

Extending Python, what is the best option for me?

  •  23 July

Graph Databases, a little connected tour

 Julia S. Simón, @hithwen

  •  24 July

Multiplatform binary packaging and distribution of your client apps

Stay tuned and follow @biicode , all talks will be announced, so you can see them in streaming! Continue reading

BITSCAN efficiency at a glance

BITSCAN 1.0, our exclusive C++ library developed by Pablo San Segundo for sets of bits greater than the CPU register word, has proven its efficiency!

In order to find out if BITSCAN  was fast enough to be a substantial improvement over other libraries that manage bit strings, it has been  compared with std::bitset and  boost::dynamic_bitset similar data structures.

A comment on basic features

STL ‘s Bitset (stl∷bitset) is NOT dynamic (i.e. the size of the bit string must be provided in compilation time by as a template parameter), so it does not actually provide the same functionality.

Boost´s Dynamic Bitset (boost:dynamic_bitset) is similar in functionality  in fast forward bit scanning. However, Boost does NOT currently support reverse bit scanning which is important in many applications.

Continue reading

Exclusively at biicode, BitScan library!

We like having at your disposal all types of libraries and today we’re bringing BITSCAN, a new C++  64bit library that our co-founder Pablo San Segundo built.

BITSCAN is optimized for fast bitscanning operations.

How does it operate?  It manages bit strings and collects the bits in strings of 64 bits .

BITSCAN library has been used successfully to implement BBMC (bit board maximum clique), an efficient state of the art maximum clique algorithm.

Continue reading