Size: a a a

2021 March 25
oleg_log
Супер-статья про эмодзи https://tonsky.me/blog/emoji/

от @nikitonsky_pub
источник
2021 March 26
oleg_log
Правда, SQLite, как по мне, недооценен в мелких веб-проектах. Конечно же, есть свои минусы, что он лежит файликом рядом, но вот для всяких прогонов по данным - самое то.

https://antonz.org/sqlite-is-not-a-toy-database/
источник
oleg_log
Ну вот кстати много кто пользуется (много = почти 10 чел).

Изи поднять, изи юзать, сразу бекупы.

https://github.com/benbjohnson/litestream
источник
oleg_log
Learn about problems, not solutions
https://dwyer.co.za/problems-not-solutions.html
источник
oleg_log
источник
oleg_log
40,000 lines of flawed code almost made it into FreeBSD's kernel—we examine how.

#интригирасследования

https://arstechnica.com/gadgets/2021/03/buffer-overruns-license-violations-and-bad-code-freebsd-13s-close-call/

Sleep to mitigate race conditions
Validation functions which simply return true
Catastrophic cryptographic vulnerabilities
Pieces of the wg protocol left unimplemented
Kernel panics
Security bypasses
Printf statements deep in crypto code
"Spectacular" buffer overflows
Mazes of Linux→FreeBSD ifdefs
источник
oleg_log
Давайте я вам расскажу, как я расчленил убил где-то 8ч дебага на docker-compose и nginx.

Есть некий абстрактный docker-compose.yml в котором есть нгинх и контейнер с докой, ну просто как Суэтский канал.

...
 some-docs:
   image: some-image:main
   ports:
     - 8001:8000


Конфиг нгинх не на много больше:
  upstream somedocs {
   server some-docs:8001;
 }

 server {
   listen 80;
   server_name _;

   location /docs {
     proxy_pass http://somedocs;
   }
 }


Но вот с таким раскладом все нехорошо, стабильно летит [error] 23#23: *8 connect() failed (111: Connection refused) while connecting to upstream и ему подобные.

Откинув мои потраченные часы, избавившись от network-ов докера, от доп конфигов нгинх, хттпс, убрав Cloudflare, пропинговав контейнеры между собой оказывается....надо лучше читать доку Докера (кто-то читает её лол?)

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




Так вот. Нарвавшись на 150 вкладку с проблемой, я нахожу хорошие слова `"ports" is only needed to expose a port outside of Docker` (сурс https://stackoverflow.com/a/41574448/433041)

А теперь щелчок загоревшейся лампочки - нгинх-то стучит в контейнер внутри сети докера(компоуз) ! значит 8001 ему не нужен, ему только 8000 надо на хосте some-docs.

Самое забавное, что нгинх при старте проверяет доступность хостов в upstream и они всегда были доступны(иначе нгинх не вставал), но вот то, что порт ему не подходит, я не догонял, надо было бросить все вечером и проспаться. Делайте выводы.

Хотелось бы сказать спасибо @sysadmin_tools & @golangdigest но они тоже не заметили проблемы))) (почему я не тыкнул других умников, я хз, берегитесь)
источник
2021 March 27
oleg_log
Мне кажется эту штучку мы давно-давно в подкасте обсуждали. Или не...Кстати канал хороший, советую.
источник
oleg_log
источник
oleg_log
#интригирасследования в Швеции. Создали школьную платформу на костылях, родители сделали свое, костыльная платформа пакостит.

https://twitter.com/spongepaddy/status/1375206110412570638

Тут вроде голосом детали https://twitter.com/landgren/status/1375332457067732994
источник
oleg_log
Наконец-то я дождался real-shit от eBPF, а то все вот эти фильтры пакетиков это круто, но слишком однообразно. До сейчас.

BPF for storage: an exokernel-inspired approach

We explore using BPF to reduce this overhead, by injecting user-de ned functions deep in the kernel’s I/O
processing stack. When issuing a series of dependent I/O
requests, this approach can increase IOPS by over 2.5×
and cut latency by half, by bypassing kernel layers and
avoiding user-kernel boundary crossings

Слова из твитора:
Their example use case of performing application-level B-tree lookups (e.g. database indexes) within the kernel make a lot of sense.

https://arxiv.org/pdf/2102.12922.pdf
источник
2021 March 28
oleg_log
Issue 44 in leveldb: reappearing "ghost" key after 17 steps

Штука с 2011 и естественно пофикшена, но почему-то от таких вещей становится страшно.

Если проект(продукт) дорастает до того, что 17 (давайте скажем примитивных) действий убивают его, то кому можно верить? :(

(дада, leveldb это не примитивная штука, тут это работает как аргумент против и как аргумент за).

А найдено это (вроде) было фаззингом, поэтому низкий поклон автоматическим fuzz тестам БД.

https://groups.google.com/g/leveldb/c/gnQEgMhxZAs?pli=1

PS: там сам Sanjay в ответах, он же (ко)автор LevelDB.
источник
oleg_log
Что я узнал о Cloudflare Cache. Точнее о Development Mode.

What does Development Mode do?

This is useful if you need to see changes immediately. Once enabled, Development Mode lasts for three hours and then automatically turns off.

Круто не забывать. КРУТО не забывать.
источник
2021 March 29
oleg_log
Malicious Commits to PHPs Git Repository https://news-web.php.net/php.internals/113838
источник
oleg_log
Хороший сборник советов по Go network и как лишний раз потом это не дебажить. Таймауты всем известны, но иногда этого не хватает. Короч пролистайте.

https://martin.baillie.id/wrote/gotchas-in-the-go-network-packages-defaults/#timeouts
источник
oleg_log
Вы сталкивались с shadow mode? (или как там у вас звать, когда вы от имени другого коммитите)
Анонимный опрос
7%
Да, сейчас
19%
Да, было раньше
30%
Нет, не сталкивался(лась)
43%
Нет, не слышал(а) о таком
1%
Другое
Проголосовало: 605
источник
oleg_log
The previous Pi computation record of about 2577 billion decimal digits was published by Daisuke Takahashi on August 17th 2009. The main computation lasted 29 hours and used 640 nodes of a T2K Open Supercomputer (Appro Xtreme-X3 Server). Each node contains 4 Opteron Quad Core CPUs at 2.3 GHz, giving a peak processing power of 94.2 Tflops (trillion floating point operations per second).

My computation used a single Core i7 Quad Core CPU at 2.93 GHz giving a peak processing power of 46.9 Gflops. So the supercomputer is about 2000 times faster than my computer. However, my computation lasted 116 days, which is 96 times slower than the supercomputer for about the same number of digits. So my computation is roughly 20 times more efficient.

https://bellard.org/pi/pi2700e9/faq.html
источник
2021 March 30
oleg_log
Introducing 'innernet' (vpn like tailscale, open source, built on wireguard) https://blog.tonari.no/introducing-innernet
источник
oleg_log
Думал о замене NGINX на Envoy. 🤔

Стильно модно молодёжно, много хайпа вокруг, все используют, все лепят сайдкары, строят меш сети.

Я в очередной раз решил закатать рукава и прикрутить. Я не буду описывать сейчас все детали реализации. Я получил ожидаемый результат. Оно работает! 🤨

Я опишу пару минусов, которые отметил для себя.

👉 Если у вас возникла проблема - вы один на один с максимально хреновой документацией.

👉 Конфиг представляет из себя yaml с милилоном вложенностей. Делалось это для роботов 🤖, не для людей 👨‍💻.

👉 Весь этот резилиенс сахарок - перекладывание комплексити из одной плоскости в другую. Как по мне, лучше написать ретрай для своего запроса самому, или взять хорошую библиотеку для своего языка. Так, когда что-то будет работать не так как предполагаешь, будет проще понять, легче отдебажить.

Если вы не FAANG с сотнями сервисов, то забейте. 💁‍♀️

Это далеко не всё, но наверное основное. Ну и это только мое мнение. ☺️

#envoy #envoyproxy #nginx
источник
2021 March 31
oleg_log
источник