Let’s talk about Neo4j, a graph database that recently has attracted a significant number of fans. My goal is for you to have a brief (I promise to be quick) vision of how it works and to give you some examples to make it more tangible.
We are used to write data using tables, to relate them through primary keys and, by looking directly at the data, you only see IDs. Graph databases were designed mainly so that this doesn’t happen. Its purpose is for you to have a complete understanding when looking at the data. Continue Reading
In the Tolkien’s universe, twenty Rings of Power were forged and given as gift to the rulers of Middle-Earth, the Elves, the Dwarfs and the Humans. There were Three rings for the Elven kings under the sky, the most powerful of the twenty, after the One ring.
In our universe, a lot of tools were created and given as gift to the rulers of the Earth. If we focus on technology, more precisely in mobile metrics, we can say that there are Three tools for the Analytics kings under the sky – and they are as powerful as the elven rings.
I have a Komeco air conditioner in my bedroom. It is controlled by an IR remote controller (ZH/JT-03) and, as a home automation hobbyist, I really like to control my home appliances with my Watch, Phone, Google assistant, Alexa, etc. You got my drill. In simple words, I’m lazy, thus I try to automate everything I can.
Since I started building apps I was sure of only two things: one is that I love seeing users enjoying my apps; and the second is that I hate seeing users clicking everywhere and crashing them. So how can I be sure that my users will be able to have a joyful experience (even with those features that are hidden 15 clicks away and that I don’t even remember they exist anymore)? By testing them all!
Integrating apps and servers is not an easy task, we all know that. Even with great tools like Alamofire and Retrofit there are still a lot of things to take care of in the app side: different endpoints, encoding / decoding JSON strings, API versions, data consistency and so on…
Recently I have worked in a project with server integration and we had the opportunity to choose new technologies to work with and to try to avoid some of these problems. The choice was a GraphQL server and in the app side the Apollo framework.
Picture this: 5 people talking about the same subject in different languages. What are the chances of misunderstanding? As you can imagine: a lot. Well, this is a common scenario in software development teams up to some point. One of the most common reasons that lead to failure when building a product is the lack of well defined goals and requirements amongst developers and stakeholders. This can be caused by a wide variety of reasons. But it is safe to agree that most of them are due to lack of communication.
Automated database migrations have been a convenient way of dealing with schema changes for a long time in Django. It’s been only 3 years since migrations have been incorporated into Django but South had been the de-facto solution since 2008.
The same way an ORM allows us to forget about SQL when writing queries to the database, migrations make sure we don’t write a single ‘ALTER TABLE’ in our schema changes. Some may argue that’s bad: we “lose control” over a critical part of our infrastructure, we don’t know how to write SQL anymore when needed, we’re not sure how that operation is really translated into SQL, etc, etc. Ok, these points are actually valid. However, Django migrations module is more than just a way of automatically generating and applying SQL statements, it’s also a transparent API to write your own database changes in Python. It comes with wheels for those who need it (or trust enough) and tools for those who like to get their hands dirty.
When I started as an iOS developer, my biggest problem was with app crashes, that’s because I really didn’t know how iOS, Swift, and Objective-C worked. Back then, I wrote a lot of bad code, not worrying about memory usage, memory access, ARC or GCD. That’s simply because I didn’t know about that stuff. I was a beginner, for God sakes.
Like most beginners, Stack Overflow community taught me a lot about “doing things the right way”. I’ve learned a lot of tricks that helped me improve my work process. In this article, I’ll share some of them about the most important tool used in this learning process: the breakpoints!