Иногда хочется решить задачу просто потому что решение легко проверить, прям сразу для множество вариантов. Взяли список из 25 элементов, отсортировали его, и применили искомую функцию 25 раз, профит. Плюс задачка напоминает обложку тетрадки по арифметике за пятый класс, там где табличка произведений, ну та где находим пятый столбец и седьмой ряд и на пересечений их будет произведение. Там же в табличке видно что 6x6 - это квадрат, а 9x4 это совсем не квадрат (скорее ближе к прямоугольнику) хотя площадь у них равная. Так вот, "литкод" хочет чтобы мы нашли n-ый элемент в данной табличке по возрастанию.
Все потоки
Новости
Универсальный Автономный Модуль в Unity
Один из секретов быстрой и качественной разработки это унификация. В этой статье мы рассмотрим пример реализации Универсального Автономного Модуля UAM (Universal Autonomous Module).
В прошлой статье мы уже говорили о концепции модульной архитектуры, если вы еще не знакомы, то переходите по ссылке Модульная архитектура в Unity. Та концепция хоть и имела кучу плюсов, но не подходила ко всем типам проектов/жанрам. Сегодня же мы рассмотрим более распространенный и универсальный подход к реализации модулей. Подобные модули в Unity сообществе иногда называют более обобщенно - ассетами, в статье не будет использоваться такое обобщение.
Однажды заказчик (издатель) выдал нам техническое задание на разработку модуля, который должен легко интегрироваться в любой проект, всех студий издателя. Но не будем вдаваться в подробности этого конкретного модуля. Представьте что вам досталась такая задача. Что бы вы делали? Таким модулем может быть что-то часто встречающееся в приложениях. Например внутриигровой магазин или еще что либо. В статье будет взят за пример реализация лидерборда для мобилок и планшетов.
Цель ясна, осталось расписать задачи и реализовать модуль.
Задачи или же критерии модуля получились следующие:
1) Модуль должен быть универсальным. То есть подходить к любому проекту.
2) Модуль должен быть автономным. Должен работать не требуя дополнительных пакетов. Он должен самостоятельно функционировать, если его интегрировать в пустой проект.
3) Так как модуль полностью автономный, он имеет свою вьюшку, свой контент: окна, кнопки, звуки итп. Поэтому при необходимости должен легко редактироваться, и не иметь в дальнейшем проблем при обновлении версии модуля.
Прогулка по мостам Кёнигсберга с ORtools
В одни из выходных дней впервые удалось выбраться в Калининград. Я уделил немало внимания исследованию уровня жизни и благополучия края, в основном, ориентируясь на стоимость покупки/аренды жилья, цены в ресторанах и заработок таксистов. Данные достаточно доступные и позволяют сформировать общее представление о положении дел в городе/области.
Помимо экономической составляющей, конечно, старался погрузиться в культурный/исторический аспект жизни города. За короткий промежуток времени достаточно сложно проникнуться всеми особенностями, однако в Калининграде я бы выделил верное следование ограничениям скорости! Благодаря этому, возникает ощущение безопасности, замедления времени и спокойствия.
История города богатая, и в этом мешке событий я нашел кое-что интересное для себя. Речь пойдет о задаче семи пешеходных мостов Кёнигсберга. В свое время Эйлер в процессе размышлений над решением этой задачи положил начало теории графов. В статье рассмотрим задачу с позиции задачи линейного программирования и подтвердим результаты трехсотлетней давности с помощью Python и OR-Tools.
Parallel Stream — не панацея или используй с умом (tutorial для начинающих)
Данная статья может быть интересна тем, кто только изучает Stream API, либо набирает практический опыт их использования. В ней раскрывается функционал, плюсы и минусы использования Parallel Stream, но не касаемся использования последовательных Stream API в целом.
Параллельные потоки стали мощной функцией в Java 8 и более поздних версиях, предлагая разработчикам возможность без особых усилий выполнять операции сбора данных параллельно. Используя возможности многопоточности современных компьютеров, параллельные потоки могут значительно повысить производительность вашего кода. В этой статье мы рассмотрим несколько примеров использования параллельных потоков, подчеркнув их преимущества в различных сценариях.
Истории
Во что поиграть? – Need for Speed Underground
Представляю вашему вниманию новую статью из серию «Во что поиграть?», в которой я очень кратко рассказываю про игры, действительно заслуживающие возвращения на ваши компьютеры.
Сегодня предлагаю вернуться на улицы ночного Олимпик-Сити из Need for Speed Undeground, причем с модами на графику. Это одна из самых значимых гоночных игр нулевых, которая на долгие годы стала ориентиром того, как нужно делать игры такого жанра.
Простая проверка на компетентность программиста
Мы все знаем, что работа программиста зачастую заключается в модификации уже существующих программ (исходного кода) для исправления какого-то их некорректного поведения в некоторых ситуациях или для реализации новой функциональности для пользователей. В любом случае тот, кто считает себя хорошим программистом, должен быть готов что-то изменить или дополнить в своей или даже в чужой программе самым эффективным способом.
Мне кажется, у меня получилось придумать интересную задачу для проверки такой способности у программистов. Мне кажется, ничего подобного я никогда не видел, или, по крайней мере прямо сейчас не помню, может кто-то напомнит.
А еще мне кажется, что описанная далее задача была бы хорошей проверкой даже для искусственного интеллекта, чтобы проверить насколько он, собственно, интеллект в области способностей к программированию. Интересно возьмется ли кто-нибудь сформулировать такую задачу для ИИ. Возможно ли это?
RuGPT3. Исследование вариантов циклическим перебором
RuGPT3 - коллекция моделей от Сбер
Проводим автоматическое тестирование циклическим перебором вариантов
Работаем в Colab, тестируем Small, Mediub, Large.
Параметры генерации совершенно неоптимизированы - это первый заход, чтобы посмотреть исходную ситуацию и сравнивать по мере улучшения.
Алгоритм тестирования
полный последовательный перебор
10 вопросов
3 модели: Small, Medium, Large
Несколько наборов параметров внутри каждой модели
Реплики сохраняем в гугл-таблице
Неравный бой — Tinkoff эквайринг. Рекуррентные платежи
Цель данной статьи:
1. Помочь разработчикам в интеграции
2. Привлечь внимание команды Tinkoff на проблемы связанные с эксплуатацией их API
GitHub: переименование множества файлов в репозитории
В статье я рассказываю, как в репозитории веб-сервиса «GitHub» можно переименовать сразу множество файлов одним коммитом.
У меня небольшой учебный репозиторий, с которым я работаю через веб-интерфейс. Через веб-интерфейс можно переименовывать файлы по одиночке, но иногда появляется необходимость переименовать сразу много файлов по одному и тому же принципу. Операция переименования состоит из нескольких этапов: клонирование репозитория на свой компьютер, написание скрипта для переименования множества файлов и запуск переименования, создание коммита и отправка изменений в оригинальный репозиторий на «GitHub».
По ходу дела я касаюсь работы с «Git» из командной строки, немного разбираю настройку Git-репозитория, пишу скрипт на языке PowerShell, работаю с регулярными выражениями и создаю гранулированный токен доступа в «GitHub».
Генерация и валидация чисел по алгоритму Луна
Алгоритм Луна (Luhn algorithm) - это процесс вычисления контрольной цифры для числа в соответствии со стандартом ISO/IEC 7812. Процесс предназначен, в первую очередь, для выявления ошибок, вызванных с непреднамеренным искажением данных. Например, при ручном вводе номера карты или любого другого числа.
Разберём как он работает и рассмотрим инструмент для формирования номеров по алгоритму.
FaceAuth или как с легкостью встроить FaceID в любое .NET приложение
В программировании есть много разных способов аутентификации и каждая из них имеет как свои плюсы, так и минусы. В этой статье я хотел бы сделать обзор библиотеки, позволяющей с легкостью добавить аутентификацию лица в ваше .NET приложение.
<h2><font color="#9cc2ce">Пару слов обо мне</font></h2>
Меня зовут Салахетдинов Орхан, и я — .NET-разработчик. Люблю изучать что-то новое в сфере программирования (и не только) и хочу внести свою лепту в развитие open-source. Еще хотел бы добавить, что это моя первая статья, я бы хотел написать еще одну (возможно, и несколько) статей про системы распознавания лиц и как они работают на простом языке. Если будет хороший актив и фидбек, то почему бы и нет? Судите, как хотите, так как я рад любому фидбеку, исключение — тотальная аннигиляция поста (опционально) :)
<h2><font color="#9cc2ce">С чего все началось?</font></h2>
Не так давно, буквально несколько месяцев назад, мне стала любопытна тема computer vision и ее часть — face recognition. Мне всегда нравилась функция FaceID от Apple, так как она очень удобная и практичная, и я подумал: есть ли такая библиотека для платформы .NET? К сожалению, после недолгого ресерчинга я так и не нашел чего-то похожего для .NET. В итоге я решил создать свою библиотеку аутентификации лица. Цель данной библиотеки — прежде всего пиар показать .NET- (и не только) разработчикам, как легко можно использовать Face Authentication в своих проектах.
Угроза DoS — обсуждаем уязвимости протокола ICMP
Так, одно из слабых его мест — механизм перенаправления. С его помощью злоумышленники могут управлять маршрутизацией трафика. Разберём, в чем тут дело и как этому можно противодействовать.
Star Wars: Obi-Wan — история провального эксклюзива для оригинальной Xbox
За 40 лет во франшизе «Звёздных войн» вышло более ста игр. Было всё: хиты, средние проекты, откровенно провальные и просто десятки казуальных забав (шахматы, пинбол, монополия, мобильные игры). Но среди крупных и многообещающих проектов одна игра стоит особняком — это Star Wars: Obi-Wan, эксклюзив для оригинального Xbox.
Этот потенциальный хит про становление великого джедая вышел в конце 2001 года, получил уйму разгромных обзоров и был забыт, кажется, навсегда. Фактически это единственная игра по «Звёздным войнам» из шестого поколения консолей, которая никогда не переиздавалась и не имеет обратной совместимости даже с Xbox 360. Obi-Wan навсегда остался заложником одной платформы. Ни старая LucasArts, ни сегодняшняя LucasFilm никогда о ней не вспоминали.
В общем, разбираем историю провала игры, и пытаемся понять, что же с ней пошло не так.
Доводите свои проекты до конца
Браться за новый проект всегда интересно и волнительно. Возможности безграничны. Нет никакого легаси-кода, тянущего ко дну; на этот раз мы будем принимать только хорошие решения! Начало любого проекта всегда характеризуется вдохновенной продуктивностью. Предстоит ещё так многое сделать. Как можно что-то не сделать даже за такое короткое время? Пограничных случаев не существует. Все дороги доставляют удовольствие. Нет ни тяжёлых решений, ни компромиссов, ни пользователей, ни клиентов. Только вы и бесконечный холст.
Но рано или поздно вдохновение сменяется чем-то больше похожим на… работу. На рутину. Но ведь так будет только с этим проектом, правда? Вы потеряли интерес. Страсть ушла. Он уже не такой интересный, как вы думали. Осталось сделать только самое «скучное».
У вас появляется новая идея, и вы думаете, что эту-то уж точно реализуете!
И этот цикл продолжается снова и снова, пока у вас не образуется кладбище незаконченных проектов. Вы задаётесь вопросом: как вообще кому-то удаётся что-то завершать? Что все остальные знают такого, что неизвестно вам?
Но не волнуйтесь, вы не один. На самом деле, вы, скорее, в большинстве! Многие люди мечтают создавать что-то великое, но никак не могут начать. Из тех немногих, кто начинает, очень немногие заканчивают. И эти несколько людей знают чувство глубокого удовлетворения от того, что видят готовый результат своей работы. Это удовлетворение намного глубже, чем эйфория начала проекта.
Стратегии эффективного развития бизнеса на конкурентном рынке
В этой статье я рассмотрю несколько стратегий, которые помогают бизнесу развиваться и которые можно применить на практике. Возможно, некоторые подходы будут для вас очевидными, тем не менее основная ценность статьи заключается в комбинации нескольких методов для формирования эффективной стратегии.
Несмотря на то что данная статья основывается именно на опыте разработки ИТ-продуктов, я часто встречаю бизнесы из офлайна, которые уже развиваются, но еще не осознают в полной мере, что занимаются развитием своего продукта. Поэтому в тексте я привожу примеры, которые не всегда относятся к ИТ-продуктам. На мой взгляд, это может быть полезно для разных типов бизнеса.
Волновой алгоритм
Волновой алгоритм — алгоритм поиска пути, алгоритм поиска кратчайшего пути. Принадлежит к алгоритмам, основанным на методах поиска в ширину.
Если BlackBerry не идет к пользователям, то пользователи идут к BlackBerry: проекты с запчастями и/или идеями «ежевички»
Многие читатели Хабра успели полюбить телефоны BlackBerry — как относительно старые телефоны, так и смартфоны последних лет, разработанные уже после продажи бизнеса компании другому бренду. Автор этих строк года полтора использовал Blackberry Passport, и если бы не отсутствие поддержки современного ПО, то, вероятно, продолжал бы с ним работать.
К сожалению, сейчас это преимущественно «звонилка», поскольку поддержки софта нет, кроме разного рода сторонних продуктов и фанатских поделок. Тем не менее, телефоны BlackBerry не умерли, на их базе разрабатывают другие устройства. Иногда это смартфоны, иногда — внешние аксессуары к ПК и ноутбукам. Давайте посмотрим, что это такое.
Статистика за июнь по QA вакансиям на HeadHunter
Раз в месяц я и команда вручную собираем статистику по вакансиям тестировщиков на HeadHunter.
Мы не делаем выводы, а оставим тут сухие цифры. Много или мало сейчас открытых вакансий и что с рынком — пусть каждый интерпретирует по-своему.
Сегодня статистика за июнь 2023г.
Отмечаем годовщину «доллара по 52 рубля»: с тех пор курс вырос на 71%
За июнь курс доллара к рублю вырос на 10% и в минувшую пятницу превысил 89 руб. В воздухе витают вопросы – чё делать, как дальше жить?!
История компьютерных стратегий. Часть 2: как настольные варгеймы превратились в компьютерные стратегии
Говоря о зарождении жанра компьютерных стратегий, обычно первым делом вспоминают две эпохальные игры: глобальную пошаговую «Sid Meier’s Civilization» и RTS «Dune II» по мотивам романов Фрэнка Герберта и отчасти экранизации «Дюны» Дэвидом Линчем. Однако путь к появлению этих шедевров начала 90-х годов был долог и успел вместить в себя десятки тайтлов. В первой части мы вспомнили о том, как машины учили играть в первую их стратегическую игру: шахматы. Теперь поговорим об истории возникновения собственно компьютерных стратегий в современном понимании этого слова.
В качестве самой первой нешахматной компьютерной стратегии в истории многие статьи указывают «Invasion» 1972 года для консоли Magnavox Odyssey. Это не совсем точно. А скорее — совсем неточно. И вот почему.