oleg_log
1.77K subscribers
1.86K photos
130 videos
9 files
2.78K links
Shelter for antisocial programmers "Oleg"

halp: @olegkovalov
web: https://olegk.dev
fov: @oleg_fov
chat: @oleg_log_blabla
podcast: @generictalks
Download Telegram
oleg_log
Глянул релизнотс тайпскрипт 3.4 и что-то я не понял этой тавтологии: const x = 10; let x = 10 as const; let x = <const>10; Конечно же фича "важная", ведь теперь можно еще больше кода саппортить в компиляторе, тратить время на настройку tslint, ну и флеймить…
Это просто прекрасно

// Error! A 'const' assertion can only be applied to a
// to a string, number, boolean, array, or object literal.
let a = (Math.random() < 0.5 ? 0 : 1) as const;

// Works!
let b = Math.random() < 0.5 ?
0 as const :
1 as const;
Хотел с начала 2019 паблишить свои вещи, которые делал для себя, разных проектов и для заказчиков, но все проблемы со временем и ленью.

В общем вот, таки запушил враперы на гошные атомики. Есть еще что докомитить, но без тестов стыдно. Надеюсь доделаю. кек.

https://github.com/cristalhq/atomix #hq
Хах. столкнулся с одной SRE командой, у которых нет никакой документации. То есть любую проблему они решают с 0, либо из обрывков воспоминаний.

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

Борды тоже нет 😥
У нас тут шутники на 1е апреля замутили статью: From PHP to Java and back again: a retreat from microservices

https://allegro.tech/2019/04/from-php-to-java-and-back-again.html
А тем временем в Golang 1.13 завезли дженерики, пионеры уже столкнулись с первыми проблемами:

https://stackoverflow.com/questions/55451423/how-to-use-the-new-generics-feature-in-golang-1-13
Обожаю таких людей:
- приходишь в опенсурс проект
- жалуешься что не работает
- жалуешься, что за 2ч нет ответа
- жалуешься в соседних репо, что все плохо и лучше бы это не делали
- ...
- ПРОФИТ.

Пожалуй в айти нужно пусть только по справке с умеренным ЧСВ. Пожалуй раздутая личная важность страшнее, чем проблемы с названием переменных и инвалидацией кеша.
Красивое сравнение из анонса VPN от Cloudflare:

That’s exactly what I thought when I read about the launch of Gmail exactly 15 years ago today. At the time it was hard to believe an email service could exist with effectively no storage cap or fees. What I didn’t understand at the time was that Google had done such a good job figuring out how to store data cheaply and efficiently that what seemed impossible to the rest of the world seemed like a no-brainer to them. Of course, advertising is Google’s business model, it’s not Cloudflare’s, so it’s not a perfect analogy.

Люблю продукты Cloudflare, особенно радует это:
And, yes, desktop versions are coming soon…

https://blog.cloudflare.com/1111-warp-better-vpn/
Немного о бенчах.
Не пихайте сравнительные бенчи с другими либами в свою репу. Все.

А если серьёзно, сделать соседнюю репу и хранить в ней бенчи - не сложно. Это уменьшит основное репо, не испортит тесты, не отменит обычные бенчи. Все как и должно быть.

Да еще и лок файл на зависимости станет тонким как мой юмор.
Крутое #ненормальноепрограммирование тут чел делает игры, которые влезают на визитку.

http://frankforce.com/?p=5826
Такс, поднимаю свою любимую тему: не юзайте темную тему в светлое время. Совсем.

Все довольно просто:
- глаза не любят перепада цвета (выйдите в свет из подвала или наоборот)
- темная тема в светлой комнате это тоже самое
- так же как и светлая тема в темной, ночью
- это заставляет зрачок неестественно напрягаться(больше чем надо)(ты вроде в темноте, а тебе светят фонариков в глаз)
- хайп на темную темы без единого аругмента кроме "нуяжпрограмист"
- ...
- и выводы становятся очевидными

(частично перефразию) ответ одного глазного хирурга по этому вопросу:

Нужно ориентироваться на освещенность помещения: в темном темная тема, в светлом - светлая.
Диафрагма разъезжается, хрусталик деформируется и поэтому на темной теме труднее фокусироваться, но все это - только для ярко освещенного помещения. в полутемном - темная тема лучше.
(с)
Хм, вернулся к старой мысли, что в айти нужно менять работу раз в 1-1.5, ну макс 2, года. Иначе начинаешь умственно стареть.

Дело не только в технологиях, тип сидишь на одном и том же стеке и все круто, но так же и в процессах работы: тот же кодфлоу, тот же деплой, тот же магический тхт файлы у олда, в котором написаны решения ко всем проблемам.

Ну и бонус: при смене работы вы всегда перейдете на что-то, где платят не меньше(логично же).

В принципе это даже выгодно работодателю - новые люди увидят проект по другому, могут что-то исправить, либо же слехка удивиться кто все это накомитил.
oleg_log
Хм, вернулся к старой мысли, что в айти нужно менять работу раз в 1-1.5, ну макс 2, года. Иначе начинаешь умственно стареть. Дело не только в технологиях, тип сидишь на одном и том же стеке и все круто, но так же и в процессах работы: тот же кодфлоу, тот…
Вот еще о наболевшем. Я никогда не работал с графовыми бд, хотя очень интересно и есть где разгуляться.

Но вот так сложилось, что не сталкивался и в cv теперь не напишешь principal graph db architect. И свой велосипед на паблишил, к VC не подкатывал.

А так-то в фб надо было валить, когда звали. Таки дела.
Автор @defront подкинул страшный гист: оказывается IPv6 адрес :: можно записать почти в 1М вариантов. Чертов РЕКТ.

https://gist.github.com/colmmacc/aa0013c571ab9deeccbf67670ef1b778
Тут многие пошарили пост Филиппо из го кортим с имплементацией Poly1305 (https://xn--r1a.website/teamerlin/4991 https://xn--r1a.website/golangdigest/824) без ассемблера, на чистом го. Офкорс оно медленнее, на 30-60%.

Так-то все круто, обидно одно:
- в го все еще нет int128 (пропозал висит https://github.com/golang/go/issues/9455).
- возможность писать 2¹³⁰ - 5 юникод это круто, но эт не всегда удобно читать, 2**130 - 5 чууууток легче написать/скопировать/прочитать.
Таки дошли руки и go-perftuner ожил.

С помощью этой тулзы можно быстренько проверить, что го компилятор не смог соптимайзить. Сейчас доступны прверки на инлайн, проверки границ и ескейп в хип.
Фидбек приветствуется.

https://github.com/cristaloleg/go-perftuner
А вот и регекспа для версий в go.mod для VSCode. В апрельской версии намереваются починить весь хаос из-за переезда намодули 🤞

ПР с поддержкой go.mod синтаксиса: https://github.com/Microsoft/vscode-go/pull/2344/files#diff-983bf1e5fd6ffa57bba200d830c59747R34