Another way of playing through a nutshell

Hi folks!

I did not write here for a while and recently my life changed more that one bit. Due to that reason, I decided to break the ice and organize few notes. Then, I ended up writing down what I have been done in the last months and giving a quick and shortly overview of how I see the future.

In the last few years I have been expanded my spectrum of engineering, from applications in network monitoring and security to healthcare domain. In this area, several software architectures has been designed and implemented, more concrete, in data integration for medical imaging laboratories, integration of EHR, and aggregation levels of information. Through the laboratory I grew  up in many dimensions and indeed learn lot with a high quality team. I’ve been research and developed many strategies to scale and federate biomedical databases, while facing with standardization processes and dealing with high heterogenous data.

Recently, I started working in a company, which name BMD Software while still working in open source projects, which are a bit of my life: Dicoogle and Montra (Catalogue).

I’m still working with DICOM standard, while trying to improve the biomedical research area and looking for new challenges and new business opportunities that can end up in a real break through.

See you around and a in near future!

| Leave a comment

Github Atom with Python

Hi folks. This is a micro post. I’m starting using Atom with Python. And the first annoying thing I noticed was why I do not have tabs with 4 spaces in Python and why I do not see the spaces (they appear me as invisible chars). So I’m sharing the configs to solve this problem:

Open Atom -> Open your config and paste it there

‘cr’: ‘↩’
‘tab’: ‘⇥’
‘showInvisibles’: true
‘showIndentGuide’: true
‘tabLength’: 4


Open Atom -> Open your stylesheet and paste it there:

@hints-color: #c5c8c6;
@hints-opacity: 0.3;

.editor {
.invisible-character {
color: @hints-color;
opacity: @hints-opacity;


| Leave a comment

“As apps da moda”

Hi everyone!

Well, I’m at Summer time and I did not post in this blog for a while.

Today, I’m going to promote a new Facebook page. Its name is “As apps da moda”. It is a Portuguese name that means something
like: “the trendy apps”.

Find the link here:

Continue reading

Posted in Android, Apps, Game, Ios, Life | Tagged , , | Leave a comment

Threadpool.js – Light Threadpool in Javascript

Hi folks,

Few weeks ago, I was with my friend Eriksson digressing about the threads in javascript and how hard was to control them. We have a nice background with several projects in Distributed Systems, mainly developed in Java. We’re aware of how good is to control the threads and launch them easily thought the ThreadPool.  The idea of a thread pool is to have n active threads and the threadpool will be responsible to only keep that n number running.

Whilst in Java it is quite easier, to have a nice threadpool, in javascript was not easy. And nowadays there are many client side applications that needs to have this kind of control. We decided to create a light pool threadpool for javascript. And then, threadpool.js was born. This is a light threadpool library to javascript. In this threadpool you can set a priority for each task and change dynamically. Furthermore, you can also define the thread pool size. Also, we do not use works from java, and we keep it in a easier way, as emulated.

Please checkout:

Also this example:

| Leave a comment

Buttons at Phonegap. Why the click is slow?

Hi folks,

I’m playing with Phonegap framework and I figure out an issue with the button. The click event does not works properly in mobile devices, they are quite slower, at least, in iOS and Android. Here is an example of code that does not works properly:

<button onclick=’handle();’ …/>

Following other posts I fixed the bug with the following code (using jquery):

$(“#myButton” ).on(‘touchstart’, handle);

The main conclusion is: if you’re developing HTML for mobile applications you need to bother about what are proper events to bind.

| Leave a comment

A common API for delivering services over multi-vendor cloud resources

Hi folks,

Recently, we publish a paper entitled as “A common API for delivering services over multi-vendor cloud resources”.

Cloud computing is a very hot topic at the moment. However, there are many cloud providers with different APIs and services. In my work, we had several difficulties handle these different players. This paper discuss several issues at this level and presented our adopted solution to mitigate this problem. Check the abstract:

The increasing pace of evolution in business computing services leads enterprises to outsource secondary operations that are not part of their core business. The cloud computing market has been growing over the past few years and, consequently, many cloud companies are now offering a rich set of features to their consumers. Unfortunately, those cloud players have created new services with different APIs, which imply that cloud-oriented applications might be instantiated in one single cloud provider. This scenario is not desirable to the IT industry because their applications will become provider-dependent. In this paper we present a platform that allows applications to interoperate with distinct cloud providers’ services using a normalized interface. The proposed approach provides a common API that minimizes the present deficit of cloud API standardization and provides secure and redundant services allocation. Moreover, services from different cloud providers can be combined and decorated with additional functionalities like, for instance, redundancy and ciphering on-the-fly.


Please check:

Reference: L. Bastião, C. Costa and J. L. Oliveira, “A common API for delivering services over multi-vendor cloud resources”, Journal of Systems and Software. Elsevier. 2013. (doi: 10.1016/j.jss.2013.04.037).

Hope it helps you!


| Leave a comment

DICOM Cloud Router

Hi folks!

In the last few months, we’ve been working on DICOM Router based on Cloud resources. We’ve been publishing several papers and deployed the solution. This software is used to Scientific article entitle as “DICOM relay over the cloud”:

The main motivation to create these system was to connect geo distributed repositories. For instance, if you want to connect to the PACS archive located in the hospital from home. You can do it easily without complex setups. In the figure, you can see a overview of the general architecture.


There are other references regarding this paper, like for instance, “Portuguese develop interinstitutional DICOM cloud-based relay“.

Our development team entered an agreement with BMD Software for the company to commercialize the product. Check out out on: BMD Software, If you want to know more about it, do not hesitate to contact me!

Posted in Cloud Computing, DICOM, Dicoogle, Java, PACS, Programming | Leave a comment