Чайник из Юты
121 subscribers
214 photos
3 videos
5 files
141 links
Не смешно
Download Telegram
Я наконец допёр (с помощью умного поляка), почему при инстанциации сокета мы не указываем условно socket(AF_INET, SOCK_TCP), а SOCK_STREAM, SOCK_DGRAM. Сетевой стэк следует той философии, что ты выбираешь не столько протокол, сколько требуемую семантику от подключения. Соответственно, семантика SOCK_STREAM может быть реализована и по другому семейству, и не по TCP. Всё тот же AF_UNIX к примеру.

Ещё у AF_UNIX есть интересная штука - SOCK_SEQPACKET, которая по своим свойствам чётко между udp и tcp. То есть, оно даёт те же гарантии доставки и сохранения очередности, что и tcp, но сигнализирует об окончании пакета (в оригинале они это называют record) явно, как и udp. При том, что такая удобная и очень дружелюбная к программисту штука есть, в целом-то, только для AF_UNIX, в AF_INET/6 аналогичного транспортного протокола нет. Хоть его и можно имитировать на уровне tcp, что, отнюдь, всё ещё приводит к костылям. Возможно, на этом этапе уже действительно проще вынести это как часть собственного протокола над tcp (который у тебя есть примерно всегда).

Кому интересно, вот текст, описывающий всё это, только языком более компетентного человека: https://urchin.earth.li/~twic/Sequenced_Packets_Over_Ordinary_TCP.html
1
Вот с таким лицом я пощу свою хуйню
> In short, this principle argues that important functions (e.g., error control, encryption, delivery acknowledgment) should usually not be implemented at low levels (or layers; see Section 1.2.1) of large systems. However, low levels may provide capabilities that make the job of the endpoints somewhat easier and consequently may improve performance. A nuanced reading reveals that this argument suggests that lowlevel functions should not aim for perfection because a perfect guess at what the application may require is unlikely to be possible.

А я знал! Я знал! Индига шла по правильному пути.
М, забавно.

TL;DR заметная доля well-known портов, зарегистрированных в IANA, нечётные. Потому что они существуют ещё со времён arpanet, в которой подключения были унидирекционные (полудуплексными), т.е. односторонними, для чего для каждого приложения резервировалось сразу два порта - один для IN, второй для OUT
👍3
Прилетел, спиздил и улетел
Чайник из Юты
GIF
😱
Please open Telegram to view this post
VIEW IN TELEGRAM
Чайник из Юты
https://github.com/golang/go/issues/19623 Ёбаный позор.
Просто для справки: после этого ишшуя, пройдёт 3 года до того, как в го1 появятся дженерики. НУ ТО ЕСТЬ ДАВАЙТЕ ДОБАВИМ ЭТОТ ЁБАНЫЙ СТЫД В ГО2 ВМЕСТО ДЖЕНЕРИКОВ В ГО1

Начинаю подозревать, что уход Пайка с поста - это хорошее решение
> В 1600 году английский учёный У. Гилберт провёл тщательное исследование электричества и магнетизма, различая эффект магнитного камня от статического электричества, возникающего при трении янтаря[13]. Он придумал неолатинское слово electricus («из янтаря» или «как янтарь», от греческого ἤλεκτρον [электрон], греческое слово «янтарь») для обозначения свойства притягивать мелкие предметы после трения[15][16]. Эта ассоциация породила английские слова «электрический» (англ. electric) и «электричество» (англ. electricity), которые впервые появились в печати в труде Т. Брауна «Ошибки и заблуждения[англ.]» в 1646 году[17][18].

Итого: имеем слово "электричество" благодаря островному немцу из 17 столетия
Чайник из Юты
https://personal.utdallas.edu/~gupta/courses/apl/lambda.pdf
> The University of Texas at Dallas
> looks inside
> FU Berlin, WS-97/98
Чайник из Юты
https://en.wikipedia.org/wiki/Multipath_TCP
TL;DR tcp пакеты по нескольким каналам распределять, чтобы оно разными путями топало к точке назначения. Сири, например, его юзает, и эпловские инженеры заявляют, что это дало им time-to-first-word на 20% быстрее в 95 процентиле, и в 5 раз меньше сетевых ошибок
> Structure and Interpretation of Computer Programs is an amazing book by Harold Abelson and Gerald Jay Sussman. The book teaches the fundamental principles of computer programming, including recursion, abstraction, modularity, and much more. I recommend the book to anyone who is interested in programming, I am sure they will learn something.

> One of the most valuable things that SICP has taught me is that sometimes it’s extremely useful to treat functions as black boxes that are able to transform some inputs into some outputs. They call this wishful thinking, and it has been useful not only when using functions, but also when designing them.

https://web.mit.edu/6.001/6.037/sicp.pdf
А неплохой способ визуализации придумали. Обычно ведь берут дерево и не выёбываются
👍4🤯1