Знаешь, в чём разница между тобой и ChatGPT?
ChatGPT обучается при помощи интернета.
ChatGPT обучается при помощи интернета.
😁1
Блог*
Причины переехать в Армению: 1. Можно читать twitter без VPN
Причины переехать в Армению:
1. Можно смотреть YouTube без замедления.
1. Можно смотреть YouTube без замедления.
🤡22👌3👍1🤮1💩1😭1
Блог*
#prog #rust #article Лодочник пишет о Pin. Именно, в первой статье — Pin — автор объясняет, для чего нужен Pin и почему решения, предлагаемые на замену, не подходят и были в конечном счёте отброшены при дизайне async/await. В конце автор расписывает проблемы…
#prog #rust #article
What is a place expression?
Раз уж Лодочник оперирует термином place, имеет смысл прочитать текст от Ральфа о том, что это из себя представляет. Заодно он отвечает на вопрос, почему
является UB, а
— не является.
If you only remember one thing from this blog post, then remember that * dereferences a pointer but does not load from memory; instead, all it does is turn the pointer into a place—it is the subsequent implicit place-to-value conversion that performs the actual load.
What is a place expression?
Раз уж Лодочник оперирует термином place, имеет смысл прочитать текст от Ральфа о том, что это из себя представляет. Заодно он отвечает на вопрос, почему
let _x = *std::ptr::null::<i32>();
является UB, а
let _ = *std::ptr::null::<i32>();
— не является.
If you only remember one thing from this blog post, then remember that * dereferences a pointer but does not load from memory; instead, all it does is turn the pointer into a place—it is the subsequent implicit place-to-value conversion that performs the actual load.
www.ralfj.de
What is a place expression?
One of the more subtle aspects of the Rust language is the fact that there are actually two kinds of expressions: value expressions and place expressions. Most of the time, programmers do n...
👍3
Самое тяжёлое животное в мире — это Felis catus.
Потому что невозможно встать, когда кошка лежит у тебя на коленях.
Потому что невозможно встать, когда кошка лежит у тебя на коленях.
🥰14💯1
Дано:
У kubernetes aka k8s есть REST API.
API при успешном выполнении запроса возвращает JSON.
JSON-ы могут быть большими, хочется запрашивать только нужные поля, чтобы меньше гонять трафика по сети.
k8s написан на Go, в котором есть рефлексия, что позволяет получать доступ к полям структур по рантайм-именам.
Вопрос: почему, не смотря на всё вышеперечисленное, в k8s до сих пор можно выборочно запрашивать только очень ограниченный набор полей у каждого вида ресурса?
#бомбёжкипост
У kubernetes aka k8s есть REST API.
API при успешном выполнении запроса возвращает JSON.
JSON-ы могут быть большими, хочется запрашивать только нужные поля, чтобы меньше гонять трафика по сети.
k8s написан на Go, в котором есть рефлексия, что позволяет получать доступ к полям структур по рантайм-именам.
Вопрос: почему, не смотря на всё вышеперечисленное, в k8s до сих пор можно выборочно запрашивать только очень ограниченный набор полей у каждого вида ресурса?
#бомбёжкипост
Kubernetes
Field Selectors
Field selectors let you select Kubernetes objects based on the value of one or more resource fields. Here are some examples of field selector queries:
metadata.name=my-service metadata.namespace!=default status.phase=Pending This kubectl command selects all…
metadata.name=my-service metadata.namespace!=default status.phase=Pending This kubectl command selects all…
#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-путями в качестве ключей, строго говоря, довольно расточительно, на практике из-за сжатия для формата на диске это не было проблемой.
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-путями в качестве ключей, строго говоря, довольно расточительно, на практике из-за сжатия для формата на диске это не было проблемой.
Dolthub
Why I Threw Away Perfectly Good Code
Throwing out code doesn't mean that it wasn't worth writing.
Типа про 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.
В Dolt используется вероятностная структура данных под названием prolly trees. Они похожи по строение и по характеристикам производительности на B-trees, но, в отличие от них, prolly trees:
1. Имеют строение, не зависящее от порядка вставки ключей.
2. Для них можно эффективно подсчитать разницу, и сложность этой операции будет пропорциональна количеству отличающихся значений.
3. Автоматически переиспользуют хранилище: если у двух prolly trees есть общие части в структуре, то общие части будут использовать одну и ту же память.
Статья Prolly Trees рассказывает об их устройстве и о некоторых нюансах реализации, используемой в Dolt.
🤔5
Forwarded from Алиса копается
#dev
https://purplesyringa.moe/blog/i-sped-up-serde-json-strings-by-20-percent/
Последний месяц я занималась оптимизацией serde_json. Подумала, что почитать про мой опыт может быть интересно: одно дело код, другое — мыслительные процессы, backstory и прикольные трюки и подвохи, которые просто так кодом не опишешь. Я часто нахожу интересное на lemire.me; решила попробовать написать что-то в том же стиле.
https://purplesyringa.moe/blog/i-sped-up-serde-json-strings-by-20-percent/
Последний месяц я занималась оптимизацией serde_json. Подумала, что почитать про мой опыт может быть интересно: одно дело код, другое — мыслительные процессы, backstory и прикольные трюки и подвохи, которые просто так кодом не опишешь. Я часто нахожу интересное на lemire.me; решила попробовать написать что-то в том же стиле.
purplesyringa's blog
I sped up serde_json strings by 20%
I have recently done some performance work and realized that reading about my experience could be entertaining. Teaching to think is just as important as teaching to code, but this is seldom done; I think something I’ve done last month is a great opportunity…
🔥11💩3