Anxiety

Seriously, people don’t have a fucking clue about a person with anxiety disorder. It is not just anxiety, it is a feeling of despair, of claustrophobic walls closing on you.

It is like you eating yourself away in and being barely functional because you can’t control the doubt. You can’t calm down, you don’t know how to do it, you know you just can’t.

You know that if you don’t get some answer, you will explode, waiting is impossible, it is an herculean effort. You can’t do anything else except think about it, play all possible scenarios in your head.

This is not about waiting on your Amazon order to be delivered, everything is a pain to wait for. I think that it must have something to do with feeling powerless, and the fear of depending on others. Facts you can’t control can literally freeze you up in your bed.

You get barely functional, and it makes you more anxious because you can’t function. It is a nightmare of recursion. You just want to stay in bed for days and sleeping so you don’t need to deal with it. Because you don’t know how to deal with it.

And please, don’t say it is going to be OK, because even if it is going to be OK that doesn’t mean shit in the moment. Because for people with General Anxiety Disorder what matters is the NOW, not the near future.

The people I admire

There are a lot of people I admire, for example Leonardo DaVinci. That dude was awesome! Did you know he wrote backwards? Some said it is because he was left-handed and he didn’t want to smear ink on the paper when writing, some say he was dyslexic.

Another guy that impresses the hell out of me is Gaius Julius Caesar. He wasn’t a math and engineering genius like DaVinci. He was a conqueror.

In 47 BC he was a Consul and Roman General, and one of his missions was the Battle of Zela, which he won in a 5-day campaign with half the army that Pharmaces II had.

So “Veni, Vidi, Vici” it is reported to have been said by Caesar when returning from that battle, it translates to “I came, I saw, I conquered” 1.

For me that phrase always gave me goose bumps, like everything is possible if you are smart enough to do it. It is a symbol that makes you trust yourself and go with your instincts (read more about the Battle of Zela to understand why of that).

Because of that, this was my first tattoo:

10919466_593227607474913_660654603_n

And I wanna go, I wanna see and I wanna conquer.

Although impostor syndrome is not an official diagnosis I am sure I suffer from it. The fear of being “discovered as a fake”, is down right scary, to the point of giving me panic attacks. I don’t like routine and being out of my comfort zone shouldn’t be a problem for me, but the second I have the opportunity to do something different, I chicken out.

I made that tattoo to remind myself that I can beat that, that I can conquer.

Some people despite of their personal issues have been kind enough to me to help me, and I’d like to thank them. I don’t know if I can say their names, it is pretty personal and maybe they don’t want to be exposed, but I really appreciate what you have been doing for me. Know that I regard you as the same level of admiration as I regard those two geniuses above. I actually think I regard you even higher.

For the people that are reading this, know they are my anonymous saviors, my Avengers.


1 – Grammatically speaking I remember in school that it was a unique case of a phrase without subject, that is was ugly thing called “Orações coordenadas assindéticas” which I means that are phrases that are not connected by any conjuctive, only by commas. In that case they were only verbs, in the case of the English language it would be literally “Came, Saw, Conquered”, which does not make any sense, because if the verbs were conjugated in the correct way, it would mean to be a set of orders, in another words, it would be in the Imperative.

Data Warehouse Experimenting

sb1061208I had the opportunity to work with a variety of databases: Firebird (yeap!), MySQL, Postgres, Oracle and SQL Server. And to count the NoSQL ones I was able to work with MongoDB and DynamoDB.

I have different opinions about each one of the above (note that I didn’t include Access on the list, as far as I know, that is not a database). Also, it is not secret that I like Amazon AWS products, and using some of them daily I can see why each service can be magically integrated to achieve a goal.
My goal right now is to get Amazon Redshift working with my current RDBMS and NoSQL sources. A lot of work lies ahead. Because of that I am sharing with you what I am learning by using it. But first things first: the knowledge shared ahead can be used with any data warehouse technology. A data warehouse basically is a summarized database.

##OLTP

OLTP is the short term for OnLine Transaction Processing.

Most applications work with an OLTP model. Because we learn that tables must be normalized to avoid data redundancy, one of the advantages this approach brings is the easiness to do a data change: operations of INSERT, UPDATE and DELETE are made without problems.

So here we have our typical RDBMS databases or even NoSQL, but the most important thing to remember about OLTP is that it is realtime. The application interacts with it in real time.

Things start to get a little more complicated when even a simple report is needed and it takes forever to run a query or you have so much rows in that N x N table that is practically impossible to read it efficiently. For that, OLAP models support faster reads.

##OLAP

OLAP is the short term for OnLine Analytical Processing.

This is not a system I commonly see in small software companies, usually the big ones use it because requires a lot more care and investment to be able to do the necessary analysis.

Although some market RDBMS come with tools to help with the data denormalization, this is not that common. You could say that an OLAP system reads from one, or more, OLTP systems. I know Firebird, SQL Server and Oracle all have computed columns, it is a nice way to have some preprocessed data in your database, and a computed column is a virtual column. MySQL and Postgres don’t have that feature (it can take a toll on performance).

The data here is summarized or grouped for analytical goals. Because of that, it is much more complex to do the CRUD operations with this system. You can read really fast, but to update your fact table, you probably need to create an ETL (Extract, Transform, Load) process to import the information. Generally this process is automated and scheduled.

Usually this kind of system comes with a lot of complex queries and grouping, most BI tools (Pentaho, Tableau, etc.) use an OLAP as their primary source. This system works with structured data with dimensions, it is often called a data cube.

oltp-olap

Big Data

So now this is hard to explain. It is not suitable for every company as an OLAP could be, and in real life I only saw one case where it was actually needed (also the high cost of a project with Big Data is not affordable for small and mid size companies). But honestly, I think this cartoon defines the feeling for a grand portion of the market:

Big Data Cartoon

Most of the data presented is unstructured, so the challenge here is a way to analyze it on a way that you can get a monetary return there. There are some people around saying that currently Big Data is more about the technology, not about the data, information is still too controversial at this point.

OLTP x OLAP x Big Data

Although you can use an OLTP system without an OLAP, the inverse is not true, so it is not like you have to choose which one to use for your application, the only choice you have to is make whether you need a data warehouse or not.

In a way a Big Data could take over a OLAP cube, but I think there is a long path to be followed before that, and again, the costs are pretty different from one to another.

Why Redshift?

Amazon Redshift is an OLAP technology used to work with an immense amount of data in a columnar way. It uses a Postgres storage, but this is not your typical Postgres database. And at the financial side is pretty much cheaper than Oracle and Microsoft solutions.

You can create a cluster of databases with Redshift and have scalable and fast access with high I/O to get your data. Also integrates fairly easy with RDS and DynamoDB, but it is not exclusive to that.

You must not use it as an RDBMS to store your transactions since it doesn’t constrain the table relationships. Those relationships are used for index purposes, not data consistency.

Next blog post I will try to explain how to work it and how to assert your fact tables and dimensional tables to make sure you don’t get performance issues with it.

The day I called my IDE a “he”

Disclaimer: this post was not sponsored by Jetbrains

I work with PHP and for my everyday work I use PHPStorm as IDE. It is easily the most complete and powerful solution I have ever used to code.

So recently I was talking to Kayla Daniels about how I opened a file in my IDE and it froze. I never saw that happen to PHPStorm, because of it, a little investigation was needed.

The investigation

Is the file big?

No, it was not huge, it was 200KB… wait… 200KB? I know PHPStorm can not handle files too big, but 200KB is nothing compared to 400MB sql dump files.

Why the file had 200k?

The answer: a Controller with more than 4,000 lines.

Come again?

Yeah, 4,000 lines, no you did not read wrong. A Controller with four thousand lines.

Can it get any worse?

Yes, it always can get worse: like this controller extended another controller, with 5,000 lines.

To top that, this class is the main controller, so EVERY controller class extend this 5k lines file. I think they did that to get some methods available everywhere through the application, but come on, this is not the right way people!

Why the IDE can’t handle a 4,000 lines file?

Actually, it can! But the thing is, you know that awesome features you use with PHPStorm (like: Code Sniffer, Cmmd + Click/Control + Click, inline debugger)?

The thing is, when you open a file, it scans all the references into it so you can have all those nice stuff to do your job easily, so imagine how many objects, functions there are in class with 4k lines that inherits a 5k file? (I am not counting the other files)

The ‘he’ part

So when I rant about this situation to Kayla, I said to her:

(…) the size is not the problem, because _he_ scans the whole file (…)

And she said to me: “That is so cute, you called your IDE a ‘he’”. And come to think of it, it is a “he”, at least for me.

I always envied Java Developers because of how awesome Eclipse was for them. And now I am no more, because I think this is the perfect tool for me, he had help me more than I can count. I had a lot of experience with other tools on the market, PHPStorm have fit me very well. But this was not his fault.

Or the ‘he‘ could have been only a “slip of the tongue”, simply as that 😀

Impressions over my talk at Laracon EU 2014

On August 28th I presented to Laracon EU my talk about gender diversity titled: Coding Like a Girl: How teams with women gain with diversity.

My objective was to show data supporting that having women in the team is a good idea and actually a good strategy. What concerned me was in the how to approach such sensitive subject. Not everyone feel confortable in talking about that and it is hard to be totally impartial with this subject. Besides, I didn’t want to be interpreted as a feminazi.

But I was really surprised by the amount of people who stayed to see my talk! You have to understand: as a Brazilian whom never spoke in an international event before, I was very nervous, not just about my English, but about the crowd. Kayla Daniels, Frank de Jonge and Scott Wilcox definitely helped me with my cold feet (thank you all!).

And this year Laracon EU had 2 tracks in the community day, so it meant the event would have another talk in the same time as mine! I was sure no one would attend mine, I was almost talking to Shawn McCool to change me to the small room and having the other speaker to talk in the bigger room I was almost bolting out of there. Hence my surprise (and scared) face when I saw a good 70% of the people there to see me talk.

When I started talking, it was clear for the attendees that I was freaking out! BUT, I was able to get my emotions in control because I saw people’s faces, and I could see that for many of them what I was talking about was totally news, it was “I did not know it was like that” face. Probably because the majority was White Males, and other minorities were… minorities!

To see my message being listened and understood, it was incredibly joyful! It really made me happy. Although, I saw a guy sleeping in his chair…

For that incredible experience, I want to thank Laracon EU organization for bringing me there and giving me the opportunity to meet such wonderful people there! Thank you Shawn!

Links

My Slides:

My Joindin feedback: http://goo.gl/yy6lMf

P.S.: I will be giving his talk over Hangouts on Air this Thursday, September 18th, 2014, link to the event here: http://goo.gl/IwiVD8