# Понедельник 11 твитов
100% code coverage does not exist.
The only way you can make it impossible for your software not to make certain m… twitter.com/i/web/status/1…10:13
"I define 100% coverage as having examined all possible combinations of all possible paths through all methods of a… twitter.com/i/web/status/1…10:13
"Anything else is a heuristic about which absolutely no formal claim of correctness can be made."10:13
Tests can't prove that your software doesn't have bugs, they can only prove it _has_ bugs.
On the other hand, Type… twitter.com/i/web/status/1…10:13
Contrary to what most people think, Test Driven Development is not about tests.
It's about taking small iterative s… twitter.com/i/web/status/1…
Another misconception that people have is that they should always repeat the TDD cycle (failing, passing, refactor)… twitter.com/i/web/status/1…17:06
The more confident you are, the more thorough should be the tests you create, and the bigger should be the chunks o… twitter.com/i/web/status/1…17:06
# Вторник 12 твитов
One of the things that has made me the most productive in my career was to learn how to properly use a terminal.
A few things have changed in my stack since then, but, currently, here are the most important tools I've been using… twitter.com/i/web/status/1…8:14
You can find my dotfiles with these configs at github.com/lucasfcosta/do….
These files have been wanting my attention… twitter.com/i/web/status/1…8:14
The best way to review PRs is to:
⭐ Assume that there is _always_ something that can be improved and that your job… twitter.com/i/web/status/1…
1. Engineering is done with numbers. Analysis without numbers is only an opinion.16:21
8. In nature, the optimum is almost always in the middle somewhere. Distrust assertions that the optimum is at an extreme point.16:21
9. Not having all the information you need is never a satisfactory excuse for not starting the analysis.16:21
20. A bad design with a good presentation is doomed eventually. A good design with a bad presentation is doomed immediately.16:21
33. (Patton's Law of Program Planning) A good plan violently executed now is better than a perfect plan next week.16:21
# Среда 17 твитов
Given that my twitter handle is @thewizardlucas, I couldn't help but love something as magical as streams 💖
🤔Why I love streams
I love streams because I don’t like software.
I always try to build less software. Less softw… twitter.com/i/web/status/1…8:51
❓How can streams help build less software?
Streams help us writing less software because they allow programs to co… twitter.com/i/web/status/1…8:51
By enabling inter-process communication, streams encourage software to be smaller and sometimes can even prevent so… twitter.com/i/web/status/1…8:51
📚What are streams?
In the same way that a river has a stream of water, programs have streams of data. Moreover, ju… twitter.com/i/web/status/1…8:51
⚙️How do streams work?
Streams can be used to pass data into programs and to get data out of them.
In UNIX, progr… twitter.com/i/web/status/1…8:51
There are three different standard streams:
* standard input ➡️the stream which feeds your program with data
* sta… twitter.com/i/web/status/1…
The cat program, for example, uses the stdin to receive input from your keyboard and the stdout to send it out.8:51
When you know what each stream does, you can connect multiple programs through them. pic.twitter.com/prJDwt6lm18:51
What if I told you that your terminal is not "really" a terminal❓
If you are not a hardcore time-traveller, what y… twitter.com/i/web/status/1…14:46
These emulators provide you with an interface to interact with the Linux TTY driver. The TTY driver is responsible… twitter.com/i/web/status/1…14:46
Each TTY has its own stdin, stdout, and stderr streams connected to it. These are the streams provided to programs… twitter.com/i/web/status/1…14:46
Like everything in UNIX, the tty is a file. Each instance of a terminal emulator has a different tty file associate… twitter.com/i/web/status/1…14:46
To find out which tty is associated with a terminal window you can use the tty command. pic.twitter.com/wp6QOhBOFZ14:47
When you open a new terminal window, its streams will point to the connected TTY. pic.twitter.com/7VyQwyXiOg14:47
К сожалению, далеко не ламповая редакция подвела нас в очередной раз 😭
Ну ничего, ждём следующей недели...8:57
# Четверг 7 твитов
Today, a little bit about lambda calculus, to complement one of my favourite talks ever, this one, at HolyJS 2018:8:19
A long time ago, a guy called Leibniz had a dream: he wanted to solve all problems using logic.
His dream was to b… twitter.com/i/web/status/1…8:19
If you would like to hear straight from Leibniz himself, this is what he said:
"If controversies were to arise, th… twitter.com/i/web/status/1…8:19
"For it would suffice for them to take their pencils in their hands and to sit down at the abacus, and say to each… twitter.com/i/web/status/1…8:19
And for a long time, people have tried to do create formal ways of expressing computation and solving problems. Her… twitter.com/i/web/status/1…8:19
Today, most of us already know one way of expressing computations: through the use of Turing Machines.
The other w… twitter.com/i/web/status/1…8:19
To this day, learning lambda calculus can be very helpful for one to learn functional programming properly. Not at… twitter.com/i/web/status/1…8:19
# Пятница 9 твитов
Continuing the thread about Lambda Calculus from yesterday!
In this one, we'll go through the very basics and talk… twitter.com/i/web/status/1…8:36
Everything in Lambda Calculus is an expression, which means that everything must evaluate to a value.
There are, h… twitter.com/i/web/status/1…8:36
➡️Identifiers are simply that: identifiers. They identify certain values by giving them a “name”, just like our mod… twitter.com/i/web/status/1…8:36
➡️Abstractions are perhaps the most iconic kind of lambda expression, they define what we call functions or, more a… twitter.com/i/web/status/1…8:36
The ID in the beginning of that abstraction is called the metavariable. The metavaraible is the variable that is go… twitter.com/i/web/status/1…8:36
➡️ Applications denote function invocation. If you have a function A you can say you’re calling it with B by writin… twitter.com/i/web/status/1…8:36
➡️Grouping exists for the sake of disambiguation. We use these parentheses around the expressions we want to group… twitter.com/i/web/status/1…8:36
Writing software is easier than writing books because you don’t have to build an entire product before you can sell… twitter.com/i/web/status/1…15:55
The fact that you can ship software several times a day at zero-cost allows you to make fewer assumptions when buil… twitter.com/i/web/status/1…15:55