Pull to refresh
4K+
116
Марк Шевченко@markshevchenko

программист

6
Rating
94
Subscribers
Send message

Где хранить пароли в NixOS?

Level of difficultyMedium
Reading time10 min
Reach and readers6.3K

NixOS хранит конфигурацию всей системы, включая пароли. И это, очевидно, небезопасно. В этой статье разберёмся, где никсоводы прячут свои пароли.

Читать далее

1. Проектирование с помощью типов: Введение

Level of difficultyMedium
Reading time3 min
Reach and readers4.9K

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

Читать далее

20. Nix в пилюлях: Основные зависимости и хуки

Level of difficultyMedium
Reading time6 min
Reach and readers1K

Финальная глава! Люка Бруно рассказывает о секретном оружии Nix — хуках. Их используют, когда больше ничего не помогает, в частности, для кросс-компиляции.

Читать далее

19. Nix в пилюлях: Основы stdenv

Level of difficultyMedium
Reading time5 min
Reach and readers969

Эта глава посвящена деривации stdenv, благодаря которой собирается большинство пакетов из репозитория nixpkgs. Она поддерживает инструментарий GCC, GNU make, autotools и другие распространённые системы сборки.

Читать далее

18. Nix в пилюлях: Пути хранения Nix

Level of difficultyMedium
Reading time5 min
Reach and readers895

Для того, чтобы различать пакеты разных версий, Nix хранит их в каталогах с именами, которые содержат хеш. В главе 18 мы разберёмся, как вычисляется этот хеш для файлов, каталогов и tar-архивов.

Читать далее

17. Nix в пилюлях: Переопределение пакетов nixpkgs

Level of difficultyMedium
Reading time4 min
Reach and readers734

Знакомимся с интересным трюком, который позволяет функциональному языку Nix делать то, то, что в императивных пакетных менеджерах делается с пол-пинка.
У них там, правда, dependency hell, а в Nix всё чинно и благородно.

Читать далее

16. Nix в пилюлях: Параметры nixpkgs

Level of difficultyMedium
Reading time4 min
Reach and readers1.4K

Вы начинаете сборку вашего пакета не на пустом месте. Репозиторий nixpkgs, куда входит ваш пакет, при запуске скрипта сборки передаёт ему параметры. В этой главе мы поговорим о двух основных параметрах: system и config.

Читать далее

15. Nix в пилюлях: Поисковые пути Nix

Level of difficultyMedium
Reading time5 min
Reach and readers1.8K

В Nix для поиска дериваций используется переменная окружения NIX_PATH. Она похожа на PATH, но есть и важные отличия. Разбираемся с тем, как устроен репозиторий nixpkgs.

Читать далее

14. Nix в пилюлях: Паттерн проектирования override (переопределение)

Level of difficultyMedium
Reading time5 min
Reach and readers1.9K

Продолжаем изучать паттерны проектирования, используемые при создании пакетов в Nix. В этой пилюле разберёмся с паттерном override (переопределение).

Читать далее

13. Nix в пилюлях: Паттерн проектирования callPackage

Level of difficultyMedium
Reading time6 min
Reach and readers903

Разбираемся, как работает второй из базовых паттернов Nix — callPackage. Автоматизируем передачу параметров, сокращаем код репозитория.

Читать далее

12. Nix в пилюлях: Репозитории пакетов и паттерн Входные параметры

Level of difficultyMedium
Reading time8 min
Reach and readers2.9K

Разбираемся в тонкостях разработки пакетов. Изучаем паттерны, которые применяются при создании пакетов и репозиториев в Nix.

Читать далее

История о том, как мы собирали разработчиков Nix в России и… собрали

Level of difficultyEasy
Reading time6 min
Reach and readers4.7K

Несколько месяцев назад я писал, как мы ввязались в авантюру — решили собрать в России программистов со всего мира. Не всех, конечно, а тех, кто занимается пакетным менеджером Nix и операционной системой NixOS.
Разработчики Nix когда-то решили, что делать большой проект без личного общения им не нравится, поэтому раз или два в год они собираются где-то на земном шаре и пишут код вместе. Такие встречи называются спринты. Февральский спринт прошёл в Таиланде, а летом мы провели его в Казани.
Под катом — история о том, что у нас получилось, а что — нет.

Читать далее

Вычислительные выражения: Оставшиеся стандартные методы

Level of difficultyHard
Reading time8 min
Reach and readers1K

Скотт Влащин завершает рассказ о вычислительных выражениях в F#.

Сегодня поговорим про методы класса-построителя, с которыми мы ещё не сталкивались.

Читать далее

Вычислительные выражения: Добавляем ленивость

Level of difficultyHard
Reading time7 min
Reach and readers1.5K

Скотт Влащин продолжает рассказ о вычислительных выражениях в F#.

Сегодня мы узнаем, как создавать ленивые вычислительные выражения.

Читать далее

10. Nix в пилюлях: Разработка с помощью nix-shell

Level of difficultyMedium
Reading time4 min
Reach and readers4.3K

Исследуем пакетный менеджер Nix и операционную систему NixOS.
В этой статье разбираемся с тем, как работает утилита nix-shell.

Читать далее

Вычислительные выражения: Перегрузка

Level of difficultyHard
Reading time7 min
Reach and readers1.5K

Скотт Влащин продолжает рассказ о вычислительных выражениях в F#.

Отклонимся от основной темы и поговорим, как в вычислительных выражениях можно использовать перегрузку функций.

Читать далее

9. Nix в пилюлях: Автоматические зависимости времени выполнения

Level of difficultyMedium
Reading time5 min
Reach and readers2.1K

Исследуем пакетный менеджер Nix и операционную систему NixOS.
Ранее мы разработали универсальный скрипт сборки для проектов autotools.

Сегодня мы обратимся к программе GNU hello, чтобы исследовать зависимости времени сборки и времени выполнения.

Читать далее

Information

Rating
987-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Бэкенд разработчик
Ведущий
From 450,000 ₽
C#
Rust
Алгоритмы и структуры данных
Функциональное программирование