Про ЧМ-2018

Вчера состоялся финальный матч Чемпионата мира по футболу, в котором сборная Франции уверено обыграла хорватов (4:2), и во второй раз в своей истории завоевала Кубок мира.

Церемония награждения неприлично затянулась (спасибо Путину за это), а когда все же началась, то пошел проливной дождь. Единственный зонт, и только над Путиным; затем подоспевшие другие зонты; мокрые до нитки футболисты, президенты FIFA, Франции и Хорватии, почетные гости – все это уже стало поводом для многочисленны мемов, но без всего этого церемония награждения стала бы очередным проходным мероприятием. А так все прошло с невероятной "изюминкой" (спасибо погоде за это), что в принципе, у нас бывает всегда.

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

К сожалению, мне не удалось попасть ни на один из матчей ЧМ (спасибо лотереи FIFA за это), но все равно весь этот месяц я наблюдал болельщиков из разных стран (спасибо Питеру за это) – таких веселых, жизнерадостных и открытых, заряжающих энергией и позитивом – и все это и создавало ту неповторимую атмосферу праздника.

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

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

В общем, прогнозист с меня еще тот, а подтверждение тому сетка полей-офф, которую я составил перед началом ЧМ-2018 (спасибо сборной России, которая также попутала карты, но этот момент из приятных, так что прощаю):

[Linux] Удаление очереди писем в Postfix

• Для удаления очереди писем в Postfix:

$ postfix flush (или postfix -f)

• Посмотреть очередь писем:

$ mailq

Пример результата выполнения команды:

postqueue: warning: Mail system is down -- accessing queue directly
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
CC83910135C      539 Sun Jul  1 18:31:21  root
                                          root

EC2B61013DE      370 Sun Jul  1 18:38:21  root@bulkin.me

• Удалить все письма из очереди:

$ postsuper -d ALL

Пример результата выполнения команды:

postsuper: Deleted: 38 messages

• Удалить все письма в отложенной очереди:

$ postsuper -d ALL deferred

Исправление проблем с Windows Update

Иногда служба обновлений Windows ведет себя не так, как от нее ожидается – то одна ошибка выскочит, то другая. Информацию по коду ошибку можно найти в Google, но не всегда советы помогают в исправлении ситуации.

Microsoft также не осталась в стороне, и подготовила набор скриптов для "лечения" Windows Update, которые можно скачать здесь.

Исправление проблем с Windows Update

Еще один совет для удаления кеша файлов Windows Update в виде срипта:

net stop wuauserv
CD %Windir%
CD SoftwareDistribution
DEL /F /S /Q Download
net start wuauserv/

			

[CocoaPods] Запретить Sending stats

По умолчанию при выполнении команды "pod update" после обновления зависимостей происходит отправка статистики, которое в некоторых случаях занимает много времени:

$ pod update --no-repo-update

Update all pods
Analyzing dependencies
Downloading dependencies
Using Crashlytics (3.10.0)
Using Fabric (1.7.3)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There are 2 dependencies from the Podfile and 2 total pods installed.

Для запрета отправки статистики необходимо в файле Podfile прописать следующую строчку:

# Disable sending stats
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

[MongoDB] Удаление поля из коллекции

Допустим, в какой-то коллекции есть документы, содержащие поле, которое стало уже не нужным, и вы хотите удалить это поле из всех документов данной коллекции.

Для этого достаточно выполнить следующий запрос:

db.<collection>.update({}, {$unset: {<field_name>:1}} , {multi: true});

Оплата госпошлины в Сбербанке

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

Иду в Сбербанк. Спрашивают: "Чем будете платить – картой или наличными?". Я говорю "картой", и уже как обычно собираюсь приложить телефон к терминалу, но тут сразу обрывают: "Нет, можно только физической картой и только картой Сбербанка". Начинаю расспрашивать, от куда такие жесткие ограничения? Почему вы не можете снять денежные средства с карты, эмитированной другим банком? Чем оплата услуг в Сбербанке отличается от обычной покупки? Я предоставляю карту, они снимают с нее деньги. Вроде бы все просто, но в данном случае.

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

Пришлось платить наличными 🙁

[MongoDB] Удаление поля из массива

В коллекции 'payments' имеется следующая структура данных:

"log" : [
        {
            "item_id" : "1478", 
            "method" : "card", 
            "cost" : 199.0, 
            "cr_time" : ISODate("2018-06-10T10:38:49.868+0000"), 
            "pay_time" : NumberLong(1528627129), 
            "rent_end_date" : ISODate("2018-07-10T10:38:49.000+0000")
        }
        ...
]

Необходимо удалить поле "rent_end_date" для "item_id" : "1478".

Решение:

db.payments.find({'log.item_id': '1478' }).forEach(function(doc) {
    var rentEndDate = doc.log;
    for(var i = 0; i &lt; rentEndDate.length; ++i) { 
        var x = rentEndDate[i];
        delete (x["rent_end_date"]);
 
    }
    db.payments.save(doc);
});

ЧМ по футболу в приложении "Первый канал" для Smart TV

В приложении "Первый канал" для Smart TV появился новый раздел, приуроченный к старту Чемпионата мира по футболу 2018, который пройдет с 14 июня по 15 июля в России.

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

Для телевизоров LG с поддержкой 4K (Ultra HD) матчи будут показываться также в формате 4K. Для телевизоров других производителей матчи будут транслироваться в формате вплоть до Full HD.

Раздел ЧМ 2018 доступен только с территории России. Для других стран данный раздел будет скрыт.

ЧМ по футболу в приложении Первый канал для Smart TV

[iOS] Не передается локаль через Promoted In-App Purchases

Недавно в приложение Кино1ТВ для iOS мы добавили поддержку фичи "Promoted In-App Purchases", анонс которой состоялся в прошлом году на WWDC 2017.

Вкратце, теперь на странице приложения в App Store можно рекламировать до 20 покупок, используемых в приложении. В нашем случае, мы добавили промо подписки, которая дает возможность смотреть фильмы и сериалы из соответствующего раздела.

Для тестирования"Promoted In-App Purchases" достаточно сформировать специальную ссылку, при нажатии на которую приложение будет перехватывать ее и выполнять необходимые действия. В нашем случае ссылка выглядит так:

itms-services://?action=purchaseIntent&bundleId=ru.1tv.kino&productIdentifier=ru.1tv.kino.subs_kino

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

Крымский мост на Google Maps

Вчера был открыт Крымский мост, строительство которого началось в феврале 2016 года.

Вот как значится мост на картах Яндекс:

Крымский мост на Яндекс Картах

А вот как на Google Maps:

Крымский мост на Google Maps

Чтобы сообщить о неточности на картах Google, достаточно открыть боковое меню, затем "Оставить отзыв" -> "Дорога отсутствует" и отправить сообщение с информацией о месте, где отсутствует дорога (в данном случае – мост):

Крымский мост на Google Maps