Рубрика «челлендж»

"И так сойдет" ((c) М/Ф "Вовка в 3/9 царстве")
"Работает - не чини" ((c) вольный перевод афоризма Б.Ланса "If it ain't broke, don't fix it")

К появлению этой статьи привело совпадение нескольких событий.

Привет! Я Александр Хренников — руководитель DevOps-юнита в KTS. Первый коммит в репозиторий kubernetes был сделан 10 лет назад, 6 июня 2014 года. За это время kubernetes прошёл большой путь и стал самым популярным средством оркестрации контейнеров. 

Предлагаю вам посмотреть, каким он был в то время, и попробовать запустить в нём приложение самостоятельно. 

Заодно приглашаем принять участие в челлендже по запуску kubernetes из самого первого коммита. Это продолжение нашего совместного челленджа c Yandex Cloud на KuberConf / 24, где мы запускали приложение без ошибок на инфраструктуре облака.

Читать полностью »

Находим случайный seed, решающий задачу с LeetCode - 1


У меня есть хобби — решать задачи LeetCode непредназначенным для этого образом, часто при помощи запутанных однострочников. Такие самостоятельно накладываемые ограничения делают задачки интереснее и заставляют искать нестандартные решения.

Одним из ежедневных челленджей LeetCode была такая задача (я немного упростил её для понятности):

Есть список из $k$ уникальных строк битов, каждая из которых имеет длину $k$. Сгенерировать новую строку длиной $k$, отсутствующую в этом списке.

Например, если у нас есть список "010", "110", "111", то возможным решением будет "001". Задача с LeetCode имеет большой набор тестов — 183 тестовых сценариев с $1≤k≤16$, а точную формулировку задачи можно найти здесь.

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

class Solution:
    def findDifferentBinaryString(self, nums: List[str]) -> str:
        random.seed((69299878 + sum(ord(c)*(i*j+111) for (i, n) in enumerate(nums) for (j, c) in enumerate(n))) % 999999999)
        return ''.join(random.choice('01') for _ in nums)

Можете попробовать это решение самостоятельно (оно должно работать, если LeetCode не обновил свой набор тестов. Если это произошло, сообщите мне об этом).

Ниже я расскажу, как это сделал.Читать полностью »

Челлендж по обработке миллиарда строк на Go: от 1 минуты 45 секунд до 4 секунд - 1

Пару недель назад я прочитал о запавшем мне в душу челлендже по обработке миллиарда строк, поэтому захотел решить его на Go.

Я немного опоздал, соревнования проводились в январе. И на Java. Меня не особо интересует Java, зато Читать полностью »

Приглашаем на лекцию и семинар Виталия Фридмана

Приглашаем на лекцию и семинар Виталия ФридманаСегодня мы рады сообщить, что в наш московский офис Mail.Ru Group приезжает Виталий Фридман, шеф-редактор журнала Smashing Magazine, один из самых известных людей в мировом веб-дизайне. Он проведет два мероприятия. Первое — это открытая лекция. Тема выступления: «Responsive Web-дизайн: Трюки и уловки».

В своём выступлении Виталий затронет такие ключевые моменты:

  1. Как достичь отзывчивости веб-дизайна, не затрачивая слишком большие финансовые и профессиональные ресурсы.
  2. Как оптимизировать эффективность responsive веб-сайта. Опыт, основанный на реальных кейсах таких сайтов, как The Guardian, BBC и Smashing Magazine.
  3. Новые трюки для SVG.
  4. Новые шаблоны responsive дизайна.

Лекция состоится 14 ноября в 19.00. Для её посещения необходимо зарегистрироваться. Внимание, количество мест ограничено!
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js