1.85K subscribers
3.27K photos
130 videos
15 files
3.54K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
#prog #article

Why I Threw Away Perfectly Good Code

One of my recent responsibilities was to improve how Dolt stores JSON documents internally, in order to speed up complicated queries. <...>

And then we scrapped the whole thing. The PR never got merged. We replaced it instead with a different design that shared a lot of the same high-level ideas, but had almost no code reuse. We spent a lot of engineer-hours on the original design, just to throw it all out. Where did we go wrong?

Except... I don't think we did go wrong. I believe that designing and implementing the original prototype was the right call.

I believe that scrapping it was also the right call.


<...>

Scrapping the prototype code and building the final implementation from scratch freed us from any constraints that the old code imposed and kept us from being locked into undesirable trade-offs.

Кстати, как оказалось, несмотря на то, что представление JSON в виде таблицы с JSON-путями в качестве ключей, строго говоря, довольно расточительно, на практике из-за сжатия для формата на диске это не было проблемой.
Типа про IT
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…
#prog #article

В Dolt используется вероятностная структура данных под названием prolly trees. Они похожи по строение и по характеристикам производительности на B-trees, но, в отличие от них, prolly trees:

1. Имеют строение, не зависящее от порядка вставки ключей.
2. Для них можно эффективно подсчитать разницу, и сложность этой операции будет пропорциональна количеству отличающихся значений.
3. Автоматически переиспользуют хранилище: если у двух prolly trees есть общие части в структуре, то общие части будут использовать одну и ту же память.

Статья Prolly Trees рассказывает об их устройстве и о некоторых нюансах реализации, используемой в Dolt.
🤔5
#dev

https://purplesyringa.moe/blog/i-sped-up-serde-json-strings-by-20-percent/

Последний месяц я занималась оптимизацией serde_json. Подумала, что почитать про мой опыт может быть интересно: одно дело код, другое — мыслительные процессы, backstory и прикольные трюки и подвохи, которые просто так кодом не опишешь. Я часто нахожу интересное на lemire.me; решила попробовать написать что-то в том же стиле.
🔥11💩3
🌚13👍4
#prog #rust #article

Doctests - How were they improved?

TL;DR: rustdoc компилировал каждый док-тест в отдельный процесс, но начиная с edition 2024 объединяет док-тесты в один файл для тестов, для которых это возможно
👍6
Forwarded from Kedr to Earth | Земля, я Кедр ( Yuri Ammosov)
Прислали читатели вот такой скриншот. Что-то эта новость мне смутно припомнила. Призадумался я, и вспомнил.

На шестой день Бородавкин хотел было продолжать бомбардировку, но уже заметил измену. Аманатов ночью выпустили и многих настоящих солдат уволили вчистую и заменили оловянными солдатиками.

– А это что? – спросил он, указывая на оловянных солдатиков.

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

Бородавкин ... вдруг остановился как пораженный перед оловянными солдатиками.

Постепенно, в глазах у всех солдатики начали наливаться кровью. Глаза их, доселе неподвижные, вдруг стали вращаться и выражать гнев; усы, нарисованные вкривь и вкось, встали на свои места и начали шевелиться; губы, представлявшие тонкую розовую черту, оттопырились и изъявляли намерение нечто произнести. Появились ноздри, о которых прежде и в помине не было, и начали раздуваться.

– Избы… избы… ломать! – невнятно, но как-то мрачно произнесли оловянные солдатики.
🤡6❤‍🔥3🤔3😁1
Хронология событий

- YouTube стали замедлять

- Пользователи начали делать мозги провайдерам и ливать от них + писать жалобы на провайдеров

- РКН никак не помогал провайдерам решать их проблемы

- Провайдеры самостоятельно стали "ускорять" YouTube за свой счёт

В отсутствие официального заявления Роскомнадзора о замедлении YouTube в России операторы связи начали устанавливать на своих сетях решения, которые делают сервис доступным для абонентов. Операторы пытаются привлечь новых абонентов, и так как сервис в РФ не внесен в реестр запрещенных и официально не заблокирован, их действия совершенно законны, отмечают юристы.

https://www.kommersant.ru/doc/6919868

- РКН пришёл сразу к провайдерам и запретил это делать

Роскомнадзор потребовал от операторов связи перестать искажать и подменять интернет-трафик, чтобы не препятствовать работе технических средств противодействия угрозам. 
. . .
До 2 сентября операторы должны предоставить в ГРЧЦ отчёты о принятых мерах.

https://www.kommersant.ru/doc/6921420

ЗЫ ГРЧЦ подчиняется РКН
🤡23😁7
Хочу сделать себе футболку с надписью

I❤️
ИY
🤯41
#prog #article

Mimalloc Cigarette: Losing one week of my life catching a memory leak

Или про то, как mimalloc иногда может держать память сильно дольше, чем надо.

Every now and then during malloc() mimalloc performs some internal bookkeeping, so when a thread goes to sleep (say, because it delegates handling HTTP requests into a separate thread pool...), this bookkeeping doesn't happen (for that particular thread).

The most nasty edge case that can happen here, and the one that we've stumbled upon, is when your thread allocates a lot of data, then launches other threads to work on that data, and then goes to sleep. As other threads work on memory and override stuff, Rust destructors are launched properly, but the underlying memory blocks simply get marked as "to be released".


(thanks @neroslaw)
👍5
😁35💯10👍1
🔥31🥴11😁10🍌3😢2👍1💯1
Ну и что, многое вы успели сделать из планов на лето?
🖕18👍9😭4
Блог* pinned «Ну и что, многое вы успели сделать из планов на лето?»
У меня недожмяк
🍌11💩5😢4👏1
В СМЫСЛЕ УЖЕ СЕНТЯБРЬ
😭13🔥6💩5😱1🤡1
Forwarded from Сова пишет…
Я
👍27🥰8🔥3🤮3🤔1🌚1
Мало кто знает, но на самом деле IDE означает "Integrated systemD Environment"
😁24🤡6🫡2