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.
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 the Commodore 64 was classy.
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.
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.
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.
After that we joined for a tasty barbecue!
Sign up today and don’t miss the results of this work hard – play hard!
Our employees @hithwen and @fcofdezc are giving talks at @europython!
Don’t miss our employees’s talks at EuroPython!
Stay tuned and follow @biicode , all talks will be announced, so you can see them in streaming! Continue reading
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.
Jorge Combalia is our pixel-perfect obsessed Visual and UX Designer. It’s been five months now since he joined our team.
Past 29th and 30rd of May I had the chance to attend API Days Mediterranea in Barcelona thanks to a free ticket that Python Spain gave me.
This conference was mainly about REST API’s and how people are dealing with this web architectural approach proposed by Roy Fielding in his PhD dissertation.
Pic from Kinlane.
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.