KMS

У KMS под Windows Server 2012 R2 появилась возможность активировать клиентские машины с Windows 10, но на VLSC в разделе «Downloads and Keys» необходимого KMS-ключа не будет. Где же его искать? Оказывается, надо идти следующим путём: Licenses → Relationship Summary → там по айдишнику текущей активной подписки → Product Keys → искать запись «Windows Srv 2012R2 DataCtr/Std KMS for Windows 10».

SQL

Никогда не был настоящим базистом, но для интереса решил подготовиться и попробовать сдать экзамен 70-461 (Querying MS SQL Server). Начал готовиться по этим материалам и после изучения первых четырёх глав решил вернуться к очень старой задаче, о которой писал ранее. На данный момент самые главные и переосмысленные знания, полученные из книги:

  • Форматирование кода облегчает жизнь в разы.
  • Использование CTE (common table expressions) позволяется, во-первых, избегать вложенных запросов, во-вторых, ссылаться на одни подзапросы из других.
  • Очень важно понимать SARG (search arguments), иначе в ряде случаев наличие индексов не даёт производительности.
  • Нельзя недооценивать EXPLAIN, ботлнеки искать в разы легче, чем пытаться самому догадаться.
  • В правильных индексах — сила.

Хоть курс и относится к СУБД MS SQL Server, а старая задача на PostgreSQL, получить профит удалось.

Вот старый запрос для получения топа посещаемых школами ресурсов. extract(year from std.day) здесь убивает SARG, и индекс по полю day никак не помогает.

Вот свежий запрос, теперь функция от поля не берётся (std.day >= (SELECT "start" FROM params)). Время выполнения уменьшилось вдвое. Также вложенные запросы вынесены в CTE и код отформатирован, что делает запрос наглядным и понятным.

А вот старый запрос получения статистической информации по трафику школ.

Обновлённый запрос. Не стоит обращать внимание на то, что время хранится в четырёх целочисленных полях y, m, d, h, это legacy. :3 Здесь удалось убрать ненужный UNION, заменив его аргументом GROUP BY, отказаться от группировки по полям s.rtcom_id, s.name, s.region, s.etap, s.finance, заменив её слиянием на более поздней стадии выполнения запроса. Скорость выполнения запроса возросла в 7 раз.

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

Devart dotConnect for MySQL

При использовании EF6 с Devart dotConnect for MySQL обнаружилась особенность: метод SaveChanges() у контекста выкидывает исключение «Store update, insert or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries», если на момент его вызова в контексте есть объекты, полям которых были присвоены имевшиеся на момент выгрузки значения, то есть состояние объекта изменилось на Modified, а по факту объект остался таким же. Не сразу удалось найти решение, которое заключается в добавлении Found Rows=true в connection string.

I wanna be evil

Осторожней будьте с обновлением Ubuntu до последней версии при использовании пакета php5-json (например, фукнции json_decode()), так как в лицензии JSON говорится:

The Software shall be used for Good, not Evil,

что противоречит лицензии GNU, в которой значится следующее:

The freedom to run the program, for any purpose (freedom 0).

Собственно решается банальным sudo apt-get install php5-json, но несколько минут таки пришлось провести в недоумении.

P.S. The JSON License (#JSON)

This is the license of the original implementation of the JSON data interchange format. This license uses the Expat license as a base, but adds a clause mandating: “The Software shall be used for Good, not Evil.” This is a restriction on usage and thus conflicts with freedom 0. The restriction might be unenforcible, but we cannot presume that. Thus, the license is nonfree.

ssh rsa open key

Morcheeba

Вчера в Краснодаре выступали Morcheeba, от души, хотя те live show, что я видел в записи, вроде бы получше и подлиннее. Тем не менее, как и было видно в тех записях, у Morcheeba при живом выступлении нет проблем с мастерингом (что большая редкость): всё хорошо настроено и почти ни одного косяка за всё выступление. А Skye, как всегда, великолепна. Ну а самым приятным оказалось исполнение «Otherwise».

Лучи поноса высылаю всем тем, кто считают свои мобильные телефоны настоящей фото- или видеотехникой. Из-за этих ублюдков треть времени приходилось наблюдать не исполнение Skye, не игру на гитарах, а дисплеи их проклятых устройств. Просто невероятно, что эти кретины считают подобные снимки и ролики (видео там такого же качества, уже есть в интернетах) представляющими какую-либо ценность. Хотя есть же пустоголовые, которым нравится и течение Instagram, там как раз того же уровня искусство.

pno0IT8FNLk

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

Ладно, ну их, этих сволочей. Хороших эмоций и впечатлений осталось больше, чем иных.

Доставка в Россию из США

Hello,

Thank you for your inquiry. We ship all International Packages via The United States Post Office, unfortunately they will now allow us to generate a shipping label to your country. We also ship via Federal Express and the charge for shipping with them would be $295.47 USD, and the expected delivery date would be March 5, 2014. Please advise if you would like to proceed and I will create a special listing for you for this $39.95 USD for the seat plate + $295.47 USD for shipping. You will also have to pay an additional $75 USD Customs Clearance Fee to your countries customs department.

Thank you,

S***** D******

Ахах. Не нужен мне твой механизм качания, прекрати.

Зимнее утро

canon50mm-8478

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

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

canon50mm-8524

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

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

canon50mm-8519

Какое же классное настроение! Какое удивительное утро!

P.S. Деревья, конечно, жалко.

Свиные рёбра в медово-горчичном соусе

canon50mm-8125

С edim.tv попробовал рецепт. Вроде получилось неплохо.

Что нужно:

  • свиные рёбра;
  • горчица, мёд, соевый соус, чеснок;
  • лук, соль, чёрный молотый перец, лавровый лист.

Взял килограмма полтора рёбер, разделал их слегка и обжарил каждый кусочек со всех сторон, чтобы при варке не отдавался сок.
canon50mm-8084 canon50mm-8088 canon50mm-8090 canon50mm-8097 canon50mm-8100

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

canon50mm-8102 canon50mm-8111

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

canon50mm-8109

Отваренные рёбра посушил салфетками, обмокал в соусе, выложил на пергаментную бумагу в противень и отправил при 220°C в духовку на двенадцать минут.

canon50mm-8112 canon50mm-8115

А достал из духовки вот такое вот блюдо.

canon50mm-8119

СБОЛ

С прокрастинаторами разобрались. Но как определить мудака? А очень легко: мудак — это тот, кто поднимает веб-сервер так, что по адресу http://online.sberbank.ru/ сервер не отвечает (как будто напрочь лежит), а по https://online.sberbank.ru/ исправно перенаправляет на страницу аутентификации. То есть этот тот, кто поленился на 80-м порту сделать заглушку с редиректом на SSL-защищённый сайт. Это тот, из-за кого я два дня пытался пробиться в Сбербанк Онлайн, чтобы оплатить коммуналку, но, пока не догадался пройти по ссылке с главной странице, так и не смог. Спасибо Сбербанку за его профессионализм, за его безупречную работу и заботу о клиентах.