Рубрика «Программирование» - 91

Михаил Мирзаянов, разработавший платформу Codeforces и участвующий в жизни Университета ИТМО в роли ассистента факультета информационных технологий и программирования, делится историей проекта и рассуждает о некоторых особенностях спортивного программирования.

Послушать беседу: Apple Podcasts · Яндекс.Музыка · Читать полностью »

Ранее у нас в блоге уже был материал про лучших в Kaggle, а сегодня представляю вам интервью с признанным дата-сайентистом и гроссмейстером Kaggle Филиппом Сингером, который поделится своим опытом, вдохновением и и достижениями. Беседа призвана мотивировать и воодушевить других людей, которые хотят понять, что нужно, чтобы стать гроссмейстером Kaggle. Также в этом интервью мы узнаем больше об академическом прошлом Филиппа, его увлечении Kaggle и о его работе в качестве дата-сайентиста.

Дата-сайентист, который просто не может перестать выигрывать на Kaggle - 1

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

В марте этого года Oracle выпускает 16-ю версию Java, а уже осенью выйдет 17-я версия - следующая версия с долгосрочной поддержкой (LTS). Вряд ли за пол года появятся какие-то существенные нововведения, а потому уже сейчас можно взглянуть на то, с чем мы будем работать в ближайшие несколько лет. С момента выхода 11-й версии - текущей LTS версии Java, компанией Oracle было внедрено большое количество новых функций - от новых синтаксических конструкций до новых алгоритмов сборки мусора. В данной статье рассмотрим новые синтаксические возможности языка, появившиеся в версиях 12 - 16.

Записи (Records). JEP 395.

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

ARM и программирование без блокировок - 1

Выпуск ARM-процессора Apple M1 вдохновил меня на то, чтобы написать в Твиттер про опасности программирования без блокировок (lock-free). Этот твит вызвал бурную дискуссию. Обсуждение прошло довольно неплохо, учитывая то, что попытки втиснуть в рамки Твиттера обсуждениие такой сложной темы, как модели памяти центрального процессора, — в принципе бессмысленны. Но у меня осталось желание немного раскрыть тему.

Этот пост задуман не только как обычная вводная статья про опасности программирования без блокировок (о которых я в последний раз писал около 15 лет назад), но и как объяснение, почему слабая модель памяти ARM ломает некоторый код, и почему этот код, вероятно, не работал изначально. Я также хочу объяснить, почему стандарт C++11 значительно улучшил ситуацию в программировании без блокировок (несмотря на возражения против противоположной точки зрения).
Читать полностью »

Трюк с XOR для собеседований и не только - 1

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

Хоть и непривычно ожидать решения с XOR на собеседованиях, довольно забавно разбираться, как они работают. Оказывается, все они основаны на одном фундаментальном трюке, который я постепенно раскрою в этом посте. Далее мы рассмотрим множество способов применения этого трюка с XOR, например, при решении популярной задачи с собеседований:

Дан массив из n — 1 целых чисел, находящихся в интервале от 1 и n. Все числа встречаются только один раз, за исключением одного числа, которого нет. Найдите отсутствующее число.

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

Итак, все фотографии разложены по папкам и находить фотографии Новых годов или дней рождения стало быстро и удобно. Фотографии из отпусков тоже можно найти относительно быстро, но хотелось большего. А именно, искать по людям и не просто по людям, а по набору людей, например, найти все совместные фотографии детей или фотографии с бабушкой и т.д.

Поэтому я решил немного углубиться в так называемый Face Recognition.

Миллион домашних фотографий: лица, лица, лица - 1
Читать полностью »

Сейчас новые версии Java выходят раз в полгода. В них время от времени появляются новые возможности: var в Java 10, switch-выражения в Java 14, рекорды и паттерныЧитать полностью »

Ограничение прав доступа к переменным - 1

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

Каково работать вместе с очень ужасным разработчиком - 1

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

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

Если я скажу, что тот или иной член команды халтурит, и даже объясню всё вежливо и с техническими подробностями, менеджеры воспримут это как «ссору» и сосредоточат всё своё внимание на сплочённости коллектива, подразумевая, что проблемы создаю именно я.
Читать полностью »

Привет, сегодня я расскажу вам о разработке своей первой игры на Android, публикации ее в Google Play, закупке рекламы в Google Ads и доходе. Я советую эту статью к прочтению каждому кто впервые будет создавать игру, ведь тут вы найдете полезную информацию и некоторые нюансы, с которыми лично я не сталкивался в историях других людей.

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

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