четверг, 31 декабря 2020 г.

Jane Air

Самая навязчивая песенка уходящего года. И актуальная:

Обратная связь

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

Киноград

В последний день года Юля вытащила меня в кино. Людей мало. Билеты продают через место и, похоже, через ряд. Перед началом сеанса всего 2 пары и одна молодёжная компания (3-4 человека).

Светодиоды

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

Наколенники

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

среда, 30 декабря 2020 г.

ГорЗдрав

Коллеги сказали, что на сайте ГорЗдрав можно посмотреть актуальную информацию по всем своим обращениям по ОМС. Для этого номер полиса должен быть прописан на ГосУслугах.

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

вторник, 29 декабря 2020 г.

Ледяной дождь

Вчера надо было съездить на машине в город. Мы часа полтора пытались выехать из Рыбацкого, потом плюнули, развернулись и припарковались у дома, решив, что за день пробка, вызванная аварией под КАДом, рассосётся.

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

понедельник, 28 декабря 2020 г.

internet.ru

Хотите почту на красивом домене? Её раздаёт mail.ru. Когда-то я отхватил короткое имя на gmail.com, теперь тут такое же взял. Пусть будет вспомогательной, а то мало ли рубильник дёрнут...

Отличные календари

Министерство обороны опубликовало календари на следующий год: про технику и про людей.

воскресенье, 27 декабря 2020 г.

С нежный ангел

Сегодня мы всё-таки сходили в Токио-City. А после сытного обеда поваляться в снегу - самое оно. Лёшку они вообще с головой закопали, но он сам любит это дело.

Питер стал белым

Второй день ходим кататься с горки. Нева ещё не замёрзла. Из-за ветра достаточно холодно, но людей это не останавливает.

суббота, 26 декабря 2020 г.

Есть запрещается

Сегодня по традиции пошли к метро встречать Мишку с кружка ЮМШ, а потом в Токио-City. Но нам сказали, что Беглов запрещает ужинать в ресторанах после 19:00. Видимо, заботится о здоровье граждан. Точнее, о том, чтобы они худели.

Inside

Epic Games раздавали вторую игру студии, которая подарила нам Limbo. Это не продолжение, но весьма похожа по исполнению.
Очень круто! Особенно то, что добавилась глубина сцены:

пятница, 25 декабря 2020 г.

Ни одной бабки не пострадало


Сначала была пристрелка метров на 15 в свободном режиме. Я был не очень аккуратен и тренер мне сказал повторить её пару раз - сначала по одному выстрелу, затем двойками.


Далее мы стали учиться стрелять по мишеням, частично закрытым белыми штрафными мишенями. В просторечии - "бабками". Стрелял сидя метров с двух-трёх: двойка в нижнюю, аккуратно в верхнюю, перенос (влево или вправо), затем снова двойка в нижнюю и аккуратно в верхнюю. Сначала просто так, затем стрелял с вывешиванием со стула. Тут главное - не упасть. Темп - хороший, все попадания - на отлично...
Затем почти то же самое, но перенос на дальнюю мишень. Там разброс побольше, да и темп упал, зато бабку только слегка зацепил за перфорацией. За это штрафных баллов не начисляют...


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

Собрание оркестра

Прислали фото с последнего собрания. Жаль, что в этом году поездка сорвалась, но им и без неё весело:

четверг, 24 декабря 2020 г.

Неожиданно

А вы знаете, почему одни дорожные знаки перечёркнуты слева направо, а другие - справа налево? Я тут прочитал, что это из-за латинской N в слове No, обозначающем в данном случае запрет какого-либо действия. Во всех остальных случаях, когда дорожный знак перечёркнут справа налево, это обозначает лишь отмену ранее установленных ограничений соответствующим знаком.

среда, 23 декабря 2020 г.

Справедливые числа

У нас с Мишкой на прошедшем соревновании вторая задача прошла претесты, но в зачёт не попала, так как какие-то тесты упали по времени. Сегодня мы с ним её разбирали.

Основные две оптимизации проверки делимости числа:
1. Сначала я собрал все цифры в Set, который ещё дополнительно уменьшил по следующим правилам:
    val set = mutableSetOf<Char>()
    string.forEach { set.add(it) }
    if (set.contains('9')) set.remove('3')
    if (set.contains('8')) set.remove('2' и '4')
    if (set.contains('6')) set.remove('2' и '3')
    if (set.contains('4')) set.remove('2')
    set.remove('1')
    set.remove('0')
2. Потом я оптимизировал проверку делимости BigInteger, используя признаки делимости на 2, 4, 5 и 8. Но эта оптимизация уже не дала сильный прирост, как предыдущая. И всё равно решение задачи не принимали из-за 11-го теста.

Пришлось долго думать над условием, что же я пропустил и понял, что количество проверяемых чисел в одном тесте может быть большим, но туда могут передавать одинаковые или близкие числа. И я добавил кэш Map<Ref>, чтобы не пробегать второй раз для записи в него.
  data class Ref(var value: BigInteger)
  ...
  val dividend = readLine()!!.toBigInteger()
  val applicable = map[dividend] ?: Ref(dividend).also {
    while (true) {
      map[it.value] = it
      if (test(it.value)) break
      it.value = map[++it.value]?.value ?: continue
      break
    }
  }
В результате решение задачи приняли с временем прохождения 1715 мс. Подумав над условием задачи, я понял, что для неё можно не использовать BigInteger, а достаточно использовать Long. Это позволило сократить время исполнения до 1169 мс, а использование памяти - в два раза (с 130000 до 60000 кб)

вторник, 22 декабря 2020 г.

SmartStool KW02B

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

Дикие пробки

Сегодня с утра надо было съездить на Василевский остров. Ничто не предвещало - Yandex показывал 4. В результате, туда-обратно я провёл за рулём более трёх часов. Такое ощущение, что весь город самоизолируется по машинам и катается по центру.

воскресенье, 20 декабря 2020 г.

Первый блин комом

Поучаствовали сегодня с Мишкой в рейтинговом соревновании по программированию. Оба решили по две задачи, которые прошли претесты, но на рейтинг повлияла только первая, ибо вторая провалилась по времени на основных тестах. Я тупо забыл использовать BigInteger и за 10 минут до конца бросил решать третью задачу, чтобы поправить вторую, но не успел. Теперь у меня рейтинг 386, а у Мишки - 380. Забавный опыт!

Лента меняется

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

суббота, 19 декабря 2020 г.

Шахтёрство не предлагать

Вернулся в Пузырь, а тут дорогие миссии раздают. В принципе, чтобы заработать 50M надо ещё и потратить 20-30M. Но это только тому, кто закупает и везёт товар. А те, кто в Крыле, получают все 50M только за участие.
Так я на основном аккаунте заработал ещё 150M для второго.

Devs (Ex)

Посмотрели мини-сериал Программисты. Очень затянутый, очень запутанный, но очень красивый. В последней серии всё стало ещё запутанней. В результате, послевкусие такое: мы придумали клёвую идею, но не придумали, как её закончить.

Вечернее Рыбацкое

Что такое осень из Японии?

пятница, 18 декабря 2020 г.

Праздничный концерт

Как у нас принято, после новогоднего шоу устроили концерт. Как обычно, никто не знал, кто будет выступать. Сегодня это оказалась немецкая рокабилли-группа The Baseballs. Мне такое нравится - послушал с большим удовольствием. До Stray Cats может и не дотягивает, но до The Brian Setzer Orchestra или каких-нибудь Red Elvises - вполне. Прикольной фишкой мне показалось троеголосие. В какой-то момент они мне напомнили Van Canto. Им тоже подарили пижамы от JetBrains, а барабанщик вообще оказался фанатом PyCharm. Коллеги предлагают подарить ему лицензию.

Подарки - в студию!

Сегодня у нас новогодний корпоратив. Сижу - смотрю, как русские люди треплются между собой на английском. Вначале было веселее, когда коллеги из Индии, Японии и других необычных мест про их традиции рассказывали. И тут приходит доставка с подарками от JetBrains. Неожиданно приятно!

четверг, 17 декабря 2020 г.

Упражнение 4

На последнем упражнении я оторвался - всего лишь одно "чарли" за 28 секунд. Но это было самое лёгкое упражнение. Единственное, что я лопухнулся со сменой магазина, но по времени - не сильно. Хит-фактор - 3.6759 (41.07%).

Посмотреть прохождение: пистолет и карабин.

Упражнение 3

Третье упражнение обстрелял совсем плохо. Тут я чуть ли не половину времени потратил на стрельбу по хитро заныканному металлу, который всё никак не хотел падать. Пришлось даже доставать третий магазин. Хит-фактор - 1.3106 (23.27%). А в самом начале шёл вполне неплохо, несмотря на "мисс". Если бы не достреливал, то хит-фактор был бы заметно выше.

Посмотреть прохождение: пистолет и карабин.

Упражнение 2

Первое упражнение обстрелял похуже - на одно "чарли" больше, да ещё и "мисс" добавился. Там мишень была снизу прикрыта "бабкой" и я слишком задрал прицел. Хит-фактор - 2.5301 (47.43%). То есть, результаты выше, чем на первом упражнении, так как я тут не тратил лишнее время на стрельбу по металлу.

Посмотреть прохождение: пистолет и карабин.

Упражнение 1

Первое упражнение обстрелял неплохо, но долго, ибо замешкался при стрельбе по металлу. Хит-фактор - 1.9860 (44.31%).

Посмотреть прохождение: пистолет и карабин.

Миниматч

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

Пример кода

среда, 16 декабря 2020 г.

Гафт - гений!

Pushnoy - I'm all you needed

Я, конечно, понимаю, что needed вместо need - для рифмы, но всё-таки надо было как-то по другому перевести Сюткина:

Звуки офиса

Коллеги нашли ссылку, по которой можно себе настроить звуки, как в каком-то странном офисе какого-та стартапа. Не, у нас не так...

вторник, 15 декабря 2020 г.

Пересмотрели

Закончили пересматривать все 12 сезонов Теории Большого Взрыва. В связи с тем, что понравившийся мне перевод сейчас не найти, а доступный всюду перевод от Кураж Бамбей - полная фигня, мы его пересмотрели полностью на английском. С помощью субтитров, конечно, ибо в сериале много терминов, за которыми не уследить. Правда, во многих местах русские титры заметно отходили от английского текста. При просмотре в оригинале много шуток стали понятнее и смешнее - bazinga.

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

РЖД бонус

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

понедельник, 14 декабря 2020 г.

Потоп

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

Поставил в известность соседей сверху и позвонил по 004, чтобы решили проблему.

Вот это да!

Где-то полчаса назад отрубились сервера Google - поросли все рабочие митинги через Google Meet, отвалилась почта... Даже youtube не посмотреть!

Что это такое было?

суббота, 12 декабря 2020 г.

Токио-City

Пошли к метро Мишку встречать, который сегодня в ЮМШ занимался один одинёшенек. Решили зайти поужинать, а там - аншлаг! Минут 15 пришлось толпиться в предбаннике.

Бесплатный аккаунт

Пока мой основной аккаунт болтается в центре галактики я решил присоединиться к нашей эскадрилье и немного повоевать на втором аккаунте. Начальный Sidewinder снарядил для боя и полетел в зону конфликта высокого уровня. Корветы лопались один за одним! А всё потому, что в крыле со мной были дружественные Anaconda и Federal Corvette. Вначале у меня было заработано около 2M кредитов, так на одних ваучерах я поднял 5М, а ещё связанную с боёвкой миссию выполнил - ещё 11М. Это, конечно, неплохой старт, но потом соратники поделились парой миссий по 50М каждая и я решил прикупить боевой Alliance Challenger.

пятница, 11 декабря 2020 г.

Сидячая тренировка


На пристрелке рука дёрнулась один раз, но, в целом, результаты неплохие. Сегодня тренировали стрельбу сидя - на второй мишени видно, что так результаты гораздо лучше. Потом отрабатывали серии - переносы, вставание и т.д. Но самое главное, что сегодня тренировали - восстановление темпа стрельбы после казуса. Нам выдали такие Викинги, что каждые 10 выстрелов его клинило. Очень полезное упражнение, ибо когда сталкиваешься с такой ситуацией во время матча, то можно потерять кучу времени. У меня раза с десятого стало получаться вполне неплохо.


Ну а под конец мы пытались на время обстрелять металл сидя, а бумагу - стоя. У меня получилось около 12 секунд.

Pillars of Eternity

У меня уже давно в списке желаемого на Steam лежит эта игра. Но сейчас её бесплатно раздают в Epic Games и есть шанс попробовать. По отзывам - должна быть добротная RPG.

четверг, 10 декабря 2020 г.

JetBrains Space

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

Sagittarius A*

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

Поснимал видео, как я там летаю:


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

среда, 9 декабря 2020 г.

Сули Гули

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

Тут мы ему подарили новый телефон и потом сидели, настраивали, переносили данные со старого.

15 лет стукнуло


Как молоды мы были! С этого года Мишке разрешается посещать врачей без присутствия родителей.

Код - это сила!

Чтобы проникнуться динамическим программированием, один из друзей порекомендовал сайт CodeForces. Там можно зарегистрироваться с сыном и выполнять различные задачи из архива. Ну и проверять решение тоже можно. Поддерживается куча языков, даже Kotlin! Хорошая возможность прокачать навыки ещё и в нём.

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


Судя по всему мне придётся привыкать, что всякие проверки - от лукавого. Для олимпиадного програмирования не нужно проверять входные данные, что позволяет писать код короче:
fun main() {
    val index = readLine()!!.split(' ').map { it.toInt() }[1] - 1
    val list = readLine()!!.split(' ').map { it.toInt() }
    val min = list[index].coerceAtLeast(1)
    println(list.filter { it >= min }.count())
}
Это пример решения задачи Следующий раунд. Как можно заметить, я игнорирую нулевой результат readLine(), а из первого массива беру только второе число, так как первое понадобилось бы только для проверки длины второго массива. Не уверен, нужно ли задавать нижнее значение min как 1, но решение приняли: