Если вы открыли эту дверь статью, то наверняка, вы уже имели дело с ClickHouse и можно упустить интересные подробности об его удобстве и скорости, а перейти сразу к делу – собственно, к тому, как создавать словари и работать с ними в ClickHouse.
Пользователь
Кончай бухать, айда читать: нейробиолог даёт советы по борьбе с деградацией мозга
![](https://habrastorage.org/getpro/habr/post_images/9f4/3b8/2db/9f43b82dbda26ce4362653ce3313e144.jpg)
Ричард Рестак у себя дома в Вашингтоне О.К.
Зашли в комнату, и не можете вспомнить, зачем пришли? Встретились с коллегой на работе, и забыли, как его зовут? У большинства людей бывают подобные эпизоды. Но в зрелом возрасте они могут нагонять беспокойство. Выглядим ли мы после таких эпизодов менее профессионально? Не признак ли это надвигающейся деменции? Хорошие новости: память не просто восстанавливается при помощи упражнений, в некоторых случаях можно даже избежать болезни Альцгеймера.
Нейробиолог, доктор Ричард Рестак, бывший президент Американской нейропсихиатрической ассоциации, выступал с лекциями о работе мозга и поведении человека всюду, от Пентагона до НАСА, и написал более 20 книг о мозге. Последняя его книжка, The Complete Guide to Memory: The Science of Strengthening Your Mind [Полное руководство по памяти: Наука укрепления вашего разума], посвящается таящемуся внутри нас страху того, что каждый раз, когда вы забываете, где оставили очки для чтения, является признаком надвигающегося краха. «В сегодняшней Америке, — пишет автор, — любой человек в возрасте от 50 лет живёт в страхе перед ужасным А». Небольшие провалы в памяти – главное, на что жалуются люди старше 55 лет своим врачам, хотя по большей части эти случаи оказываются не заслуживающими тревог.
Механика Async Await
→ Код к этому посту выложен на GitHub
Вы за это заплатите! Цена Чистой Архитектуры. Часть 1
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/aa3/676/a24/aa3676a246c906248003064f8d8bde08.png)
Всем привет, меня зовут Артемий, я работаю старшим Android-разработчиком в команде пользовательского профиля в RuStore. Мой опыт в индустрии уже 8 лет. За это время я успел поработать в разных проектах и компаниях. У меня был опыт работы в проекте, в котором было свыше 300 модулей и больше 60 Android-разработчиков. Такие условия заставляют задуматься о масштабируемости на принципиально ином уровне.
Сегодня я расскажу о способах обеспечения масштабируемости проекта и как этому может навредить неправильное восприятие Чистой Архитектуры (далее — ЧА). Предупреждаю сразу, это лонгрид в двух частях!
Мапы в Go: уровень Pro
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/6c0/619/f23/6c0619f2351734abf64f00523e02a0f3.png)
Подробный туториал по процессам записи и чтения данных в мапах Go. Объясняем проблемы переполнения, эвакуации элементов; важность передачи количества элементов при создании мапы. Рассказываем, почему в Go нельзя обращаться к ключу или значению по адресу.
Запросы в PostgreSQL: 2. Статистика
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/024/93c/4a5/02493c4a5a50989de90ea47e8a304ea7.png)
В прошлый раз я рассказал об этапах выполнения запросов. Прежде чем переходить к тому, как работают различные узлы плана (способы доступа к данным и методы соединения), надо разобраться с той основой, на которую опирается стоимостной оптимизатор — со статистикой.
Как обычно, я буду приводить примеры из демобазы. В этой статье будет довольно много планов выполнения, но про их составные части я буду рассказывать только в следующих статьях. Здесь же нас в первую очередь будут интересовать оценки количества строк (кардинальности), то есть числа, указанные в верхней строке плана в позиции rows.
Самый быстрый поиск пути на Go без аллокаций и СМС
Алгоритмы важны. Но реализовать их можно очень по-разному.
При одном и том же алгоритме, оптимизированная библиотека будет в тысячу раз быстрее наивной.
Любите оптимизации, специализированные структуры данных и трюки с битами? Тогда скорее под кат!
Go's Garbage Collection: как работает и почему это важно знать
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/46b/33f/91d/46b33f91d90b0cd961adfe8df3152b24.png)
В статье посмотрим на Go Garbage Collector — механизм автоматического освобождения невостребованной памяти приложения в Go. Разберём его устройство и принципы работы.
PostgreSQL под капотом. Часть 0. Старт программы
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/b37/97a/201/b3797a201797a908ffc30e5e41ff357c.png)
Postgres - один из крупнейших open source проектов. Он создавался многие года. Кодовая база накопилась огромная. Мне, как программисту, всегда было интересно как он работает под капотом. Но не про SQL пойдет речь, а про язык на котором он написан. Про C.
С общей архитектурой можно ознакомиться здесь
Для начала поймем, что происходит до входа в главный цикл сервера.
Java 20: огромные разреженные сегменты памяти
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/9ed/7ff/5f1/9ed7ff5f1ba71ee0d913e3a328e82ed1.png)
Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы? Прочтите эту статью и узнайте, как использовать сопоставленные (mapped) сегменты памяти, которые могут быть или не быть «разреженными», и как выделить 64 терабайта разреженных данных на ноутбуке.
Как устроены интернет-платежи в Dodо
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/502/dd1/a14/502dd1a143b842f3b683c20741035d66.png)
Одно из направлений разработки в Dodo — интернет-платежи. Для компании это скорее утилити-функция, чем основной бизнес, но всё же нам приходится делать кучу всего, чтобы дать клиентам лучший UX и у нас накопился опыт, которым хочется поделиться.
Меня зовут Дмитрий Кочнев, я разработчик в команде интернет-платежей и в этой статье расскажу о том, какой путь проделала компания в этом направлении, какое положение дел сейчас и какие планы. Статья написана в формате мини-историй, каждая из которых может стать отдельной статьёй с большим количеством подробностей, если к ней возникнет интерес с вашей стороны.
Убьет ли HTTP/2 лонг поллинг и вебсокеты?
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/e7f/e0b/c2b/e7fe0bc2bb93db830c1be917dcb9301b.png)
В новом тексте по итогам Ruby Russia 2022 Full-Stack разработчик и консультант Learning Tapestry Александр Уланов рассуждает, есть ли у Server-sent events потенциал обойти websocket-ы и long polling.
Модификация прошивки роутера D-Link
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/a8b/7de/bf0/a8b7debf09d302c7992bf330094927e8.png)
Всех с наступившим Рождеством! В этой заметке я расскажу о том как я модифицировал прошивку роутера D-Link DWR-M921, вдруг кому эта информация пригодится.
Распространённые заблуждения о временах жизни в Rust
(прим. переводчика: времена жизни (lifetimes) — это одна из самых запутанных вещей в Rust, которая часто вызывает затруднение у новичков, даже несмотря на официальную документацию. Разъяснения по отдельным аспектам времён жизни есть, но они все разбросаны по разным источникам и ответам на Stack Overflow. Автор статьи собрал в одном месте и разъяснил множество связанных с временами жизни вопросов, что и делает эту статью столь ценной (я и сам почерпнул новое для себя отсюда). Я решил перевести её, чтобы дать возможность прочитать её тем, кто не владеет английским в достаточной степени, чтобы свободно читать оригинал, а также для того, чтобы повысить известность этой статьи среди русскоязычного Rust-сообщества)
19 мая 2020 г. · 37 минут · #rust · # lifetimes
Как написать FizzBuzz на собеседовании
Здравствуй, Хабр.
Недавно я проходил собеседование в одну солидную айтишную контору. Когда мы разобрались с формальностями, начался технический этап, на котором мне поручили написать fizzbuzz. По не вполне понятным мне причинам обсуждение решения этой задачи растянулось на довольно большой срок, после которого время на интервью уже вышло. Мы расстались на хорошей ноте, и мне пообещали перезвонить. Пока я жду оффер, я решил поделиться своим опытом прохождения интервью с широкой публикой, равно как и своим решением, ибо они показались мне заслуживающим внимания.
Как запустить Doom на УАЗ Буханке 2022
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/00d/d6e/c52/00dd6ec527241ec7cca741558679f8eb.jpg)
Прошедший 2022 год сильно повлиял на отечественных автопроизводителей. Появились антикризисные комплектации (а остальные исчезли). Произошли откаты на старые экологические нормы, вплоть до евро-2. Кто-то прогнозировал возврат к карбюраторным двигателям, чего, к счастью, не случилось. Люди в шапочках из фольги особенно рады, что из отечественных машин исчезла система ЭРА-Глонасс. Глупцы, она стала ненужной, потому что всех уже чипировали через вакцину.
Мы же продолжали пилить RusEFI - свой ЭБУ с преферансом, барышнями, открытым программным кодом и открытыми аппаратными реализациями.
Proof's by induction using Rust's type-system
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/f39/554/745/f39554745d87cfef01045405a9330cdd.jpg)
Rust's type system is quite powerful as it allows to encode complex relationships between user-defined types using recursive rules that are automatically applied by the compiler. Idea behind this post is to use some of those rules to encode properties of our domain. Here we take a look at Peano axioms defined for natural numbers and try to derive some of them using traits, trait bounds and recursive impl
blocks. We want to make the compiler work for us by verifying facts about our domain, so that we could invoke the compiler to check whether a particular statement holds or not. Our end goal is to encode natural numbers as types and their relationships as traits such that only valid relationships would compile. (e.g. in case we define types for 1 and 3 and relationship of less than, 1 < 3 should compile but 3 < 1 shouldn't, that all would be encoded using Rust's language syntax of course)
Let's define some natural numbers on the type level first.
Как создать свою СУБД с нуля и не сойти с ума. Практическое пособие начинающему некроманту. Часть первая
![](https://habrastorage.org/r/w780/webt/re/p4/b9/rep4b9qujya0weuxgocj_bolang.jpeg)
Наступил Апокалипсис.
Нет, не стоит бежать запасаться банками с консервами и крышками отечественной бай-колы! Апокалипсис произошёл только в нашей фантазии и с определённой целью — чтобы проверить, а может ли человек, обладающий только книгами по теме и стандартной библиотекой языка, воссоздать инструмент, который будет служить ему верой и правдой?
Так родился учебный проект SicQL, реляционная СУБД, чей символ — сова — это олицетворение силы знаний и мудрости. Олицетворение тех знаний и той мудрости, которые мы получим, создав с нуля то, чем мы пользуемся каждый день, может, не осознавая всей сложности таких инструментов.
Приглашаю присоединиться к увлекательному путешествию!
Как победить настрой удаленщика — вредные советы по организации рабочего места
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/dec/b30/95c/decb3095cdfa9db9f13473852f52620f.png)
Что-то случилось, а вы все еще продуктивно работаете на удаленке и к культуре хаоса приобщиться никак не получается? Если ваша самоорганизация настолько сильна, придется начинать с фундамента - с оснащения рабочего места. И новый год - отличное время, чтобы оборудовать его заново, поменяв свое отношение к делу в целом.
Специально для вас я подготовил серию вредных советов, соблюдение которых точно вышибет вас из рабочей колеи. Только так вы сможете весь год прокрастинировать и обоснованно жаловаться на окружающую атмосферу!
Как я Хабр взломал
Всегда хотел взломать Хабр. Мечта такая, но как-то руки не доходили. И вот, вдохновившись статьей о праведной борьбе с Безумным Максом, я, как и автор поста, решил исследовать функционал Хабра на предмет уязвимостей.
Информация
- В рейтинге
- 171-й
- Зарегистрирован
- Активность