Гонка без шанса на победу

Current music: Arcade Fire - Neighborhood 2 (Laika)

Не знаю уж как ученые справляются, но у меня уже точно своя маленькая персональная сингулярность наступила. Не успел ещё ни разу сыграть в Brave New World, а тут уже новая Civilization 6 анонсирована и осенью обрушится на всех поклонников серии. В мире электронных развлечений столько интересного, столько всего хочется успеть. А маркетинг выталкивает всё новые и новые, не всегда удачные, но зачастую прибыльные вещи. Я ещё далеко не всё прошёл из того, что летает на GTX 580, а рынок стучит в мою дверь, демонстрируя поистине космический рывок, который nVidia сделала с GTX 1080. Я ещё не успел расширить свои писишные горизонты библиотекой PS3, а новости так и эдак тиражируют слухи о новой модификации PS4… Как быть? Забить на всё, уйти в пещеры и там вволю луддитствовать, играя в релизы конца 80-х и начала 90-х? Отказаться от глубины и, как миллионная целевая аудитория маркетинга, жевать жвачку рекомендованных топами мейнстримных тайтлов в отрыве от истории, эволюции и места по сравнению с другими? Вообще уйти из этой сферы жизни? Последние два варианта, впрочем, почти равнозначны, так как означают смерть хардкорного геймера.

No booze, no sense

Current music: Nirvana - Aero Zeppelin

The governor of Samara oblast Nikolai Merkushkin starts to really annoy with his petty tyranny. That was the 5th weekend this year when public alcohol sales were prohibited in my region. That’s the way things are in Russia. We have laws that ban the sales of alcohol to minors, punish drunk driving and inappropriate public behavior while being intoxicated, and politics as a populist move just add another ban instead of enforcing those already existing laws. There is not a single reason why I as a grown up man with a job, home, responsibilities and no criminal record whatsoever should not be allowed to buy a bottle of wine or beer. Not to mention retailers’ losses, this stupid act prevented me from buying classy tasty drink for the dinner while failing to prevent one completely wasted company of youngsters from making drunk noises in my neighborhood through most of the night.

no alcohol in samara oblast

Читать Ни выпивки, ни смысла по-русски.

Ни выпивки, ни смысла

Current music: Nirvana - Heart-Shaped Box

Губернатор Самарской области Николай Меркушкин начинает по-настоящему раздражать своим самодурством. В нынешнем году это уже пятый выходной, во время которого продажи алкоголя были запрещены на всей территории моего региона. Именно так в России и происходит. У нас есть законы, запрещающие продажу алкоголя несовершеннолетним, наказывающие за пьяное вождение и неприличное поведение в общественных местах в состоянии алкогольного опьянения, и всё же политики как популистский жест вводят очередной запрет, вместо того чтобы обеспечить выполнение уже существующих законов. Я не вижу ни одной причины, по которой мне, взрослому человеку с работой, жилищем, обязанностями и отсутствием судимости в прошлом, стоит запретить покупку бутылки вина или пива. Не говоря о потерях торговых сетей, этот глупый закон помешал мне купить вкусный, благородный напиток к обеду, но не смог сделать ничего, чтобы предотвратить пьяные крики компании ужратой до сиреневых свиней молодежи у меня под окнами этой ночью.

no alcohol in samara oblast

Read No booze, no sense in English.

Holy Cheeses!

Current music: Brendan Perry - The Bogus Man

xxx: программист должен получать достаточно, чтобы хватило на дорогие сыры
yyy: а если дорогих сыров в стране вообще не останется?
xxx: значит и программисты не нужны будут

bash.im

Шутки шутками, но ситуация действительно очень неприятная. На выходных пошёл я как обычно по магазинам за съестным и столкнулся с нечастым явлением: политика нашла отражение в реальной жизни, а не только в словах и лозунгах, под шум которых делаются извечные дела. Ассортимент продуктов питания заметно сократился. И сейчас я говорю именно о заметном сокращении, а не обычной для российской провинции нестабильности поставок. Когда сегодня есть овощная лазанья или консервированная селёдка в особом рассоле, а завтра партию распродали, и потом именно этот продукт в город не будут завозить годами, – это понятно. Сейчас другой случай. Импортозамещение в действии. В одном из крупнейших магазинов города представлены исключительно несъедобные сыры российского производства, в результате чего половина полок зияет бесстыдной пустотой. В другом пустых полок нет, но площадь сырного отдела уменьшилась вдвое, а из импорта только остатки двух видов немецких сыров и явно залежавшаяся экзотика с синей плесенью и ценой под сто баксов за килограмм, которую я и бесплатно отважился бы попробовать только в очень авантюрном настроении. Нет не только голландского, датского, немецкого сыра, но и того, который в любые времена, сколько я себя помню, в обилии ввозили из ближнего зарубежья: из Литвы, Польши, Беларуси, Финляндии. Ничего нет. Власть в очередной раз отыгралась за внешнеполитические обиды на своём народе.

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

Это, к счастью, пока ещё не Уругвай, но тенденция к просветлению в ближайщем будущем не прослеживается.

пустые полки в магазинах

Первомай

Current music: Lacrimosa - Sellador

Не далее как вчера утром довелось из окна запечатлеть следующую картину. Назвал я её “Торжество соц.реализма над здравым смыслом”. Если уж привозить песок на детскую площадку раз в пять лет, то никак не меньше установленной ГОСТом нормы, вне зависимости от объёма песочницы.

песочницаНу, а по-серьёзному как-то так скажу, слегка перефразируя: come to me all who labor and are heavy burdened and I will give you мир, труд, май!

Symptom of the Universe

Current music: His Name Is Alive - The Well

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

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

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

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

Ещё один повод для грусти

Current music: Meteors - The Phantom Rider

Задумайтесь на минуту о людях, играющих прямо сейчас на своих 3DS или PS2, подключенных к старым кинескопным телевизорам. Они получают море удовольствия, наслаждаясь своими любимыми игрушками, и ничто не отвлекает их от простого электронного развлечения. И таких очень много. В то время как я сижу с угрюмой миной за своим геймерским компьютером с шестиядерным хай-эндовым процессором, с двумя игровыми видеокартами, несущими на борту 6 гигабайт разогнанной GDDR5 памяти. Сегодня я провёл полтора часа, пытаясь добиться безукоризненной работы на максимуме возможного от очередной игры, но так и не сумел включить в ней SSAA (да и какое-либо заметное сглаживание вообще). Конечно, для меня не стало сюрпризом, что в опциях самой игры никакой возможности его включить нету. Я настраивал существующий профиль для игры, пробуя множество различных вариаций, но ничего не получалось. Я пробовал прикреплять исполняемый файл игры к уже существующим, проверенным на работоспособность профилям, но и здесь снова ничего не добился. Я открывал nvidia inspector (потому что nvidia control panel совершенно бесполезна) чаще, чем мне пришлось бы открывать саму игру для прохождения. На данный момент я уже реально устал от того, что мне приходится разгадывать очередной мозголомный пазл каждый раз, когда я начинаю новую игру, чтобы увидеть всё, что она может предложить. С прошлой игрой вообще некрасиво вышло: я искал решения в интернете и возился с настройкой больше времени, чем собственно проходил её от начала до конца.

И в то время, как я печатаю эти строки, неугомонное чувство ненависти восстаёт из глубин моего сознания. Оно подпитывается постоянными фрустрациями и растёт, но не может найти вектор. Кого я должен ненавидеть за всё это? Разработчиков игр, которые никогда не заботятся о потребностях продвинутых пользователей? Производителей компьютерного железа, которые предпочитают продать тысячу видеокарт lo-mid сегмента вместо полусотни экземпляров hi-end моделей и в соответствии с этим ограничивают возможности кастомизации драйверов? Огромные игровые порталы, которые считают приемлимым публиковать скриншоты вот такого качества? Массы казуальных игроков, которые не знают, из каких компонентов состоит их компьютер, и путают антиалайзинг с анизотропной фильтрацией? Или, может быть, мне стоит ненавидеть самого себя за то, что я знаю и вижу слишком много?

Read One more reason for sadness in English.

One more reason for sadness

Current music: Dead Can Dance - Garden of the Arcane Delights: The Arcane

Think about all those people who are playing on their 3DS or PS2 connected to old CRT TV at the moment. They have a lot of fun playing with their beloved toys and nothing distracts them from an easy going electronic entertainment. There are surely lots of them while I’m sitting here with a rueful mien along my custom-made gaming PC with hi-end six-core CPU and couple of top gaming video cards carrying 6Gb of overclocked GDDR5 memory. I spent last hour and a half trying to run another game flawlessly at its fullest but still was unable to activate SSAA. It came with no surprise there is no such option in the game. I modified existing driver  preset for game many times trying lots of combinations but got nothing. I attached the game executable file to older tested presets and again nothing good happened. I’ve opened nvidia inspector (because nvidia control panel is completely useless)  more times than I will open the game itself. At this point I’m really tired of the fact that I have to solve mindblowing puzzle every time I start new game  if I want to see absolutely everything it has to offer. With last game I spend more time searching for solution in Internet and configuring options than it took me to beat the game itself.

At the time I’m typing this words some restless feeling of hatred raises from the depths of my mind. Powered by constant frustrations this feeling grows but it can not find its direction. Who should I hate for that? Game developers who never care about demands of the advanced users? Hardware manufacturers who prefer to sell 1000 video cards from lo-mid segment rather than 50 hi-end models, and treat drivers customization accordingly? Huge gaming portals that believe it’s appropriate to post such screenshots? Masses of casual gamers who don’t know what hardware is inside their computers and mix up anti-aliasing with anisotropic filtering? Or maybe I should hate myself for knowing and seeing too much?

Читать Ещё один повод для грусти по-русски.

About one of my works

Current music: Kraftwerk - Pocket Calculator

I want to tell about one of the websites I was working on lately. That was a project with a long history. The first time I was involved in autumn of 2012. I added some functionality which was absent since the developer who started the site had left. Also I had to rewrite some parts of the code because of the thing I prefer to call “unscrupulous programming”. What does that mean exactly? It’s pretty easy to explain. My precursor did intentionally write code that wasn’t supposed to work just as client wanted. Instead his programming created problems during usage that were not noticeable by brief look.  There were also mischievous tricks preventing compability with other software solutions. That way he hoped client will be forced to seek his services again and again.

Then couple of times I changed some features so website could meet the changing customer’s beliefs on how it should work, look and sound. Diplomatically speaking, not all of those decisions would have found acceptance by most professional designers and web-developers. However if the client is paying then he is right and I don’t argue with that. There were some additional difficulties mainly because of  the requirement to keep adding and editing of the content simple. Low-skilled computer user should be able to update information on the site.

After all metamorphosis the final result is quite unusual combination of very different technologies which all work together nonetheless. Site is based on the WordPress CMS using few deep buried features. It uses Flash, JavaScript of course,  but the most interesting thing is how pieces of archaic technology connect with modern progressive tools there.

During the work on bringing customer’s vision into reality the biggest difficulty was background music. It was supposed to play smoothly without interruptions while visitor is browsing pages. At first, I tried to make it by placing player in background popup. Not a very delicate decision I must confess. It wasn’t very effective one as well. Browsers are surprisingly effective in blocking popups nowadays. Furthermore the ways of controlling a window from its parent window by JavaScript aren’t cross-browser. It also was too late to rebuilt the whole site to AJAX which allows certain areas of the page to change while others (the one containing player for example) stay still. So, what did I finally choose?

I used frames. Yes, there is no mistake. I really mean those creepy old things that were last time described in HTML 4.01 in previous millennium. Frames took their place among other recognizable features of Web 1.0 era and already became obsolete when I was at school. If you ask search engine about it most likely there will be caution on the first page in the list saying you should restrain from using frames. Surprisingly frames happened to be useful in my situation.

JS works way better on controlling player in near frame than in near window. The problem with frameset structural integrity (normally you can only see correct frameset if you came from the main page of the website) was solved by JS-script which checks environment of the page, and PHP code which generates missing frame on the fly if one was missed. Another classical frames’ problem with displaying correct URL in browser’s address bar was nullified by using of History API, part of HTML5 standart. It’s relatively fresh technology. Some internet browsers just started to support it in last year but History API has already found utilization. You can see it working in russian social network VK for example.

All in all I believe I created rather elegant solution though site looks nothing like a golden medal or trophy you put on the most noticeable place in a room. I learned something new, I got more experience in web-programming. However my personal feelings don’t change the fact it’s just usual official website for small business, highly influenced by customer’s taste, decent at best.

P. S. I must apologize on behalf of all web-developers for sites with such annoying and totally wrong usage of sound. As wage-earners we have to make things we would never do by our own intention (at least I hope so)…

Читать Немного о работе по-русски.

Немного о работе

Current music: Lacrimosa - Verloren

Последнее время я работал над одним сайтом, о котором хочу немного рассказать. Проект этот оказался долгостроем. Первый раз я с ним соприкоснулся ещё осенью. Тогда пришлось добавлять некоторую нереализованную функциональность, оставшуюся недоделанной с момента ухода программиста, начинавшего работу. Кроме того пришлось переписать некоторые участки существовавшего на тот момент кода из-за того, что я предпочитаю называть недобросовестным программированием. Как это понимать? Очень просто. Мой предшественник местами умышленно писал код не так, чтобы он работал, как того хотел заказчик. Он намерено оставлял незаметные на первый взгляд шероховатости, которые бы заставляли снова и снова обращаться к его услугам и препятствовали бы совместимости с фичами от других разработчиков “из коробки”.

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

В итоге многочисленных преобразований получилась очень необычная субстанция, симбиоз различных технологий. Сайт базируется на WordPress, ставшем одним из стандартов де-факто открытых движков, довольно глубоко задействуя его возможности. Есть там и Flash, и JavaScript, но самое забавное, что там причудливо сочетаются и заведомо устаревшие элементы, и довольно свежие, прогрессивные вещи, поддержка которых появилась только в последних версиях браузеров.

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

Только фреймы. Да-да, именно те самые страшные штуки, которые последний раз были описаны в спецификации HTML 4.01 в прошлом тысячелетии. Они были отличительной чертой Web 1.0 и успели выйти из моды в то время, как я ещё учился в школе. Если наобум спросить поисковик, скорее всего найдёте несколько рекомендаций обойтись без их использования. И всё же они оказались полезны.

Находящийся в невидимом фрейме простейший плеер из соседнего фрейма управляется куда лучше, чем из соседнего окна. Проблему целостности фреймовой структуры (обычно корректно сайты с фреймами выглядели только при заходе с главной страницы) помогло решить довольно изящное сочетание маленького JS-скрипта, проверящего окружение, и PHP кода, генерирующего недостающую часть на лету по результатам этой проверки. Ещё одну стандартную для фреймов проблему – корректное отображение URL в адресной строке браузера помогла решить свежая, считающаяся новым словом в вебе и таящая в себе полностью ещё не раскрытый потенциал технология HTML5 History API. Последняя, например, сейчас активно используется на сайте социальной сети вконтакте, хотя полноценная поддержка четырьмя основными браузерами появилась только около полугода тому назад.

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

З.Ы. прошу прощения у тех, кому может попасться сайт с такой настойчиво навязываемой музыкой. мопед не мой… ну, вы же понимаете, правда?

Read About one of my works in English.