Book

Новая вакансия

У нас тут образовалась вакансия на парттайм удалёнку. Пока непонятно, как её будем закрывать, каким числом людей и с какой загрузкой. З-п в пределах статистики DOU. Нода/serverless.com/AWS Lambda. Предметка - платёжный API (карты, не крипта). Таймзона любая, мы распределены между GMT-5 и +3. "Наш собственный" проект, не аутсорс. Режим спокойный, без авралов и овертайма (для этого есть отдельные специально обученные люди, включая меня), почти без дедлайнов.

1. Нужон техписатель. В-основном лепить доку на Postman/OpenAPI (хочется хороший англ в плане менее топорного стиля, чем сейчас, но хез насколько это реалистично). Но также писать объяснения разрабам клиентов (рус) человеческим языком по странным односложным ответам, изрыгаемым нашими разрабами (рус).

2. Нужон тестер. Тестировать оную доку и OpenAPI. Как бонус - можно лепить тесты и моки.

3. Нужон нано-админ. Задача мониторить канал в телеграме, заполнять багтрекер в гитлабе, давать всем пиздюлей (всем 3-4, включая 2 нетехников, 1-2 разрабов и меня - поэтому "нано"), готовить еженедельный отчёт "статус и текущие задачи на ближайшее время". Как бонус - общаться технически с разрабами клиентов, но опять же хез насколько это реально учитывая необходимость вникать в предметку и отличать обоссанный HMAC от тру-решений.

Всё это под моим, в стиле некодящего CTO, руководством.
Book

7 кодепоинтов кто больше?

U+1F9D1 U+1F3FB U+200D U+1F91D U+200D U+1F9D1 U+1F3FB

Причём 5 за пределами первой плоскости (привет UCS-2).

people holding hands: light skin tone

Интересно сколько это байт в UTF-8.

Upd: 26

> Buffer.from("\u{1F9D1}\u{1F3FB}\u{200D}\u{1F91D}\u{200D}\u{1F9D1}\u{1F3FB}", 'utf-8').length
26

Upd2: а угадайте какова длина этой строки в жс, в смысле a = "\u..."; console.log(a.length)
Book

В винде починили блютуз

Хез что было поломано. А может это не винда, а Андроид гадил как-то что винда не могла подключиться. Но теперь вот наушники включаешь и всё, они автоподключаются к винде.

Кстати там гуй странный, тру-гуй хез как по-другому открыть, я открывал через Windows-K
Book

Арче-виндострадания 3

Я тут сбилдил 4.4.237 с конфигом от Дебиана. В-общем дебиановский конфиг дебильный по сравнению с арчевским. Но не помогло.

Ну и я решил что дело не в конфиге, и полез обмазывать место креша вызовами pr_err. Оказалось не так трудно, как я думал.

В-общем падает в vmbus_negotiate_version. Ну не то чтобы совсем там, но оттуда вызывается vmbus_post_msg и он уже падает.

Оказалось, что этот vmbus_negotiate_version весьма нестабильный кусок кода - т.е. там постоянно что-то правят, и, я подозреваю, ломают. Его даже обмазывали трассировкой в редхете: https://lkml.org/lkml/2017/10/29/135

Ну и так как там всё правят, непонятно в каком месте/версии поломали, и как это чинить.

Upd: 4.19.146 работает с Арчевским конфигом.

Upd2: более современные версии, чем 4.19, падают в hyperv_flush_tlb_others. А этот код:

1. не кросс-платформенный, там отдельный код для 86 и 64
2. меняли сильно в 5.0
3. тоже обмазывали трассировкой

В-общем есть очень толстый коммит https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.6.y&id=5c83511bdb9832c86be20fb86b783356e2f58062

Upd3: в Debian Backports есть 5.7 ядро, но оно сильно патченное. Работает! На первый взгляд, "толстый коммит" там не откатывали, так что дело не в нём
Book

Арче-виндострадания 2

С прошлой серии наблюдаются некоторые регрессии после обновления десятки/Hyper-V. Если 2 варианта — то это старый и новый. Если один — то только старый, а новый я не тестил

- 3.16.46 работает
- 3.16.85 работает работает
- 3.18.60 работает работает
- 3.18.140 - работает
- 4.1.42 висит
- 4.4.112 креш
- 4.4.231 креш висит
- 4.4.237 - креш
- 4.13.6 работает работает
- 4.19.146 - работает
- 4.19.149 - работает
- 5.4.39 работает креш
- 5.4.40 креш
- 5.4.42 креш
- 5.4.44 креш
- 5.4.46 креш
- 5.4.50 креш.
- 5.4.54 креш
- 5.4.61 - креш
- 5.4.67 - креш hyperv_flush_tlb_others
- 5.6.11 работает креш
- 5.6.12 креш
- 5.6.13 креш
- 5.6.15 креш
- 5.7.2 креш
- 5.7.7 креш
- 5.7.12 креш
- 5.8.5 - креш
- 5.8.10 - креш hyperv_flush_tlb_others

Решил сначала убедиться что дело не в компиляторе. Для чего пересобрал 3.18.60 который до пересборки работал. Тем более что это всё равно нужно для того чтобы разобраться с wireguard-dkms. Пересобранная версия также работоспособна, теперь можно cобирать остальное.

Upd1:

Обновил 3.18.х до .140. Работает.
Обновил 4.4.х до 237 - креш.

Решил теперь пересадить конфиг 4.19 из дебиана на 4.4.237. Посмотрим.

Upd2: конфиг с дебаг-инфо у них, так что отъел все 6 гиг диска, которые я ему дал. Не то чтобы жалко места, но с утра неожиданно обнаружил что место закончилось, при билде с прошлой конфигурацией было ~4 гига свободно. Поменял ща опцию, говорят, что место сэкономится. На "рабочем" ядре в консоли образовался стек-трейс, но система не упала. Хез.
Book

Chosen prefix для SHA-1 за $45k

https://sha-mbles.github.io/

We have significantly improved the complexity of SHA-1 attacks, with a speedup factor around 10. More precisely, we have reduced the cost of a collision attack from 2^64.7 to 2^61.2, and the cost of a chosen-prefix collision attack from 2^67.1 to 2^63.4 (on a GTX 970 GPU).

As a side result, this shows that it now costs less than 100k USD to break cryptography with a security level of 64 bits (i.e. to compute 2^64 operations of symmetric cryptography).
Book

Как троллить в спорах про нелетавший Аполлон

Там в 80% случаях фигурирует невозможность увидеть Аполлон в телескоп, и приводится формула дифракционного лимита с требуемым диаметром зеркала ~5км, но без объяснения что это значит.

Так вот, согласно этой формуле нельзя увидеть Сириус. У него угловой диаметр 7 mas, а у Аполлона 5. Арктур чуть больше, 21. Бетельгейзе 50 потому что супергигант и рядом. Рекорд у HD 29712 57 milliarcseconds.
Book

Про WiFi

Отличный пост про то, какое Wi-Fi говно. Там много букв, но интересно будет только тем, кто уже знает, в какой степени вайфай говно и почему. Если вам почему-то кажется, что он не говно, вы просто не знакомы с проблематикой и можно не читать, поскольку это НЕ введение в проблематику.

https://arstechnica.com/information-technology/2017/03/802-eleventy-what-a-deep-dive-into-why-wi-fi-kind-of-sucks/
Book

VPN на RouterOS

Тут я хочу повторить свой нигерийский опыт с IPSec и огородиться от товарища майора и дырявых устройств.

Ща тут IKEv2 шагает по стране, но имхо он как-то даже хуже чем v1, хез.

С другой стороны, OpenVPN говно и нинужен, а Wireguard как раз похож на IPSec без говна, но пока не поддерживается "всеми".

Так вот. Внезапно, все туториалы по настройке сертификатов для IPSec не содержат упоминания CSR. При том, что (я это вчера проверил) RouterOS прекрасно умеет подписывать CSR. В генерацию тоже может, но я не проверял.

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

Ещё один аргумент в пользу вацапа

https://www.whatsapp.com/security/advisories/2020/

(Имею ввиду vs телега).

У телеги конечно UX хороший на всех двух платформах которые я юзаю - винде и Андроиде. Best in class. Ну и протокол открытый вроде как. Но крипта во-первых плохая, против сигналовской у вацапа, во-вторых опциональная - но секурные чаты например не реплицируются между устройствами как в вацапе, групповых секурных чатов нету и те де.