Установка ownCloud 9 на CentOS 7 с Nginx

Однажды я подумал о том, что хорошо бы сохранять заметки Org Mode (на случай непредвиденных ситуаций) где-нибудь помимо домашнего компьютера, да и фоточки с телефона бекапить. Для первой задачи использование Git было явным оверкиллом, а с учётом второй задачи в качестве очевидного решения напрашивалась синхронизация через облачный сервис. В качестве "облака" я выбрал ownCloud — многопользовательский self-hosted сервер для хранения, синхронизации и обмена данными с открытым исходным кодом.

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

Fat Pointers

Язык C был создан почти полвека назад; несмотря на то, что он и сегодня остаётся "вполне себе ничего", его всё больше "тянет вниз" груз технических решений, которые на момент их принятия казались создателям оптимальными. Одним из таких решений стало использование нулевого байта для обозначения конца строки вместо хранения её длины. За счёт выигрыша в виде пары-тройки байт памяти на строку, что было вполне рациональным решением в то время, сейчас мы получаем:

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

Все эти проблемы (и некоторые другие) описаны в замечательной статье The Most Expensive One-byte Mistake. К сожалению, мы ничего не может с этим поделать, не отказавшись от полувековой истории и тысяч легаси-приложений. Или всё-таки можем?

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

Gitlab CI для Rust (и не только)

Методы непрерывной интеграции (continous integration, или CI) широко используются для автоматизации процесса сборки, тестирования и деплоя ПО. Такой подход позволяет раньше выявить ошибки и решить проблемы интеграции.

В данной статье будет рассмотрен процесс установки и настройки ПО для автоматической сборки и тестирования проектов, которые используют хостинг репозиториев Gitlab.

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

Новый блог

Сегодня я решил снова завести себе блог. В качестве платформы был взят org-page — статический генератор, основанный на Org mode.

Здесь я опишу процесс создания блога с помощью org-page (который был не совсем радужным) и проблемы, с которыми я столкнулся.

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