Получи случайную криптовалюту за регистрацию!

Типа про IT

Логотип телеграм канала @tipaproit — Типа про IT Т
Логотип телеграм канала @tipaproit — Типа про IT
Адрес канала: @tipaproit
Категории: Технологии
Язык: Русский
Количество подписчиков: 1.24K
Описание канала:

Типа про IT и вот это вот всё. Авторский блог exclusively for Telegram.

Рейтинги и Отзывы

1.50

2 отзыва

Оценить канал tipaproit и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

0

3 звезд

0

2 звезд

1

1 звезд

1


Последние сообщения 7

2021-03-27 14:46:16

396 views11:46
Открыть/Комментировать
2021-03-26 15:41:04 ​​Линус, наш дорогой, Торвальдс заявил, что он “не против” использования Rust в ядре Linux. Rust’s primary first target seems to be drivers, говорит. То есть в мякотку пока нельзя, но сбоку потереться можно. Учитывая обычную непереводимую резкость заявлений Линуса, это практически что зелёный свет для сообщества and great news for everyone!

Там, кстати, зарелизилась новая версия языка, но лучше вам об этом узнать из канала Блог* и следить за развитием событий там же (тем более, я не понимаю до конца, круто это всё или нет, потому что писать на Rust мне, увы, не приходится).
652 views12:41
Открыть/Комментировать
2021-03-25 16:12:00 Известный факт, что CPython использует алгоритм djb2 для реализации своей строковой хеш-функции и выглядит он так:

unsigned long
hash(unsigned char *str)
{
unsigned long hash = 5381;
int c;
while (c = *str++)
hash = ((hash << 5) + hash) + c;
return hash;
}


А hash уже применяется в реализации dict, set и вообще везде, где нужна хэшируемость объекта. И, вроде бы, всё с ней хорошо, работает годами, только непонятно нихуя.

Магическое число 5381

— простое число
— недостаточное число
— нечётное число
— имеет бинарное представление 001/010/100/000/101
— в сравнении с другими имеет хороший лавинный эффект

Я не настоящий сварщик, поэтому будем считать, что такой ответ нас устраивает. Daniel J. Bernstein, автор сия алгоритма, отвечает на пацана, что всё посчитал и ему это число зашло больше остальных. Но вместо 5381 может быть и любое другое.

hash = ((hash << 5) + hash) + c

Что тут вообще происходит?! А это не более, чем hash * 33 + c. Так наши деды экономили процессорное время и умножали числа битовым сдвигом. hash << 5 это hash * 32, ну и плюс ещё один hash, вот и выходит 33.

Самое популярное объяснение зачем там 33 звучит так — “потому что”: the magic of number 33 (why it works better than many other constants, prime or not) has never been adequately explained. То есть ещё одно магическое число и смиритесь с этим. Но истина чуть сложнее.

— даёт хорошее распределение (aka меньше коллизий)
— это выяснилось опытным путём

Из диапазона чисел от 1 до 256 выбросили все чётные числа (криптографы их ненавидят). Поэтому уже не 42. И все они, в общем-то подходят. Но некоторые можно представить битовым сдвигом, это 17, 31, 33, 63, 127 и 129. Daniel посчитал, что 33 выглядит прикольно и взял именно его.

В итоге, в ключевой для хеш-таблиц функции, в ключевой для языка структуре данных, используются 2 магическим образом подобранные константы. Вот и живите с этим.
965 views13:12
Открыть/Комментировать
2021-03-19 16:20:44 Dolt is a SQL database that you can fork, clone, branch, merge, push and pull just like a git repository. Connect to Dolt just like any MySQL database to run queries or update the data using SQL commands. Use the command line interface to import CSV files, commit your changes, push them to a remote, or merge your teammate’s changes.

All the commands you know for Git work exactly the same for Dolt. Git versions files, Dolt versions tables. It’s like Git and MySQL had a baby!

We also built DoltHub, a place to share Dolt databases. We host public data for free!

Пользоваться я этим, конечно, не буду, но мне нравится сама идея.
1.8K views13:20
Открыть/Комментировать
2021-03-18 19:58:05 Вастрик молодец, как всегда. Будьте как Вастрик.
947 views16:58
Открыть/Комментировать
2021-03-12 16:40:24 Всегда хотел уметь читать Postgres Query Plan, который выдаёт команда EXPLAIN, потому что неплохо было бы понимать где узкие места запроса без пальца в небе. Но когда смотришь на

Sort (cost=717.34..717.59 rows=101 width=488) (actual time=7.761..7.774 rows=100 loops=1)
Sort Key: t1.fivethous
Sort Method: quicksort Memory: 77kB
-> Hash Join (cost=230.47..713.98 rows=101 width=488) (actual time=0.711..7.427 rows=100 loops=1)
Hash Cond: (t2.unique2 = t1.unique2)
-> Seq Scan on tenk2 t2 (cost=0.00..445.00 rows=10000 width=244) (actual time=0.007..2.583 rows=10000 loops=1)
-> Hash (cost=229.20..229.20 rows=101 width=244) (actual time=0.659..0.659 rows=100 loops=1)
Buckets: 1024 Batches: 1 Memory Usage: 28kB
-> Bitmap Heap Scan on tenk1 t1 (cost=5.07..229.20 rows=101 width=244) (actual time=0.080..0.526 rows=100 loops=1)
Recheck Cond: (unique1 < 100)
-> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=101 width=0) (actual time=0.049..0.049 rows=100 loops=1)
Index Cond: (unique1 < 100)


и ты не data engineer, понятного мало. Стыдно признаться, но 7 лет назад я умел читать эти анализы. А теперь не умею. А надо уметь.

Поэтому, закрываем пробел в образовании:

SQL Optimization community-driven book, for free
Understanding EXPLAIN plans (внезапно, GitLab Docs)
2.4K views13:40
Открыть/Комментировать
2021-03-10 13:19:08
У NGINX (теперь правильно всё капсом писать) вышла свежая книга The Complete NGINX Cookbook с, как вы понимаете, рецептами и сниппетами самых ходовых конфигураций. Можете зарегистрироваться и скачать бесплатно у них на сайте самостоятельно, ну или скачать без регистрации и эсэмэс пэдээфку directly here.
458 views10:19
Открыть/Комментировать
2021-02-25 15:32:56 Довольно занятная история о технической стороне организации FOSDEM 2021 (the world’s largest free & open source software conference). Шикарное чудище из Matrix, Jitsi, Jibri, такой-то матери, но самое главное, что эксперимент оказался удачным: всё работало, держало нагрузки, можно брать на вооружение.
122 views12:32
Открыть/Комментировать
2021-02-23 20:50:24 ​​Заебали со своим Клабхаусом.

Интересно, как он формирует мне рекомендации? Я турецкий и японский в настройках не отмечал. А на тех языках, которые я понимаю, обсуждают какую-то невыносимую дрочь.

Пробовал слушать в фоне во время работы — сильно отвлекает, не успеваю ни слушать, ни работать. Во время готовки — перестаю слушать уже через минут 5. А если слушать специально — бесит бесцельностью происходящего.

То ли формат не мой, то ли я слушаю не тех. А вам как?
106 views17:50
Открыть/Комментировать