Pull to refresh
113
0
Марк Шевченко @markshevchenko

программист

Send message

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

Level of difficultyMedium
Reading time3 min
Views2.7K

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

Читать далее

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

Level of difficultyMedium
Reading time6 min
Views490

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

Читать далее

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

Level of difficultyMedium
Reading time5 min
Views423

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

Читать далее

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

Level of difficultyMedium
Reading time5 min
Views472

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

Читать далее

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

Level of difficultyMedium
Reading time4 min
Views344

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

Читать далее

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

Level of difficultyMedium
Reading time4 min
Views681

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

Читать далее

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

Level of difficultyMedium
Reading time5 min
Views1.1K

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

Читать далее

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

Level of difficultyMedium
Reading time5 min
Views1K

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

Читать далее

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

Level of difficultyMedium
Reading time6 min
Views469

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

Читать далее

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

Level of difficultyMedium
Reading time8 min
Views1.5K

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

Читать далее

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

Level of difficultyEasy
Reading time6 min
Views2.7K

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

Читать далее

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

Level of difficultyHard
Reading time8 min
Views550

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

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

Читать далее

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

Level of difficultyHard
Reading time7 min
Views888

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

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

Читать далее

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

Level of difficultyMedium
Reading time4 min
Views1.8K

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

Читать далее

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

Level of difficultyHard
Reading time7 min
Views927

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

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

Читать далее

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

Level of difficultyMedium
Reading time5 min
Views1.1K

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

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

Читать далее

8. Nix в пилюлях: Универсальные скрипты сборки

Level of difficultyMedium
Reading time6 min
Views1.4K

Продолжаем знакомство с Nix и NixOS. В прошлых статьях мы научились собирать пакеты Nix (деривации), а теперь попробуем написать универсальный скрипт сборки, который можно было бы использовать для сборки множества пакетов.

Люка Бруно продолжает свой захватывающий рассказ.

Читать далее

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Backend Developer
Lead
From 450,000 ₽
C#
Rust
Algorithms and data structures
Functional programming