Про Thinkpad T520 и fingerprint reader (сканер отпечатков пальцев)

На Thinkpad'ах бизнес-серий есть встроенный сканер отпечатков пальцев. Зачем, в таком случае, нужно вводить пароли? Тем более, что поддержка сканера отпечатков пальцев есть в современных линуксах из коробки.

Что для этого нужно?

Подразумевается, что используется gnome-окружение. Думаю, для других окружений рецепт будет примерно такой же.

  1. Устанавливаем пакеты fprintd, libfprint0, libpam-fprintd. Можно до кучи (для проверки работоспособности сканера) установить fprint-demo;
  2. Запускаем sudo pam-auth-update. Там выбираем провайдер идентификации по отпечаткам пальцев.
  3. Устанавливаем вход в систему по отпечатку пальца. Для этого запускаем приложение "User Accounts" (можно набрать "Users" или «Пользователи» в «Активностях»). Там выбираем нужных пользователей, предварительно разблокировав редактирование и у них включаем флажок "Fingerprint login". Шаркаем пять раз пальцем каждого пользователя по сканеру;
  4. Разрешаем sudo по отпечатку пальца. Для этого открываем терминал, делаем sudo fprintd-enroll от имени нужного пользователя и по запросу шаркаем пять раз пальцем по сканеру.

Всё, никаких больше паролей. Счастье.

Comments

Про Thinkpad T520 и thinkfan

Наконец-то удалось заставить его держать температуру на уровне 50 градусов.


Оригинальный рецепт для линейки Thinkpad можно подсмотреть тут (по сабжевому запросу его первым подсказывает гугл).

Если настраивать так, как написано по ссылке и использовать родной thinkfan.conf, то thinkfan будет всегда держать обороты вентилятора ниже максимально возможных, из-за чего температура процессора легко добегает до 96 градусов, после чего наступает троттлинг. Режимы disengaged и full-speed поставить можно, если указать вместо целевого уровня в конфиге "level disengaged" (да, именно так, с двойными кавычками) — но, с таким конфигом, thinkfan будет запускаться только при указанном ключе -D, который конфликтует с режимом демона для /etc/init.d/thinkfan.

Для того, чтобы избежать проблем с ключами, строковыми параметрами и перегревом, достаточно использовать такие вот строчки конфигурации режимов:

(0,	0,	31)
(5,	30,	61)
(7,	60,	71)
(100,	70,	32767)

Comments

Кроссплатформенная заметка

«Приснилось» (NDA, сами понимаете), что заказчик слил мне софтину с требованием окроссплатформить её.

Чуть-чуть о софтине (на первый взгляд)

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

Бизнес-логика состоит из описания сущности, датамаппинга, зависимостей/рефов к другим бизнес-серверам, внутренного FSM, сериализаторов и RPC-байндингов.

Отображения — набор представлений сущности для разных медиумов, контрактированный интерфейсами, описанными в общих сборках. Медиумы — веб и нативный десктоп.

Часть всего этого обDSL'ена, часть — инлайново закодирована. Контракты на DSL'и, общий рантайм и структуры состояний лежат, опять же, в общих сборках. В общих же сборках лежат всякие общие компоненты, безопасность, аудит, IPC, DAL и отдельный слой рантайм-прокси для маршрутизации вызовов к бизнес-серверам.

Модель работы с софтиной может быть очень гибкой:

  • данные, рантайм и UI — на сервере:
  • данные и рантайм — на сервере, UI — на клиенте (для веба — часть UI работает на сервере);
  • данные — в кластере, рантайм — в кластере, UI — на клиенте или на сервере.

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

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

Софтина — типичный легаси-мутант, выкормленный отборной индусятиной и стероидами. Но симпатичный и, в таком виде, даже вполне поддерживаемый.

Если бы не одно НО. Не J2EE, нет. Дотнет.

Задача

Нужна кроссплатформенность и минимизация платформенноориентированного кода. С серверной стороны — Windows Server, Linux. С клиентской стороны — веб (ASP + стандартный стек технологий, с кастомизацией под Modern UI и мобильные аппы), нативные интерфейсы для Windows, Linux, MacOS.

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

Что делать?

Надо переходить на общий рантайм Mono. Буду вырезать платформеннозависимые вещи (может, даже, придётся использовать Portable Library). Контролы придётся разрезать на контроллеры и реализации, контрактируя интерфейсами. Пока не знаю, что делать с плотной компоновкой представления бизнес-серверов. Жизнь упрощает то, что UI там декларативный, на DSL и контролах, — можно будет его сделать кроссплатформенным, не сильно вкладываясь в выдирание из бизнес-логики.

Однозначно придётся делать отдельные реализации компоновщиков для веба /нативщины. Для нативного интерфейса надо будет нарисовать трансляторы DSL в разметки Gtk# и кокоа-байндинг MonoMac.

Фронт работ не такой уж и большой.

DAFUQ I'VE JUST READ?

Хорошая архитектура — залог психического здоровья.

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

И велосипедостроение. Если бы не велосипедостроение (своя реализация IPC, свой DAL с байндингом без рефлексии, своё проксирование, свои декларативные средства абстрактной инженерии) — софтину пришлось бы закопать, а заказчик понёс бы большие финансовые потери из-за разработки этого софта с нуля.

Comments

Почтовое

Почта России потеряла мою посылку.

Китайцы послали мне LPD-рацию, пучок гарнитур и железяк по мелочи. 7 тысяч рублей с доставкой. Трекинг китайцев давно сказал, что всё пучком. Но посылка не дошла. Потерялась где-то между таможенным терминалом и городом П.

Ладно, фиг с ней. Семь тысяч — обидно, но не страшно. Во всяком случае, решаемо.

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

Что делают нормальные люди, беспокоящиеся о своём бизнесе? Правильно, подстраивают бизнес под потребителя.

Что делает Почта России? Правильно, матьихтак, вешает замок на дверь и табличку выше него со следующим содержанием: «В связи с нехваткой штата почта работает до 18⁰⁰». И понедельник выходной.

Бляха-муха.

Нет, я откровенно не понимаю. Не хватает штата? Сделайте половинный рабочий день на всю неделю без выходных. Начинающийся, например, в 18⁰⁰ и заканчивающийся в 22⁰⁰. Чтобы людям, едущим с работы, было удобно.

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

Не в нехватке штата дело. И не в недостаточной поддержке государством.

Больше ни ногой.

Comments

Просветление.

Линукс - редкостное говно.

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

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

Очень сильное желание купить макбук.

Comments

Настигло

Гомосексуальные разработчики Gnome Shell 3.6 таки да — подложили свиней:

  • Отпали годные ыкстеншоны типа показометра батареи. Ну и да фиг бы с ними, но осадочек-с...;
  • Запороли наутилус так, что тот теперь не умеет в сортировку «каталоги перед файлами»;
  • И, ВНИМАНИЕ, отломали поддержку шорткатов переключения раскладок НА КОМАНДНЫХ клавишах (например, “alt + shift”, “caps/shift + caps”, и т.д.). Совсем. Напрочь. Без мышки и клика по панели не переключить. Ну или надо назначать крышесносные переключатели типа “ctrl+alt+shift+1”. Или использовать сторонние IML.

Даже гомосексуальнейшие маколожцы заботятся о наследниках своей великой идеи и не допускают такого. Да что там, даже андроидофилы. Даже подшконочные ХФЦЕ-бомжи так себя не ведут. На фоне огромной кучи реально греющих душу ништяков такое вот отношение, прямо скажем, заставляет не поворачиваться задницей к ноутбуку с гномщелью версии 3.6. Вдвойне обижает такая хрень из-за того, что я пользуюсь для переключения капс-локом. Впрочем, кому-нибудь помогут временно перенесённые в gnome-tweak-tool на вкладку „Typing” настройки.

Сижу, переключаю раскладки с помощью “ctrl + shift’, как лох. Хоть “meta + space” ставь и долбись в дупло...

Грустно.

Comments

Сны мне снятся редко. Вообще и в целом.

Крайние полтора месяца выдались ОЧЕНЬ ТЯЖЁЛЫМИ — я думал, что вообще сны сниться не будут. Фига с два.

Кинематографичные, раза по три за ночь. Связные, логичные.

Сегодня вот снилось про временные парадоксы. Не иначе какие-то аллюзии на «Облачный атлас», хотя я эту хипстерскую киноленту ещё не смотрел.

Про сон

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

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

Если временная коллизия закрывалась — то все слайсы, кроме того, куда вышла толпа, уничтожались.

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

Надо будет досмотреть сон, интересно.

Comments

Только что у машины сработала сигнализация, смотрю из окна — на стоянке у дома фары горят.

Ну, думаю, опять начали снимать колёса.

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

На стоянке — тёмно-синий вольксваген, внутри два каких-то силуэта общаются, номера не видно. Я прошёл вдоль машины, ничего не увидел. Тела начали двигаться и, реально как зомби, шатаясь, выползли из машины. Пьяные в зюзю. Бодренько, но шатаясь идут ко мне. Один твердит что-то типа «иди сюда», второй — гнусавит что-то непонятное. Один под 120 килограммов, второй — 70-80.

Понимаю, что нож я взял зря, потому как отбиваться от них — нет смысла, сейчас не почувствуют, а позже могут запросто истечь. Да и как-то не по-человечески оно, кровищу рядом со своим подъездом разводить. А руками отбиваться от двоих, хоть и пьяных, — то ещё удовольствие.

Отошёл — они ко мне. Отошёл ещё — снова ко мне.

Зашёл в подъезд, защёлкнул дверь электрозамком, позвонил в полицию, сдал им ориентировку на машину и на тела.

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

На машине, вроде, следов нет (царапина на бампере какая-то есть, но чёрт его не знает, откуда она). У соседей по стоянке на задней двери поломано крепление запасного колеса — чёрт его не знает, опять же, новое оно или уже было.

Выводы:

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

Ничуть не жалею о том, что ретировался.

Полиция, вроде, работает: ждал соединения при маршрутизации звонка не больше 10 секунд, обращение приняли, опросили. Посмотрим, может выловят.

Comments

На этот раз снова немного жизненной шелухи.

Я постоянно ловлю себя на том, что меняюсь.

Это как то самое ощущение, прихватывающее, когда, смотрясь в зеркало, понимаешь, что ты неумолимо меняешься. То есть, вроде, смотришь-смотришь в зеркало каждый день, чистишь зубы, умываешься, бреешься, причёсываешься. Ну, обычный ритуал. А, одним прекрасным утром, в полумраке ванной комнаты смотришь на себя — и обалдеваешь от количества морщин, от подёрнувшихся уголков глаз и от упрямо вывалившихся наружу скул.

Вот у меня такая же штука, но не только с зеркалом. С зеркалом-то понятно, почему. Я сбрил бороду, например, которую растил два месяца — и вот оно.

Тут по-другому.

Я начал фильтровать свой круг общения. Долго (по крайней мере, с пятнадцати лет) у меня был аксиоматический подход «все люди хорошие». Сейчас у меня все люди «по умолчанию» воспринимаются какими-то безликими тряпичными куклами. Опять же, раньше мне нужно было долго пообщаться с человеком, чтобы его категоризовать.Сейчас мне для этого достаточно буквально месяца и трёх-пяти жизненных ситуаций. Причём я себя ловлю на том, что, зачастую, сам организую стрессовые и граничные ситуации. А если и не организую, то стараюсь втягивать людей в них.

С печалью в голосе могу констатировать — у меня стал очень маленький круг доверительного общения. Есть два безусловных друга (мы одногодки и вместе прошли всю школу). Назовём это Tier 0. Есть брат и два условных друга (брат и один их них на три-четыре года моложе меня, я в какой-то мере заменил им отца), с которыми я не могу обсудить ряд моментов. Ну не поворачивается у меня язык. Культурный налёт и/или боязнь залезть от безответственности туда, куда не нужно залезать. Tier 1. Есть ещё доверительный круг из десятка людей, но это немного не то — с ними иногда есть ощущение «сел рядом, замолчал, всё понятно, всем нормально», а иногда очень сложно. В любом случае, это близкие мне люди, для которых в моей памяти уготовано место. Это Tier 2.

И всё. С остальными я либо постоянно контролирую обмен информацией проверяю её на непротиворечивость, либо молчу. Ну или общаюсь на темы, которые абсолютно мне не важны и не нужны. Либо категорически не общаюсь.

Есть, правда, свободное интернет-общение и люди за ним, но это абсолютно другая категория собеседников. Часть этих людей входит в Tier 2, но подавляющее большинство — просто воображаемые личности, которые мне интересны с этимологической точки зрения. Интересно восстанавливать людей по их отпечаткам.

А, да. У меня, оказывается, есть ещё и Tier -1. Это люди, с которыми я прекратил всяческое общение и вычеркнул их из своей жизни. Никогда не думал, что такие будут, но, тем не менее, — они есть. И список продолжает увеличиваться.

В общем, не могу сказать, что мне всё это не нравится. Оно есть, с ним веселее жить. И это хорошо.

ЗЫ. Вспомнил — ещё у меня изменилось отношение к авторитетам и к отношению к себе со стороны других. Угадайте, как.

И это тоже не может не радовать.

Comments

Из жизни

Так получилось, что сейчас приходится избавляться от огромной части прошлого, связанного с квартирой деда и бабушки. Всё просто — квартиру надо продавать.

На фоне этого читал замечательный скайфай-сборник «Нежить», в котором наткнулся на неизвестный мне рассказ Джорджа Мартина «Завсегдатай мясной лавки». С творчеством Мартина я знаком, но такого от него не ожидал.

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

Мне стало очень-очень грустно.

Comments

Про gnome-shell

По мотивам этого поста про экстеншоны.

Время не стоит на месте. Gnome-shell развивается и увеличивает version numbers. Я потихоньку отсматриваю новые ыкстеншоны и меняю старые. Сегодня я в очередной раз (в связи с обновлением gnome-shell до 3.4.1) полез на сайт расширений gnome-shell и поэкспериментировал.

Содержательная часть доклада

В итоге у меня прописался следующий список ыкстеншонов:

  • AlternateTab — изменяет вид переключения между приложениями по Alt-Tab. Конфигурируется с помощью GSettings. Имеет два режима работы. В первом режиме позволяет переключаться между всеми окнами всех приложений на всех воркспейсах без группировки. Во втором режиме позволяет переключаться между окнами текущего воркспейса, как в классических desktop environments;
  • Alternative status menu — разделяет в меню статуса пункт выключения питания на три разных пункта — “Suspend”, “Hibernate”, “Power off”;
  • Battery remaining time and percentage — добавляет в стандартный индикатор батарейки текс с уровнем заряда и прогнозируемым временем работы/зарядки. С помощью GSettings устанавливаются разнообразные режимы отображения.
  • Brightness control — добавляет индикатор яркости подсветки матрицы. Имеет смысл для ноутбуков;
  • Cpu temperature indicator — добавляет индикатор температуры процессора, полученной с помощью lm-sensors. По клику в меню-блоке показывает набор остальных температурных зон lm-sensors;
  • Dash and overview click fix — изменяет поведение клика по иконке favorite-приложения из dock на слое overview. Вместно стандартного поведения gnome-shell (переключение на приложение по клику, запуск нового инстанса в новом воркспейсе по клику средней кнопкой, запуск нового инстанса в текущем воркспейсе по клику с зажатым Ctrl) по клику происходит запуск инстанса в текущем воркспейсе;
  • Frippery Move Clock — переносит индикатор времени и даты из середины top bar в область индикаторов;
  • Maximus — убирает декорации у максимизированных окон;
  • Media player indicator — добавляет обновлённый индикатор для работы с MPRIS2-совместимыми медиаплеерами. Имеет кучу настроек по внешнему виду в GSettings;
  • Message notifier ­— добавляет индикатор новых сообщений из Empathy, XChat, Pidgin. Для Pidgin требуется плагин к libnotify (в Debian, например, это пакет pidgin-libnotify). Для XChat требуется поддержка OSD;
  • Remove accessibility — убирает из области индикаторов осточертевший всем индикатор “Accessibility”;
  • Trash — добавляет в область индикаторов иконку корзины. Иконка показывается только тогда, когда в системной корзине есть элементы, подлежащие удалению;
  • User themes — добавляет в Gnome tweak tool поддержку переключения тем для gnome-shell;
  • WindowOverlay icons — добавляет на слое overview иконки приложений поверх изображений окон;
  • gTile — добавляет индикатор для тайлингового режима выстраивания окон. Через GSettings настраивается хоткей для отображения окна тайлера (по умолчанию — Win+Space).

Эти расширения интенсивно допиливаются, поэтому на их недостатки можно закрыть глаза. Тем не менее, есть ряд нюансов:

  • у Maximus есть нюанс при максимизации окна пропадают кнопки управления этим окном. Для восстановления вида надо либо жмякнуть Alt+F10 (стандартный хоткей для возврата из режима максимизации), либо потянуть окно с зажатым Alt. Кроме того, есть известный баг с полноэкранным видео из флэш-плеера и HTML5-элемента video — при показе видео в режиме полного экрана этот режим сбрасывается и видео показывается в обычном режиме.
  • у gTile проблема с определением координат окон, из-за чего в тайловом режиме после распределения окон по лэйауту между окнами бывают зазоры;

Об экспириенсе

В общем, gnome-shell дожил до того момента, когда из базовой конфигурации и набора расширений с помощью удобного web-based интерфейса и мышки можно собрать window manager с любым поведением и внешним видом — начиная с тайлового менеджера а-ля хмонад (gTile, shellshape, Put Window + часть бихейвиора от Maximus и немного прямых рук и напильника) и заканчивая полными аналогами Mac OSX/Win7/Gnome2/KDE (панельки, модификаторы поведения, оверлеи и соответствующие темы есть в наличии). Кстати, про темы — их уже очень много и топовые темы вполне юзабельны. Есть даже полностью аутентичные, а не передранные с Win/OSX.

Если же брать во внимание возможности gjs и его байндингов для gnome-shell — то возможности по кастомизации поведения и внешнего вида становятся поистине безграничными. Говорят, что гики даже пилят на основе gnome-shell нескучные интерфейсы для показа во всяких фильмах.

Да, есть проблемы как у отдельных расширений, так и у gnome-shell (пока не доведённая до ума интеграция конфигураторов в GSettings на уровне Gnome3, довольно костыльный Gnome tweak tool, отсутствие у тем интерфейса настроек). Но эти проблемы а) достаточно шустро выпиливаются; б) имеют значение только для упоротых напрочь гиков.

В целом, связка gnome-shell + easystroke + gnome3 + gjs webapps на настоящий момент полностью удовлетворяет моим требованиям к оконному менеджеру, управляемому как можно меньшим количеством движений мышью и, по возможности, совсем без клавиатуры.

Будем подождать ещё полгода.

Comments

Про MVC

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

Wat?

Если обратиться к классическому определению технологии проектирования MVC (model-view-controller), то это такая трёхкомпонентная двусвязная атемпоральная система, в которой компоненты выполняют следующие роли:

  • model — реализует роль бизнес-сервера. Является чёрным ящиком, имеет спецификации на входные и выходные события;
  • view — реализует роль интерфейса для внешней системы (пользователя); Является чёрным ящиком, имеет спецификации на входные и выходные события;
  • controller — реализует роль «тупого клея» между компонентом “model” и компонентом “view”. Связывает событийные слои этих двух компонентов.

И тут возникает вопрос интерпретации.

Ведь что такое “controller” в переводе с английского языка? Правильно, «регулятор», «оператор». По сути — нечто, определяющее количественный и качественный подход к реализации обратных связей в системе.

Таким образом, в самой терминологии закопана лингвистическая мина замедленного действия.

И что с того?

А ничего. Много приходится сталкиваться с заявлениями о том, что «У нас тут MVC во все поля!». А на самом деле у них там PHP или C# с сопутствующими диагнозом и эпикризом.

В настоящее время в индустрии сложилась ситуация, когда кроме классической трактовки MVC параллельно существуют ещё две, скажем так, «ремесленные» трактовки. Всё бы ничего, но многие «инженеры» склонны полагать, что «шаблоны проектирования» — это некий lingua franca внереализационного описания технологий проектирования. А о каком метаязыке может идти речь, если каждый «инженер» вкладывает в понятие MVC свою, особую трактовку?

Тут стоит сказать, что есть куча разнообразных расслоений внешнего интерфейса систем (интерфейса в абстрактно-информационном смысле), логики работы этих систем и промежуточных клеевых методик соединения. Ну, для того, чтобы можно было правку компонентов производить методом «1 + 1». Но не все они претендуют на звание MVC. Будем говорить о тех, которые громко претендуют.

Трактовка первая, “numb view, jovial controller”

Компонент “view” реализует однонаправленную механику обновления интерфейсного представления. Компонент «controller» реагирует на внешние раздражители, сигнализирует о них модели, обновляет содержимое компонента «view».

Такая трактовка популярна у десктопных разработчиков старой школы и у многих веб-разработчиков, особенно у любителей «синхронных стеков времени запроса» типа PHP.

Основные отличия этой трактовки от классического MVC в том, что:

  1. в изначально атемпоральную технологию проектирования вносится понятие синхронности. Ведь ответственность за синхронизацию снимается с внешнего агента компонента «view» и делегируется компоненту «controller» или его внешнему агенту;
  2. происходит смешивание технологической и поведенческой составляющих.

Собственно, даже Фаулер в своё время задумался о проблемах MVC при попытках переложить его на синхронные системы, из чего и родились технологии проектирования MVP и PAC (одна — для технологической составляющей, другая — для поведенческой).

Трактовка вторая, “dumb model, smart controller”

Компонент “model” используется в качестве экстрактора состояния объекта предметной области из некоторого хранилища (возможно — умного экстрактора, с механизмами валидации элементов состояния). Компоненту “controller” в данной трактовке делегируется роль бизнес-сервера.

Такая трактовка популярна у разработчиков клиент-серверного энтерпрайза и различных любителей ActiveRecord'ов. Сопутствующие технологические стеки вспоминайте сами.

Отличие этой трактовки от MVC в том, что это вообще не MVC.

Капитан Очевидность, для этого уже есть субпаттерны. И вообще. В чём проблема?

Проблема в том, что архитектура архитектуры информационных систем — это философия сегодняшнего технологического мира. Философия отличается от технических наук адихотомичностью и принципиальным неприятием систематик.

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

Нет, чтобы назвать технологию проектирования «графический интерфейс пользователя — клей — поведенческая модель». Или «форма — коннектор ­— ActiveRecord». Или…

В общем, не надо путать философию и инженерное дело. А то так и будете жить в мире файлов model.php, инкапсулирующих работу с ORM'ом.

Не называйте клей регулятором.

Comments

NНТЕГРАТОРАМ

Ребят, запомните одну нехитрую штуку.

То, что вы называете системной интеграцией — это минирование колхозного поля.

Объясняю, почему

У любой информационной (автоматизированной, автоматической, программной) системы есть следующие фундаментальные компоненты:

  1. аппаратно-программная системная платформа (сетевая и серверная инфраструктуры, технологический стек уровня операционной системы);
  2. аппаратно-программная прикладная платформа (аппаратные средства СКД/СКЗИ, аппаратные эффекторы, программная платформа, сопутствующие прикладные средства);
  3. платформа размещения данных (СУБД, файлово-ориентированные сервисы, документохранилища).

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

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

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

В случае с однонаправленной интеграцией для тупого data mining всё это не так уж и страшно. Просто потому, что интегрируемым системам глубоко наплевать на то, что в итоге будет собрано в эти ваши гиперкубы. Но даже в таком тупом деле есть подводные камни — при изменении related схематики данных интегрируемых систем интеграционный «клей» становится недееспособным.

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

Если же сильно не повезёт и интегратор выберет решение с технологическим стеком, отличным от технологического стека ваших систем, то вы можете попасть на пополнение личного состава вашего отдела разработки принципиально новыми товарищами, знакомыми с этим технологическим стеком.

Резюме

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

Кроме того, десять раз подумайте — вполне может быть так, что лучше доработать ваши системы для seamless-интеграции на уровне данных, кода и концепции с выходом на аналитику, нежели приглашать системного интегратора и через некоторое время менять работу.

Comments

История успеха

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

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

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

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

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

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

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

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

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

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

Морали нет.

Comments

Про рефакторинг

Как о нём думают

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

Как всё на самом деле

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

И на индийских фермах пишутся не околоклассические произведения, а слабосвязные шизофазические очерки о сложной обезьяньей жизни, богатом обезьяньем же внутреннем мире и нежной любви обезьян к абстрагированию, раскладыванию по полочкам и самообучению на работе. Эти очерки могут представлять некоторое асимптотическое приближение к «Войне и Миру», но, к сожалению, у них есть одна проблема: оригинальное наполнение каркаса, кроме большого веса, должно было быть правильно и корректно связанным и сброшюрованным, дабы стопки томов не разваливались в ходе эксплуатации прототипа.

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

  • стопки структурных единиц кода связываются бечёвками, скрепляются разнообразными скобками и зажимами, купленными в ближайшем распродажном магазинчике канцтоваров фирмы «Гамма, Хелл и компания»;
  • внешнее API стабилизируется, друзья индийских обезьянок привыкают к рингтонам товарищей и дико фрустрируют от их смены, а жизнь идёт быстрее, чем постановка ТЗ на рефакторинг;
  • хранилища данных (их структура и наполнение) наполняются определёнными продуктами, причём характер наполнения, как правило, гораздо злее линейной зависимости от времени;
  • индийские разношёрстные товарищи умирают, рождаются, растут. Иногда пьют и теряют ключи от комнатушек — и тут же пристраивают новые, иногда женятся на индусских разношёрстных девочках из соседних каркасных прототипов и пристраивают при этом подземные ходы и чердаки для свиданий и рождения новых разношёрстных товарищей, причём делают всё это в тайне от своих друзей по счастью.

Соответственно, в таких условиях бурная реальность дико и неукротимо обгоняет предсказуемую и стабильную фантазию. И вот, когда нам, вроде бы, никто не мешает, а то, что было сделано, — работает, оказывается, что:

  • нам надо либо расшивать пачки (при этом выбрасывая на помойку старую продукцию фирмы «Гамма, Хелл и компания» и покупая новую, принципиально лучшую и более яркой расцветки), либо брать новую компанию разношёрстных товарищей и ставить им задачу написать ещё листков дабы подоткнуть их вместо старых. При этом, как правило, не совпадает всё — и размеры старой и новой стопки, и шрифт, и стилистика. А товарищи вливаются в старую компанию и продолжают увеличивать энтропию и без того весёлого мира. Что характерно, старая и новая пачки листков с кодом остаются жить рядом;
  • нам надо заводить специальных умных товарищей, дабы блюсти внешнее API (поступать иначе — чревато прекращением сношений с внешним миром). А это снова увеличивает энтропию весёлого мира. И добавляет места для жизни разношёрстным товарищам;
  • нам надо каким-то образом менять форму и содержание хранилищ данных, да так, чтобы все были счастливы. А то содержание начнёт гнить, вонять, и к нам никто не будет ходить в гости;
  • у нас, ВНЕЗАПНО, накопилась критическая масса: разношёрстных товарищей; листов с кодом, летающих по каркасному уже вполне себе стопятидесятиэтажному непрототипу; гнилых данных в хранилищах (которые занимают те же стопятьдесят этажей, но уже вниз, под землю); соседей, которые охреневают от происходящего, но при этом продолжают тайком жрать гнильё с минуссемьсяттретьево этажа; сопричастных товарищей, которые с умным видом сидят в пентхаузе и продолжают по скайпику болтать с новыми соседями из принципиально нового, модернового небоскрёба, строящегося по проекту германских олапкубистов.

Забудьте то, что было написано выше

Выше была стрёмная лирика. Рефакторинг — это замечательное занятие. Но когда нет ограничений в архитектуре системы, нет больших объёмов наследованных данных, нет стабилизированных внешних API и коллектив разработчиков нативен, а уровень доверия, профессионализма и человечских качеств внутри него высок.

Если у вас не выполняется хотя бы одно из этих условий — заниматься рефакторингом не нужно. В таких условиях серебряная пуля может прилететь в вас самих.

Comments

Морской бой

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

Сегодня вот решил сходить таким образом на «Морской бой» — и почти не прогадал. Просмотр фильма попытались испортить два внука Кавказских гор, гыгыкавших своим протяжно-отвязным гыгыканьем первые пятнадцать минут, но потом, видимо, действо дотронулось до светлого и доброго за их небритыми фейсами и мальчики успокоились.

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

По порядку

Комиксовато из-за общей постановки сюжета (неудачник-девочка-превозмогание личностных проблем-овладевание миром^Wзлом и девочкой) и из-за технологическо-игровых оказий. А оказий много, — начиная с реплик конопатого кроликообразного Орди и заканчивая бессмысленностью поведения ГУМАННЫХ, НО ОБИДЧИВЫХ элиенов. Отдельно радует проработка разнообразных высокотехнологичных моментов типа подсвечивания радиолуча в открытом космосе. Ну да бог с ней, с комиксоватостью.

Юмор в фильме есть, он добрый и семейно-милый (чего только стоят глуповатые и расслабляющие сцены в начале фильма). Местами он слегка армейский, местами слегка националистический (футбол ногами об мяч с японской командой).

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

Драмы много. Почти все драматические сцены объединены с жутким экшыном. Жуткий экшон, в свою очередь, славно усилен мощными (но неназойливыми) спецэффектами, которые не мельтешат треугольничками, а чётко и ударно формируют волны инфернального п-ца, в который попадают наши кораблики. Чего стоит только отключившийся «Иджис». Или «Фаланкс», который не осилил отстрелить воздушные цели.

Про пафос писать не буду, он и в Африке пафос. Наши ещё долго так не научатся снимать. Для этого надо боготворить Родину и не думать, что где-то есть другая.

Ладно, хватит о хрени. Каждый в фильме увидит своё.

После просмотра осталось две сильных эмоции. Первая — «Ребята, а где раскрытие темы чужих? Почему? За что? Где инвазия и герилья?». Вторая — «Это круто. Это тааак круто».

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

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

Вот.

Comments

Про подходы

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

В этот раз сидел в столовой, читал его F-book (ну, Facts&Fallacies) и залип на факте 33 про тестирование. Это факт, в котором говорится а) про обязательно существующие бреши в логических путях; б) про невозможность гарантировать отсутствие ошибок без проведения структурного тестирования.

У меня на середине текста этого факта в голове что-то перещёлкнуло и я залип на ассоциативных рядах.

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

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

Классический подход нашей разработки автоматизированных систем — двунаправленное проектирование: система строго рассекается на N слоёв, каждый из слоёв прорабатывается эскизно, потом детально, потом послойно проводится редукция дублирующей логики и фрагментация сложной data-driven логики. При этом преследуется гнусный и практически неодобряемый в наше время замысел, суть которого выглядит так: «Конечные автоматы — кратчайший путь к коммунизму»: снизу идёт отработка, оптимизация и минимизация логических карт, применение метода Квайна, синтез конечных автоматов и реализация их в коде/железе согласно самым богомерзким канонам теории надёжности; сверху идёт отработка потоков данных, сигналов, нежной семантики макромира и натурное моделирование разнообразных макетов, чебурашек, йети и космических дредноутов. После этого где-то посередине оттестированный бихейвиор сталкивается с оттестированной логикой — и из костылей, стекловаты и угроз расстрела рождаются технические задания на доработку и того и другого. И так по нескольку итераций «туда-обратно», пока вредители и враги народа не найдут своего прибежища где-нибудь в основании фундамента нового почтового ящика.

Может быть, из-за упёртого материалистического мировоззрения (а это, как известно, отрицает непознаваемый внутренний мир компьютерной требухи и разнообразных «богов из машины»), а, может быть, и из-за несовершенства матчасти, такой метод разработки автоматизированных/информационных систем был широко распространённым и, даже, вполне академичным. Причём, он практиковался даже не в 50-х и 70-х годах, а жил и цвёл вплоть до середины 90-х, обрастая ЦВМ, императивными и не очень императивными языками программирования, методологиями и ГОСТами. Мне довелось смотреть на это вживую в детстве, хотя понял смысл этого действа я только через двадцать лет :)

Надо сказать, метод простой, действенный и офигенно эффективный. Куда там до него буржуям с их методологиями CASE, TDD и Agile/Dropdown (которые, к слову, родом из тех же 50-х годов)? Советский метод прост, эффективен, дичайше масштабируем, требования к квалификации персонала минимальны, знай только контролируй. И ошибок в логике нет. Все вопросы к тем, кто пишет спецификации и пережёвывает предметную область в сычуг для низкоуровневых разработчиков.

У замечательных, разумных и человеколюбивых империалистов человек и его гений всегда ставились во главе угла (это сейчас они, благодаря молоху индустрии ПО, прониклись почти коммунистическими идеями о том, что управлять госу^W^Wписать ПО может даже домохозяйка). Поэтому методы разработки были (да и сейчас есть) достаточно человеческие — они рано отказались от двухсторонней разработки ввиду её дороговизны (необходимы три или более достаточно больших коллектива), они пытались и пытаются всячески автоматизировать процесс разработки, абстрагировать разум человека от примитивов и оптимизировать затраты. Что из этого вышло?

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

Не буду кидать тут идеологические и ультраправые лозунги.

Скажу, что книги Гласса очень хорошие, добрые, но при этом достаточно сказочные. Как и вся индустрия разработки современного ПО.

В индустрии ПО каждый первый считает себя творцом при том, что реальных творцов — процентов двадцать. Остальные — мудаки, заменившие морфологию и семантику серебряными TDD и бронзовыми Agile-фаллосами. Этакий забег миллиаров диких монголов на Тибет с целью покорения Эвереста. Монголы мрут, Эвересту пофиг, а тибетские монахи охреневают от идиотизма первых и непоколебимости второго, но при этом с удовольствием пользуются и первыми и вторым.

Вот такие ассоциативные ряды про тестирование и разработку. Читайте Гласса, любите ближних, ищите иные способы расширения коллективного сознания.

Comments

ASUS eee Note

Добрый вечер всем! Меня зовут Сергей Василенко, у меня был телефон на Android и я на нём читал книжки.

Андроидофон я в своё время купил для навигации во время мотопоездки Пермь — Москва — Ст. Петербург. Потом начал читать на нём книги, потому что мелкий ноут во время поездки пришёл в негодность. Читать бумажные книги я считаю мракобесием и издевательством над сутью древесины. И вообще — не балуюсь этим с двухтысячного года. Только электронные книги разной степени свободности, только донейшыны авторам.

Устал от чтения с маленького экрана и стал уже не подспудно, а вполне осознанно приглядываться к планшетным выкидышам индустрии. К тому времени уже достаточно начитался о разных планшетах и ридерах и всегда в ощущениях от прочитанного чего-то не хватало. Чего-то такого, что меня бы заставило сказать «хочу эту железку».

По моим скромным требованиям выходило, что читалка не должна мне мешать:

  • читать книги форматов fb2, epub, txt, pdf, djvu;
  • черкаться по ebub и pdf;
  • набрасывать время от времени какие-либо заметки.

iPad — унылое многофункциональное говно, заточенное под потребление контента, на котором нельзя рисовать. Вернее, можно. Но так, что лучше не надо.

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

E-ink-ридеры — все поголовно какое-то однообразное говно. Просто говно. Сами пробуйте, поймёте.

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

Чем дальше я читал обзоры — тем больше склонялся к ASUS eee Note. Судя по отзывам, это была замечательная рисовалка-читалка с линуксом на борту и, соответственно, с приличными возможностями кастомизации. Опять же, сенсорный экран по эм-сенсорной технологии с чувствительным к нажатию стилусом — это вам не абы что.

Так получилось, что у меня нашлись лишние 6500 рублей, а в городе нашлась одна-единственная железка. И я её купил.

Железка для гиков. Не-гикам дальнейшее чтение противопоказано.

Начал мучить её, пробовать на прочность встроенный линакс, ставить софт и проверять, как оно работает.

Сначала пара пунктов про прыщи:

  • Встроенный линукс хорош. Есть консоль;
  • Сторонний пакетный менеджер — сторонний. Консоль ставится через него;
  • Сторонний софт, ставщийся через пакетный менеджер, — глючный. Не исключено кирпичевание с последующей разборкой железки;
  • Через пакетный менеджер ставятся файлотеребилка, fbReader и LightExplorer;
  • LightExplorer — это такой браузер;
  • Браузер не поддерживает сложный джаваскрипт, канвасы, флайшь и прочую новомодную мишуру;
  • Браузер нужен, чтобы закидывать на устройство контент;
  • Контент на устройство закидывать надо через браузер, потому что из-под линукса не работает родная софтина eee Note, которая необходима ещё и для работы планшетки в режиме компутерного дигитайзера;
  • Есть вайфай;
  • Есть поддержка карт SD, но она бесполезна без виндовой софтины;
  • Есть возможность играть медиафайлы (и qtmpc/mpd через пакетный менеджер), но без карты SD эта возможность бесполезна;
  • Софт из пакетного менеджера изрядно прыщавый;
  • Софта из пакетного менеджера много и он почти десктопный;
  • Есть много разнообразных шрифтов начиная с семейства DejaVu и заканчивая Liberation'ом;

Теперь о том, ради чего всё затевалось:

  • Приличный крепкий и строгий чехол из коробки;
  • Экран — классный, хоть и чёрно-белый. Контрастность сильно зависит от внешнего освещения. Степень детализации — очень крутая. Обновляется очень быстро. Иногда бликует, но это мелочи;
  • Стилус — удобный. Чувствительный к нажатию. Рисует с небольшой задержкой, но это лечится через консоль (смотрите предыдущий пункт и интернет); При лечении задержка пропадает, но появляются сомнения в живучести батареи;
  • Звук — сойдёт;
  • Сенсорные кнопки отключаются;
  • Экранная клавиатура удобная за исключением того, что, в зависимости от контекста, русский язык, английский язык и цифро-символьный режим переключаются в разном порядке;
  • Разнообразные читалки читают то, что нужно и как нужно. Читалка pdf — лучшая среди виденных мной читалок. Вообще никаких нареканий. Всё остальное читают fbReader и смотрелка Djvu. К ним нарекание одно — это портированные десктопные приложения, поэтому они плохо адаптированы к планшетному способу управления; Иконки мелкие, менюшки, ну вы поняли;
  • Есть вполне достойный словарь;
  • Органайзер, голосовые напоминания, ведение записок, черкание поверх книг, синхронизация с Evernote;
  • Работает 14 часов; Можно твикнуть процессор и ускорить опрос дигитайзера — время непрерывной работы падает до 8 часов, но железка становится суперскоростной;
  • Камера с режимом съёмки «белой доски»;
  • Возможность ведения многострочных записок с кучей разных подложек, поверх которых можно рисовать.

Собственно, последний пункт и оправдывает название железки. Это именно «ноут», универсальная электронная тетрадь. У каждой страницы которой можно менять линовку, которая автоматически переносится на следующую страницу.

Из коробки доступны более 40 разнообразных подложек (от линовки тетради до клеточек, визитницы, календаря, туду-списка и декартовых координат). Более того, устройство поддерживает добавление своих подложек.

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

Ну и бонусом:

  • Редактор позволяет снимать камерой вайтборды (и не только, просто для вайтбордов есть спецрежим, который подтягивает контрастность) и вставлять в заметку. Поверх можно рисовать, естественно. Получается достаточно круто. При должной подготовке задников можно делать чуть ли не досье на людей, не говоря уж о картах прототипирования ПО :)
  • Поскольку устройство имеет ЭМ-сенсорный ввод, то под перо можно положить бумажку с чем-нибудь нарисованным и обвести это что-то.

Что плохо?

А плохо вот что:

  • Экран пассивный. Отсутствие подсветки сильно мешает. Я понимаю, что это из-за энергопотребления и настойчивых просьб Wacom, но...
  • Не самая лучшая технология эм-сенсора. Из-за этого при наклоне стилуса пятно контакта достаточно сильно гуляет. Лечится калибровкой;
  • Из-за софта работы с ПК, написанного только под Windows, загрузка данных под линаксом превратилась в выкладывание книг на мою файлопомойку и последующую загрузку файлов с помощью встроенного браузера;
  • Сырость софта. Возможности железки используются далеко не полностью. Видимо, ASUS решили прозондировать рынок (что косвенно подтверждается опенсурсностью прошивки и софта).

Резюме

Это железка не для любителей читать беллетристику или играть в “Angry Birds”, читая твиттор у себя на кухне. Она предназначена для людей, которые читают книги, рисуя на полях или записывают мысли при каждом удобном случае. Или рисуют прототипы ПО. Или майндмапы. Или ведут письменный дневник. Или... В общем, если осмысленно пользуются ручкой и бумагой больше одного раза в день.

Я пищу от восторга. Программистам — рекомендую.

Comments

*Киношное*

Решил посвятить вечер тематическому просмотру фильмов про киборгов.

Так получилось, что с братом отсматривали сегодня художественный фильм “Robocop”, который у нас известен под названием «Робот-полицейский». Смотрели в режиссёрской версии, которая чуть более жестокая, чем театральная.

Первый раз я смотрел этот фильм в 1995 году, потом пересматривал где-то в 200#. Уже не в первый раз замечаю за собой, что с возрастом (да-да, 27.5 лет, все дела) стал острее и как-то комплекснее воспринимать кинематограф, в то же время обращая внимание на детали.

Пол Верховен воообще молодец, а в «Робокопе» оторвался на полную катушку. Видимо, тогда в Америке всё ещё была демократия с намёком на самоиронию и то самое «гражданское общество семидесятых». В общем, трава была зеленее и далее по тексту. Может так оно, а может и нет, но это кино (особенно по сравнению с сегодняшними мегаблокбастерами) изрядно наполнено гэгами, отсылками, аллюзиями и прочими ароматизирующими добавками, ради которых стоит смотреть это кино вообще.

Ну и вообще, стоит поулыбаться всяким обыгрываниям имени вице-президента ОуСиПи, машине “6000 SUX“ (отакже её истории в фильме вообще и рекламе с издевательским текстом «american tradition — 8.2 mile per gal.» в частности) да внутрифильмовой рекламе под музыку из «Терминатора».

Кстати, о внутрифильмовом видео. Где-то рядом с таймстампом 1:15:50 есть новостная врезка, в которой ведущие комментируют сюжет. В сюжете покааны лесные пожары вокруг Санта-Барбары, вызванные испытаниями лазерного оружия с космической боевой платформы. На фоновой картинке, иллюстрирующей точки поражения земной поверхности из космоса (к слову, там изображён Карибский бассейн), видно, что расстреливалась дружественная Мексика, а Санта-Барбара попала под раздачу совершенно случайно. Также дикторы говорят, что в пожарах погибли два бывшие президента США. (Бгг, кто бы это мог быть, если фильм снимался в 1987-м году, а действие происходит в близком будущем? :D)

Дико рекомендую пересмотреть, в общем. Вот.

Comments

Я фееричный идиот

Ввалил 25 тыров в шкафы-купе, а их до сих пор не заинсталлировали. Профейлили с размерами и сейчас переделывают.

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

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

Comments

*Fabarm SDASS Trainer Nickel*

Договорились с дядькой-продавцом сегодня в обед.

У меня с утра заболели почки, отсиживался до 12, а там отпустило и я продрых до середины обеда на работе. Стыдно, зато почки отпустили, вроде больше не болят.

В общем, прибежал я в пене и мыле и сразу полез лапать железку.

Плюсы

  • Он не блестящий. Просто матовый никель. Смотрится очень круто на контрасте с тактическими собратьями;
  • Один зацеп выбрасывателя с достаточно крупным зубом;
  • Всё отфрезеровано как надо, даже снята фаска у окна подавателя. Туда можно совать палец без риска ободрать ноготь до кости о зацепы;
  • На стволе — перфорированный кожух. Это значит, что за горячий ствол лапами не ухватишься;
  • Самый главный, на мой взгляд, плюс — цевьё длинное и краем заходит на ствольную коробку. Это значит, что при резком движении перезарядки мизинец не попадёт между цевьём и ствольной коробкой. Счастливые владельцы помп знают, какая гамма чувств сопровождает такое попадание :)
  • Выемки под хват цевья сделаны рифлёно-шершавыми. Не нужен будет колхозный тюнинг с обклейкой цевья абразивной шкуркой;
  • На цевье есть две запрессованные втулки с резьбой под установку планки Пикаттини;
  • Задняя антабка интегрирована в рукоять и не болтается снаружи;
  • Установлен приличный затыльник;
  • Ствол хромирован, внутри всё блестяще и круто;
  • В базовой комплектации влезает 7+1 патрон;
  • Масса — 2.7 кг;
  • Баланс ровно между началом цевья и ограничительной скобой спускового крючка.

Минусы

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

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

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

Открытых прицельных конечно недостаточно для работы на дистанциях больше тридцати метров, но это не так уж и страшно — при желании конструктив позволяет воткнуть коллиматор.

Договорились, что времени на подумать у меня до понедельника.

Субъективно железка мне очень понравилась. Из одноклассников — вертлявее и легче рема-870, серьёзнее мосса-500, при этом возможности для апгрейда где-то на уровне бенельки.

Буду думать, как бы не найти денег на неё. Надеюсь, что не придумаю :)

Comments (2)

Сегодня посмотрел художественный фильм «Intouchables».

Фильм, вроде бы, основан на реальных событиях. Взять его можно тут.

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

Comments

*Лимбо*

Ритм жизни убивает.

Не то, чтобы я хотел нажаловаться на жизнь. Мне такой ритм нравится, он не даёт думать о всякой чуши и бухать с девочками. (Юлька, Наташка, Линка. Если читаете — пламенный вам привет и пошли бухать, например!)

Для понимания — сегодняшний распорядок дня:

  • Проснулся от звонков сотового. Трое разных людей звали на одно и то же совещание по автоматизации. Проматерился, отпинался, поехал;
  • Час просидели на этом совещании. Я изо всех сил пытался отвечать на вопросы односложно, но даже в таком режиме ЧАС!
  • Ещё час просидели на втором совещании по результатам первого. Была раздача ЦУ, вроде всё ок;
  • Попил кофе;
  • Ещё час прообщались с подрядчиком по внутренностям и деталям системы. Пришлось блистать напускным красноречием;
  • Два часа покодировал, час поработал поддержкой вместо программиста, который в отпуске. Ещё час потеребил кластер.

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

Программирование — это плохо, быть начальником — ещё хуже. Опасайтесь.

Comments

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

Есть мнение, что о гладкостволе мне придётся забыть, потому что надо потратить 25 тыров на чёртовы шкафы.

Ну и хрен с ним, не последний день живу.

Comments

Файт фо фридом

Преамбула: жил да был у меня один вялотекущий сайт...

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

В сумасшедшие сроки типа двух дней после новогодних праздников я сделал ему домен, поднял хостинг, сверстал и кинул туда визитку.

А каталог так и остался доделываться, потому что были вещи гораздо более важные. Каталог остался висеть в постпоунед-тасках на два месяца.

Фабула. На днях мне предложили пополнить (или, скорее, наполнить) домашний арсенал помповым дробовичком Fabarm SDASS Trainer Nickel:

Собственно, он

Предложение более чем адекватное — настрел в районе 1000, ключ для сменных стволов и всякие ништячки за 25000 русских рублей. Думал два вечера — сначала над фактом покупки (постепенно уверяясь в том, что тактическость стрелялки надо послать нафиг), потом над тем, где взять эти пресловутые двадцать пять тысяч.

Вспомнился этот сайт, достался из закромов. Сижу, дозабиваю каталог.

Я сочувствую тем людям, которых принято называть «контент-менеджеры». И радуюсь тому, что у меня своя CMS, а в ней удобно зафигаривать большие объёмы данных в каталог и есть автотамбнейлер для картинок.

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

Comments

*Хехе*

Как-то так и живу. Так уж получилось, что появилась удобная полка под банки и принтер, теперь их можно складировать тут вместо холодильника.

Фотограмма

Стол отторцую в выходные, на неделе приезжаю домой поздно, соседи не поймут шума фрезера.

Comments

Жизненно-рабочее

Вторую неделю прочно живу семейной жизнью с нашим виртуальным кластером. Всего-то семь машин. Схематично кластер выглядит так: Схема

Замучался. Во-первых, федора, при всёх её искоробочных ништячках, совсем не такая, как дебиан. И в инсталляторе нет dd, например. Во-вторых, панель vmware vSphere — феерический кал.

Но это всё эмоциональная лирика.

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

Во второй день я развернул все образы федор, раскидал политики xinet.d, настроил сетевые интерфейсы.

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

Было решено попробовать завести на гипервизоре наш текущий образ. Да, он поднялся. Через день копирований, монтировок и проверок. Но он не увидел гигабайты памяти и ядра. Потому что ставился в древние времена без HalMPS.

Больше на той неделе я этим заниматься не стал, были другие дела.

Сейчас вот сижу, разворачиваю win server 2008 и думаю о жизни.

Comments

Сегодня N+1-я девочка обозвала меня человеком с компьютером в мозгах. Ощущаю повреждение.

Comments

Я тут как-то ругался на то, что наши воздушные вояки напортачили на балке хвостового винта белой обводкой шрифта.

Внезапно, свежие фоточки покраски транспортников:

фоточка

Исправились, няшечки. Никакой обводки. Молодцы.

Comments

Про gnome-shell и ыкстеншоны

Как всем линуксоиднутым, мне хочется иногда тыкать палочкой самый свежий софт. Потому что хочется. Весело, убивает время, не даёт скучать.

Градуса веселью добавляет тот факт, что я давным-давно как-то овладел и привык к Debian'у, в котором «кровавые мейнтейнеры ©» по определению не дают появляться самому свежему софту (тут тоже хотелось воткнуть значок compose+o+c, но я сдержался).

К чему всё это? А вот. Впилил (месяца полтора тому как) по большой грусти в свою систему экспериментальную ветку. Значит, это чтобы совсем весело стало. Слава богу, что экспериментал нынче не тот, что был три года назад, и ходячие мертвецы в нём не появляются, трипперы не мутируют, да и блобы как блобы.

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

Долгими зимними вечерами нырял я в дебрях онлайн-каталога ыкстеншонов (он же extensions.gnome.org). В процессе этого ныряния я, нечаянно, получил множественные aural orgasms, как любит выражаться незабвенный Baxxter. Эти самые оргазмы были вызваны тем, что сенсорика общения с линаксом стала напоминать что-то правильное, доброе, вечное, а не корявую реплику экспириенса от общения с виндой или говносью-десять.

Окончательно в шок меня повергла интеграция браузера и оконного окружения, которая позволяет из браузера управлять загруженными ыкстеншонами. Этакая control panel 2.0. В общем, потенциал есть, но пока мало что реализовано.

Так вот, после теребления многобразия этих самых ыкстеншонов я пришёл к минимальному их набору, который позволяет жить счастливо и не хотеть этих ваших кодаэ, эфиксцэе и эликсдэе с гномами-2.

  • Alternate Status Menu — разбивает пункт выключения питания в персональном меню гном-шелла на подпункты «Сон/Гибернация» и «Выключение питания»;
  • Battery Percentage Indicator — показывает рядом с иконкой батареи в области нотификаций текст с цифровым представлением оставшегося заряда;
  • CPU Temperature Indicator — отображает в области нотификаций текст с температурой процессора. При клике по этому тексту показывает всплывающий пузырь с другими показателями sensors;
  • Classic Systray ­— спорная штукенция, переносящая значки из нового системного трэя в область нотификаций. С одной стороны, хороша для всяких дедбифов и шаттеров с трансмишнами, а с другой стороны — дублирует возможности ыкстеншона-дока и добавляет в область нотификаций много шума;
  • Panel-Docklet L — очень крутая и вообще маст-хэв штукенция. Организует гибко настраиваемый док, который (при желании и подкручивании настроек либо выборе готового профиля) может заменять собой Docky/панель задач gnome/док гном-шелла. Может переключать рабочие пространства, жить на разных мониторах, скрываться, интегрироваться с трэем, делать удобным контекстное меню заголовка окна;
  • Remove Accesibility — да, инвалидам — инвалидово. Нам не нужна в области нотификаций иконка, которую мы не будем использовать;
  • Remove User Name — убирает имя пользователя из пункта вызова персонального меню на панели. Экономит немного места;
  • gTile — перспективный ыкстеншон. По идее, должен работать тайлером. По факту пока получается, но с оговорками. Найти в ыкстеншоне автоматический тайлинг мне не удалось. Возможно, плохо искал. Зато есть возможность выстраивать окна как хочется по гибко задаваемому гриду, есть нормальная поддержка мультимониторности и есть встроенные лэйауты.

На этом списке я пока остановился, остальные потеребленные ыкстеншоны сложил в коробочку и буду их изредка доставать да смотреть, что там поменялось.

Я специально умолчал о Music Integration и Native window placement, потому что они хоть и крутые, но пока сыроватые. Так, в ыкстеншоне музыкальной интеграции мне так и не удалось завести поддержку deadbeef.

В общем, сейчас выглядит это как-то так:

Нотариально заверенный скриншот

Извините, что мелко. Пробуйте сами, смотрите на своих мониторах. Не линуксоиды, штоле?

Comments (2)

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

Тут решил досамообразоваться и восполнить пробелы в своём знакомстве с творчеством Станислава Лема. Я его читал, но как-то безсистемно, в ранней поздней школе, и с позиций восторженного фаната эпических саг о полётах советсткого Человека™ к звёздам с целью их коммунизировать. Я и сейчас не сильно далёк от мнения, что это не так уж и плохо, — а уж тогда, в той самой ранней поздней школе, без налёта словоблудия и показной интеллигентности, что есть сейчас... В общем, Лем показался мне тогда скучным, странным, даже каким-то девиантным и был заброшен.

Сейчас потихоньку читаю «Сумму технологии» в третьем издании.

Урчу, серьёзно. Чтоб действительно понять то, что он пишет, пришлось больше десяти лет разрабатывать всякие софты и читать уйму книжек. Дядька местами хорош, местами гениален, местами хочется перечитывать снова и снова.

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

В общем, всем кодерам, программистам, системотехникам и остальным computer-science-addicted — читать Лема в обязательном порядке. По крайней мере, «Сумму технологии».

Comments

*GTD'шное*

Примерно 20 дней назад я хотел подзабить на работу (в хорошем смысле этого словосочетания, ну, скажем так, напрягаться на стандартные начальнические 8 часов), отдохнуть и немного поделать ремонт дома, например. Или встать на лыжи. Или whatever.

Фига с два. Снова затянуло.

begin:

Работаю до пяти утра, сплю два часа, дальше в ВУЗ к восьми-девяти на работу. в интервале с восьми до десяти вечера еду домой (ну или в шесть часов вечера в качалку, где занимаюсь примерно до девяти вечера). Дома перекусываю, смотрю какое-нибудь туповатое кино для разгрузки мозгов. Залипаю в это время на твитторы/гуглоридеры. В двенадцать-час сажусь работать. Работаю до пяти утра.

goto begin;

Надо как-то себя демотивировать. Конечно, радует, что мне до сих пор, несмотря на всё произошедшее в прошлом, хочется программировать (и всё ещё нравится программировать). Но жить так надоело.

Женщину завести — не вариант.

Comments

О перепроектировании

Сижу, перетеребливаю древнюю CMS двухлетней давности. За давностью лет всё забыл, — перечитываю код, чтоб вспомнить, что там к чему. Натыкаюсь на замечательный кусок кода:

Net::Redirect( Net::URL( Router::GetEffectivePath() -> Set( "./".$loStencil->Id."/" ) ) );
return true;

Причём этот кусок кода расположен в терминаторе маршрута рендеринга формы редактирования страницы. А это значит, что loStencil там — явно лишняя.

Должно глючить и сбоить. Или ругаться.

Умный Net::Redirect при анализе относительных путей видит, что подсунули нам явную хрень и отбрасывает этот пустой путь. А маршрутизатор, в свою очередь, смотрит, что из обработчика маршрута идёт попытка выйти за маршрут ( GetEffectivePath() ), и устанавливает путь маршрута в хэш текущего обработчика.

Таким образом, эта хрень прячет явные ошибки, которые валялись по всему коду. А должна ругаться.

Я к чему всё это? Надо чаще давать коду падать. Кидайте ыксепшоны, возвращайте невалидные результаты, но не глушите проблемы умной логикой.

P.S. Понял, кстати, что дико невзлюбил ПХП за эти два года почти полной с ним разлуки.

Comments (2)

Перерабатывать вредно, поцоны.

Поймите правильно, перерабатывать мусор, например, — дико полезно. Потому что жить в мусоре нельзя. И перерабатывать ягоды в варенье полезно. И уран тоже полезно перерабатывать в ядерные дубинки. А вот перерабатывать в снеговском смысле — неа. Нифига не полезно.

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

Не знаю, что сделать, чтоб промотивироваться. Сожрал гранат, кусок колбасы, выпил три кружки чая и прочитал гуглоридер вдоль и поперёк. А что сделать с мотивацией — не знаю. У меня тут стоит баночка бёрна, упорюсь им и сяду да доделаю сайт. Завтра проснусь с больной головой, положу набалдашник на качалку и тир.

Несмотря на всё это жизнь охуенна. У меня будет свой дом. Не сейчас, но будет.

Comments (2)

Мотоциклетное

Завтра арендую мотовоз. Надо будет перевезти сибишечку из гаражей, где она сейчас живёт, в R-Evolution. А оттуда забрать на комплекс мой зизер, который уйдёт по символической цене в 60000 рублей новому хозяину.

Вместе с зизером отдам канистру масла, релюшки, пластик и крепежные жгуты для груза.

Оформлять в ГИБДД всё будем потом, как станет спокойнее-теплее.

Comments

Нашёл тут на просторах интернета:


Comments

Чуть-чуть не дотянул до 200 000 за декабрь/первые дни января. На минуточку, это в пермяге, а не в ваших москвах.

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

Буду думать, как бы сделать так, чтобы зарабатывать больше, но делать ещё меньше, чтобы зарабатывать ещё больше.

Из итогов года:


  • Работа, работа, работа;
  • Доделал ремонт во второй комнате;
  • Купил второй мотоцикл (нагло вру, потому что бабло ещё не отдал. но обязательно куплю);
  • Купил новую машину;
  • Познакомился с прекрасными женщинами;
  • Совершенно (пыщ, тут меня должны уличить во лжи) забыл ту самую хрень с лапками;
  • Вырос;
  • Начал на постоянной основе ходить в качалку.

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

Мир всем. Занимайтесь любовью, а не программированием.
Луч поноса эплоёбам, горите в аду :)

Comments (2)

Безотносительно

Наткнулся тут на очередной женский половой манифест.

Всё бы ничего, если бы не растущее количество бабского неадеквата на единицу населения.

Доколе, поцаны?

Comments

*Задумчиво*

На днях замечательно сходил на тренировку Пермского отделения IPSC. Забавно, практическая стрельба, — это очень непросто. Даже из дробовиков. За занятие улучшил скорость стрельбы из неснаряжённого состояния с 4 секунд до 1.16. Окончательно убедился в том, что:


  • пулялку покупать стоит;
  • учиться стрелять тоже стоит;
  • правила безопасности написаны не просто так.
Один весёлый товарищ произвёл контрольную стрельбу без проверки патронника. Все просрались.

Comments

Сегодня ехал в ИВС на автобусе. Думал, традиционно смотрел по сторонам на девочек. Пробежался взглядом по рекламе в салоне, затупил, снова пробежался. Внезапно, оказывается, пермяжная реклама о\избавилась от градиентов, плашек и прочего визуального мусора. Чистые (пусть пока не очень хорошо подобранные ) шрифты, визуальная свобода и неплохо расставленные акценты.

Да, бывают кое-где ещё выкрики (ну, это когда пишут «RAZOOMный выбор». типа ЦА — глупые люди, которые не могут в сверхглубокий двойной смысл).

Но это мелочи.

Comments

http://controlflow.tumblr.com/post/14808781405/javascript-object-layout Ссылка от товарища controlflow. Пусть здесь полежит, пока я до неё дотуплю.

Comments

Тяжело отказаться от троллирования в комментариях на ресурсах типа хабрахабра. Написал комментарий, товарищ, — перед сочным жмяком на кнопку «Опубликовать» прочитай комментарий ещё раз. Хуйню же написал. Очевидную, не юморную и, в общем-то, бессмысленную.

Хватит дурью маяться, работать надо.

Comments

Закопался в работе, прошлых женщинах, всякой мишуре.

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

Будем надеяться, что всё будет хорошо. ИЧСХ, всё будет хорошо :)

Comments

Читал сегодня гуглоленту гуглоридера, наткнулся в немецком блоге на картинку. Санта на мопеде, блин.



Праздничного настроения всем, что ли. У меня с ним напряжёнка.

Comments

Новая окраска вертибёрдов Российской Армии, кстати, вполне доставляет. Но не без косяков. Шрифт на хвостовой балке — редкостное убожище по гарнитуре и обводке.



Я считаю, что армейцам в рамках модернизации надо бы пересмотреть подход к эстетической составляющей. Заказать шрифты у СЛ или Леттерхеда, подработать инфографику. Или вообще заказать нормальный, патриотичный брендбук.

Есть же в судостроении негласные правила агрессивного дизайна при конструировании военных судов. Вот так и тут.

Качественно обосравшийся противник — слабый противник.

Comments

На днях обновил transmission, а там нововведение. Нет, не так. НОВОВВЕДЕНИЕ. После скачивания торрента его прогресс скидывается до нуля, а по мере раздачи прогресс-бар растёт в обратную сторону (то есть,— налево).

Так вот. в расширенном режиме видно хоть, что написано "Seeding". В компактном режиме же ничего не написано, поэтому гадай-не хочу. То ли торрент не скачался, то ли он скачался и раздаётся. Хоть бы цветом что рисовали. Или вместо "Ratio 0.0/Idle" писали бы "Seeding". Как-то так.

Картинка для привлечения внимания:

Comments

Сегодня привёз к мотоциклу первого покупателя. Рассказал про все косяки, рассказал про бенефиции и профитюнинги. Пытался завести, но полтора месяца без заводки — это надо долго мослать. Будем заводить перед покупкой.

Я расстроился. Не люблю продавать что-то, что мне служило и служит верой и правдой. Всё-таки, мотоцикл, — это не машина, это как продавать верную собаку.

Грустно, товарищи. Зато, если всё будет ок, сменю класс и кубатуру. Пока ориентируюсь на Honda CB750 F2.

Comments (7)

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

Comments

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

Просто оставлю эти ссылки тут для дальнейшего изучения.

http://blog.newslacker.net/2011/10/stringtemplate-4-net-c-getting-started.html
http://www.antlr.org/wiki/display/ST4/Templates#Templates-expr

Comments

Пока очень минималистично и забавно.

Comments (6)