Небольшие хитрости с Yii CGridView, или как избавиться от написания кода в строке для eval.

Всем нам не раз досаждала такая пакость, как необходимость писать большущие строки в представлении столбца в CGridView. А для чего? А чтобы не потерять переменные $data и (в меньшей степени) $row. Так вот, в нашу эпоху трайтов и анонимных функций (спасибо PHP 5.4+) можно больше не городить чего-то вроде:

array(
'name' => 'quantity',
'header' => 'Количество',
'type' => 'raw',
'value' => 'что-тосовершенноадское с $data->value $data->quantity etc',
),

А воспользоваться более элегантными вещами, через анонимную функцию и трайт, например.


//....

$controller = $this;

// ...

array(
'name' => 'quantity',
'header' => 'Количество',
'type' => 'raw',
'value' => function($data, $row) use ($controller) {
    return $controller->renderPartial('basketCols/__quantity', array('data' => $data), true);
},
),

Что происходит? А всё просто — мы можем для ячеек использовать свои собственные представления, из отдельных файлов, в которые спокойно передаем ту же $data, и там с ней работаем как с обычной переменной в шаблоне. При этом $data может являться, например, моделью, полученной для CGridView из CArrayDataProvider (или CActiveDataProvider). Если вам там надо просто сформировать какую-то дикую ссылку, то не надо даже извращения с $controller — просто юзайте статический вызов CController::createUrl(‘some paths’, array(‘param’ => ‘some param’)).

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

 

Fallout 3 на Windows 7 x64 — Противный баг с клавиатурой и решение.

Fallout 3 - скриншот из трейлера
Fallout 3 — скриншот из трейлера

Вылетает при запуске? Стоит поиграть две минуты, и отключаются мышка с клавиатурой, и персонаж либо стоит на месте, либо идет непонятно куда? И при этом вы уже добавили настройку про использование двух процессорных ядер (что довольно легко найти в гугле по запросу вроде «Fallout 3 Баги на Windows 7» или что-то в этом роде — да, жирным, чтобы поисковик заметил и проиндексировал, а вы это легче нашли :)).

А игра всё равно зависает на половине и вылетает. Проблема, как ни странно, в кодеках — звуковых. Все диалоги воспроизводятся через ранее мне неизвестную штуковину под названием LAV Filters. И именно попытки операционной системы подменить звуковой вывод на fddshow вызывают данный глюк. Так вот, многие советуют поставить K-Lite Codec Pack, однако в моем случае этот совет оказался полной херней. Помогло скачивание оригинального дистрибутива LAV вот отсюда и последующая установка с параметрами по-умолчанию.

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

Запрет на профессию

Улыбайся. Улыбайся сука.
Улыбайся. Улыбайся сука.

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

После того, как путичка заявил, что интернет является проектом ЦРУ (вообще DARPA изначально, но ему похуй), стайка жополизов принялась начищать анус вождя путем выдумывания — как бы запретить интернет окончательно. В недрах их лизоблюдских умишек родилась идея, что надо изолировать рашконет от общемирового. Ну знаете, один народ, один фюрер и один изолированный интернет под названием «Чебурашка». А то инакомыслие всячески проникает. Естественно, мировому интернету от такого запрета сплошная польза — говна будет меньше. А вот нам, людям, чьей профессией по сути является интернет и доступ к информации, данные идеи равносильны запрету на профессию. Да и на общение с родственниками, разбросанными по миру, потому что первым попадет под удар тот же скайп.

Дело ведь в чем — в россии (скажем обширнее — на постсовке) массово распространено рукожопие. Я сейчас работаю над одним клиентским проектом, его делали до меня не русские, но СНГ-шные. И руки из жопы заметны на каждой строке кода. Так вот, это всё к чему — квалифицированных и опытных специалистов тут мало, и они в основном занимаются прикладной разработкой, чтобы заработать денег. Фактически это наше основное средство существования. Такие люди как я используют инструменты сугубо западного производства — IDE, клиенты баз данных, сами сервера баз данных, веб-сервера, оболочки языков программирования — да всё. В рашке, даже если они попытаются сделать аналоги тому же PhpStorm или IDEA, это займет массу времени и будет сделано через жопу. Плюс это потребует переподготовки кадров — иначе говоря, 8 лет работы отправляются нахуй, ибо «теперь всё наше, с блекджеком и шлюхами». По той простой причине, что люди, что-то умеющие, заняты над проектами с быстрой окупаемостью, а не над средствами для разработчиков.

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

Огромный пласт людей, чья работа так или иначе связана с международным взаимодействием, работой с информацией, программингом — все отрезаются от большого массива информации. Ученые, финансисты, журналисты, айтишники, импортеры… Глобальный интернет не потеряет ничего, если от него отключится 0,5% которые представляют российский сегмент. Глобальный рынок также не потеряет ничего, если сырьевая россиюшка вдруг анально огородится — brent как раз легко заменить Iran Weight или Dubai Crude — к великой радости Ирана и ОАЭ. А вот этот самый полпроцента ждут серьезные потери. Да, пенсионерки и чернорабочие, которые поддерживают путина, не заметят этой потери в первый момент. Зато потом, когда очереди станут длиннее, а кошельки легче в разы, охватят по загривку все и каждый.

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

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

Собственно, наверное настало время исхода, дамы и господа. Потому что с запретом на профессию невозможно заработать денег, дабы прокормить семью. Да, вся эта политота, с путиным, крымнашизмом, гэбешно-мусорским произволом и прочим, вплоть до моральных уродов, выбрасывающих мусор из окон и ссущих в подъездах, дико раздражала. Равно как и постоянное хождение под своеобразной «правовой» гильотиной — это в США национальная идея Свобода и Независимость, а здесь, как говаривал ублюдок дзержинский: «Не думай. Думаешь — не говори. Говоришь — не пиши. Пишешь — не подписывай. Думаешь, говоришь, пишешь и подписываешь? Не обижайся». Но при ней не хватало того ощутимого пинка, чтобы начать паковать чемоданы. Видимо, вскорости он последует.

Променявшие свободу на безопасность

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

Увы и ах, дорогой читатель, но недавно появилась новость, которая таки немного взбудоражила умы интернет-масс, а именно о том, что кровавая гэбня (переименованная в ФСБ) собирается обязать провайдеров сохранять наш трафик для анализа — весь трафик за 12 часов. В масштабах страны. И обеспечивать им, гэбне, прямой доступ к этим данным. То есть, если раньше была СОРМ, которая позволяла подключаться к каналам передачи и либо выборочно анализировать передаваемые в данный момент данные, либо отключать канал (опять таки выборочно — то есть не всех подряд), то теперь у гэбни появится «время реакции». Грубо говоря, поиск хакеров, отслеживание оппозиционно настроенных людей, даже пользователей торрентов — то есть — вся подноготная интернет-жизни станет еще более доступна для погонщиков (т.е. людей в погонах).

Читать далее Променявшие свободу на безопасность

Хорошо о Miranda NG

Окошко миранды
Окошко миранды

Хм. Мне однозначно нравится Miranda NG. Это такая программка — мультипротокольный клиент (существующий, пока, только для windows). Красиво выглядит, opensource, поддерживает много протоколов (даже скайп вот работает, правда только чатики). Фактически miranda new generation является форком miranda im, подробнее вообще о том, что и как происходило можете вот здесь почитать, мне лень пересказывать статью.

Естественно, как и любой проект, начатый когда-то гиками, миранда представляет собой конструктор: надо что-то? Открой страничку с плагинами и собери себе нужный функционал/внешний вид. Разработчики преимущественно русскоязычные, но они стараются)) MirandaNG поддерживает кучу протоколов — часть из коробки, часть дополнительными плагинами. Основные: ICQ, MailRu Agent, Skype, Jabber, IRQ, Facebook, всякие вконтактики… И кучу других.

Еще один плюс — возможность писать плагины (но плюс для программеров в основном). Особый интерес представляют протокольные плагины и шифрование сообщений. Так как многие до сих пор пользуются ICQ, сервера которой находятся в юрисдикции рашки (ибо владелец — mail.ru group) шифрование остается актуальной проблемой. К сожалению, опробованный SecureIM не стал работать на идентичных портабельных сборках, запущенных на двух разных машинах. Это печально. Шифрование обязано быть простым в использовании, чтобы стать массовым. Если что-то не работает по принципу «поставил — работает», оно никогда не будет широко использоваться. (Зато, кстати, MirOTR заработал сразу).

В итоге я поменял ставший привычным QIP (который разрабатывает и которым владеет компания, принадлежащая михаилу прохорову, и входящая в структуру РБК) на миранду. И разницы особой не заметил. Мою чешскую учетку в джаббере он легко подцепил и теперь у меня там работает всё — от аськи до скайпа. Если лень делать своё, можете скачать сборки — там уже много готового.

Собственно, чтобы долго не рассусоливать — посмотрите сами. Здесь можно скачать сборки, плагины и темы, а здесь — официальную сборку.

Немного о грустном

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

Очевидно, к вытаскиванию пальца из привычного места в жопе и высасыванию из него законопроекта (который вполне может оказаться обычными яйцами глистов) их подтолкнуло массовое осуждение российской как бы интеллигенцией всей той хуйни, которую последние 4 месяца творит российское как бы правительство. Законопроект примут, не сомневайтесь. Особенно умиляет требование при создании групп в социалочках — отправлять в рашкоорганы уведомление. Ню-ню. Конечно, проще запретить говорить о том, какую хуйню они творят, нежели прекратить. Еще бы — такая огромная толпа как-бы людей, готовых хоть завтра одеть обосранные ватники с номером на спине, лишь бы угодить россиюшке, активно поддерживает и оргазмирует от оккупации и аннексии крыма, например. И при этом находятся какие-то пятоколонники и национал-предатели, которые не рады! Ату их, ату!

Впрочем, хер с ними. Если коротко — а что делать? Валите в эмиграцию, лучший вариант. Да как обычно — юзайте анонимизаторы, и прочие ништяки, да и вообще, занимайтесь тем, чем и положено пятой колонне, хули. А напоследок, помимо всяческих радостей типа I2P и Tor, прорекламирую еще одну штучку — анонимную ОС на флешке. Данных не хранит, соединяется с миром только через сеть Tor, после отключения и вытаскивания этой флешки из компьютера — никаких данных, могущих вас скомпрометировать — не имеет. Зато имеет встроенный I2P маршрутизатор, что позволяет невозбранно лазить в эту сеть (правда с бубном — потому что i2p вообще расчитана на как можно более долгую работу, в идеале — круглосуточную, и час работы вам не даст нормальных скоростей по сети). В пользу надежности этой ОС говорит хотя бы тот факт, что именно её использовал Эдичка Сноуден для передачи секретных данных из NSA журналистам. И при этом его не успели поймать.

Ссылка на скачивание и использование.

Мания величия

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

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

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

Но задумывался ли кто-нибудь из них, что происходит, Читать далее Мания величия

Как вылечить корпрус (Corprus) подхваченный раньше времени в Morrowind

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

Ставите дополнение Tribunal (так как оно добавляет в консоль команду SetJournalIndex), а потом в игре нажимаете ~ и вводите команду:

SetJournalIndex «A2_3_CorprusCure» 0

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

Как понять, в каком индексе найдено (Sphinx)

Собственно, добрался до бложега, чтобы быстренько внести кое-какую информацию по поиску. Бывают случаи, когда поиск идет сразу по нескольким индексам, и надо понять — а в каком же нашли? Это надо, например, для различной формы вывода результатов. Так вот — достаточно в настройки источников внести примерно такую строку:

sql_query = \
SELECT id, title AS name, introtext AS short_text, `fulltext` AS long_text, \
‘content_index’ AS table_name, \
UNIX_TIMESTAMP(publish_up) AS publish_up, \
UNIX_TIMESTAMP(publish_down) AS publish_down \
FROM content

И в аттрибуты:

sql_field_string = table_name

Ну и, в общем-то, всё. В аттрибутах помимо указанных вами — будет приходить название таблицы, в которой найден результат

Вышла новая версия I2P-роутера (0.9.5)

Привет!

Вышла новая версия I2P роутера, за нумером 0.9.5. В этой версии основная фишка в том, что при обновлении с версий ниже 0.9.5 — на 1% случайных роутеров будет запущен новый экспериментальный механизм обновления через встроенный торрент-клиент I2P-Snark. Может быть, именно вы попадете в число счастливчиков. Если это не заработает, всё вернут взад. Как обычно поправлены ещё какие-то уязвимости и атаки.