books

Things I Learnt The Hard Way - Cognitive Cost Is The Readability Killer

1 minute read Published: 2019-06-26

"Cognitive dissonance" is a fancy way of saying "I need to remember two (or more) different and contradicting things at the same time to understand this." Keeping those different things in your head creates a cost and it keeps accumulating the more indirect the things are ('cause you'll have to keep all those in your head).

Things I Learnt The Hard Way - Thinking Data Flow Beats Patterns

1 minute read Published: 2019-06-26

When you're trying to find a solution to your problem, think on the way the data will flow through your code.

Things I Learnt The Hard Way - Learn The Basics of Functional Programming

2 minute read Published: 2019-06-26

At this point, you should at least have hard about how cool functional programming is. There are a lot of concepts here, but at least the very basic ones you should keep in mind.

Things I Learnt The Hard Way - The Magical Number Seven, Plus Or Minus Two

2 minute read Published: 2019-06-26

"The magical number" is a psychology article about the number of things one can keep in their mind at the same time.

Things I Learnt The Hard Way - Understand And Stay Away From Cargo Cult

1 minute read Published: 2019-06-25

"Cargo cult" is a type of cult which appeared in the Melanesia, in which the natives would build their copy of an airplane (no motor, 'cause they didn't have the knowledge to build one -- or even knew what went inside the airplane) in the hopes they would get the same results as a real airplane.

Things I Learnt The Hard Way - Don't Mess With Things Outside Your Project

1 minute read Published: 2019-06-25

Simple rule: Is the code yours or from your team? Good, go break it. Does it come from outside? DON'T. TOUCH. IT.

Things I Learnt The Hard Way - Design Patters Are Used to Name Solution, Not Find Them

1 minute read Published: 2019-06-25

Most of the times I saw design patterns being applied, they were applied as a way to find a solution, so you end up twisting a solution -- and, sometimes, the problem it self -- to fit the pattern.

Things I Learnt The Hard Way - "Right Tool For The Job" Is Just To Push An Agenda

0 minute read Published: 2019-06-25

A lot of times I heard "We should use the right tool for the job!" Most of those times it was just a way to push an agenda.

Things I Learnt The Hard Way - The Right Tool Is More Obvious Than You Think

0 minute read Published: 2019-06-25

Maybe you're in a project that needs to process some text. Maybe you're tempted to say "Let's use Perl" 'cause you know that Perl is very strong in processing text.

But that may still be not the right tool.

Things I Learnt The Hard Way - If Your Data Has a Schema, Use a Structure

2 minute read Published: 2019-06-25

You may be tempted to use a list (or tuple, if your language allows) to keep your data if it's simple -- like, say, only 2 fields. Don't.

Things I Learnt The Hard Way - It's Better To Let The Application Crash Than Do Nothing

0 minute read Published: 2019-06-24

Although that sounds weird, it's better to not add any error handling than silently capturing errors and doing nothing.

Things I Learnt The Hard Way - Types Say What You Data Is

1 minute read Published: 2019-06-24

Memory is just a sequence of bytes; bytes are just numbers from 0 to 255; what those numbers mean is described on the language type system.

Things I Learnt The Hard Way - If You Know How To Handle It, Handle It

1 minute read Published: 2019-06-24

If you know an error can occur, then you should handle it properly, instead of ignoring it.

Things I Learnt The Hard Way - A Language Is Much More Than A Language

1 minute read Published: 2019-06-24

Picking a programming language is much more than just picking the words that will generate a code. They come with a community, a leadership, an ecosystem and a thread the binds them all together.

Things I Learnt The Hard Way - Don't Use Booleans As Parameters

0 minute read Published: 2019-06-23

When you're designing a function, you may be tempted to add a flag. Don't do this.

Things I Learnt The Hard Way - If A Function Description Includes An "And", It's Wrong

1 minute read Published: 2019-06-23

Functions should do one thing and one thing only. I clear indication that you're breaking this principle is the need to add an "and" in its documentation.

Things I Learnt The Hard Way - Beware of Interface Changes

1 minute read Published: 2019-06-23

Interfaces and APIs is what you give away to others. If you keep changing them, you'll make everyone's life a sad life.

Things I Learnt The Hard Way - Good Languages Come With Integrated Documentation

1 minute read Published: 2019-06-23

If you're worried about learning some new programming language, you can bet the one with a better documentation is the one that is born with a document processor.

Same goes for the frameworks/libraries of that language.

Things I Learnt The Hard Way - The Function Documentation Is Its Contract

1 minute read Published: 2019-06-21

When you start the code by writing the documentation, you're actually making a contract (probably with your future self): I'm saying this function does this and this is what it does.

Things I Learnt The Hard Way - Documentation Is a Love Letter To Your Future Self

0 minute read Published: 2019-06-21

We all know writing the damn docs for functions and classes and modules is a pain in the backside. But realizing what you were thinking when you wrote the function will save your butt in the future.

Things I Learnt The Hard Way - Future Thinking is Future Trashing

0 minute read Published: 2019-06-21

When developers try to solve a problem, they sometimes try to find a way that will solve all the problems, including the ones that may appear in the future.

Things I Learnt The Hard Way - Testing Every Function Creates Dead Code

2 minute read Published: 2019-06-21

If you write a test for every single function on your system, and your system keeps changing, how will you know when a function is not necessary anymore?

Things I Learnt The Hard Way - Good Languages Come With Tests

0 minute read Published: 2019-06-20

You can be sure that if a language brings a testing framework -- even minimal -- in its standard library, the ecosystem around it will have better tests than a language that doesn't carry a testing framework, no matter how good the external testing frameworks for the language are.

Things I Learnt The Hard Way - Disclaimer

1 minute read Published: 2019-06-19

There is one magical thing you need to know when reading this book: It's all personal opinion

Things I Learnt The Hard Way - Intro

1 minute read Published: 2019-06-18

"Things I Learnt The Hard Way (In 30 Years of Software Development)" started as a simple sequence of toots (the same as "tweets", but outside Twitter) when I was thinking about a new presentation I could do.

But why "a new presentation"?

Things I Learnt The Hard Way - Spec First, Then Code

1 minute read Published: 2019-06-18

"Without requirements or design, programming is the art of adding bugs to an empty text file." -- Louis Srygley

Things I Learnt The Hard Way - Write Steps as Comments

1 minute read Published: 2019-06-18

Don't know how to solve your problem? Write the steps as comments in your code.

Hands-On Microservices with Rust - Denis Kolodin

1 minute read Published: 2019-03-03

The Wolf's Hour - Robert R. McCammon

1 minute read Published: 2019-02-16

Michael Gallatin is a British spy with a peculiar talent: the ability to transform himself into a wolf. Although his work in North Africa helped the Allies win the continent in the early days of World War II, he quit the service when a German spy shot his lover in her bed. Now, three years later, the army asks him to end his retirement and parachute into occupied Paris. A mysterious German plan called the Iron Fist threatens the D-Day invasion, and the Nazi in charge is the spy who betrayed Michael’s lover. The werewolf goes to France for king and country, hoping for a chance at bloody vengeance.

Modern Java in Action - Raoul-Gabriel Urma

1 minute read Published: 2019-02-08

Java 8 Lambdas in Action is a clearly-written guide to Java 8 lambdas and functional programming in Java. It begins with a practical introduction to the structure and benefits of lambda expressions in real-world Java code. The book then introduces the Stream API and shows how it can make collections-related code radically easier to understand and maintain. Along the way, you'll discover new FP-oriented design patterns with Java 8 for code reuse, code readability, exception handling, data manipulation, and concurrency. For developers also exploring other functional languages on the JVM, the book concludes with a quick survey of useful functional features in Scala and Clojure.

Publishing Books on Zola

3 minute read Published: 2019-01-20

A long time ago I wrote a couple of posts on a WordPress, then moved them to GitBook. Unfortunately, GitBook changed its layout to something a bit more confusing and now I'm bringing them back to this blog, which runs Zola.

Modern Vim: Craft Your Development Environment with Vim 8 and Neovim - Drew Neil

1 minute read Published: 2018-12-29

GoodReads Summary: Turn Vim into a full-blown development environment using Vim 8’s new features and this sequel to the beloved bestseller Practical Vim. Integrate your editor with tools for building, testing, linting, indexing, and searching your codebase. Discover the future of Vim with Neovim: a fork of Vim that includes a built-in terminal emulator that will transform your workflow. Whether you choose to switch to Neovim or stick with Vim 8, you’ll be a better developer.

Soulminder - Timothy Zahn

1 minute read Published: 2018-12-13

GoodReads summary: For Dr. Adrian Sommers, a split second of driving while distracted leads to tragedy-and obsession. His family destroyed, he devotes his entire being to developing Soulminder, a technology that might have saved his son as he wavered on the edge of death. Sommers's vision is to capture a dying person's life essence and hold it safely in stasis while physicians heal the body from injury or disease. Years of experimentation finally end in success—but those who recognize Soulminder's possibilities almost immediately corrupt its original concept to pursue dangerous new frontiers: body-swapping, obstruction of justice, extortion, and perhaps even immortality.

Answers to Questions You’ve Never Asked: Explaining the What If in Science, Geography and the Absurd - Joseph Pisenti

1 minute read Published: 2018-12-04

GoodReads summary: Fun facts for kids of all ages: When you take the most absurd parts of history, science, economics and geography, you end up with a pretty confusing picture of humanity. Why do we have borders, what’s the furthest you can get from the ocean, how do you qualify as a country and why did Vikings wear those silly helmets? These are just a few of the strange questions that bounce around the head of YouTube sensation Joseph Pisenti, aka RealLifeLore.

The Origin of Names, Words and Everything in Between - Patrick Foote

1 minute read Published: 2018-11-30

GoodReads summary: Explore the world of names: What is something that literally everything in existence has in common? It all has a name! With The Origin of Names, Words and Everything in Between, you can learn the origins of these names. From countries and cities to toys and animals to even planets, learn the etymology of interesting words in a fun and entertaining way.

Films from the Future: The Technology and Morality of Sci-Fi Movies - Andrew Maynard

2 minute read Published: 2018-11-29

GoodReads summary: Science, technology, and society: In Films from the Future, former physicist Andrew Maynard threads together his love of science fiction movies with his expertise on emerging technologies to engage, entertain and make you think about the relationship between technology, and society as they discover astounding, transformative advances in science. Through the imagination and creativity of science fiction movies, Maynard introduces readers to the profound capabilities presented by new and emerging technologies, and the complex personal and societal challenges they present.

The Planets: Photographs from the Archives of NASA - Nirmala Nataraj, Bill Nye, U.S. Goverment

0 minute read Published: 2018-11-25

The Story Behind: The Extraordinary History Behind Ordinary Objects - Emily Prokop

0 minute read Published: 2018-11-24

Learn You a Haskell for Great Good! - Miran Lipovača

0 minute read Published: 2018-11-23

Genius: The Life and Science of Richard Feynman - James Gleick

1 minute read Published: 2018-10-28

The Cyberiad - Stanisław Lem

0 minute read Published: 2018-09-14

The Book of Skulls - Robert Silverberg

0 minute read Published: 2018-09-03

Night of the Living Trekkies - Kevin David Anderson

0 minute read Published: 2018-08-28

I Have No Mouth and I Must Scream - Harlan Ellison

0 minute read Published: 2018-08-23

The Book of Kells - R.A. MacAvoy

0 minute read Published: 2018-08-13

Learning Java - Patrick Niemeyer

0 minute read Published: 2018-08-03

In the Beginning...: Science Faces God in the Book of Genesis - Isaac Asimov

0 minute read Published: 2018-06-25

Princesses Behaving Badly: Real Stories from History Without the Fairy-Tale Endings - Linda Rodríguez McRobbie

0 minute read Published: 2018-06-16

Future Shock (Future Shock, #1) - Elizabeth Briggs

0 minute read Published: 2018-06-05

The Big Bad Book of Bill Murray: A Critical Appreciation of the World's Finest Actor - Robert Schnakenberg

2 minute read Published: 2018-06-03

Being There - Jerzy Kosiński

0 minute read Published: 2018-05-31

Powers (Annals of the Western Shore, #3) - Ursula K. Le Guin

1 minute read Published: 2018-05-27

Programming Rust: Fast, Safe Systems Development - Jim Blandy

1 minute read Published: 2018-05-22

Eon (The Way, #1) - Greg Bear

0 minute read Published: 2018-04-12

Changing Planes: Stories - Ursula K. Le Guin

0 minute read Published: 2018-03-13

Hadoop in Practice (Manning) - Alex Holmes

1 minute read Published: 2018-02-16

Hap and Leonard: Blood and Lemonade - Joe R. Lansdale

0 minute read Published: 2018-01-30

The Emperor's Soul - Brandon Sanderson

0 minute read Published: 2018-01-21

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems - Martin Kleppmann

1 minute read Published: 2018-01-19

The Waste Lands (The Dark Tower #3) - Stephen King

0 minute read Published: 2017-09-04

Will Eisner's the Spirit: Who Killed the Spirit? - Matt Wagner

0 minute read Published: 2017-09-04

The Drawing of the Three (The Dark Tower, #2) - Stephen King

0 minute read Published: 2017-08-20

Storm Real-Time Processing Cookbook - Quinton Anderson

0 minute read Published: 2017-07-30

Apache Kafka - Nishant Garg

1 minute read Published: 2017-07-05

Nginx: From Beginner to Pro - Rahul Soni

0 minute read Published: 2017-06-28

Web Development with Clojure: Build Bulletproof Web Apps with Less Code - Dmitri Sotnikov

1 minute read Published: 2017-06-22

The Gunslinger (The Dark Tower, #1) - Stephen King

0 minute read Published: 2017-06-11

A Filosofia Explica as Grandes Questões da Humanidade - Clóvis de Barros Filho

0 minute read Published: 2017-06-05

21 Erros Clássicos da Gestão de Projetos - Eli Rodrigues

1 minute read Published: 2017-05-10

Clojure for Machine Learning - Akhil Wali

0 minute read Published: 2017-05-01

Antifragile Systems and Teams - Dave Zwieback

0 minute read Published: 2017-04-17

Argo - Antonio J. Méndez

1 minute read Published: 2017-04-17

Clojure for the Brave and True - Daniel Higginbotham

1 minute read Published: 2017-04-09

Dossiê Jung - Elizabeth Mednicoff

0 minute read Published: 2017-03-21

A Garota no Trem - Paula Hawkins

0 minute read Published: 2017-03-18

Land of Lisp: Learn to Program in Lisp, One Game at a Time! - Conrad Barski

1 minute read Published: 2017-03-16

Mujica – A revolução tranquila - Mauricio Rabuffetti

1 minute read Published: 2017-03-05

Arrival - Ted Chiang

1 minute read Published: 2017-02-28

The Swift Programming Language - Apple Inc.

0 minute read Published: 2017-02-26

Turing e o Computador em 90 minutos - Paul Strathern

0 minute read Published: 2017-02-19

A Colher que desaparece: e outras histórias reais de loucura, amor e morte a partir dos elementos químicos - Sam Kean

0 minute read Published: 2017-02-18

The End of All Things (Old Man's War, #6) - John Scalzi

0 minute read Published: 2017-02-10

The Human Division (Old Man's War, #5) - John Scalzi

0 minute read Published: 2017-02-04

Zoe's Tale (Old Man's War, #4) - John Scalzi

0 minute read Published: 2017-01-25

Nos Bastidores da Coca-Cola - Neville Isdell

1 minute read Published: 2017-01-14

How to Make Mistakes in Python - Mike Pirnat

0 minute read Published: 2017-01-01

Imperative to Functional Programming Succinctly - Marc Clifton

0 minute read Published: 2016-12-30

Black Hat Python: Python Programming for Hackers and Pentesters - Justin Seitz

1 minute read Published: 2016-12-26

Python Data Science Essentials - Learn the fundamentals of Data Science with Python - Alberto Boschetti

0 minute read Published: 2016-12-16

O Príncipe - Niccolò Machiavelli

0 minute read Published: 2016-11-28

The Little Book of HTML/CSS Coding Guidelines - Jens Oliver Meiert

0 minute read Published: 2016-10-18

A Bug Hunter's Diary: A Guided Tour Through the Wilds of Software Security - Tobias Klein

0 minute read Published: 2016-10-14

Python Playground: Geeky Projects for the Curious Programmer - Mahesh Venkitachalam

0 minute read Published: 2016-10-12

Quatro Heróis e um Bardo contra a Realidade Medieval - Rodrigo Assis Mesquita

0 minute read Published: 2016-10-12

Write Great Code: Volume I: Understanding the Machine - Randall Hyde

1 minute read Published: 2016-10-05

Poder & Manipulação: Como entender o mundo em vinte lições extraídas de "O Príncipe", de Maquiavel - Jacob Pétry

0 minute read Published: 2016-08-27

23 Hábitos Anti-Procrastinação: Como Deixar de Ser Preguiçoso e Ter Resultados Em Sua Vida - S.J. Scott

0 minute read Published: 2016-08-08

Less Web Development Essentials - Bass Jobsen

0 minute read Published: 2016-08-02

Como convencer alguém em 90 segundos - Nicholas Boothman

0 minute read Published: 2016-07-24

Web Development with Django Cookbook - Aidas Bendoraitis

1 minute read Published: 2016-07-10

Django Design Patterns and Best Practices - Arun Ravindran

0 minute read Published: 2016-07-07

Rin Tin Tin: A Vida e a Lenda - Susan Orlean

1 minute read Published: 2016-07-04

Silence on the Wire: A Field Guide to Passive Reconnaissance and Indirect Attacks - Michal Zalewski

1 minute read Published: 2016-06-23

Scrum: A arte de fazer o dobro de trabalho na metade do tempo - Jeff Sutherland

1 minute read Published: 2016-06-08

Reactive Programming with JavaScript - Jonathan Hayward

1 minute read Published: 2016-05-27

Como a música ficou grátis - Stephen Witt

1 minute read Published: 2016-05-21

A História do Mundo Para Quem Tem Pressa - Emma Marriott

1 minute read Published: 2016-05-10

CoffeeScript Application Development - Ian Young

0 minute read Published: 2016-05-07

Backbone.Js Testing - Ryan Roemer

0 minute read Published: 2016-05-02

Guia politicamente incorreto da história do mundo - Leandro Narloch

2 minute read Published: 2016-04-29

Backbone.js Essentials - Jeremy Walker

0 minute read Published: 2016-04-26

The Last Colony (Old Man's War #3) - John Scalzi

1 minute read Published: 2016-04-23

The Ghost Brigades (Old Man's War, #2) - John Scalzi

0 minute read Published: 2016-04-21

C# Succinctly - Joe Mayo

0 minute read Published: 2016-04-17

História do Futuro: O Horizonte do Brasil no Século XXI - Miriam Leitão

3 minute read Published: 2016-04-16

Instant Backbone.js Application Development - Thomas Hunter II

0 minute read Published: 2016-04-03

Python 3 Object Oriented Programming - Dusty Phillips

0 minute read Published: 2016-04-02

Direto ao Ponto - criando produtos de forma enxuta - Paulo Caroli

1 minute read Published: 2016-03-26

Getting Started with Meteor.js JavaScript Framework - Second Edition - Isaac Strack

0 minute read Published: 2016-03-25

Antologia da maldade: Um Dicionário de Citações, Associações Ilícitas e Ligações Perigosas - Gustavo H. B. Franco

0 minute read Published: 2016-03-19

Tecnicas de Memorizacao Para Estudantes: Porque Voce Pode IR Alem - Rodrigo Vargas

0 minute read Published: 2016-03-14

Mastering JavaScript Design Patterns - Essential Solutions for Effective JavaScript Web Design - Simon Timms

1 minute read Published: 2016-03-12

Pense Como Um Freak - Steven D. Levitt

0 minute read Published: 2016-02-28

TypeScript Succinctly - Steve Fenton

0 minute read Published: 2016-02-22

Mussum Forévis: Samba, mé e trapalhões - Juliano Barreto

0 minute read Published: 2016-02-21

Learning ECMAScript 6 - Narayan Prusty

1 minute read Published: 2016-02-18

Elon Musk: Como o CEO bilionário da SpaceX e da Tesla está moldando o nosso futuro - Ashlee Vance

1 minute read Published: 2016-02-17

Learning Ionic - Build real-time and hybrid mobile applications with Ionic - Arvind Ravulavaru

0 minute read Published: 2016-02-04

Linux Shell Scripting Cookbook - Shantanu Tushar

1 minute read Published: 2016-01-13

O Herói de Mil Faces - Joseph Campbell

1 minute read Published: 2016-01-05

Object-oriented JavaScript - Second Edition - Stoyan Stefanov

0 minute read Published: 2015-10-03

Oh Myyy! (There Goes the Internet): Life, the Internet and Everything - George Takei

0 minute read Published: 2015-09-18

JavaScript Testing Beginner's Guide - Liang Yuxian Eugene

1 minute read Published: 2015-09-10

Old Man's War (Old Man's War, #1) - John Scalzi

0 minute read Published: 2015-07-19

The Martian - Andy Weir

0 minute read Published: 2015-07-18

Rust Essentials - Ivo Balbaert

1 minute read Published: 2015-07-02

12 Years a Slave - Solomon Northup

1 minute read Published: 2015-04-09

American Gods - Neil Gaiman

0 minute read Published: 2015-04-04

WikiLeaks: Inside Julian Assange's War on Secrecy - David Leigh

1 minute read Published: 2015-03-29

Ready Player One - Ernest Cline

0 minute read Published: 2015-03-24

iPad® Productivity Essentials: The Definitive Guide to Getting More Productive with your iPad - Christopher J. Lee

0 minute read Published: 2015-03-21

Subterranean Scalzi Super Bundle - John Scalzi

1 minute read Published: 2015-03-20

An Illustrated Book of Bad Arguments - Ali Almossawi

0 minute read Published: 2015-03-05

Getting Things Done: The Art of Stress-Free Productivity - David Allen

1 minute read Published: 2015-03-05

The Drift Wars - Brett James

0 minute read Published: 2015-02-03

Just a Geek: Unflinchingly honest tales of the search for life, love, and fulfillment beyond the Starship Enterprise - Wil Wheaton

1 minute read Published: 2015-01-31

Redshirts - John Scalzi

0 minute read Published: 2015-01-28

Clean Code: A Handbook of Agile Software Craftsmanship - Robert C. Martin

1 minute read Published: 2015-01-25

1001 Video Games You Must Play Before You Die - Tony Mott

3 minute read Published: 2015-01-11

Brave New World - Aldous Huxley

1 minute read Published: 2014-12-31

All Quiet on the Western Front - Erich Maria Remarque

1 minute read Published: 2014-12-24

Emotions Revealed: Understanding Faces and Feelings - Paul Ekman

1 minute read Published: 2014-12-20

The Island of Doctor Moreau (Unabridged) - H.G. Wells

1 minute read Published: 2014-12-09

The Forever War - Joe Haldeman

1 minute read Published: 2014-12-05

All You Need Is Kill - Hiroshi Sakurazaka

1 minute read Published: 2014-12-03

The Complete Collection - H.P. Lovecraft

2 minute read Published: 2014-11-29

AngularJS - Brad Green

0 minute read Published: 2014-07-19

I Am Legend - Richard Matheson

0 minute read Published: 2014-05-20

Dogfight: How Apple and Google Went to War and Started a Revolution - Fred Vogelstein

1 minute read Published: 2014-03-07