?

Log in

No account? Create an account
Tanner's Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Таннер, Джок Таннер's LiveJournal:

[ << Previous 20 ]
Friday, November 18th, 2016
2:01 am
Sunday, November 13th, 2016
3:42 pm
Cut by the edge

Недавно мне в руки попал китайский SSD. Вот такой.

Встал вопрос его использования. У меня уже когда-то был отрицательный опыт c довольно «породистым» драйвом, а тут и бренд не вызывает особого доверия. К тому же размер диска не то чтобы совсем маленький, но и не такой большой, чтобы поместить на него все мои данные. А я не хочу выбирать, какие файлы и директории нуждаются в ускоренном доступе, а какие − нет. Я хочу, чтобы техника сама об этом догадывалась. Поэтому я решил использовать SSD в качестве файлового кэша.

Я опробовал несколько современных технологий кэширования, используемых в Linux, и выбрал из них «наименьшее зло». Возможно, мой опыт кому-то пригодится.

Я рад был бы также ускорить и Windows, которую использую преимущественно для игр, но, к сожалению, аналогичные средства для Windows либо платные, либо ограничены поддержкой определённых чипсетов, либо используют медленные USB-устройства вместо SSD.

1. bcache

Плюсы:

  • модуль включён в мейнстримное ядро Linux,
  • не используется прослойка device-mapper,
  • поддерживает кэширование с обратной записью (writeback) на корневом диске.


Минусы:

  • необходимо пересоздавать раздел на кешируемом устройстве,
  • модуль использует блокировки, несовместимые с патчем rt-preempt. Из-за этого вариант отпал, и я перешёл к рассмотрению альтернатив.


2. EnhanceIO

Плюсы:

  • может использоваться на «живой» ФС, ничего переформатировать не нужно.


Минусы:

  • обратная запись не работает на корневом разделе,
  • разработка заброшена. Приходится перебирать разные форки, чтобы найти тот, что соберётся при помощи dkms с ядром старше 3.10. После этого нужно заставить утилиту eio_cli работать на современной системе. Всё это на ваш страх и риск, разумеется,
  • для ускорения загрузки официально рекомендуется собрать бинарный файл eio_cli при помощи PyInstaller и включить его в initramfs. Я знаю, как устроены бинарники, собираемые PyInstaller'ом, поэтому категорически отказался от использования EnhanceIO, несмотря на то, что его модуль вроде бы «взлетел».


3. lvmcache

Плюсы:

  • модуль включён в мейнстримное ядро Linux,
  • поддерживает кэширование с обратной записью (writeback) на корневом диске.


Минусы:

  • LVM и device-mapper − очень сложные подсистемы. Они незаменимы в продакшне, на облачных фермах и в хранилищах, но для использования в персональном компьютере − явный overkill,
  • пользовательский интерфейс LVM − образец мозговыносящей RedHat'овской креативности. Собственно, для каждого из трёх уровней, на которых работает LVM − физические тома, группы томов и логические диски − имеется отдельная группа утилит. Каждая утилита имеет впечатляющий набор команд и опций. Одного и того же результата зачастую можно добиться разными способами, с использованием разных утилит или разных команд/опций одной утилиты,
  • неочевидность, которая стоила мне несколько часов гугления и копирования: GRUB может читать данные, находящиеся на LVM-томе, но только на самом базовом, linear-уровне. Если же логический диск расположен на томе, созданном dm-raid, striped-томе или, как в моём случае, кэшированном томе − аллес капут, “error unknown filesystem”. Это тот случай, когда отсутствие фичи (если бы GRUB честно отказывался понимать LVM) намного лучше частично реализованной фичи.


Технология тоже оказалась не совсем очевидной. Первым делом на SSD выделяется физический том (PV), который будет служить кэшем. Затем этот «быстрый» том нужно включить в ту же группу (VG), в которой находится логический том-источник данных для кэширования (Origin LV). На появившемся в группе свободном пространстве организуется кэш-пул: “lvcreate --type cachepool”. Наконец, источник данных преобразуется в кэшируемый том командой “lvconvert --type cache” с указанием пула ключом “--cachepool”. Индикатором успеха служит сообщение: “Logical volume xxx is now cached”.

В конце концов цель была достигнута: время загрузки проекта в PyCharm сократилось с 40 секунд до 8.

Reposted from Code Tinkers Blog.

Wednesday, October 26th, 2016
4:51 pm
«Код-2»

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

Расклад такой: двенадцать программистов собираются в тесной телестудии со своими лэптопами, открывают таск-трекер, запускают самые модные редакторы/IDE, и, пользуясь самыми модными ЯП и фреймворками, пытаются успеть завершить проект в срок, не загнувшись от кофеиновой интоксикации по ходу дела.

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

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

Если честным участникам команды удаётся избавиться от настоящего PHP-шника, оставшиеся в студии программисты продолжают работу над проектом и получают своё вознаграждение согласно контракту. Честно говоря, эта часть шоу вряд ли будет интересна кому-то, кроме самих кодеров. Если же, наоборот, злодей перехитрит команду и останется в студии один, он немедленно срывает джек-пот и уходит. (Прямо как в жизни.)

Как вы уже могли заметить, в игре достаточно места для стратегических манёвров. Сильные кодеры могут вначале сливать не самых слабых игроков, чтобы увеличить своё вознаграждение, но с оглядкой на объём работы и сроки. Слабые кодеры могут консолидировать свои голоса. Конечно, это не выглядит так забавно, если не принимать во внимание свойственную программистам асоциальность…

Как вы думаете, взлетит?

Reposted from Code Tinkers Blog.

Wednesday, September 28th, 2016
12:59 pm
Чем старше становлюсь…


… тем больше мне нравится звук саксофона.

Reposted from Code Tinkers Blog.

Monday, May 23rd, 2016
1:48 pm
Мой дед


23.03.1932 − 14.05.2016

Reposted from Code Tinkers Blog.

Thursday, May 5th, 2016
12:44 pm
The cover

… and the original:

Read more...Collapse )

Reposted from Code Tinkers Blog.

Sunday, April 24th, 2016
11:50 am
Thursday, December 31st, 2015
1:06 pm
Золотой молоток

Где кончается здоровый прагматизм и начинается антипаттерн «Золотой молоток»?

Я уже давно подумываю заняться программированием логики на FPGA. Выбирал поначалу между SystemVerilog и VHDL, но теперь всё больше склоняюсь к MyHDL. Засада?

Reposted from Code Tinkers Blog.

8:42 am
Death Toll

12/27 − Andy M. Stewart

12/28 − Lemmy Kilmister

12/29 − Ian Murdock

Reposted from Code Tinkers Blog.

Sunday, December 6th, 2015
11:34 pm
О сайте
  1. Как мы все знаем, Let’s Encrypt перешёл в открытый режим работы. Пригласительные больше не нужны; достаточно загрузить и запустить их клиент. Ограничения, связанные с количеством доменов в сертификате и частотой выдачи сертификатов убраны или ослаблены. По крайней мере, я легко получил сертификаты на 5 субдоменов, не считая «голый» домен.

    Я разобрался с установкой сертификатов (в прошлый раз я использовал в настройках nginx конечный сертификат вместо цепочки, что и вызывало недовольство со стороны браузеров), но делаю я это по-прежнему в ручном режиме: плагин для nginx всё ещё неюзабелен. Впрочем, коммиты в репо letsencrypt делаются каждый день, так что плагин рано или поздно допилят.

  2. Для зарегистрированных читателей моего блога теперь имеется возможность подписаться на получение на email комментариев на интересующие посты.

Reposted from Code Tinkers Blog.

Saturday, December 5th, 2015
9:22 pm
Sunday I ain’t go to mass

I’m serving myself my own mass instead.

Reposted from Code Tinkers Blog.

Tuesday, December 1st, 2015
8:43 am
Это всё, что я могу сказать сегодня о своих политических взглядах

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

Декларация Независимости США


Reposted from Code Tinkers Blog.

Sunday, November 22nd, 2015
3:13 am
Python ecosystem rant

Задача: настроить автоматическое развёртывание двух инстанций веб-проекта из соответствующих веток репозитория на тестовый сервер.

Итерация первая: buildbot. Два дня я, Python-программист, пытался написать один файл конфигурации на Python. Да, признаюсь, надо было вовремя остановиться, но ведь хочется Python-way! В конечном счёте, когда buildbot был в общих чертах настроен, показывал веб-страницу и пытался что-то билдить, стало понятно, что такой очевидной и ключевой для данного сетапа вещи, как авторизоваться в закрытом git-репозитории по отдельному ключу, buildbot искаропки не умеет.

Итерация вторая: Jenkins. Вся работа целиком, от изготовления пакета Oracle Java SE 8 через make-jpkg до первого билда, заняла от силы час.

За Python обидно. Две самые популярные IDE для него сделаны на Java, CI вот тоже…

Reposted from Code Tinkers Blog.

Saturday, November 7th, 2015
10:04 pm
Автоматический репост в ЖЖ

Я наладил вполне функциональную систему авторепостинга, и теперь содержимое обоих моих блогов будет синхронным. Считайте этот пост проверкой.

Reposted from Code Tinkers Blog.

Thursday, November 5th, 2015
3:28 am
Lingens testiculos. Part II
Я открыл исходники своей погремушки (с лицензией пока не определился) и добавил аватары. Возможно, со временем стоило бы подготовить пакет и запулить его на PyPI. Я в своё время не нашёл ни одного блогового движка на Python (и не только на Python), который бы меня устраивал. Я вообще нигде не нашёл такой простой вещи, как каскадные (многоуровневые) комментарии. То, как я их реализовал − без AJAX, без сворачивания − тоже, конечно, не идеальный вариант, но это хоть что-то.

В ближайшее время сделаю карту сайта для поисковиков.
Tuesday, November 3rd, 2015
3:14 pm
Sunday, November 1st, 2015
9:45 pm
… and SSL for all!
Вот я подключился к программе по бета-тестированию Let’s Encrypt и попробовал их софт и сертификат.

Софт, конечно, я особо активно не проверял: я сейчас полагаюсь на nginx как на frontend-сервер, а для него плагин ещё в разработке и не рекомендуется. Но при необходимости обновление сертификатов можно настроить и в standalone-режиме, если пожертвовать несколькими секундами аптайма. Это работает.

А вот с сертификатами странное. Я думал: раз IdenTrust сертифицировал корневой сертификат Let’s Encrypt, а сертификат IdenTrust, в свою очередь, уже установлен у меня в браузере (Iceweasel), то браузер будет доверять сертификату, который я получу. Но на самом деле Iceweasel сертификат забраковал как самоподписанный. То ли Let’s Encrypt по какой-то причине решил на стадии бета-тестирования выдавать неподтверждённые сертификаты, то ли я не понял, как работает их с IdenTrust доверие… В любом случае выходит, что сейчас использовать сертификаты Let’s Encrypt ещё рано.
Monday, October 26th, 2015
9:29 pm
Хомяк-убийца
Денег нет, работа стоит, а я опять взялся вылизывать яйтса своё чудовище.

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

Разумеется, я планирую авторепостить посты оттуда сюда. Когда будет что постить.
Thursday, September 24th, 2015
6:48 pm
Трендовое
1990-е − это то время, за которое нам всем должно быть стыдно. Вообще стыдно только по факту, что мы его пережили. Мне сейчас стыдно, а вам?

Однако эти годы были не худшими, нет. Просто события 90-х ещё можно как-то минимально осмыслить. Всё, что случится дальше − это, с одной стороны, прямо вытекает из 90-х, а с другой − это ёбаный абсурдистский спектакль. Тут не только никакую рациональную теорию невозможно подвести, но тут уже и для стыда, как и для других человеческих эмоций, не осталось места. В 90-х смерть смотрела нам в глаза. Сегодня мы уже хуже, чем мертвы − мы прокляты сами собой.
Wednesday, September 16th, 2015
6:41 pm
Кто будет первым: CACcert или Let’s Encrypt? Ваши ставки.
[ << Previous 20 ]
Code Tinkers studio   About LiveJournal.com