All posts by Ademir Constantino

About Ademir Constantino

Senior Software Engineer

Persecuted by the Brazilian Government and Police

I have been persecuted by the brazilian government and police for over 15 years. I had more than 10 jobs in the I.T department of big multinationals and brazilian companies, and I was humiliated and persectued without a criminal reason (apparentely).

Just to tell a bit about my life in the last 10 months. I was forced to leave my job at the Brazil, which was difficult to get in – I did the test during my 30th birthday date until 6a.m of the next day. Damn diffcult:

After that I was forced to sell my car, my amplifier, my pedalboard, and everything I had bought during 5 years of hard work. I was forced to move back to the countryside of the state of Parana because I lost my job and everything I had in Sao Paulo so I had to choose between becoming a homeless or returning to this place.

I suffered a homicide try by the Brazilian military police: This is proven below:

On the news, they said I was under a psycothic crisis, not true though. This was reported on the news that I suffered a psychotic crise, however you can clearly see they tried to hide my hands and my legs, which was harmed by the chains they used to imobilize me.


I have been medicated over years and considered crazy (schizo) in Brazil, I am not crazy and I don’t have any disease though.

(I’ve found this medicines here at home — injectables, however they are possibly giving me this drugs — but I don’t remember anything)

They say I have involvements with drugs, not true:


( I had also to buy this in order to reduce possible infections in my water)


(Spiders appear at my house, dangerous ones O_o)

img_0681( I have to lock my house doors this way when I am outside my house)

No criminal records


After having my house keys stolen due to drug abuse, I had to break the window glasses to get inside the house, however I suffered this accident:



(My student id)


My last thoughts on Internet privacy

During my journey, I’ve always had the good intention of providing information for governmental purposes or even the police, but something changed my mind over all this years. After having problems with the Brazilian justice — in spite of not being a criminal – I changed my mind and I started supporting the idea of the government and the police to do not have access to your private information.

There are several situations in which my smartphone was taken while sleeping for people to read my stuff. Files deleted after people using my PC, and things like that. So I have decided that I will not move forward on trusting any source which may make your privacity broken or stolen, this of my personal experience on that – having trouble with them and not being a criminal.

Good things I have seen lately:

What’sApp End-2-End encryption

Facetime End-2-End encryption

To be continued…

Bill Gates letter to hobbyists

Hey guys, today I am here to share with you something very interesting about what happened in the 70’s when code was shared by hobbyists which used to develop software in the universities.

I just knew this after watching the movie Revolution OS (which is very nice indeed), and the purpose of this post is to show you who was the “enterprising” mind behind corporative software: Bill Gates — and I just don’t want to make the idea I am against him, of course not, since I believe he did a lot for computer science and Microsoft looks like is changing their minds to open source software since cloud computing took the scene.

There it follows the e-mail Bill Gates sent to the hobbyists encouraging them to make money with software and closing codes/patents — whatever:


ps:  A very interesting movie to watch is the Revolution OS — a movie about Linux, which tells a bit about Linux, GNU the all the Open Source Software and initiatives. You can find it on:

That is all for today, hope you like it. 😉

Deadlock from Multithreading


The objective of this small article is to give an introduction about threads, deadlocks and how a dead lock may occur illustrated with code using the Java programming language. At the end, I give my personal point of view about the subject.


A thread can be defined simply by “a separated computation process” that may be a children of other threads – or a main program (Savitch, 2010). Threads can also operate in a parallel manner, what means multiple computation processes sharing same resources, and running for a common goal.

In Java, this can be achieved by using the Thread class, which offers support for implementing single and multithread applications.


Figure 1 Illustration of a Thread Program in Java

The code figure above shows a simple thread program coded up with the Java language. Basically, this illustrates one thread instanced by the Thread class. The ThreadExample1 class is just an implementation of Runnable, one of the ways of implementing threads with the Java programming language.


Figure 2 Example of a Multithreading application in Java

When running the code above, will give the output of:



Is off


Is on

Is off

Is on

Is off

Is on

Is off


Table 1 Ouptut of the program


Deadlock is defined by, 2016 as A deadlock is a situation in which two computer programs sharing the same resource are effectively preventing each other from accessing the resource, resulting in both programs ceasing to function.


Figure 3 An illustration of a dead lock

The figure above illustrates a deadlock occurring on the traffic. What happens is that all the cars are trying to access the same resource at the same time, what locks the traffic to flow.


“When in doubt, synchronize.”

(Goetz, 2001)

The Java programming language offers synchronization resources in order to prevent dead locks. What happens is that at every variable that is overwritten using multiple threads, it is strictly recommended that you use synchronization.

Example of a potential synchronization deadlock:


Figure 4 Using the synchronization resource (Goetz, 2001)

Image a scenario while thread A calls oneMethod(), while thread B calls anotherMethod(). What happens is that thread A gets the lock on cacheLock and at the same time thread b gets the lock on tableLock. Now the threads are deadlocked.


According to the StackOverflow, 2016 forum, some good tips to avoid deadlocks are:

  • Always use lock free data-structures;

  • Release locks after a timeout period;

  • Always acquire the locks in the same order.


Deadlocks are a very sensible threat to every program which uses multithreading programs sharing the same resources. While debugging and simulating dead locks are difficult because it needs timing and also it may not occur because of environment and machine load. The Java programming language offers resources to deal with deadlock issues, however it is more of a programmers responsibility to avoid this problem.


Savitch, W, 2013. Absolute Java. 5th ed. USA: Pearson. 2016. What is deadlock? – Definition from [ONLINE] Available at: [Accessed 01 May 2016].

Blogspot. 2016. Figure of a deadlock. [ONLINE] Available at: [Accessed 1 May 2016].

Brian Goetz. 2001. Avoid synchronization deadlocks | JavaWorld. [ONLINE] Available at: [Accessed 01 May 2016].

Multithreading – Tips to prevent deadlocks in java. 2016. Stack Overflow. [ONLINE] Available at: [Accessed 01 May 2016].

Multiple Inheritance


The main objective of this small article is to provide an introduction about the multiple inheritance subject, give an overview how it is implemented with the Java programming language and my considerations to conclude.


The concept of inheritance is very close to what we have in genealogy. Fathers share common attributes with sons, whom all share common attributes from its parents, grandparents and so on. Yet, all of them have their own particularities, like eye color, hair color, etc…

xid-94316198_6Figure 1 Illustration of Genealogy


According to Sklenar, 1997, Simula is known and considered as the first object oriented programming language. This is based on the concept of the conceptualization of the real world brought up to the computing space.

The key aspect of objected oriented programming is to simulate the real world conceptualization of how things are designed, organized and oriented. One of these aspects is the inheritance concept, which is defined and illustrated by Oracle, 2016 as: object-oriented programming allows classes to inherit commonly used state and behavior from other classes. The figure below illustrates the inheritance in a bicycle illustrated analogy:



Figure 2 Illustration of inheritance


The concept of multiple inheritances can be illustrated with genealogy indeed. Father and mother share common aspects with their children the same way grandparents share commons aspects and particularities.

Although multiple inheritances to do not be implemented by some objected oriented programming languages, it is very common to happen in different manners.


It is widely known that Java does not support multiple inheritance, however Java 8 implements functional interfaces (a resource very similar and that can be compared pretty much the same) which are very similar to the concept of multiple inheritances. There is an example which illustrates its functionality below:


(, 2016)


In spite of being a powerful resource to the programmer, it is commonly criticized by its complication to debug and even to lead to unnecessary design complexity. The Java programming language does not support it directly; on the other hand it implements resources (such as function interfaces) which may lead in such manner to achieve the same functional result.


ISOGG Wiki. 2016. Mitochondrial DNA tests. [ONLINE] Available at: [Accessed 20 April 2016].

Sklenar J. 1997. INTRODUCTION TO OOP IN SIMULA. [ONLINE] Available at: [Accessed 20 April 2016].

What Is Inheritance?. 2016. What Is Inheritance? ONLINE] Available at: [Accessed 19 April 2016].

Default Methods in Java 8 and Multiple Inheritance. 2016. [ONLINE] Available at: [Accessed 19 April 2016].

Your next programming interview

This post is dedicated to all the ones which are looking to get prepared for the most difficult job interviews in software development. First of all, I want to make sure you know the fundamentals of computer science in the programming space, and I will recommend some courses which will make you a five star developer in a world-wide scale.

  1. Stanford’s Computer Algorithms Course:

Links and websites to practice and check your ability to deal with computer science and math related problems:

There are also other MOOC platforms such as: