# Понедельник 11 твитов
Hello, everyone!
This week your host will be me, @thewizardlucas ✨
I'm a Brazilian Software Engineer, currently in… twitter.com/i/web/status/1…
I'm currently writing a book about JavaScript testing, which you can find at this tweet's link, and I often write a… twitter.com/i/web/status/1…
7:38100% 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:13In his brilliant article named "Why Most Unit Testing is Waste" (rbcs-us.com/documents/Why-…) James O'Coplien explains… 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:13Tests 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:13In this talk (one of my favourite talks ever), @rtfeldman explains in more detail how to use types to make impossib… twitter.com/i/web/status/1…
10:13Contrary 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:06The 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.
To… twitter.com/i/web/status/1…
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:14As far as Vim plugins go, I don't use many. The ones I think are the most useful are FZF (github.com/junegunn/fzf.v…)… twitter.com/i/web/status/1…
8:14You 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:14The 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…
Akin’s Laws of Spacecraft Design (spacecraft.ssl.umd.edu/akins_laws.html) are one of the most useful pieces of wisdom for any engi… twitter.com/i/web/status/1…
16:211. Engineering is done with numbers. Analysis without numbers is only an opinion.
16:218. In nature, the optimum is almost always in the middle somewhere. Distrust assertions that the optimum is at an extreme point.
16:219. Not having all the information you need is never a satisfactory excuse for not starting the analysis.
16:2120. A bad design with a good presentation is doomed eventually. A good design with a bad presentation is doomed immediately.
16:2133. (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 💖
Throug… twitter.com/i/web/status/1…
8:51🤔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:51By 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:51There 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.
Da… twitter.com/i/web/status/1…
8:51When you know what each stream does, you can connect multiple programs through them. pic.twitter.com/prJDwt6lm1
8:51What 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:46These 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:46Each 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:46Like 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:46To find out which tty is associated with a terminal window you can use the tty command. pic.twitter.com/wp6QOhBOFZ
14:47When you open a new terminal window, its streams will point to the connected TTY. pic.twitter.com/7VyQwyXiOg
14:47To complement the two threads about #unix #streams that I've done today, here go a few related links that I'd recom… twitter.com/i/web/status/1…
18:07К сожалению, далеко не ламповая редакция подвела нас в очередной раз 😭
Ну ничего, ждём следующей недели...
8:57# Четверг 7 твитов
Today, a little bit about lambda calculus, to complement one of my favourite talks ever, this one, at HolyJS 2018:
8:19A 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:19If 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:19And 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:19Today, 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:19To 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:36Everything 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:36The 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:36Writing 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:55The 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