Category: искусство

Category was added automatically. Read all entries about "искусство".

moth

FreeNAS

За 5.5 лет на FreeNAS'е у меня, наконец, сломалась загрузочная флешка, на которую был установлен сам FreeNAS. Причём даже не сломалась физически (после форматирования она юзабельна), а произошёл какой-то сбой, из-за которого FreeNAS подвис и потом перестал загружаться.

Пришлось вспомнить про старые грабли, а также глянуть на новые.

Во-первых, чтобы установить FreeNAS нужны две флешки. Одну, на которую ты раскатаешь ISO-шник и с которой загрузишься, а вторую, на которую ты сделаешь инсталляцию. Ну, т.е. они до сих пор не производят загрузочный образ, сразу являющийся развёрнутой инсталляцией.

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

Благо, сработали т.н. "recovery keys", которые я на всякий случай экспортировал отдельно. Но, опять же, грабельки. Главный volume (с кучей дисков) подключился по recovery key легко, и я этому несказанно рад, а вот диск с бэкпами долго не подключался. Но когда я уничтожил volume без затирания данных и снова стал импортировать диск, то recovery key сработал и volume восстановился.

Оказывается, самая новая версия FreeNAS 11.3-U2, а у меня была 11.2-U5. Они в конец отказались от "legacy UI", поэтому теперь приходится использовать гадкий новый UI, который хуже. Но это ещё ладно. Самое главное, они улучшили replication engine так, что теперь ничего не работает. В release notes гордо написано первой строкой: "Re-implemented Replication Engine, allows up to 10Gb replication speeds (a 10x improvement), resume support on failed transfers, as well as ability to replicate locally.". Перевожу: "Нам было нехер делать, поэтому выкинули все наши наработки в replication engine, написали об коленку новую версию, все баги и грабли восстановлены, добавлены новые, теперь следующие 10 версий мы будем постепенно дорабатывать фичу до прежнего состояния".
- мне пришлось потратить час, чтобы заново настроить репликацию,
- для некоторых snapshots она, наконец, сработала, но для некоторых до сих пор fail'ится с непонятной ошибкой,
- больше не отображается плавный прогресс в процентах, теперь весь прогресс идёт инкрементально по снапшотам (если два снапшота, это значит, возможные точки 0%, 50%, 100%),
- на тех снапшотах, где зафейлилось, он перекопировал кучу инфы, почти заполнив мой бэкапный диск (похоже не подцепились те снапшоты, что уже были, и он решил закопировать всё заново). Это печалька, потому что у меня нет достаточного свободного места, чтобы в двух копиях всё держать, придётся заниматься аккуратным жонглированием данных и убить на это полдня.

Спасибо, девелоперы фринаса.
Попробую откатить к предыдущей версии, благо, я не делал upgrade volume, и ISO-шники от старых версий доступны для скачивания.
star

Моё рисование

Признак настоящего художника - длительность жизни его работ. Был в гостях у друга. Удивило и порадовало, что мой творческий экспромпт уже прожил почти пять лет. Это была пустая фоторамка, которую он повесил на стену, чтобы закрыть дырку. Пустая это скучно, поэтому я взял простой карандаш и нарисовал...

Collapse )
blue

Современное ООП

Помню 20 лет назад учил детей на курсах, что инкапсуляция это круто. Каноническим примером был объект круг, умеющий себя рисовать. Правда же, здорово: описание данных (координаты круга, радиус) находятся рядом с описанием действий (метод draw). Был также родственный канонический пример наследования: цветной круг, в котором наследуются координаты и радиус, но появляется также атрибут "цвет", он же канонический пример полиморфизма: метод рисования перекрыт, потому что теперь нужно рисовать в цвете.

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

Что я забыл упомянуть, так это то, что инкапсуляция тоже хороша далеко не всегда. Хрестоматийный пример с кружком и рисованием это как раз неудачный пример инкапсуляции. Хорошие примеры атрибутов в классе это сложные состояния объекта, приватные мутабельные поля. Мутабельные объекты нужно инициализировать. Это накладывает жёсткие ограничения на сериализацию коллекций таких объектов. Поэтому поля сериализации обычно объединяют в отдельный класс, который "простой", в идеале в нём немутабельные публичные поля и больше ничего. Можно добавить методов, которые не требуют промежуточного состояния. Например, разные конструкторы или всевозможные хелперы для конвертации или вычисляемые атрибуты. Релизаций рисования может быть много, поэтому рисование выделяется в интерфейс, и может быть много классов, его по-разному реализующих. Понятно, что при этом описание круга (координаты, радиус, цвет) должны быть выделены в отдельный класс, рисовальщик будет принимать объекты-круги через параметры.

Я, вот, столкнулся с библиотечным классом, в котором этот принцип был нарушен (в нём было нечто похожее на класс круг как с координатами, так и с рисованием), и сразу возникло неприятное ощущение. Не понятно, как расширять функционал. Наследовать от такого класса - противно. Нужно будет внимательно следить, чтобы все методы были статичными, иначе прозеваешь и не сможешь корректно сериализовать, или будешь платить overhead'ом на сохранение ненужного тебе состояния. Делать же всё по уму (выносить данные в отдельный класс, а методы в интерфейс) требует создания кучи адаптеров. Тоже противно. Ну, значит, чтобы потом не было противно, лучше изначально так не делать. Круг, умеющий себя рисовать, это плохой круг. Хороший круг - пассивный круг, просто знающий, где он и какого он размера :) А рисовальщик живёт от него отдельно.

Upd.: если наследовать, то возникает ещё такая проблема. Расширенный функционал может требовать дополнительных параметров. Например, крутому рисовальщику-v2 нужен объект "кисть". Но в параметрах метода draw нет кисти. Если кисть достаточно сложна, что нельзя создать временную кисть прямо в draw, то ссылку на кисть можно передать только в конструкторе. Это накладывает кучу ограничений, например:
- вот теперь уже точно нужно специально выкручиваться, чтобы сериализовать класс, потому что придётся исключать из сериализации эту кисть.
- чтобы нарисовать круг другой кистью, придётся создавать его заново.
Бррр.
moth

Фотографический wishlist.

У меня сейчас прайм линза на 20мм (из-за кропнутого сенсора это эквивалент 30мм). За эти же деньги ($350) я бы мог купить набор из двух kit lens: 16-50мм (f/3.5-5.6 OSS, SEL-1650) и 55-210мм (f/4.5-6.3 OSS, SEL55210). Я, честно говоря, довольно долго колебался, но всё-таки решил купить светлую прайм 20mm f/2.8 (SEL-20F28) без OSS (стабилизация, Optical Steady Shot), и сильно доволен.

Почему я доволен этой линзой:

1. Это "блин", очень тонкая компактная линза, что позволяет мне таскать фотоаппарат практически везде, где я хочу, чисто "на всякий случай". Он влезает в очень тугой компактный неофреновый футляр, если надо, влезает в карман куртки и т.п. Компактность - важнейшая вещь для "любимой линзы по умолчанию".

2. У неё поле зрения шире, чем обычное человеческое зрение. Это позволяет максимизировать покрытие разных вариантов, чего можно снимать: пейзажи, потреты, мелочи, сканы документов. Мелкие объекты нужно будет потом crop-пать, если я захочу напечатать, но это же не проблема. В принципе, там есть цифровой зум до 4x, и я им иногда пользуюсь, он улучшает жизнь. Я посмеиваюсь над людьми, которые пятятся назад, при попытке фотографировать друзей у памятников :) У них всё не влезает в полный рост. Г-г-г.

3. У неё минимальный f-stop 2.8, что даёт следующие плюсы:
3.1. улучшает портреты, позволяет делать замутнение фона,
3.2. сильно улучшает вечерние снимки, особенно в комбинации с софтварным anti-blur режимом (она делает подряд много снимков и полученной информации хватает, чтобы софтварно уменьшить blur); кроме того, можно сделать насильный min.shutter 1/160 и f-stop 2.8, и снимки вечером без штатива будут заметно лучше, чем с менее светлой линзой.
3.3. сильно улучшает снимки в помещениях без вспышки,
3.4. очень сильно улушает режим "сканирование документов" - достаточно рассеянного света лампы на отдалении, что минимизирует блики и неровности освещения. Кроме того, широкий охват позволяет менее аккуратно класть документ, потому что при том же расстоянии до документа получаются широкие поля.

Тем не менее, уже очевидны limitations, поэтому составлю себе wish list разных лизн, которыми я захочу поиграться в будущем, когда эта совсем надоест (в порядке приоритета).

1. Нужна хорошая fish-eye линза для пейзажей. Ещё шире, чем эта, и, главное, хорошего качества. Моя линза даёт довольно нечёткое изображение по краям при низком f-stop'е, и я уже неоднократно сталкивался с тем, что 20мм мне не всегда хватает. Нужно что-нибудь вроде 8-12мм.

2. Нужна хорошая macro-линза. Возможно, macro-zoom. В хорошем освещении фоткать разных букашек и камушков. Моя линза ближе, чем 20см не фокусируется, и этого катастрофически не хватает.

3. Нужен теле-прайм с очень большим увеличением для фоткания ночью со штативом: луны, звёздного неба, и, конечно, солнечного затмения в августе следующего года, на которое я собираюсь поехать. Но практиковаться надо заранее. Какое фокусное расстояние мне нужно, я ещё не знаю. Надо ещё будет исходить из того, что вообще доступно для Sony E-Mount.

4. Нужна теле-линза, возможно, zoom, для того, чтобы фоткать животных издали, а также фоткать людей так, чтобы они тебя не замечали, что ты их фоткаешь. Ловить выражения на лице. С широкой линзой это невозможно, к сожалению. Думаю, что-то вроде 55-210мм мне бы подошло. (Возможно, зря я не взял kit lens? По отдельности они заметно дороже).

5. Нужен ещё более светлый prime для indoor. Я думаю, 35мм, f/1.8 отлично подойдёт (это эквивалент 50мм для полного сенсора). Эту линзу назвают портретником, но меня она привлекает не для портретов, а для ещё большего усиления возможностей делать неплохие фотографии при отвратительном освещении без вспышки. У Sony есть ещё хороший 50мм прайм, но мне кажется, indoor это будет слишком узко (т.к. это будет эквивалент 80мм). Ещё - я не очень понимаю, почему люди хотят портретник как непосредственно следующую линзу после стандартной. Мне кажется куда приоритетнее сначала получить п.1-4, и только потом п.5.

Напишите мне, если я что-то важное забыл.
blue

Художественное

Краем глаза прочёл несколько страниц современной фантастики, и смог сформулировать, что мне не нравится в модной литературе. Главная претензия - количество энтропии на единицу объёма. Мысль маленькая, а текста много. Вторая - это напущенная таинственность. Третья - это совершенно негодное применение выразительных средств (эпитетов, метафор, сравнений), которые чрезмерно преувеличивают и вызывают странные ассоциации, отвлекая от главной мысли, которой там и так мало. Злоупотребление бессмысленными уточняющими оборотами. И ещё - злоупотребление жаргоном. Больше жаргона, чем даже в обычной бытовой речи.

Я не помню точных цитат, но в демонстративных целях могу составить пример, в котором будут все перечисленные изъяны.

Возьмём какую-нибудь простую мысль. Например:
"У Васи и Пети конфликт интересов".

Добавляем напущенной таинственности.
Легче всего это сделать, выдумыв извращённые имена:
"У Тыродындрона и Миходория конфликт интересов".

Добавляем чрезмерный художественный элемент.
"Интересы Тыродындрона и Миходория столкнулись как мотоциклы на горной дороге."
(Отлично, особенно для тех, кто недавно видел настоящие аварии мотоциклов на горной дороге.)

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

Добавляем жаргон.
"Интересы Тыродындрона и Миходория столкнулись как две хонды CBR500R на горной дороге, где оба байкера нажрались как свиньи и гнали, что есть мочи."

Когда я читаю подобный текст, я чувствую себя компилятором. Голова впитывает исходный материал, шуршит вычислениями, раскручивая обратно эту цепочку преобразований, и через несколько секунд выдаёт "У Васи и Пети конфликт интересов". Я не понимаю, как люди *такое* могут не просто читать, а ещё и читать очень быстро, и получать удовольствие от прочитанного.
  • Tags
moth

Рисование

Originally posted by mrumka at Рисование
Мне нравится смотреть, как люди рисуют. Стараюсь чтониьудь перенимать. Вот еще один ролик где дяденька весьма релистично рисует девушку по дмузыку моего дества ))

moth

Фантазия

Не смотря на "современные" нотки во второй части, это вещь написана в 16-м веке. Её автор - Alonso Mudarra, 1510 - 1580, испанский композитор эпохи Ренессанса.



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

P.S. Заодно зацените мой прикид :)
moth

Costa - Study in C maj

Давно уже ничего не выкладывал. Всё думаю, надо доработать то, доработать это. А, ведь, уже, наверное, многие позабывали, что я вообще на гитаре играю.

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



Заодно официально добавляю белый цвет в свою палитру ^_^