☕️ Мерлин заваривает τσάι 🐌
1.09K subscribers
3.54K photos
64 videos
94 files
2.43K links
Merlin makes a slice
Merlin iterates it's twice
Happy compiling!
Download Telegram
☕️ Мерлин заваривает τσάι 🐌
> библиотеки импортируют свои логгеры WTF https://xn--r1a.website/nikitonsky_pub/144
Нет, я конечно встречал такую дичь, но не в массовых количествах. echo, та жуткая, но популярная библиотека (забыл название) для авторизации, пара очень непопулярных пакетов, вот в общем-то и всё.
Дочитал Практическую криптографию Шнайера.

Вкусно и грустно. Насколько я правильно помню, ни одна проблема из упомянутых в книге 2004-го года так и не решена
Есть как минимум три вида технологий.

Одни живут в три классических стадии:
1. Зарождение и узкий круг энтузиастов;
2. Рост и широкое использование;
3. Моральное устаревание, легаси;

К ним относятся большая часть мейнстрима. Вот эти вот ваши Java, Kotlin, Go, Docker, Vagrant, сервлеты, монги, постгресы, VSCode, IDEA и тд.

Есть мертворождённые. Они появляются, чтобы умереть. О них мы обычно узнаём из радостных тредов на реддите и HN. Тут даже перечислять нет смысла, тысячи их.

А есть эндемики. Они существуют, чтобы выживать. Их доля никогда не превысит 1%, но они пережили и переживут большую часть мейнстримных продуктов.

Emacs видел, как по реке проплыли трупы примерно десятка популярных IDE и похоронит ещё столько же. Сообщество gopher и geminispace ещё несколько человеческих поколений будет спорить о том, какой же браузер наиболее труъ и unbloated. Fido узлы переписывают на rust, а завтра будут переписывать на какой-нибудь v.

Это странные порождения эволюции софта и гиковских тараканов похожи лишайники или глубоководных креветок. Они существуют на крохах чистого энтузиазма, незаметные и очень хрупкие на вид. Но это те самые капли первичного бульона, которые породили всё IT. Время от времени один из уродцев получает удачную мутацию, и мир сотрясает что-то типа биткойна.

Если завтра лопнувший пузырь доткомов 2.0 похоронит под собой сегодняшнюю экосистему, то угадайте кто выберется из-под обломков?
👍1
Forwarded from Music for programming
(Photo Space X 2015 C0)

Dong Fang Hong was a song written in 1942 by a farmer rom Shaanxi. It was made popular during the sixties during the cultural revolution and this was the recording played by China's first satellite

In 1970 it was recorded by Kurt Ringel DF7FU. The original recording was amplified 10.5 dB in Audacity to produce this sound file.

The recording consists of the tune of "The East is Red" (which is based on an old Chinese folk tune) and technical telemetry sounds, and should therefore be in public domain.

https://commons.wikimedia.org/wiki/File:Dongfanghong-1.ogg

Kurt Ringel DF7FU "Dongfanghong" ineligible for copyright
Martin Rach "belong to moon" CC BY-NC-ND 3.0
Bad Bats "Heterotropic (Where We Used To Belong)" CC BY-NC-ND 2.0 FR
William "Basinski Vivian and Ondine" CC BY-NC-SA 3.0 US
Praveen "Live from NYC" CC BY-NC-ND 3.0 US
Dissolved / Nonima "Ionic Lure" CC BY-NC-ND 3.0
Adeline Yeo (HP) "School Memory" CC BY-SA 4.0
go 1.17 уже здесь :3

- каст слайсов к указателям на массивы
- unsafe.Add и unsafe.Slice
- флаги -go и -compat
для обеспечения обратной совместимости инструментария
- модуль можно пометить как deprecated
- flag паникует на немправильном синтаксисе
- флаг go test -shuffle (привет @oleg_log)
https://golang.org/doc/go1.17
☕️ Мерлин заваривает τσάι 🐌
go 1.17 уже здесь :3 - каст слайсов к указателям на массивы - unsafe.Add и unsafe.Slice - флаги -go и -compat для обеспечения обратной совместимости инструментария - модуль можно пометить как deprecated - flag паникует на немправильном синтаксисе - флаг go…
Кстати @dereference_pointer_there прав насчёт нарушенной обратной совместимости.

В reflect есть reflect.Type.ConvertibleTo, который возвращает true если тип можно сконвертировать в какой-то другой тип.

Если кто-то до 1.17 использовал этот метод для проверки на возможность конвертации без паники, то его код (на подобие https://play.golang.org/p/CbiIPVXGUGY) начнёт паниковать в некоторых случаях. Я бы без зазрения совести использовал бы подобную проверку, например.

С другой стороны, документация к < 1.17 не гарантирует отсутствие паники при reflect.Type.ConvertibleTo=true, в этом смысле ситуация похожа на порядок итерации по map до какой-то старой версии. В документации к map не было ничего про порядок, но пользователи смотрели на фактическое поведение и полагались на него.

Короче, этот самый случай недостаточно чёткой документации, из-за который пользователи могут легко прострелить себе башку.