Как стать автором
Обновить
93
18

Пользователь

Отправить сообщение

CAP, Coq и Евклид

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.4K

Продолжаем серию статей о CAP-теореме и языке Coq. В предыдущей части мы детально проанализировали определения CAP-теоремы, готовясь к её формализации на языке Coq, и нашли там серьёзную ошибку (теперь будет о чём поговорить при случае на system design interview).

В этой статье мы познакомимся с основами языка Coq и для практики формализуем небольшой фрагмент геометрической системы, близкой к евклидовой.

Читать далее

CAP-n-Coq. Часть 1. Определения CAP-теоремы

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.3K

No subject appears to be more controversial to distributed systems engineers than the oft-quoted, oft-misunderstood CAP theorem. The CAP FAQ

— Сейчас я тебе объясню... — Объяснить я и сам могу, ты расскажи, что на самом деле происходит! (Из разговора политологов, но для CAP-теоремы подходит тоже)

— Давайте уже запишем CAP-теорему на языке Coq и посмотрим, что там на самом деле. (Я)

Читать далее

Визуализация результатов escape-анализа в VS Code

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3K

В Go есть возможность получить отчёт о выполняемом escape-анализе: go build -gcflags '-m=3 -l'. В этой статье я расскажу, как можно визуализировать этот отчёт в VS Code. Дополнительно приведу способ, как в несколько кликов проверить теорию (escape-анализ) практикой (профилирование).


Читать дальше →

От Isolation к Consistency — дорога длиной в 30 лет

Время на прочтение17 мин
Количество просмотров8.4K

Участвую в стартапе, в котором разрабатывается СУБД нового типа (работает поверх некоторых kv-движков, кардинально расширяя их возможности, про это немного можно прочитать здесь). Для того, чтобы сравнить то, что понемногу получается, с тем, что имеется в индустрии, пришлось на глубоком уровне проработать первоисточники по темам Isolation и Consistency (уточню, что имеется ввиду не та Consistency, что в ACID). Обнаружил интересные нюансы, которые и излагаю в этой статье.


Тезисно:


  • Термин Phantom Read является продуктом испорченного телефона
  • Смысл понятий Lost Update, Write Skew и Read Skew для разделения уровней изоляций неочевиден и относителен
  • Движок, который обеспечивает уровень изоляции Serializable, в распределённом мире может вести себя весьма причудливо, например, всегда возвращать пустой результат для read-only транзакций — и ему за это по стандарту "ничего не будет"
  • Strong consistency в Cosmos DB — предел мечтаний? (спойлер: нет)

Ну, и ещё кое-что по мелочи. В конце рассмотрим вот такой венец творения человеческого разума:


Читать дальше →

Go против Rust — производительность вне конкуренции

Время на прочтение5 мин
Количество просмотров55K

В статье Наблюдение за выполнением конкурирующих задач в Go и Rust коллега cpmonster привёл весьма интересные результаты:


Программа на Rust показала намного большую производительность при вычислении членов возвратной последовательности, чем программа на Go: 367 млн. итераций в секунду против 44 млн.

Ну, в 1.5 раза… Ну, в 2 раза… Но семь гвардейцев за два дня? — это слишком, тем более что тут "гвардейцев" больше восьми!


Или нет, не слишком? В общем, потенциал любопытства пересилил другие потенциалы и я провёл своё исследование.

Читать дальше →

Заменяем глобальный аллокатор в Rust

Время на прочтение11 мин
Количество просмотров7.9K

Вторая часть про работу с кучей, устанавливаем свой глобальный аллокатор. В принципе, это делается в несколько строк, но наша цель — действовать сознательно и профессионально, с глубоким проникновением в суть явлений, так что легкой жизни не будет (как и обещал).


Читать дальше →

Работа с кучей в Rust

Время на прочтение4 мин
Количество просмотров8.3K

Продолжаем изучать Rust нетрадиционным способом. В этом раз будем разбираться в нюансах работы с кучей, для их понимания понадобятся: сырые указатели, выделение памяти в куче, размер экземпляра типа, запись значений в кучу и чтение из нее, const и static, unit-like структуры, переопределение глобального аллокатора.


Это, определенно, overkill для одной статьи, а вот половину списка вполне можно освоить.


Читать дальше →

Конспектируем Книгу Rust:: Времена и структуры

Время на прочтение8 мин
Количество просмотров5.6K

Продолжаем работать с 10.3.


КМБ.- Двойная жизнь.- Восстание мертвецов.- Ошибка в документации.- Ужасающие подробности из The Rustonomicon.- Архитектурные озарения.- Развязка.


Читать дальше →

Конспектируем Книгу Rust:: Времена и функции

Время на прочтение5 мин
Количество просмотров6.1K

После главы 4 (было здесь) переходим к 10.3. Валидация ссылок при помощи времён жизни. Ну а куда еще… такие нынче времена.

Читать дальше →

Конспектируем Книгу Rust:: Владение

Время на прочтение8 мин
Количество просмотров17K

Перед вами краткое профессиональное описание особенностей языка Rust для профессионалов.


Что это такое?
  • краткое — информации будет гораздо меньше, чем в Книге (The Rust Programming Language)
  • профессиональное — информации будет гораздо больше, чем в Книге;
  • описание особенностей — фокусируемся на отличиях Rust от других языков;
  • языка — описывается именно язык, а не установка средств разработки, управление пакетами и прочий инструментарий;
  • для профессионалов — подразумевается, что читатель имеет существенный опыт в разработке ПО.

Чего здесь НЕ будет


  • Не будет агитации за Rust
  • Не будет легко. Для освоения потребуется неделя-другая вдумчивого чтения по часу в день, с тщательным разбором примеров, как-то так

Содержание


Читать дальше →

Велосипед, зима и Санкт-Петербург — настало время сказочных историй

Время на прочтение7 мин
Количество просмотров13K

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

Колданем?

Охота за убегающей памятью в Go на этапе разработки

Время на прочтение5 мин
Количество просмотров8.3K

В начале этого года я прочитал на habr любопытную статью "Почему Discord переходит с Go на Rust", переход был связан с неэффективным механизмом сборки мусора в Go. Тогда подумалось, что, наверное, было бы проще доработать приложение и не переходить. Но еще проще было бы избежать таких проблем на стадии разработки.

Читать далее

Как научиться кататься на моноколесе?

Время на прочтение9 мин
Количество просмотров30K


Подумав хорошенько, я решил, что справлюсь с этим делом. Тогда я пошел и купил бутыль свинцовой примочки и велосипед. Домой меня провожал инструктор, чтобы преподать мне начальные сведения. Мы уединились на заднем дворе и принялись за дело.

Марк Твен. Укрощение велосипеда
Читать дальше →

Выбор моноколеса для поездок на работу

Время на прочтение6 мин
Количество просмотров42K


Автор рисунка — Дед62@electrotransport.ru

Прошла весна, настало лето, –
Так не пора ли сделать это?

Или еще не пора? А если пора, то какое выбрать моноколесо для поездок на работу?

Информация

В рейтинге
363-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Software Architect
Lead