thewizardlucas

6 июля 2020

# Понедельник 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…

7:38

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:38

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

In 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: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

In 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: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…

17:06

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.
To… twitter.com/i/web/status/1…

8:14

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

As 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: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…

12:58

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:21

1. Engineering is done with numbers. Analysis without numbers is only an opinion.

16:21

  • To design a spacecraft right takes an infinite amount of effort. This is why it's a good idea to design them to… twitter.com/i/web/status/1…
  • 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 💖

    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: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…

    8:51

    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:51

    When you know what each stream does, you can connect multiple programs through them. pic.twitter.com/prJDwt6lm1

    8: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/wp6QOhBOFZ

    14:47

    When you open a new terminal window, its streams will point to the connected TTY. pic.twitter.com/7VyQwyXiOg

    14:47

    To 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:

    youtube.com/watch?v=rqZuNA…

    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

    other