Choice supportive bias in train

All

Intro

It’s very usual to see people selling stuff in the trains in Sao Paulo.
Once coming back from work, in a train back in Sao Paulo, someone started to offer a hamer to the people inside the train car.
It was bizarre. No one wanted to buy the hamer obvously.
(The more bizarre was the choice supportive bias that happened two minutes later – wait for it)
But then one person on the other side of the train raise the hand and bought it!
And then another one!!
(The catch)
Well, the seller left the train car and I could see from the window that the first buyer was actually working with him! XANANIGAINS!
THOSE GUYS MANAGED THE SUPPORTIVE BIAS without studying it in the School!!

Lesson

  When making choices your brain will play tricks on you. so try to avoid those biases with the most racional decision. Specially in groups decision, and I guess that’s why in elections the ballout paper is hidden and secret. It will be another bias! haha

Ref

[1] https://en.wikipedia.org/wiki/Choice-supportive_bias

Head First Design Pattern and Christopher Okhravi

All

Intro

    During a interview, I remember we talking about MVC models and how the change in the Model would change overall model. I was asked then what was this pattern. And I was like (forgot face ???) instead of saying Strategy Pattern.
    Thanks for Christopher Okhravi, nowadays 12 of them are straight on youtube videos[2] from the book [1].

Design Patterns

  Strategy Pattern
         Using composition over inheritance
  Observer Pattern
         Poll vs Push archtecture. Keep on asking for changes
   Decorator Pattern – adding behavior dynamically to an object
   Factory Pattern – creation of objects
   Abstract Factory – build objects without specify the concrete object
  Singleton – restricts to one unique object the creation
  Command Pattern – encapsultes request as object, and have a queue of command
   Composite Pattern – combine requests for example commands.

REFs

[1] Head First Design Patterns

RNN

All

Intro
A bit before finishing my master, with the help of Prof Orlando Silva, from Mackenzie during his Neural Network classes.

I started learning a bit of the Recurrent Neural Networks, aka RNN!
Not dead anymore

I was quite impressed with how powerful were they and the fact that the field stood still for so long time until recently.
So I tried learning it, from the basic to the more advanced. The math for me in the begin was difficult but after several book you kind of get use to it.
Resevoir Computing

Doing this small research I came to the Prof Murilo B, at Aberdeen University and his work with Reservoir Computing. He knew so many things and so many properties of those things.

I was impressed on how many things we could use it, from speech recognition to Chaos theory!!!!

Some properties

Since one can think about recurrent networks in terms of their properties as dynamical systems, it is natural to ask about their stability, controllability and observability:

Stability

concerns the boundedness over time of the network outputs, and the response of the network outputs to small changes (e.g., to the network inputs or weights).

Controllability

is concerned with whether it is possible to control the dynamic behavior. A recurrent neural network is said to be controllable if an initial state is steerable to any desired state within a finite number of time steps.

Observability

is concerned with whether it is possible to observe the results of the control applied. A recurrent network is said to be observable if the state of the network can be determined from a finite set of input/output measurements. A rigorous treatment of these issues is way beyond the scope of this module!

Git

I forked from Torch RNN library here [2], you should do the same!

Summary

I did a small summary of my research and if you have more interested it you can see it here[1]. It is very very small and summarized, i.e. 15/16 pages.
[1] https://docs.google.com/document/d/1fE_6TLHhz010YeYFa1g0SHfkDYWNzL8qFD5RoroY_rM/edit?usp=sharing

[2] https://github.com/FranciscoMeloJr/rnn

[C++ tips] Enums

All

Intro

   I personally think we subtilize enums in all the languages. The sentence “Francisco, you can use a Enum here instead of int” comes to my mind.

C++

   One thing that I like about c++ enums implementation is that you can break the flow:

All examples are from here [1]. I hope I don’t go to hell to use such clever examples here:

// color may be red (value 0), yellow (value 1), green (value 20), or blue (value 21)

enum color

{

    red,

    yellow,

    green = 20,

    blue

};

    Blue is 21!! Like, breaking the flow!

Defect Reports

   By the way, I don’t know if you like to search about Defect Reports, it is very helpful actually.
Spending some time on it might save your time in the future actually.

Refs[1] https://en.cppreference.com/w/cpp/language/enum

[2] http://open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#1638

Shared library / Shared stuff

All

What is the difference of so and dll?

From:
https://stackoverflow.com/questions/9688200/difference-between-shared-objects-so-static-libraries-a-and-dlls-so/9688338

The best answer I found was written by aleroot and it is enough for me:
static library(.a) is a library that can be linked directly into the final executable produced by the linker,it is contained in it and there is no need to have the library into the system where the executable will be deployed.

shared library(.so) is a library that is linked but not embedded in the final executable, so will be loaded when the executable is launched and need to be present in the system where the executable is deployed.

dynamic link library on windows(.dll) is like a shared library(.so) on linux but there are some differences between the two implementations that are related to the OS (Windows vs Linux) :

DLL can define two kinds of functions: exported and internal. The exported functions are intended to be called by other modules, as well as from within the DLL where they are defined. Internal functions are typically intended to be called only from within the DLL where they are defined.

An SO library on Linux doesn’t need special export statement to indicate exportable symbols, since all symbols are available to an interrogating process.

Tesla/Eletric Cars

All

A bit before the invention of the car the thing that was happening the invention/adoption of Diapers for Horses. I’m not joking actually and it was a matter of discussion among serious people in the UK.

But while some people were worried about those diapers, so other were busy inventing the car!
I think that’s exactly the point we’re in now. While some people worry about gas ducts all over the country, the era of eletric cars/trucks is on the edge of the begin. From this point on, only this will grow.

Viva Tesla Motors!

Busuu

All

I personally use this app on my phone to learn everyday more and more German.

German is not easy but if you practice everyday it will come around.
Busuu is paid but it is a good investiment for learning a new language.
There are others app as well, some even free, but I personally liked busuu interface and way of teaching me. Also on the paid module, you will receive a certificate for completing certain level and this is very motivating indeed!!
It worth paying

Passion

All

Part of being a software developer, I think, it’s the passion about it.

I think this apply to all the professions but having passion about what you do is actually the only engine that it will make you continue and eventually grow.
Learning new things everyday, sharing knowledge and improving your skills is a requirement nowadays but I think passion has this power.
In the long term it pays off being passionate about small details of your code and it will make a better person, since it reduces the stress of working with something you don’t like.
Get it done or go home!

OpenGL

All

Intro

   The first project I participated in my bachelor was supervised by prof Ismar Frango and it was very interesting actually but in the end I couldn’t use if for the original idea: use for CAVE!
CAVE is this huge thing you go inside and can see objects in 3D using the proper equipment, mirror and some projectors!
OpenGL
   It is a cross-platform API for rendering 2D and 3D objects! It is quite powerful! =D. It’s not difficult to use and I was able to build some interesting stuff. I miss this time of my life. Coming home and building my first project!
In the end
   The project did continue since there was no CAVE to do the tests and all. But I’m glad I learned a bit of OpenGL! Later I use OpenGL in my master thesis also.
Presentation
  This is the only project I have without presentation haha!
Source
  You can find the code here [1].

[1]: https://github.com/FranciscoMeloJr/OpenGL

Constructionism

All

Learning about computer education is learning about Seymour Papert

    One of the most important researchers in terms of computer science learning is Seymour Papert and his work at MIT, according to Paulo Blikstein from Stanford University (Blikstein, 2015). He is the first to define computational thinking and children development!!

    Seymour Papert, more than just the development of the Logo programming language, developed several corollaries and observations, theories and recommendations. It is possible to encountermention his ideas of merging constructivism and computer science within several papers, which formare the main part of this experiment. From his book Mindstorms, we can abstract ideas of computers influence contributing to mental processes of how people think (Papert, 1980).

It was built upon
Constructionism takes in consideration the constructivist theories viewing learning as a reconstruction which is basically see learning as transmission of knowledge.

Constructing based upon meaningful products for the learners.

Constructionism bases

Problem-based learning

Reconstruct knowledge instead of transform

One laptop per child initiative

Together with  Nicholas Negroponte and Alan Kay, Seymour launched the this initiative, the laptops should cost around 100$.