Социальные сети Рунета
Четверг, 18 апреля 2024

[Перевод] Вычисление 2D-коллизий: алгоритм Гилберта — Джонсона — Кирти Я занялся изучением процессов распознавания коллизий, и это привело меня к алгоритму Гилберта — Джонсона — Кирти (Gilbert-Johnson-Keerthi, GJK). Все примеры кода в посте написаны на TypeScript. В примерах используются созданные мной структуры, которые подробно в посте не р...

Пишем XGBoost с нуля — часть 1: деревья решений Привет, Хабр! После многочисленных поисков качественных руководств о решающих деревьях и ансамблевых алгоритмах (бустинг, решающий лес и пр.) с их непосредственной реализацией на языках программирования, и так ничего не найдя (кто найдёт — напишите в комментах, может, что...

Алгоритм Гровера и поиск данных Привет, Хаброжители! Мы недавно сдали в топографию книгу Криса Бернхарда «Квантовые вычисления для настоящих айтишников». Здесь решили поделится отрывком из книги «Алгоритм Гровера и поиск данных» Мы вступаем в эпоху больших данных. Эффективный поиск в гигантских массивах ...

Что внутри чат-бота? Меня зовут Иван Бондаренко. Я занимаюсь алгоритмами машинного обучения для анализа текстов и устной речи примерно с 2005 года. Сейчас работаю в Московском Физтехе ведущим научным разработчиком лаборатории бизнес-решений на основе Центра компетенций НТИ по Искусственному инте...

Создание системы формальной верификации с нуля. Часть 1: символьная виртуальная машина на PHP и Python Формальная верификация — это проверка одной программы либо алгоритма с помощью другой. Это один из самых мощных методов, который позволяет найти в программе все уязвимости либо же доказать, что их нет. Более подробное описание формальной верификации можно увидеть на пример...

[Перевод] Почему люди не используют формальные методы? На Software Engineering Stack Exchange я увидел такой вопрос: «Что мешает широкому внедрению формальных методов?» Вопрос был закрыт как предвзятый, а большинство ответов представляли собой комментарии типа «Слишком дорого!!!» или «Сайт — это не самолёт!!!» В каком-то смысле ...

[Из песочницы] На одной асимптотике далеко не уедешь… Любители посоревноваться в алгоритмах часто говорят об асимптотике того или иного решения задачи. При этом нередко можно встретить высказывания, что, мол, «вот этот» алгоритм работает за O(n), а «вон тот»  – за O(n·log(n)), значит первый однозначно быстрее и, следовательно,...

GOSTIM: P2P F2F E2EE IM за один вечер с ГОСТ-криптографией Будучи разработчиком PyGOST библиотеки (ГОСТовые криптографические примитивы на чистом Python), я нередко получаю вопросы о том как на коленке реализовать простейший безопасный обмен сообщениями. Многие считают прикладную криптографию достаточно простой штукой, и .encrypt() ...

Шпаргалка по структурам данных в Go Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею. Но курсы по алгоритмам и структурам данных да...

[Перевод] Понимание алгоритма БПФ Здравствуйте, друзья. Уже завтра стартует курс «Алгоритмы для разработчиков», а у нас остался один неопубликованный перевод. Собственно исправляемся и делимся с вами материалом. Поехали. Быстрое преобразование Фурье (БПФ — англ. FFT) является одним из важнейших алгоритмов о...

[Из песочницы] Блиц-проверка алгоритмов машинного обучения: скорми свой набор данных библиотеке scikit-learn Глобальная паутина изо дня в день пополняется статьями о самых популярных, наиболее употребляемых алгоритмах машинного обучения для решения различных задач. Причём основа этих статей, немного изменённая по форме в том или ином месте, кочует от одного исследователя данных к...

[Из песочницы] PHP: Как разобрать сложный XML-файл и не утонуть в собственном коде Доброе время суток! Сфера применения XML-формата достаточно обширна. Наряду с CSV, JSON и другими, XML — один из самых распространенных способов представить данные для обмена между различными сервисами, программами и сайтами. В качестве примера можно привести формат Commerc...

Пишем XGBoost с нуля — часть 2: градиентый бустинг Всем привет! В прошлой статье мы разбирались, как устроены решающие деревья, и с нуля реализовали алгоритм построения, попутно оптимизируя и улучшая его. В этой статье мы реализуем алгоритм градиентого бустинга и в конце создадим свой собственный XGBoost. Повествование буд...

Дискретная математика для WMS: кластеризация партий товаров на складе В статье рассказывается как при внедрении WMS-системы мы столкнулись с необходимостью решения нестандартной задачи кластеризации и какими алгоритмами мы ее решали. Расскажем, как мы применяли системный, научный подход к решению проблемы, с какими сложностями столкнулись и ...

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

В очередной раз о НОД, алгоритме Евклида и немного об истории алгоритмов вообще. Конечно, с примерами на Swift Алгоритмы – одна из центральных тем в программировании, они повсюду (особенно на собеседованиях, ха-ха). (Разве можно обойтись в таком посте без «баяна»?) Одним из самых известных является так называемый алгоритм Евклида – пожалуй, самый распространенный способ нахождения...

Optlib. Реализация генетического алгоритма оптимизации на Rust В этой статье описывается библиотека optlib, предназначенная для решения задач глобальной оптимизации на языке Rust. На момент написания этой статьи в этой библиотеке реализован генетический алгоритм нахождения глобального минимума функции. Библиотека optlib не привязана к к...

Книга «Глубокое обучение с подкреплением на Python. OpenAI Gym и TensorFlow для профи» Привет, Хаброжители! Глубокое обучение с подкреплением (Reinforcement Learning) — самое популярное и перспективное направление искусственного интеллекта. Практическое изучение RL на Python поможет освоить не только базовые, но и передовые алгоритмы глубокого обучения с подк...

Реализация целого типа в CPython На Хабре уже были статьи о подробностях реализации менеджера памяти CPython, Pandas, я написал статью про реализацию словаря. Казалось бы, что можно написать про обычный целочисленный тип? Однако тут не всё так просто и целочисленный тип не такой уж и очевидный. Если вам и...

Алгоритм мышления и сознания, часть 2 Данный текст содержит пояснения к алгоритму из моей первой статьи “Алгоритм мышления и сознания”. Тезисы первой статьи: Феномен субъективного мышления можно алгоритмизовать. Предъявленный в статье алгоритм мыслит и этим можно воспользоваться практически. С помощью алгорит...

Как работает PageRank: реализация на языке R через линейную алгебру и power-метод Привет, хабровчане! Меня зовут Алексей. На этот раз я вещаю с рабочего места в ИТАР-ТАСС. В данном небольшом тексте я познакомлю вас с методом расчета PageRank © (далее буду называть его ПР) на простых, понятных примерах, на языке R. Алгоритм является интеллектуальным дос...

Уничтожить монополию Америки в EDA. Иннополис делает первый шаг Еще с 1990-х годов меня поражало, что проектирование всей мировой цифровой микроэлектроники контролируется двумя конторами в Калифорнии, которые находятся в 10 минутах езды друг от друга — Synopsys и Cadence. В те времена четверть мирового проектирования делалось в Японии ...

Решето Эратосфена за O(n). Доказательство В комментариях к одному из прошлых постов о решете Эратосфена был упомянут этот короткий алгоритм из Википедии: Алгоритм 1: 1: для i := 2, 3, 4, ..., до n: 2: если lp[i] = 0: 3: lp[i] := i 4: pr[] += {i} 5: для p из pr пока p ≤ lp[i] и p*i ≤ n: 6: lp[...

[Из песочницы] Алгоритм Дугласа-Пекера Предисловие Не так давно пришлось поработать с упрощением полигональной цепи (процесс, позволяющий уменьшить число точек полилинии). В целом, данный тип задач очень распространен при обработке векторной графики и при построении карт. В качестве примера можно взять цепь, неск...

[Перевод] Генератор подземелий на основе узлов графа В этом посте я опишу алгоритм процедурной генерации уровней двухмерного подземелья с заранее заданной структурой. В первой части будет представлено общее описание, а во второй — реализация алгоритма. Введение Алгоритм был написан как часть работы на получение степени бакал...

Умножение матриц: эффективная реализация шаг за шагом Введение Умножение матриц — это один из базовых алгоритмов, который широко применяется в различных численных методах, и в частности в алгоритмах машинного обучения. Многие реализации прямого и обратного распространения сигнала в сверточных слоях неронной сети базируются на...

Arend – язык с зависимыми типами, основанный на HoTT (часть 1) В данном посте мы поговорим о только что выпущенном JetBrains языке с зависимыми типами Arend. Этот язык разрабатывался JetBrains Research на протяжении последних нескольких лет. И хотя репозитории уже год назад были выложены в открытый доступ на github.com/JetBrains, полноц...

[По докам] Flutter. Часть 1. Для Android разработчиков Про Flutter написано уже много статей. С каждым месяцем он становится всё популярнее. Поэтому я решил интерпретировать официальную документацию Flutter в лаконичный формат «вопрос — ответ». Думаю, многие, как и я, не имеют достаточно свободного времени для подробного изучени...

[Перевод] Как я выиграл 3 из 4 золотых медалей на Computing Olympiad Я готовился к Финалу чемпионата мира Google HashCode 2017. Это крупнейший конкурс с алгоритмическими задачами, организованный Google. Я начал изучать C ++ с нуля в девятом классе. Я ничего не знал о программировании, алгоритмах и структурах данных. В какой-то момент я на...

Утечка данных покупателей магазинов re:Store, Samsung, Sony Centre, Nike, LEGO и Street Beat На прошлой неделе издание Коммерсантъ сообщило, что «базы клиентов Street Beat и Sony Centre оказались в открытом доступе», но на самом деле все гораздо хуже, чем написано в статье. Подробный технический разбор данной утечки я уже делал у себя в Telegram-канале, поэтому ту...

Поиск похожих изображений, разбор одного алгоритма Пришлось мне недавно решать задачку по оптимизации поиска дубликатов изображений. Существующее решение работает на довольно известной библиотеке, написанной на Python, — Image Match, основанной на работе «AN IMAGE SIGNATURE FOR ANY KIND OF IMAGE» за авторством H. Chi Wong...

[Из песочницы] Разбор критической ошибки в алгоритме работы шифрования КИБ SEARCHINFORM Контроль всей информации циркулирующей в организации является одной из главных задач при практической реализации организационно-распорядительных документов (политика информационной безопасности и иные внутренние документы нижних уровней) организации. Системы предотвращения у...

[Из песочницы] Как самостоятельно имплементировать (Proof of Existence) за 2 шага Всем привет! Я работаю в компании, QuantNet, которая проводит конкурсы алгоритмических стратегий. В недавнем времени передо мной встала важная задача — обеспечить гарантии неприкосновенности даты юзеров (это чрезвычайно важно, так как для корректной проверки эффективностей с...

Изучая Dependency Injection Несмотря на то, что паттерну уже более десятка лет и есть немало статей (и переводов), тем не менее споров, комментариев, вопросов и разных реализаций становится все больше и больше. ПредысторияВ 2004 Мартин Фаулер написал известную статью “Inversion of Control Containers ...

[Из песочницы] Как я учил змейку играть в себя с помощью Q-Network Однажды, исследуя глубины интернета, я наткнулся на видео, где человек обучает змейку с помощью генетического алгоритма. И мне захотелось так же. Но просто взять все то же самое и написать на python было бы не интересно. И я решил использовать более современный подход для об...

[Перевод] PEG парсеры Несколько лет назад меня кто-то спросил имеет ли смысл превести Python на PEG-парсер (или на грамматику PEG; я не помню точно кто и когда это было). Тогда я немного посмотрел на него, но так и не пришёл к какому-либо выводу, а потому и отбросил эту тему. Недавно я узнал боль...

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

Laravel: объясняем основные понятия. Часть вторая: «Практика» Всем привет! Продолжаем серию авторских публикаций в преддверии старта курса «Framework Laravel». В прошлой статье мы с вами посмотрели на теоретические основы Laravel. Однако теорию любого фреймворка можно изучать достаточно долго и ничего не понять, пока сам не напишешь н...

[Из песочницы] Метод создания DRAG and DROP эффекта Придя впервые к технологии DRAG and DROP столкнулся с очень тяжелым её описанием (Это мое субъективное мнение. Прошу с ним не соглашаться, а перечитать все что только можно и посмотреть на этот вопрос с многих сторон). И решил написать пару статей, нацеленных на начинающих р...

Как запустить java-проект на shell-раннере при пуше в репозиторий GitLab’а Меня зовут Иван Сидоренко, я инженер по тестированию в компании Digital Design. Передо мной стояла задача — внедрить запуск автотестов, написанных на Java Selenium. Я новичок в CI/CD, поэтому столкнулся со множеством проблем. Подробных инструкций в интернете по этой задаче ...

[Перевод] 14 советов по написанию чистого React-кода. Часть 1 Написание чистого кода — это навык, который становится обязательным на определённом этапе карьеры программиста. Особенно этот навык важен тогда, когда программист пытается найти свою первую работу. Это, по существу, то, что делает разработчика командным игроком, и то, что сп...

О том как я подготовился и сдал сертификацию Oracle Database SQL (1Z0-071) Зачем написана статья? Когда я готовился к OCA и OCP по Java 8, то нашел много статей на Хабре, благодаря которым выбрал оптимальный путь и сэкономил много времени. Однако по подготовке именно к OCA Oracle Database SQL (1Z0-071) материалов на Хабре нет и в интернете тоже о...

Используем Пролог Эй, фулстеки, давайте тренировать навыки. Предлагаю разминать извилины, как мне кажется, это интересно делать используя иную, непривычную, парадигму. Большинство разработчиков имеют развитой скилл алгоритмизации — задача превращается в кирпичики, которые нужно соединить, про...

Математика в Gamedev по-простому. Триангуляции и Triangle.Net в Unity Всем привет! Меня зовут Гриша, и я основатель CGDevs. Математика – очень крутой инструмент при разработке игр. Но если скажем без понимания векторов и матриц обойтись в принципе сложно, то алгоритмы триангуляций не столь обязательная вещь, но с помощью них решается достаточн...

AI-интерфейсы и где они обитают Недавно мы написали на Хабр колонку о том, как выпустили собственную онлайн-игрушку. Одной из фишек, над которой мы серьезно заморочились, стала AI-генерация аватарок для своего персонажа «на лету» по фотографии (пока работает в прототипе и частью игры не является). При этом...

[Перевод] Инструментарий для анализа и отладки .NET приложений Заглянуть «под капот» кода или посмотреть на внутреннее устройство CLR можно с помощью множества инструментов. Этот пост родился из твита, и я должен поблагодарить всех, кто помог составить список подходящих инструментов. Если я пропустил какие-то из них, напишите в коммента...

[Из песочницы] Автоматика для дома своими руками Моя статья будет полезна тем, кто только задумывается над подобного рода системой, поможет определиться делать ли самому и ориентирована в основном на энтузиастов-колхозников. Изначально пишу “автоматика” а не умный дом, потому что на данном этапе умных функций в моей систем...

ML на Scala с улыбкой, для тех, кто не боится экспериментов Всем привет! Сегодня будем говорить о реализации машинного обучения на Scala. Начну с объяснения, как мы докатились до такой жизни. Итак, наша команда долгое время использовала все возможности машинного обучения на Python. Это удобно, есть много полезных библиотек для подг...

[Из песочницы] Пишем VLC плагин для изучения английского В данной статье я расскажу о том, как написать плагин на языке C для медиаплеера VLC. Я написал свой плагин для упрощения просмотра сериалов и фильмов на английском языке. Идея создания этого плагина описывается в разделах Идея и Поиск решения. Технические детали реализаци...

Курс В этом курсе вас ждут Обработка естественных языков: извлечение именованных сущностей, построение онтологий предметных областей, кластеризация текстов — методы, позволяющие структурировать тексты. Компьютерное зрение: распознавание и классификация объектов....

Docker + Laravel = ❤ // Часть 2 Данный пост написан по заявкам трудящихся, которые с завидной периодичностью спрашивают о том "Как запустить Illuminate / Symfony / MyOwnPsr7 приложение в докере". Давать ссылку на ранее написанный пост уже не хочется, так как взгляды относительно того, как следует решать п...

Линейная регрессия и методы её восстановления Источник: xkcd Линейная регрессия является одним из базовых алгоритмов для многих областей, связанных с анализом данных. Причина этому очевидна. Это очень простой и понятный алгоритм, что способствует его широкому применению уже многие десятки, если не сотни, лет. Идея зак...

[Из песочницы] Рассылка Push-уведомлений с SpringBoot сервера Предисловие Приветствую Вас. Недавно передо мной стала задача — настроить Push-уведомления на сайте. С этим я столкнулся впервые и во много разобраться мне помогла эта статья. В ней же уже есть описание серверной стороны, но, в процессе изучения данной темы я обнаружил более...

[Перевод] Новости из мира OpenStreetMap № 480 (24.09.2019-30.09.2019) CyclOSM is a brand new bike-oriented map 1 | Leaflet | CyclOSM v0.2 | Map data OpenStreetMap contributors О нас Уточнение: пользователь AndiTabinas не является участником программы стипендии SotM-2019 (об этом мы ошибочно написали в прошлом выпуске № 479). Информация (пос...

[Перевод] Простое объяснение алгоритмов поиска пути и A* Часть 1. Общий алгоритм поиска Введение Поиск пути — это одна из тех тем, которые обычно представляют самые большие сложности для разработчиков игр. Особенно плохо люди понимают алгоритм A*, и многим кажется, что это какая-то непостижимая магия. Цель данной статьи — объясн...

Как настроить Linux для входа в домен с использованием алгоритмов ГОСТ Введение Протокол Kerberos 5 сейчас активно используется для аутентификации. Особенностью данного протокола является то, что он осуществляет аутентификацию, базируясь на трех китах: Симметричное шифрование Хеширование ЭЦП Третья доверенная сторона Начиная с пятой версии п...

Julia, Градиентный спуск и симплекс метод Продолжаем знакомство с методами многомерной оптимизации. Далее предложена реализация метода наискорейшего спуска с анализом скорости выполнения, а также имплементация метода Нелдера-Мида средствами языка Julia и C++. Читать дальше →

Нахождение объектов без учителя (Unsupervised Object Detection) Одна из важнейших задач в машинном обучении — детектирование объектов (Object Detection). Недавно был опубликован ряд алгоритмов машинного обучения основанных на глубоком обучении (Deep Learning) для детектирования объектов. Эти алгоритмы занимают одно из центральных мест ...

Как решать NP-трудные задачи с помощью параметризованных алгоритмов Научно-исследовательская работа, пожалуй, самая интересная часть нашего обучения. Идея в том, чтобы ещё в университете попробовать себя в выбранном направлении. Например, студенты с направлений Software Engineering и Machine Learning часто идут делать НИРы в компании (в осно...

Что позволено Jupyter? Наша история началась с, казалось бы, несложной задачи. Нужно было настроить аналитические инструменты для для data science специалистов и просто аналитиков данных. С таким заданием к нам обратились коллеги из подразделений розничных рисков и CRM, где исторически высока конц...

[Из песочницы] Создание своего jsfiddle, часть 1 Привет всем читателем habr. В данной статье мы напишем свой онлайн редактор кода. Зачем я писал свой онлайн редактор кода В один день мне стало интересно насколько сложно создать свой онлайн редактор по типу jsfiddle, из-за чего я решил написать свой редактор. Написание сво...

[Из песочницы] Небольшой бэкдор на Flask или как управлять компьютером в локальной сети Привет, Хабр! Недавно я посмотрел скачанную версию стрима по программированию «Как создать свое веб-приложение на Flask». И решил закрепить свои знания в каком-нибудь проекте. Долго не знал, что написать и мне пришла идея: «А почему бы не сделать мини-бэкдор на Flask?». В ...

Машинное обучение без Python, Anaconda и прочих пресмыкающихся Нет, ну я, конечно, не всерьез. Должен же быть предел, до какой степени возможно упрощать предмет. Но для первых этапов, понимания базовых концепций и быстрого «въезжания» в тему, может быть, и допустимо. А как правильно поименовать данный материал (варианты: «Машинное обуче...

Книга «Совершенный алгоритм. Графовые алгоритмы и структуры данных» Привет, Хаброжители! Алгоритмы — это сердце и душа computer science. Без них не обойтись, они есть везде — от сетевой маршрутизации и расчетов по геномике до криптографии и машинного обучения. «Совершенный алгоритм» превратит вас в настоящего профи, который будет ставить за...

[Перевод] Создаём процедурные глобусы планет Искажения, бесшовный шум и как с ними работать. Генерируем планету Один из простейших способов генерации планеты — использование шума. Если мы решим выбрать его, то у нас есть пара возможных вариантов. Давайте рассмотрим каждый и определим лучший: Шум Перлина (Perlin Noi...

Создаем несложный шахматный ИИ: 5 простых этапов Перевели для вас статью Лори Хартикка (Lauri Hartikka) о создании простейшего ИИ для шахмат. Она написана еще в 2017 году, но базовые принципы остались теми же. Все файлы, которые использовал Лори, тоже доступны. Простой искусственный интеллект, который умеет играть в ш...

Как распилить монолит на сервисы и сохранить производительность In-memory кэшей без потери консистентности Всем привет. Меня зовут Александр, я Java-разработчик в группе компаний Tinkoff. В данной статье хочу поделиться опытом решения проблем, связанных с синхронизацией состояния кэшей в распределенных системах. Мы столкнулись с ними, разбивая наше монолитное приложение на микр...

Реализация паттерна Page Object на Python + pytest Когда я начинал изучать автоматизацию тестирования, не мог понять — “что такое Page Object и как его реализовать на Python + pytest?”. Штудируя интернет, нашел реализацию на других языках и фреймворках: обучающие статьи, которые были непонятны для меня. Поэтому решил написат...

Модель для разработки, на основе «элементов» Вот уже на протяжении нескольких лет я мелкими шажками иду к этой цели. Первую половину времени я просто создавал сайты, сначала используя движки, затем с нуля — проектируя и базу данных и функционал. Каждый новый сайт или проект я пытался разработать так, чтобы он не был уз...

ООП, «святая троица» и SOLID: некоторый минимум знаний о них Необходимое вступление Я не гарантирую, что изложенные здесь трактовки общепринятых терминов и принципов совпадают с тем, что изложили в солидных научных статьях калифорнийские профессора во второй половине прошлого века. Я не гарантирую, что мои трактовки полностью разделя...

Деливерим фичи быстрее. Опыт Android-разработки в Badoo Всем привет! Меня зовут Анатолий Варивончик. Я работаю в Badoo уже больше года, а мой общий стаж Android-разработки — более пяти лет. В своей практике я и мои коллеги часто сталкиваемся с необходимостью тестировать идеи максимально быстро и просто. Мы не хотим тратить много...

Инструкция: как тестировать ansible-роли и узнавать о проблемах до продакшена Всем привет! Я работаю DevOps-инженером в сервисе бронирования отелей Ostrovok.ru. В этой статье я хочу рассказать о нашем опыте тестирования ansible-ролей. В Ostrovok.ru в качестве менеджера конфигураций мы используем ansible. Недавно мы пришли к необходимости тестирования ...

Обзор бесплатного инструмента SQLIndexManager Как известно индексы играют важную роль в СУБД, предоставляя быстрый поиск к нужным записям. Потому так важно их своевременно обслуживать. Об анализе и оптимизации написано достаточно много материала, в том числе и в Интернете. Например, недавно делался обзор данной темы в э...

Что делают в офисе инженеры в Apple и Intel: профориентационный онлайн-курс современной микроэлектроники для школьников Недавно вышел бесплатный онлайн-курс в трех частях под названием «Как работают создатели умных наночипов» (1, 2, 3). Он предназначен для профориентации школьников и отличается максимальной конкретностью: вот так выглядит распределение работы в команде проектирования микросхе...

[Перевод] Нейросети и глубокое обучение: онлайн-учебник, глава 2 Содержание Глава 1 Глава 2 В прошлой главе мы видели, как нейросети могут самостоятельно обучаться весам и смещениям с использованием алгоритма градиентного спуска. Однако в нашем объяснении имелся пробел: мы не обсуждали подсчёт градиента функции стоимости. А это приличный...

[Перевод] Неизменяемых коллекций в Java не будет – ни сейчас, ни когда-либо Всем привет! Сегодня вашему вниманию предлагается перевод вдумчиво написанной статьи об одной из базовых проблем Java — изменяемости, и о том, как она сказывается на устройстве структур данных и на работе с ними. Материал взят из блога Николая Парлога (Nicolai Parlog), чей...

[Из песочницы] Как написать эффективный скрипт теста юзабилити приложения Получение отзывов пользователей всегда было центральным в том, как мы создаем привлекательные приложения, которые приносят бизнес-ценность для клиентов и передают восхитительный пользовательский опыт. Мы делаем это, чаще всего, путем тестирования пользователями приложения....

[Из песочницы] Как с нуля написать приложение? С чего начать новичку? Flutter / Программирование Пол года назад я сама искала такую статью и теперь я очень хочу посоветовать себе в прошлом с чего можно начать. 1. Выбрать тему приложения Не нужно долгих мук выбора, просто начните делать то, что вам пригодилось бы. Лучше что-то простое. Нужно понимать, что мы пока не стр...

Создание продуктов, формирующих привычки Продолжаю, как я считаю, хорошую привычку делиться конспектами прочитанных книг. Букв будет много, но оно того стоит. Сократить старалась максимально, оставив полезное и не потеряв суть, но получилось все равно много. Немного о книге: написана легко и интересно, мало воды...

Заглянуть в черный ящик — новая система от MIT покажет, как работают алгоритмы машинного обучения В MIT представили интерактивный инструмент, который дает понять, почему интеллектуальная система принимает то или иное решение. В этом материале — о том, как он работает. Читать дальше →

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

Рекомендательная система для Directum Club. Часть первая, коллаборативная Каждый день пользователи по всему миру получают большое количество различных рассылок — только через сервис MailChimp ежедневно рассылают миллиард писем. Из них открывают 20.81%. Ежемесячно пользователи наших сайтов получают рассылки с отобранными редактором материалами. Эти...

[Из песочницы] Свой mapper или немного про ExpressionTrees Сегодня мы поговорим про то, как написать свой AutoMapper. Да, мне бы очень хотелось рассказать вам об этом, но я не смогу. Дело в том, что подобные решения очень большие, имеют историю проб и ошибок, а также прошли долгий путь применения. Я лишь могу дать понимание того, ...

Amazon Braket дает возможность попробовать квантовые вычисления Компания Amazon в лице своего подразделения Amazon Web Services (AWS) представила облачный сервис Amazon Braket. По словам AWS, это «полностью управляемый сервис, который облегчает ученым, исследователям и разработчикам создание, тестирование и запуск алгоритмов к...

Методика D.I.Y. проекта. Часть вводная Данная статья написана радиолюбителем, имеющим опыт руководства проектами по разработке и постановке на производство сложной радиоэлектронной аппаратуры. Цель данной статьи: помочь энтузиастам в организации их проектной деятельности, а также обозначить различия в подходах ...

Делаем мессенджер*, который работает даже в лифте *на самом деле мы напишем только прототип протокола. Возможно, вы встречались с подобной ситуацией – сидите в любимом мессенджере, переписываетесь с друзьями, заходите в лифт/тоннель/вагон, и интернет вроде ещё ловит, но отправить ничего не получается? Или иногда ваш прова...

Реализация QoS в СХД Qsan Технология QoS (Quality of Service) в сетевой инфраструктуре известна достаточно давно. Позже подобные алгоритмы нашли применение и в сфере хранения данных, став фактически стандартом для систем, претендующих на рынок Enterprise. В СХД Qsan данный функционал стал доступен от...

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

Как адаптировать UX/UI под permissions Во многих проектах существует процессы аутентификации (в той или иной степени). Написано много “бест практис” во всех известных технологиях и т.д. и т.п. Но вот пользователь сделал логин и? Ведь он далеко не всё может сделать. Как определить что он может видеть, а что нет. ...

[Перевод] Краткое введение в цепи Маркова В 1998 году Лоуренс Пейдж, Сергей Брин, Раджив Мотвани и Терри Виноград опубликовали статью «The PageRank Citation Ranking: Bringing Order to the Web», в которой описали знаменитый теперь алгоритм PageRank, ставший фундаментом Google. Спустя чуть менее два десятка лет Googl...

Monero может перейти на новый алгоритм консенсуса В сети ориентированной на повышенную приватность криптовалюты Monero может быть реализован новый PoW-алгоритм консенсуса под названием RandomX от разработчика децентрализованного интернета Arweave. Все зависит от результатов аудита нового протокола, сообщает Cointelegraph. Н...

[Из песочницы] Стартуем библиотеку компонентов на React и TypeScript Большую часть свой работы, я пишу бэкенды, но вот на днях появилась задача начать библиотеку компонентов на React. Несколько лет назад, когда версия React была такой же маленькой, как и мой опыт фронтенд-разработки, я уже делал подход к снаряду и получилось неумело и коряво...

[Перевод] Пишем свой сетевой слой на Swift: протокол-ориентированный подход Сейчас практически 100% приложений используют работу с сетью, поэтому вопрос организации и использования сетевого слоя встает перед каждым. Есть два основных подхода к решению этой проблемы, это либо использование сторонних библиотек, либо собственная реализация сетевого с...

[Из песочницы] Применение формальных методов валидации моделей для UI Привет, Хабр! Представляю вашему вниманию перевод статьи «FORMALLY SPECIFYING UIS» автора Hillel Wayne. От автора Относительно недавно я наткнулся на статью про Инженерные методы в разработке ПО, где vasil-sd рассказал про формальную валидацию спецификаций к создаваемым пр...

[recovery mode] Бинарные деревья поиска Прелюдия Эта статья посвящена бинарным деревьям поиска. Недавно делал статью про сжатие данных методом Хаффмана. Там я не очень обращал внимание на бинарные деревья, ибо методы поиска, вставки, удаления не были актуальны. Теперь решил написать статью именно про деревья. Пожа...

Как квантовая запутанность поможет в детектировании гравитационных волн Мы недавно сделали эксперимент по проверке нового подхода к снижению квантовых шумов в LIGO и написали статью про это, смотрите на arXiv: «Demonstration of interferometer enhancement through EPR entanglement». А тут я расскажу, какие такие квантовые шумы в LIGO, как их можно...

[Из песочницы] Мой опыт подготовки к экзамену JIRA Administrator ACP-100 Приветствую! В апреле 2018 успешно сдал экзамен по JIRA ACP-100, в октябре 2018 сдал экзамен по confluence ACP-200. Решил написать пост о том, как я готовился к экзамену JIRA ACP-100, дать советы для тех кому эта тема может быть интересна. Я опишу процесс своей подготовки к...

Предварительный обзор Colorful iGame GeForce GTX 1660 Ti Ultra. Мощная карта Буквально недавно мы написали новость о том, что компания NVIDIA представила свои новые видеокарты GTX 1660 Ti, которые, если верить тестам, очень даже хорошо себя зарекомендовали. Теперь появилась информация о том, что некоторые партнеры уже выпустили в продажу свои видеока...

[Перевод] Советы по созданию нестандартных рабочих процессов в GitLab CI Прим. перев.: Оригинальную статью написал Miłosz Smółka — один из основателей небольшой польской компании Three Dots Labs, специализирующейся на «продвинутых backend-решениях». Автор опирается на свой опыт активной эксплуатации GitLab CI и делится накопленными советами для д...

[Перевод] Доступное объяснение алгоритма коллапса волновой функции Алгоритм коллапса волновой функции (Wavefunction Collapse Algorithm) учит компьютер импровизировать. На входе он получает архетипичные данные и создаёт процедурно генерируемые данные, похожие на исходные. (Источник) Чаще всего он используется для создания изображений, но ...

Субъективное видение идеального языка программирования Дальнейший текст — моя точка зрения. Возможно, она позволит кому-то по-новому взглянуть на дизайн языков программирования или увидеть какие-то преимущества и недостатки конкретных фич. Я не буду лезть в частные подробности типа "в языке должна быть конструкция while", а прос...

[Из песочницы] Использование SQLite в Unity (Unity + SQLite) Всем привет, данная публикация будет посвящена работе с встраиваемой реляционной базой данных SQLite в Unity. Данная статья написана новичком для новичков с целью показания работы с SQLite, предполагается, что вы знаете основы SQL. Так как в интернете нет ясного тутора для н...

Алгоритм взаимодействия сотен тысяч уникальных частиц на GPU, в GLES3 и WebGL2 Описание алгоритма логики, и разбор рабочего примера в виде техно-демки-игры WebGL2 версия этой демки https://danilw.itch.io/flat-maze-web остальные ссылки смотрите в статье. Статья разбита на две части, сначала про логику, и вторая часть про применение в игре, первая часть...

[Перевод] Трудно быть мейнтейнером проекта Open Source Автор — Сальваторе Санфилиппо, разработчик и мейнтейнер свободной СУБД Redis Несколько месяцев назад мне написал мейнтейнер одного системного open source проекта с довольно большим и активным сообществом. Он написал, что много лет изо всех сил пытается поддерживать свой пр...

Структура DNS пакета Предисловие Решил как то написать снифер DNS, так сказать just for fun. Просто посмотреть какие адреса в моей системе резолвятся. Протокол старый, документации должно быть много. Много. Но все статьи очень не полные и заканчиваются, на самом интересном моменте. Да, есть rf...

REST сервер на Прологе, как это выглядит? В качестве небольшого экскурса для непосвященных в логическое программирование в этом тексте будет проведен сеанс магии с разоблачением приведен подход к созданию REST-сервера и замерены его параметры. В чем подвох? А все просто — будем делать на Прологе (в реализации SWI-...

Генетические алгоритмы (или Клиент всегда король — и часто дурак) Привет, Хабр! Сейчас вот сидел, делал для товарища прототип генетического алгоритма. Навеяло поделиться оным, да и некоторыми другими мыслями… Дано (клиент заказал): в некоем царстве складе есть 100 ячеек. В нем товар лежит. Как взять количество Х так, чтобы опустошить все...

[Перевод] Почему для открытия меню Windows читает один файл сто тысяч раз? «Проводник тратит 700 мс на то, чтобы открыть контекстное меню панели задач. 75% этого времени он выполняет 114 801 операцию считывания из одного файла, средний объём считываемых данных 68 байт. Мне стоит написать пост об этом, или достаточно саркастичного твита?» За комп...

AWS Lambda — теория, знакомство Краткий экскурс в AWS Lambda Что это? AWS Lambda: это вычислительный сервис, который позволяет запускать код практически для любого типа приложения или серверной службы — и все это без необходимости администрирования. AWS Lambda выполняет все администрирование за вас, включа...

[Из песочницы] Назад в будущее с WebAssembly Привет, Хабр! Представляю вашему вниманию перевод статьи «Back To The Future With WebAssembly» автора Attila Vágó. Данный пост является переводом статьи, в которой рассказывается о свойствах WebAssemly и Emscripten. Оригинал статьи на английском языке. Автор статьи Аттила ...

Как я узнал, что моя виза не готова, сообщением в Slack Пост актуальный для майских праздников. 6 недель назад я подал документы, чтобы получить визу в Ирландию. Вылет запланирован на 30 апреля. Существует сайт посольства, на котором публикуются списки решений по визам. Они это делают по понедельникам и четвергам. И вот я сижу в ...

[Из песочницы] GridmiAPI — простая и гибкая библиотека Android для работы с REST&RPC Здравствуйте, хабровчане! Когда занимаешься разработкой сетевых приложений под платформу Android, понимаешь, что одно и другое приложение похоже друг на друга. С этой мыслью у большинства разработчиков инициализируется и другая мысль — «Почему бы мне не использовать какие-л...

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

[Из песочницы] Создаем свой компонент с микро-шаблонами Всем привет. Все кто так или иначе писал на фреймворке Angular сталкивался или работал с библиотекой Angular Material. Это очень хорошо написанная библиотека компонентов способная к гибкой стилизации, которая реализована через возможность создания различных тем вашего прилож...

Cubux 2.0 семейная бухгалтерия и управление бюджетом Cubux.net – представляет собой онлайн сервис для учета расходов, доходов, долгов. Благодаря полноценной синхронизации данные сохраняются в базу с любого устройства. Функция «Совместного учета» позволяет пользовать приложением сразу всей семье. Операция по расходам з...

[Перевод] SMAA: улучшенное субпиксельное морфологическое сглаживание Данная статья основана на журнале Хорхе Хименеса, Хосе Эчеварриа, Тиаго Соуса и Диего Гутьерреса. Их демо реализации SMAA можно посмотреть здесь (файл .exe). На моём GTX 960 2GB оно работает вполне нормально. Старые способы сглаживания (антиалиасинга) Долгие годы стандарт...

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

Об open-source реализациях хэш-функции ГОСТ Р 34.11-2012 и их влиянии на электронную подпись ГОСТ Р 34.10-2012 В свое время реализация отечественных криптографических алгоритмов в библиотеке libgcrypt очень меня вдохновила. Стало возможным задействовать эти алгоритмы и в Kleopatra и в Kmail и в GnuPg в целом, рассматривать библиотеку libgcrypt как алтернативу openssl с ГОСТ-ым engine...

Главный секрет Google I/O 2019, о котором не узнать из интернета Титульная конференция крупнейшего гиганта рекламного бизнеса отгремела уже как неделю, а некоторые до сих пор пишут статьи. Так как всё, что можно было написать про программу и главные новинки, уже написано (привет phillennium), то что остаётся скромному посетителю? Только р...

О том, что мы реализовали в EWM благодаря вашим советам Это пост о том, как мы доводим до ума English Word Mania — мобильное приложение, которое помогает обогащать лексический запас при изучении английского языка и превращает этот процесс в соревнование. После предыдущей публикации мы получили ценный фидбек от читателей, который ...

[Перевод] Алгоритм размещения тайлов на основе ограничений В этом посте описывается алгоритм, используемый в Generate Worlds — инструменте, позволяющем пользователям создавать и исследовать процедурные миры построением небольших множеств воксельных тайлов. Я приведу краткое описание алгоритма, а в следующих постах расскажу о его пр...

Чтение на лето: книги для технарей Мы собрали книги, которые рекомендуют своим коллегам по цеху резиденты Hacker News. Здесь нет справочников или руководств по программированию, зато есть любопытные издания о криптографии и теоретической информатике, об основателях IT-компаний, есть и научная фантастика, напи...

Edition-Based Redefinition: можно ли в production? Привет! Меня зовут Антонина, я Oracle-разработчик IT-подразделения «Sportmaster Lab». Работаю тут всего два года, но благодаря дружной команде, сплоченному коллективу, системе наставничества, корпоративному обучению, накопилась та самая критическая масса, когда хочется не пр...

С чего начать изучение Python: книги для начинающих Друзья, забирайте в закладки подборку из 17 книг по Python. Подборка поможет вам освоить язык программирования с нуля или с минимальными знаниями. Готовы приступить к изучению Python? Тогда начнем! Читать дальше →

Samsung Compiler Bootcamp: научим создавать «программирующие программы» Каждый уважающий себя программист хотя бы раз в жизни хотел придумать свой язык программирования – и сделать для него компилятор. Подобное желание вполне понятно: сделать программу, которая в результате своей работы порождает другую программу – это, если вдуматься, волшебс...

[Из песочницы] Под капотом у React. Пишем свою реализацию с нуля 


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

Как мы разрабатываем персональные товарные рекомендации Наши клиенты-магазины хотят делать крутой маркетинг. Чтобы люди больше покупали, они регулярно шлют им email-рассылки. И каждый раз думают: “Что же написать в письме?”. Можно писать просто: “Покупайте у нас почаще!”, но это не очень-то работает. Идея получше — вставлять в п...

[Перевод] Обработка ошибок в Go Привет, хабровчане! Уже сегодня в ОТУС стартует курс «Разработчик Golang» и мы считаем это отличным поводом, чтобы поделиться еще одной полезной публикацией по теме. Сегодня поговорим о подходе Go к ошибкам. Начнем! Освоение прагматической обработки ошибок в вашем Go-коде...

[Перевод] Процедурные паттерны, которые можно использовать с тайловыми картами Процедурная генерация используется для повышения вариабельности игр. Среди известных проектов можно упомянуть Minecraft, Enter the Gungeon и Descenders. В этом посте я объясню некоторые из алгоритмов, которые можно применять при работе с системой Tilemap, появившейся как 2D-...

Книга «Учимся кодить на JavaScript» Привет, Хаброжители! Мы издали книгу для мальчиков и девочек от 10-11 лет которая поможет самостоятельно, без помощи родителей и учителей, написать программный код. Ты любишь играть онлайн? Общаться с друзьями через ВКонтакте, Фейсбук и Инстаграм? Смотреть видеоролики на см...

[Из песочницы] Проблема установки Ruby on Rails в конце 2019 года Всем привет любители программировать и улучшать мир к лучшему. В данном посте я расскажу как мучился с установкой Ruby on Rails, сразу скажу, до этого я никогда не сталкивался с данным решением и задание мне дал потенциальный работодатель, написать определенное решение на д...

[Перевод] Почему я сворачиваю свою работу над Debian От переводчика: этот текст — перевод записи в личном блоге Михаэля Стапельберга (Michael Stapelberg) видного open source-разработчика (профиль GitHub), который внес значительный вклад в развитие Debian. Этот пост было сложно написать с эмоциональной точки зрения, но я и не...

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

Что будет на конференции UseData Conf 2019? Ура! Мы завершили формирование программы конференции UseData Conf 2019! Эта конференция для тех, кто решает практические задачи с помощью методов машинного обучения. Между идеальным алгоритмом в вакууме и его применением на реальных данных часто лежит пропасть. Мы хотим, что...

Как посты-ответы сделают интернет умнее На «Пикабу» появилась новая функция: посты-ответы — фича для тех, кому «постом навеяло» написать собственную статью. Это отличная функция, важность которой выходит далеко за пределы «Пикабу» и касается состояния всего современного интернета. Пост-ответ — это цифровая реинка...

Очень много менеджеров Эта статья написана вместе с Екатериной Корнеевой (Wrike, Customer Success Manager). Екатерина является профессионалом с 4-летним опытом работы в продажах и клиентском сервисе. В современных компаниях, распространяющих свой продукт под подписке (SaaS), количество менеджеро...

[Перевод] Записки фрилансера: разработка первого React Native-приложения Автор материала, перевод которого мы публикуем, недавно выпустил своё первое мобильное приложение, написанное на React Native. Так случилось, что это приложение стало и его первым проектом, который он создал как программист-фрилансер. Здесь он расскажет о том, с чем ему приш...

Воры используют deepfakes для обмана компаний, заставляя посылать себе деньги C момента своего появления в декабре 2017-го дипфейки, видео с почти идеальной заменой лица, созданные нейросетью, наводили на экспертов панику. Многие, например, тогда боялись, что теперь еще проще станет «порно-месть», когда бывший бойфренд с достаточно мощным ПК может с...

Как ускорить разжатие LZ4 в ClickHouse При выполнении запросов в ClickHouse можно обратить внимание, что в профайлере на одном из первых мест часто видна функция LZ_decompress_fast. Почему так происходит? Этот вопрос стал поводом для целого исследования по выбору лучшего алгоритма разжатия. Здесь я публикую иссле...

Американские ученые научили роботов использовать вспомогательные инструменты Обезьяна (шимпанзе) достает термитов из термитника при помощи палки. Навторой фотографии горилла использует палку для сбора нужной ей травы Разработчики из США создали специализированный алгоритм для роботов, который дал возможность последним использовать дополнительные и...

Волшебная сила макросов, или как облегчить жизнь ассемблерного программиста AVR Про макросы в ассемблере написано много. И в документации, и в различных статьях. Но в большинстве случаев все сводится либо к простому перечислению директив с кратким описанием их функций, либо к набору разрозненных примеров готовых макросов. Цель этой статьи — описать опре...

[Из песочницы] Сортировка: определяем лучший алгоритм Как нетрудно догадаться, я знаю ответ на этот вопрос, но, поскольку моя статья с описанием алгоритма сортировки «воронкой» была здесь встречена, мягко говоря, нервозно, я решил провести-таки тестирование «по образу и подобию» тех, которые обычно проводятся — в основном, коне...

Что можно делать с аннотациями контрактов микросервисов? В прошлом посте мы рассказывали о том, как и почему мы в Acronis делаем аннотации к микросервисам, и обещали поделиться своей практикой применения единого формата API для всей платформы Acronis Cyber Platform. Сегодня мы расскажем про свой опыт статических проверок аннотаций...

«Современные» обедающие философы на C++ посредством акторов и CSP Некоторое время назад ссылка на статью "Modern dining philosophers" распространилась по ресурсам вроде Reddit и HackerNews. Статья интересная, она показывает несколько решений этой известной задачи, реализованных на современном C++ с использованием task-based подхода. Если к...

Как анимировать фотографии на Android Создание анимации придаст вашим снимков больший шарм Сегодня практически все имеющиеся смартфоны способны делать крутые снимки и красивой фотографией уже никого не удивишь. То же самое касается и видеороликов. С тех пор, как Instagram дал возможность публиковать видео длиной...

DJI Mavic Mini и закон Новый беспилотник от компании DJI наделал много шума, о нем написано много статей. Большинство из них расхваливают вес квадрокоптера, который позволит не ставить его на учет (что в тех же статьях часто выставляется существенной проблемой). И это действительно так, по недавн...

[Из песочницы] Анализ Minor Violations Java кода на платформе Duerank.com (часть 1) Введение Что мы знаем об ошибках в коде приложений, написанных на Java? Ну, мы наверняка знаем, что они там встречаются. А насколько часто встречаются? Как много делает разнообразных ошибок в своём коде разработчик? Под ошибками мы понимаем не только баги, но и наличие раз...

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

Программирование для детей. Пять самых крутых игр на HTML и JavaScript Привет, Хаброжители! Хотите сделать отличный подарок ребёнку, желающему научиться программировать, или научить взрослого, далёкого от мира кодов? Тогда книга-героиня нашего поста Вам подойдет. Эта книга научит писать код веб-игр на языках HTML и JavaScript и даже поможет чи...

Samsung будет транслировать музыкальные концерты в виртуальной и дополненной реальности Зачем ходить на концерт, если можно посмотреть его из дома в VR-шлеме? Samsung, вопреки расхожему мнению — это не только компания, которая производит телевизоры и смартфоны. Есть у корейцев и масса других, не менее интересных направлений. Одним из них являются сервисы ...

[Перевод] Воссоздание старой DOS-игры на C++ 17 В 2016 году я начал работу над хобби-проектом по реверс-инжинирингу игры Duke Nukem II и воссозданию с нуля его движка. Проект имеет название Rigel Engine и выложен в open source (его страница на GitHub). Сегодня, более чем два с половиной года спустя на моём движке уже можн...

Монтируем iOS под OSX с помощью ifuse На днях столкнулся с задачей примонтировать в OSX 10.14 iPad в качестве внешнего диска, с возможностью осуществлять файловые операции из консоли. В интернете я нашел довольно много инструкций как это сделать с помощью файловой системы ifuse. К сожалению с iOS 12 ничего не вы...

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

[Из песочницы] Зачем нужны ranges из C++20 в простой числодробилке? В последнее время интервалы (ranges), которые должны войти в стандарт C++20, довольно много обсуждают, в том числе и на Хабре (пример, где много примеров). Критики интервалов хватает, поговаривают, что они слишком абстрактны и нужны только для очень абстрактного кода читаем...

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

Основы шаблонов С++: шаблоны функций Дисклаймер: статья была начата еще в феврале, но, по зависящим от меня причинам, закончена не была. Тема очень обширна, поэтому публикуется в урезаном виде. Что не поместилось, будет рассмотренно позже. Невозможно разбираться в современном С++, не зная, что такое шаблоны п...

Принципы свободного рынка в понимании США Сей пост есть дубль записей из моего Телеграм канала. Посчитал нужным поделиться обнаруженными фактами c хабраобществом. Однажды я вам рассказывал про случай, когда служба CFIUS при Министерстве внутренней безопасности США заставила китайцев продать ЛГБТ соцсеть, ибо негоже...

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

[Перевод] Разработка надёжных Python-скриптов Python — это язык программирования, который отлично подходит для разработки самостоятельных скриптов. Для того чтобы добиться с помощью подобного скрипта желаемого результата, нужно написать несколько десятков или сотен строк кода. А после того, как дело сделано, можно прост...

За что я люблю Apple и почему Android-производителям стоит задуматься Много лет Android-производители не могут дать потребителям то, что действительно важно. Эта история о том, как из-за одной особенности iPhone я всё еще не готов с ним расставаться, понимая при это всё превосходство и разнообразие Android-решений. «Сам смартфон очень п...

Решаем судоку с помощью Алгоритма X В этой статье рассмотрим "Алгоритм X" Кнута и его применение для решения судоку. Прелесть алгоритма в том, что судоку при этом решается быстро без программирования каких-то продвинутых техник решения. Читать дальше →

Фантастические плагины, vol. 1. Теория Жизнь с многомодульным проектом не так уж проста. Чтобы избежать рутины создания нового модуля мы создали собственный плагин для Android Studio. В процессе реализации мы столкнулись с отсутствием практической документации, перепробовали несколько подходов и откопали множеств...

[Из песочницы] Методы сжатия/хранения медиа данных в форматах WAVE и JPEG, часть 1 Здравствуйте! Моя первая серия статей будет направлена на изучение методов сжатия и хранения изображений/звука, таких как JPEG (изобр.) и WAVE (звук), также в них будут примеры программ с использованием этих форматов (.jpg, .wav) на практике. В этой части мы рассмотрим именн...

Приятное и полезное в преподавании Всем привет! Год назад я написал статью про то, как я организовывал университетский курс по обработке сигналов. Судя по отзывам, в статье много интересных идей, но она большая и тяжелочитаемая. И я давно хотел разбить её на более маленькие и написать их понятнее. Но писать о...

[Перевод] Прекратите использовать Else в ваших программах Когда я только начинал программировать, хотел бы я, чтобы тогда нашёлся кто-то, кто мог бы рассказать об основных подводных камнях, с которыми я столкнусь при создании моего первого сайта. Тогда одной из проблем было чрезмерное использование else при написании условных выраж...

С чего начать изучать веб-разработку в 2019 году или HTML Academy VS Codecademy VS FreeCodeCamp Привет, Хабр! Хочу поделиться своими мыслями о самых популярных площадках для изучения веб-разработки HTML Academy, Codecademy, FreeCodeCamp (мне бы хотелось прочитать подобную статью, когда я только начинала учиться веб-разработке самостоятельно). *Данный обзор является мо...

[Из песочницы] Динамическое изменение схемы JSON в Go с помощью gob Значимо изменить маршализацию структуры в json можно только через метод MarshalJSON(), написав там полную реализацию маршализации. Как именно? На это документация Go ни ответов, ни рекомендаций не даёт, предоставляя, так сказать, полную свободу. А как воспользоваться этой св...

postfix+dovecot+mysql в FreeBSD Введение Почтовый сервер хотел изучить уже давно, но руки дошли только сейчас, да и информации корректной не особо много удавалось найти, поэтому решил написать как можно более подробную публикацию. В данной публикации пойдёт речь не только о postfix, dovecot, mysql, postfix...

[Из песочницы] Подписываемся на Kafka по HTTP или как упростить себе Веб-хуки Существует множество способов обработки сообщений из Pub-Sub систем: использование отдельного сервиса, выделение изолированного процесса, оркестрация пулом процессов/потоков, сложные IPC, Poll-over-Http и многие другие. Сегодня я хочу рассказать о том, как использовать Pub-S...

Ловим кота с TLA+ Формальные методы считаются эффективным, но неоправданно сложным способом обеспечения надежности программного обеспечения. Используемые при этом инструменты существенно отличаются от привычных программисту. Эта статья написана с целью снизить порог вхождения в этот инструме...

DeepFake своими руками [часть 1] Не смотря на все прелести интернета, у него есть много минусов, и один из самых ужасных – это введения людей в заблуждение. Кликбейт, монтаж фотографий, ложные новости – все эти инструменты активно используются для обмана обычных пользователей в мировой сети, но в последние ...

Google хочет научить вас правильно произносить слова Google пытается сделать вас лучше Google не перестает развивать свои сервисы и предоставлять нам все новые и новые функции. Не так давно мы писали о том, что поисковый гигант модифицирует свое приложение камеры, делая его еще лучше, а также улучшает картографический сервис, ...

[Перевод] Я самый большой скупердяй в инди-разработке игр Скриншот из Queen's Wish. Учтите, что я использую игровой арт, который мне нравится. Это необходимо, потому что потом придётся смотреть на него годами, и я не хочу сойти с ума. Неделю назад я опубликовал в блоге пост «Почему все мои игры выглядят так отстойно» (оригинал). ...

[Из песочницы] Generic Recycler View или как не писать шаблонный код Все мы пишем приложения и у всех нас есть списки. И самое очевидное решение это RecyclerView. Сама по себе реализация не сложна и писать гайд по RecyclerView уже не актуально. Но есть одно но. Каждый раз когда нам нужен список мы создаем класс, в нем прописываем шаблонный ме...

Из обновлений Windows исчезнет подпись SHA-1 Компания Microsoft прекратит использование хеш-алгоритма SHA-1 для подписи обновлений своих программных продуктов. Производитель назвал сроки окончательного перехода на SHA-2 для всех операционных систем, чей срок поддержки еще не истек. Пользователям актуальных версий Windo...

Python из C В прошлом году появилась необходимость дополнить старый проект написанный на C функционалом на python3. Не смотря на то, что есть статьи на эту тему я помучился и в том году и сейчас когда писал программы для статьи. Поэтому приведу свои примеры по тому как работать с pytho...

Мой путь от Python к Go — делюсь советами и ресурсами Мне нравится Python. Этот язык был моим фаворитом последние пять лет. Он дружелюбный, эффективный, и его легко выучить. Используется практически для всего: от создания простых скриптов и веб-разработки до визуализации данных и машинного обучения Постепенное «созревание»...

Эволюция CI в команде мобильной разработки Сегодня большинство программных продуктов разрабатываются в командах. Условия успеха командной разработки можно представить в виде простой схемы. Написав код, вы должны убедиться, что он: Работает. Ничего не ломает, в том числе код, который написали ваши коллеги. Если ...

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

Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля — TL, MT В последнее время на Хабре стали чаще появляться посты о том, как хорош Telegram, как гениальны и опытны братья Дуровы в построении сетевых систем, и т.п. В то же время, очень мало кто действительно погружался в техническое устройство — как максимум, используют достаточно пр...

Алгоритм Google научился реагировать на чрезвычайные происшествия в мире Google внёс в свой алгоритм изменения, которые позволили ему реагировать на чрезвычайные происшествия, такие как массовые расстрелы. Об этом рассказал старший инженер поиска Панду Наяк (Pandu Nayak) изданию The Guardian. Когда в мире происходят такие события, как массовые уб...

[Перевод] Аппликативные регулярные выражения, как свободный альтернативный функтор Предлагаю вашему вниманию перевод замечательной свежей статьи Джастина Ле. В своём блоге in Code этот автор достаточно легким языком рассказывает о математической сути красивых и изящных функциональных решений для практических задач. В этой статье подробно разбирается приме...

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

Fuchsia OS будет поддерживать работу приложений для Android Недавно в Android Open Source Project (AOSP) были обнаружены свежие комментарии, которые раскрывают истинное предназначение репозитория «device/google/fuchsia». Как оказалось, Fuchsia OS будет использовать специально разработанную для нее версию Android Runtime (...

[Из песочницы] Реализация горячей перезагрузки С++ кода в Linux * Ссылка на библиотеку в конце статьи. В самой статье изложены механизмы, реализованные в библиотеке, со средней детализацией. Реализация для macOS еще не закончена, но она мало чем отличается от реализации для Linux. Здесь в основном рассматривается реализация для Linux. Г...

Почему так сложно выбрать, какое кино посмотреть (и что можно было бы сделать) Это — ответ на пост на животрепещущую тему «что посмотреть». Автор сам напросился поднял правильный вопрос, но почему-то свел все к странной психологической аналогии «заедания стресса», заявив: «Пока вы сами не знаете, что хотите посмотреть — никто вам не поможет. Будете туп...

IBM System i (aka AS/400) — Как мы делали автотесты приложений зеленого экрана Привет! Меня зовут Антон Воробьев, я отвечаю в Альфа-Банке за разработку приложений для централизованной банковской системы. В этом посте я расскажу вам о том, что такое приложения зеленого экрана, зачем они нужны и как мы делали для них автотесты, написав для этого собстве...

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

Книга «Машинное обучение: алгоритмы для бизнеса» Привет, Хаброжители! Маркос Лопез де Прадо делится тем, что обычно скрывают, — самыми прибыльными алгоритмами машинного обучения, которые он использовал на протяжении двух десятилетий, чтобы управлять большими пулами средств самых требовательных инвесторов. Машинное обучен...

Машинное обучение vs. аналитический подход Какое-то время назад мы нашли свои старые материалы, по которым обучали первые потоки на наших курсах машинного обучения в Школе Данных и сравнили их с теперешними. Мы удивились, сколько всего мы добавили и поменяли за 5 лет обучения. Осознав, почему мы это сделали и как, ...

Flare-On 2019 write-up -0x01 — Intro Данная статья посвящена разбору всех заданий Flare-On 2019 — ежегодного соревнования по реверс-инжинирингу от FireEye. В данных соревнованиях я принимаю участие уже второй раз. В предыдущем году мне удалось попасть на 11-ое место по времени сдачи, решив все з...

[Из песочницы] Использование учетных записей Joomla в проекте на Django Допустим что сайт, которым пользуются ваши пользователи, написан на Joomla, но для создания нового продукта для вашей аудитории вы выбрали связку Python/Django. Как следствие, возникает необходимость использовать в Django учетные записи пользователей из базы данных Joomla. ...

Новый алгоритм работает как дата-сайентист Сбербанк создал новую модель машинного обучения Auto ML, сообщил на Российском инвестиционном форуме заместитель Председателя Правления Сбербанка Анатолий Попов.Auto ML - алгоритм, который умеет создавать другие модели. А они, в свою очередь, уже решают прикладные задачи - н...

[Из песочницы] DHCP+Mysql сервер на Python Целью данного проекта было: Изучение протокола DHCP при работе в сети IPv4 Изучение Python (немножко более чем с нуля ;) ) замена серверу DB2DHCP (мой форк), оригинал здесь, который собирать под новую ОС всё труднее и труднее. Да и не нравится, что бинарник, который нет ...

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

План прокачки для получения профессии Data engineer Последние восемь лет я работаю руководителем проектов (не пишу код на работе), что естественно негативно влияет на мой технологический бекэнд. Я решил сократить своё технологическое отставание и получить профессию Data engineer. Основной навык Data engineer — способность раз...

Распознавание азбуки Морзе с помощью нейронной сети Привет Хабр. В процессе изучения нейронных сетей возникла мысль, как бы применить их для чего-то практически интересного, и не столь заезженного и тривиального, как готовые датасеты от MNIST. Например, почему бы не распознавать азбуку Морзе. Сказано, сделано. Для тех ком...

В чем разница между форматами JPEG, GIF, PNG, RAW, BMP, TIFF? Вам известна разница между JPEG, GIF, PNG и другими графическими форматами? Когда нужно использовать тот или иной формат, или какой лучше всего подойдет для сохранения фотографий? Ниже вы найдете ответы на все эти вопросы. ПО ТЕМЕ: Как правильно снимать групповые фотографии ...

[Из песочницы] О целесообразности Selenium WebDriverWait Чем ближе я знакомлюсь с Selenium WebDriver, тем больше у меня возникает вопросов, почему тот или иной функционал выполнен так, а не иначе. В своем выступлении «Заморочки в Selenium WebDriver» Алексей Баранцев проливает свет на тонкости реализации этого инструмента автоматиз...

Искусственный интеллект научился делать натуральные фейковые новости Как сообщает "КоммерсантЪ", программа на основе анализа текстов Wall Street Journal (WSJ) написала новость, что в США якобы была создана компания по добыче полезных ископаемых на Луне. "Опасность заключается в том, что в мире уже достаточно пропагандистских ст...

Реляционное программирование: боль, интерес и снова боль В предыдущем посте мы подробно рассказывали, чему учим студентов на направлении «Промышленное программирование». Для тех, чья сфера интересов лежит в более теоретической области, например, привлекают новые парадигмы программирования или абстрактная математика, используемая в...

[Из песочницы] Библиотека генератора ассеблерного кода для микроконтроллеров AVR. Часть 1 Библиотека генератора ассеблерного кода для микроконтроллеров AVR Часть 1. Первое знакомство Добрый день, уважаемые хабаровчане. Хочу предложить Вашему вниманию очередной (из имеющегося великого множества) проект, для программирования популярных микроконтроллеров серии AVR. ...

ИИ Microsoft написал картину по композиции группы «Альянс» «На заре» Microsoft представила картину, написанную искусственным интеллектом по мотивам песни группы «Альянс» «На заре». В основе алгоритма лежат принципы синергии музыки и живописи, описанные великим абстракционистом Василием Кандинским. Идея проекта заключалась ...

Экономика радости. Наставничество как частный случай. Закон трёх процентов Знаю, что написав этот пост, не стану Паисием Святогорцем. Однако, я надеюсь, найдётся хотя бы один читатель, который, возможно, поймет какой это кайф – быть педагогом (ментором) в IT. И наша страна станет чуточку лучше. И этот читатель (который поймет) станет чуточку счастл...

Сбалансированные двоичные деревья поиска: реализация на Julia Иллюстрация из работы Г.М. Адельсон-Вельского и Е.М. Ландиса 1962 года Деревья поиска — это структуры данных для упорядоченного хранения и простого поиска элементов. Широко применяются двоичные деревья поиска, в которых у каждого узла есть только два потомка. В этой статье ...

[Перевод] HTTP/3: от корней до кончиков Протокол прикладного уровня HTTP лежит в основе интернета. Он начал свою жизнь в 1991 году как HTTP/0.9, а к 1999 году превратился в HTTP/1.1, который был стандартизирован Инженерным советом Интернета (IETF). HTTP/1.1 долго всех удовлетворял, но растущие потребности Сети п...

Вся мощь IntelliJ IDEA на примере одного языка (в картинках) Классическая модель разработки любых приложений подразумевает наличие хорошей документации по пользовательскому интерфейсу и API, а также, при необходимости, хорошего покрытия исходного кода комментариями. В этом случае, доработка системы начинается с изучения документации, ...

[Перевод] Новый GitLab 12.0 с визуальными ревью и списком зависимостей Dev, Sec и Ops GitLab 12.0 — это ключевой выпуск на пути к реализации подхода, который будет охватывать все элементы DevSecOps и позволит всем вносить свой вклад. У нас был очень увлекательный год — мы много работали над решением, которое объединило бы все команды. Сообщест...

[Перевод] Иерархическая кластеризация категориальных данных в R Перевод подготовлен для студентов курса «Прикладная аналитика на R». Это была моя первая попытка выполнить кластеризацию клиентов на основе реальных данных, и она дала мне ценный опыт. В Интернете есть множество статей о кластеризации с использованием численных переменны...

[Из песочницы] Играем в консоли браузера Как прекрасен этот мир сonsole.log() — хороший метод, чтобы вывести отладочную информацию в веб-консоль. Можно выводить числа, строки, массивы, объекты, функции, обычный текст, к тому же, ко всему этому можно добавлять форматирование, цвет, фон и вообще довольно много друг...

Bluetooth LE не так уж и страшен, или Как улучшить пользовательский опыт без особых усилий Недавно мы в команде придумали и реализовали функцию передачи денег по воздуху с помощью технологии Bluetooth LE. Я хочу рассказать вам, как мы это сделали и что Apple предоставляет нам из инструментов. Многие разработчики думают что Bluetooth — это сложно, ведь это достаточ...

Трактат о Pinе. Мысли о настройке и работе с пинами на С++ для микроконтроллеров (на примере CortexM) Последнее время я сильно увлекся вопросом надежности софта для микроконтроллеров, 0xd34df00d посоветовал мне сильнодействующие препараты, но к сожалению руки пока не дошли до изучения Haskell и Ivory для микроконтроллеров, да и вообще до совершенно новых подходов к разработк...

[Из песочницы] Структуры данных в Java. Полезные методы вспомогательных классов Привет, habr! Я Software Engineer в EPAM. Более 8 лет я работаю с legacy-кодом, написанном на языке Java (предвосхищая комментарии, отмечу, что понимание и терпимость к legacy началась задолго до EPAM, в заключении вы найдёте ответ, почему). Часто в работе я сталкивался с ...

Погружение в Unreal Engine.    Здравствуйте друзья, даже если их у меня нет в соцсетях (соцсети - не моё, и я мог-бы наделать фоток, которые понравились бы девочкам, но соцсети - не моё) и тут, но я знаю что не один кто испытывает трудности характерные моим и встречает преграды - эту часть о...

Криптокошелек от CryptoHamster С появлением криптовалюты возникла необходимость в надежном и современном хранилище данного вида электронной валюты. Для этих целей созданы специальные ячейки на серверах для сохранности ключей и кодов. Что такое криптокошелек? Ответ на этот вопрос знают далеко не все, на са...

[Перевод] Марс или Луна? Дебаты об этом идут в НАСА уже несколько десятилетий В соответствии с директивой президента США устойчивое присутствие на Луне станет ступенькой к последующим космическим достижениям, таким как Марс. Д. Трамп недавно дал понять, что предпочитает быстро реализовать план полёта на Марс, написав в Твиттере несколько недель наза...

[Перевод] Почему я не использую веб-компоненты Я пишу это в основном для себя в будущем, чтобы у меня было куда сослаться, когда кто-нибудь спросит меня, почему я скептичен в отношении веб-компонентов и почему Svelte не компилируется в веб-компоненты по умолчанию. (Тем не менее, он может компилироваться в веб-компоненты,...

Вредные советы: как правильно писать техническую документацию? Часть третья и последняя Советы по грамотному написанию технической документации для пользователей. Часть 3 (заключительная) Заключение руководства нашего технического писателя Андрея Старовойтова, которое поможет сделать вашу пользовательскую документацию проще и понятнее. На этот раз мы попод...

Создан бот для написания реалистичных комментариев за людей Разработчики создали алгоритм DeepCom, который на основе сотен «прочитанных» комментариев способен генерировать собственные. Причём они получаются очень похожими на написанные настоящими людьми.

Лицемерие google. PageSpeed Insights Google Page Speed Insights — это сервис от гугла, который позволяет определить производительность сайта и дает рекомендации по его оптимизации. Очень важно понимать, что это всего лишь рекомендации! Некоторые воспринимают эти рекомендации настолько серьезно, что готовы реали...

[Перевод] Самодельный сборщик мусора для OpenJDK Это перевод статьи Алексея Шипилёва «Do It Yourself (OpenJDK) Garbage Collector», публикуется с согласия автора. О любых опечатках и других багах сообщайте в личку — мы их поправим.Процесс создания чего-нибудь в рантайме языка — весёлое упражнение. По крайней мере, создание ...

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

Как запустить растущий b2c стартап после хакатона Предисловие Думаю, многие читали статью о том, выживают ли команды после хакатона. Как писали в комментах к этой статье, статистика удручающая. Поэтому хотелось бы рассказать о себе, дабы подправить статистику и дать несколько практических советов по тому, как не сдуться по...

Используем данные на практике Между идеальным алгоритмом машинного обучения в вакууме и его применением на реальных данных часто лежит пропасть. Вроде бы берешь статью: алгоритм есть, сходимость для данных такого-то типа есть — бери и применяй. Но почему-то оказывается, что твоих данных недостаточно для ...

У Intel снова проблемы с 10-нанометровой продукцией В начале месяца компания Intel пообещала, что мобильные 10-нанометровые процессоры Ice Lake в составе готовых решений появятся к концу текущего года. Intel не указала названий моделей или их параметров, но рассказала много интересного и полезного об особенностях грядущи...

Data and Models Version control in Computer Vision meetup Сообщество ML-REPA приглашает на открытый митап по вопросам воспроизводимости и управлению экспериментами в computer vision, который пройдет 15 августа в офисе Райффайзенбанк в Нагатино. На митапе будем разбираться с особенностями обеспечения воспроизводимости эксперименто...

OPPO K5 получил быструю зарядку Официально представлен смартфон OPPO K5, который работает на современном процессоре Snapdragon 730G и может похвастаться поддержкой фирменной быстрой зарядки VOOC 4.0, которая позволяет за очень короткий промежуток времени зарядить устройство с нуля до практически полного за...

[Из песочницы] GameBoy на C# Когда я только начинал программировать, думаю, как и многим, мне хотелось делать игры. Но передо мной стояло множество архитектурных вопросов, которые я не знал как решить, про двойную буферизацию я даже не слышал, а получить результат хотелось как можно скорее. Поэтому неда...

Робот научился копировать человеческий почерк и рисунки Умение писать слова на бумаге кажется довольно простым человеческим навыком, но на самом деле он крайне сложен. Подумать только — чтобы научиться писать, нужно понимать, в какой точке нужно опустить кончик ручки, как долго и в каком направлении водить линию, а также где дел...

Хакер потребовал у Apple денег за подробности об уязвимости в macOS Исследователь в области кибербезопасности из Германии по имени Линус Хенце обнаружил в macOS опасную уязвимость, которая позволяет третьим лицам получить доступ к сохраненным в «Связке ключей» учетным данным от всех сохраненных аккаунтов. По его словам, брешь присутствует в...

[Из песочницы] Практическое применение ELK. Настраиваем logstash Введение Разворачивая очередную систему, столкнулись с необходимостью обрабатывать большое количество разнообразных логов. В качестве инструмента выбрали ELK. В данной статье пойдёт речь о нашем опыте настройки этого стека. Не ставим цели описать все его возможности, но хот...

[Перевод] Модели дженериков и метапрограммирования: Go, Rust, Swift, D и другие В некоторых сферах программирования нормально хотеть написать такую структуру данных или алгоритм, которые могут работать с элементами разных типов. Например, список дженериков или алгоритм сортировки, которому нужна только функция сравнения. В разных языках предложены всев...

Google представила ПО для смартфонов, способное распознавать жесты Компания Google опубликовала алгоритм, который с высокой точностью отслеживает движения руки пользователя на основе изображения, получаемого с камеры смартфона. Разработчики считают, что решение позволит реализовать на мобильных устройствах новые функции, например, распознав...

Apache Kafka + Spring Boot: Hello, microservices Привет, Хабр! В этом посте мы напишем приложение на Spring Boot 2 с использованием Apache Kafka под Linux, от установки JRE до работающего микросервисного приложения. Коллеги из отдела фронтэнд-разработки, увидевшие статью, сетуют на то, что я не объясняю, что такое Apache ...

Разработка чат-бота (telegram + youtube) Почему это вообще появилось здесь? Недавно я написал статью о разработке бота на php с использование laravel+botman для telegram. Самое первое, что написали, цитирую, “стрельба из пушки по воробьям”. Я согласен с этим, даже осознавал это во время разработки, но мне был инте...

Выбираем хостинг: топ-5 рекомендаций При выборе «домика» для сайта или Интернет-проекта важно помнить несколько простых рекомендаций, чтобы потом не было «мучительно больно» за потерянное время и деньги. Наши советы помогут вам построить четкий алгоритм по выбору платного хостинга для размещения сайта на осно...

Пример разбора C++ кода с помощью libclang на Python На одном личном проекте на C++ мне потребовалось получать информацию о типах объектов во время выполнения приложения. В C++ есть встроенный механизм Run-Time Type Information (RTTI), и конечно же первая мысль была использовать именно его, но я решил написать свою реализацию,...

Спор: прочитав до конца, вы поймёте, как и почему именно так работает GC Скажу сразу: я никогда не жду развёрнутого ответа на этот вопрос на собесах. Это глупо и моем случае — эгоисточно. Однако, на мой взгляд, помимо общего интереса к платформе, знать как он работает очень полезно, т.к. это снимает целый ряд вопросов. Например, исключает вариант...

[Из песочницы] Случайные перестановки и случайные разбиения Я много лет читаю курсы по комбинаторике и графам для студентов-математиков и computer scientists (как это по-русски, компьютерных научников?), раньше в Академическом университете, а теперь в СПбГУ. Программа у нас построена так, что эти темы проходят как часть «теоретическо...

Президенту предложат создать совет по развитию искусственного интеллекта По словам двух источников, на которые ссылается "КоммерсантЪ", основной разработчик документа - Сбербанк. В Сбербанке от комментариев отказались. "Подходы к стратегии развития ИИ и саму стратегию по поручению президента разрабатывает Минкомсвязь совместно со С...

Интерактивная игра на XSLT Когда-то давным-давно придумали люди язык XML и увидели, что это хорошо. И стали использовать его везде, где можно, и даже там, где не следует. Форматы хранения и передачи данных, конфиги, веб-сервисы, базы данных… Казалось, оглянись вокруг — XML, XML повсюду. Время прошло...

Советы по выбору мужского кожаного рюкзака Не зря говорят, что в мире если все и не идет по кругу, то точно идет по спирали. К примеру, еще недавно на голове каждого мужчины мы наблюдали различного рода кепки, сегодня эти кепки практически исчезли, как и меховые шапки. Городские жители поняли, что им достаточно обычн...

Дискретная математика для WMS: алгоритм сжатия товаров в ячейках (часть 1) В статье мы расскажем, как решали проблему нехватки свободных ячеек на складе и о разработке алгоритма дискретной оптимизации для решения такой задачи. Расскажем о том, как мы «строили» математическую модель задачи оптимизации, и о том с какими трудностями мы неожиданно ст...

Осторожно — ГАЗ! или Как мы делали негазированные смарт-контракты Блокчейн и смарт-контракты все еще остаются горячей темой среди разработчиков и технических специалистов, много исследований и рассуждений об их будущем и о том, куда это все движется и приведет нас. У нас в Waves Platform свой взгляд на то, какими должны быть смарт-контрак...

Мысленный эксперимент: Flutter на Go Совсем недавно я открыл для себя Flutter – новый фреймворк от Google для разработки кроссплатформенных мобильных приложений – и даже имел возможность показать основы Flutter человеку, который никогда не программировал до этого. Сам Flutter написан на Dart – языке, родившимся...

Nginx VTS Stats, Mockify — mock API, сравнение Wiremock и Mockify В этом посте я хотел сделать демо Nginx VTS + Prometheus + Grafana. Для демо необходимо было чтобы upstream могли выдавать разные http коды. Это могли сделать следующие проекты: Mockify, написанный на Golang, и WireMock, написанный на Java. Небольшое оглавление установка и...

Реверс-инжиниринг бинарного формата на примере файлов Korg SNG. Часть 2 В прошлой статье я описал ход рассуждений при разборе неизвестного двоичного формата данных. Используя Hex-редактор Synalaze It!, я показал как можно разобрать заголовок двоичного файла и выделить основные блоки данных. Так как в случае формата SNG эти блоки образуют иерар...

3D-печать металлами: 5 очевидных преимуществ на практическом примере Завихритель, изготовленный по SLM-технологии. При серийном изготовлении таких деталей сокращение стадии подготовки производства может достигать 50% Об особенностях и выгодах, которые способна дать предприятию технология селективного лазерного плавления (SLM), написано нем...

[Из песочницы] Domain Driven Design: Value Objects и Entity Framework Core на практике На Хабре и не только написано приличное количество статей про Domain Driven Design — как в общем про архитектуру, так и с примерами на .Net. Но при этом зачастую слабо упоминается такая важнейшая часть этой архитектуры, как Value Objects. В этой статье я постараюсь раскрыт...

[Перевод] Современная игра для NES, написанная на Lisp-подобном языке What Remains — это повествовательная игра-адвенчура для 8-битной видеоигровой консоли NES, выпущенная в марте 2019 года как бесплатный ROM, запускаемый в эмуляторе. Она создавалась небольшой командой Iodine Dynamics на протяжении двух лет с перерывами. В настоящий момент игр...

SQL в CSV с помощью DBMS_SQL Часто при решении задач системной интеграции требуется представить некоторый объем данных в том или ином формате. При этом потребителем данных может быть кто угодно, а вот источником почти всегда является корпоративная база данных. К примеру, производитель может требовать у ...

[Перевод] Распознавание источников освещения на картах окружения В этой статье представлена реализация на Python алгоритма распознавания источников освещения на картах окружения (LDR или HDR) при помощи равнопромежуточной проекции (equirectangular projection). Однако после внесения незначительных изменений её также можно использовать с п...

[Из песочницы] Функциональные компоненты с React Hooks. Чем они лучше? Относительно недавно вышла версия React.js 16.8, с которой нам стали доступны хуки. Концепция хуков позволяет писать полноценные функциональные компоненты, используя все возможности React, и позволяет делать это во многом более удобно, чем мы это делали с помощью классов. М...

[Перевод] Unity: бесконечный процедурно генерируемый город, получаемый при помощи алгоритма WFC (коллапс волновой функции) Привет, Хабр! Как законодатели мод по теме Unity на российском рынке предлагаем вам почитать интересное исследование о практическом использовании алгоритма WFC (Wave Function Collapse), построенного по образу и подобию известного принципа квантовой механики и очень удобного...

[Перевод] Подробности о GraphQL: что, как и почему GraphQL сейчас, без преувеличения, это — последний писк IT-моды. И если вы пока не знаете о том, что это за технология, о том, как ей пользоваться, и о том, почему она может вам пригодиться, значит статья, перевод которой мы сегодня публикуем, написана специально для вас. Зд...

MPPT контроллер заряда на STM32F334C8T6 В комментариях под моими предыдущими статьями неоднократно возникал вполне резонный вопрос: "Зачем делать dc/dc преобразователи на микроконтроллере, когда есть готовые?" и я в качестве ответа постоянно упоминал, как наиболее яркий пример, контроллер заряда с алгоритмом MPPT....

Как вызвать перемены при помощи ретроспективы Ретроспектива — сложный формат совместной работы группой, содержащий элементы брейншторма (совета), коачинга и обратной связи. Регулярные ретроспективы вызывающие изменения снизу — важнейший признак организовавшейся живой команды. К сожалению, достаточно часто ретроспективы...

Универсальное DRO на базе Arduino Nano — shDRO. Часть 2 И снова здравствуйте! Продолжаю описывать свою разработку shDRO. В данной части я опишу алгоритм опроса устройств и формат команд консоли. Первая часть. Читать дальше →

Суровая сибирская JVM: большое интервью об Excelsior JET Недавно мы писали о том, на какие ухищрения пошла Alibaba, чтобы сделать себе жизнь с OpenJDK более приемлемой. Там были комментарии вроде «оказывается, пока мы тут страдаем с обычной джавой, китайцы уже сделали себе свою особенную». Alibaba, конечно, впечатляет — но и в Рос...

Как бороться с изменением климата по мнению искусственного интеллекта? На сегодняшний день у ИИ нет точного ответа на вопрос как бороться с изменением климата Учитывая тот факт, что планета Земля находится в чрезвычайной климатической ситуации, как об этом недавно заявили 11 тысяч ученых из 153 стран мира, не только исследователи, но и журналис...

[Из песочницы] Система сохранения/загрузки данных Всем привет! Наверное каждый, кто начал делать игры на Unity столкнулся с дилеммой как сохранить игровой прогресс. Сегодня я вам расскажу про мой способ. Он не новый, но вполне себе рабочий. Если интересно, добро пожаловать под кат. Читать дальше →

[Перевод] Поиск пути среди круглых препятствий Навигация по лесу Алгоритм поиска пути A* — это мощный инструмент для быстрой генерации оптимальных путей. Обычно A* демонстрируют при навигации по картам из сеток, но он может использоваться не только для сеток! Он может работать с любыми графами. Можно использовать A* для ...

[Перевод] Must-have алгоритмы машинного обучения Хабр, привет. Этот пост — краткий обзор общих алгоритмов машинного обучения. К каждому прилагается краткое описание, гайды и полезные ссылки. Метод главных компонент (PCA)/SVD Это один из основных алгоритмов машинного обучения. Позволяет уменьшить размерность данных, потер...

Карьерные стероиды. Базовый алгоритм Статья про быстрый карьерный рост внутри одной компании. Именно внутри одной, т.к. скачок при переходе — это другая методика, к ней нужно иначе готовиться (там больше комплект увольнения подходит). Сразу скажу: я не считаю, что строить карьеру — это правильно, без этого ник...

Как работают поисковые системы Мы разбирали старые письма и наткнулись на статью, которую писал Илья Сегалович iseg для журнала «Мир Internet» в далёком 2002 году. В ней он сравнивает интернет и поисковые системы с чудесами света, размышляет о поисковых технологиях и вспоминает их историю. Несмотря на заг...

L4 Firewall должен быть в 10 раз дешевле L7 Firewall при одной и той же скорости трафика Мало кто из современных сетевых специалистов изучает как же на самом деле работает межсетевой экран. Это приводит к странным ситуациями. Часто сталкиваюсь в тендере с тем, что заказчик не понимает разницы между межсетевыми экранами разных типов. Очень часто человек считает...

Как я разрабатываю и тестирую API со своим «велосипедом» PieceofScript PieceofScript — простой язык для написания сценариев автоматического тестирования HTTP JSON API. PieceofScript позволяет: описывать методы API в формате YAML, с названием метода на почти естественном языке, что удобно для чтения тестов достаточно гибко описывать модели в...

Записки IoT-провайдера: девять проблем Интернета Вещей, или почему ему на Руси нехорошо Здравствуйте, уважаемые любители Интернета Вещей! Эта статья отличается от моих предыдущих. Здесь не про решения и кейсы. Я написал про девять проблем IoT, которые портят нам жизнь. Предлагаю присоединиться к моим размышлениям и вместе спрогнозировать будущее Интернета Вещ...

[Из песочницы] Снова про phpQuery Приветствую всех. Недавно я взял заказ, где нужно было автоматически подтягивать данные на сайт (проще говоря — написать парсер). Содержание статьи: Предисловие Про phpQuery Начало работы Практическая часть Заключение Читать дальше →

[Из песочницы] Антипаттерны в React или вредные советы новичкам Привет, Хабр. Ровно год прошел с момента, как я начал изучать React. За это время я успел выпустить несколько небольших мобильных приложений, написанных на React Native, и поучаствовать в разработке web-приложения с использованием ReactJS. Подводя итог и оглядываясь назад н...

Оценивание пространственной ориентации, или Как не бояться фильтров Махони и Маджвика О чём речь Появление на Хабре поста о фильтре Маджвика было по-своему символическим событием. Видимо, всеобщее увлечение дронами возродило интерес к задаче оценивания ориентации тела по инерциальным измерениям. При этом традиционные методы, основанные на фильтре Калмана, пер...

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

Первая в мире клавиатура-тачпад: революция на рынке? Недавно разработчики из Минска презентовали новый интересный продукт, который появится в магазинах осенью 2019 года. На вид это самая обыкновенная клавиатура, каких сотни и тысячи. Но как только вы прикасаетесь к ее клавишам, оказывается, что поверхность клавиш — сенсорная. ...

Как управлять часами? Разбор фронтенд-трека второго чемпионата по программированию Новый хабрапост в серии разборов недавно прошедшего чемпионата. Участникам квалификации, которые выбрали секцию фронтенда, нужно было решить несколько задач очень разной сложности: первая (по нашим ожиданиям) занимала 20 минут, последняя — около часа. Мы проверяли широкий сп...

Издание The Guardian опубликовало первую новость, написанную алгоритмом Австралийское подразделение The Guardian опубликовало первую в истории издания новостную заметку, сгенерированную алгоритмом. Как сообщается, новость посвящена снижению количества пожертвований австралийским политическим партиям. Автоматизированная система ReporterMate выдел...

Реестр печати с расчетом И так, доброго всем времени суток)Данный пост начну с небольшого рассказа.Я думаю как и многие из нас, я занимаюсь печатью на заказ, правда пока в небольших объемах, но всё же столкнулся с некоторой проблемой. Я старался всегда вести какой-то учет заказов, чтобы собирать ста...

Искусственный интеллект начал понимать языки лучше человека. Что дальше? За последние годы словосочетание «искусственный интеллект» с завидной регулярностью мелькает в новостных заголовках. И различные системы на основе ИИ уже во многих сферах проявляют себя не хуже человека. Машины обыгрывают киберспортсменов в видеоигры, делают научные открыти...

Любишь пользоваться читами, люби и эссе писать: второй шанс для читеров от Bethesda Все мы знаем, что Fallout 76 славиться не только кучей багов, но и обилием читеров. Bethesda активно борется с данной категорией геймеров, однако вместо обычного бана навсегда, компания решила скреативить. Согласно нескольким источникам, забаненным пользователям на почту нач...

[Перевод] Создаем конвейер потоковой обработки данных. Часть 1 Всем привет. Друзья, делимся с вами переводом статьи, подготовленным специально для студентов курса «Data Engineer». Поехали! Apache Beam и DataFlow для конвейеров реального времени Сегодняшний пост основан на задаче, которой я недавно занимался на работе. Я был действитель...

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

[Перевод] 10.3 секунды на хеш: майнинг на бортовом управляющем компьютере КА Аполлон Нам удалось восстановить Бортовой управляющий компьютер КА Аполлон. И теперь, когда у нас на руках имеется единственный в мире работающий экземпляр, мне пришла в голову идея написать для него код. Хотя мысль о добыче биткоинов с помощью компьютера из далеких 60-х казалась бе...

Темизация UI kit: как мы подружили SCSS с CSS Variables Всем привет, меня зовут Виталик, я senior фронтенд-разработчик Skyeng. Наша команда делает онлайн-платформу Vimbox для изучения английского языка. Примерно год назад мы с дизайнером доделали небольшой UI kit, искоренивший хаос в интерфейсе и кодовой базе. Оказалось, что в к...

Фотография чёрной дыры — будет ли от неё польза? Обсуждая появившуюся на этой неделе фотографию черной дыры, кто-то из моих знакомых задал вопрос: какое значение имеет эта фотография в практическом смысле? Человек явно осознавал, что пытается троллить, но больше всего меня удивил ответ неглупой дамы из той же компании: «Н...

[Из песочницы] Интеграция React Native и C++ для iOS и Android Недавно мне предложили поработать над одним интересным проектом. Требовалось разработать мобильное приложение для американского стартапа на платформах iOS и Android с помощью React Native. Ключевой технической особенностью и фактором, который однозначно решил мое участие в п...

Цифровой прорыв — как это было Это не первый хакатон, который я выигрываю, не первый, про который пишу, и это далеко не первый пост на хабре, посвященный "Цифровому прорыву". Но не написать я не мог. Считаю свой опыт достаточно уникальным, чтобы им поделиться. Вероятно, я единственный на этом хакатоне чел...

Искусственный интеллект написал картину по композиции группы «Альянс» «На заре» Картина была представлена в рамках перформанса "НейроКандинский" (посмотреть видео вы можете здесь). На нем присутствовал Игорь Журавлев, вокалист группы "Альянс", который подчеркнул, что искусство - это, прежде всего, вдохновение и эмоции создателя. Клав...

MU-MIMO: один из алгоритмов реализации Предисловие В качестве дополнения к моей недавней статье хотелось бы также поговорить о теме MU (Multi User) MIMO. Есть у мною уже упомянутого профессора Хаардта одна очень известная статья, где он вместе со своими коллегами предлагает алгоритм разделения пользователей по ни...

[Из песочницы] Нетривиальная расстановка элементов на flexbox без media-запросов Казалось бы, какой пост может быть о CSS Flexbox в 2019 году? Верстальщики уже несколько лет активно используют данную технологию, и все тайны должны быть разгаданы. Однако, недавно у меня возникло стойкое ощущение, что нужно поделиться одним нетривиальным и, на мой взгляд,...

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

[Перевод] Big O Примечание. Сокращенный перевод, скорее пересказ своими словами. UPD: как отметили в комментариях, примеры не идеальны. Автор не ищет лучшее решение задачи, его цель объяснить сложность алгоритмов «на пальцах». Big O нотация нужна для описания сложности алгоритмов. Для этог...

Несем IoT в массы: результаты первого IoT-хакатона от GeekBrains и Ростелекома Интернет вещей — восходящий тренд, технология используется везде и всюду: в промышленности, бизнесе, быту (привет умным лампочкам и холодильникам, которые сами заказывают еду). Но это только начало — задач, которые можно решать при помощи IoT, великое множество. Для того...

iOS Storyboards: анализ плюсов и минусов, best practices Apple создала Storyboards, чтобы разработчики могли визуализировать экраны iOS-приложений и связи между ними. Не всем понравился этот инструмент, и на то есть разумные причины. Я встречал много статей с критикой Storyboards, однако так и не нашел подробного и непредвзятого...

pudge встраиваемая база данных в 500 строк на golang pudge — встраиваемая key/value база данных, написанная на стандартной библиотеке Go. Остановлюсь на принципиальных отличиях от существующих решений. Stateless pudge.Set("../test/test", "Hello", "World") Пудж автоматически создаст базу данных test, включая вложенные дире...

[Из песочницы] Three.js — делаем controls для космосима или планетария Разрабатывая свой проект на тему космоса, столкнулся с тем что в three.js почему-то нет готового и удобного инструмента управления камерой, подходящего под такие задачи. Конечно я допускаю что просто плохо искал… Но, довольно продолжительный поиск результатов не дал. OrbitC...

Как заплести колосок себе или кому-то другому Эти советы и подробные инструкции помогут вам создать идеальную причёску.

То, что нужно знать о проверке чека App Store (App Store receipt) В StackOverflow по-прежнему появляется много вопросов о валидации App Store чеков, поэтому мы решили написать статью на эту тему в формате вопросов и ответов. Читать дальше →

Адаптация программ для ZX Spectrum к TR-DOS современными средствами. Часть 1 В отличие от современных компьютеров, на спектрумах понятия файловой системы не было как такового. Это значит, что загрузка с каждого типа носителя требовала отдельной реализации и в большинстве случаев программу нельзя было просто так скопировать с кассеты на дискету. В слу...

[Перевод] Продвинутые структуры данных. Часть первая: Направленный ациклический граф Всем привет! Уже на следующей неделе стартуют занятия в новой группе курса «Алгоритмы для разработчиков». В связи с этим, делимся с вами переводом совсем небольшого, но довольно интересного материала. Я хотел начать эту серию статей со структуры данных, с которой все мы к...

[Перевод] О [[trivial_abi]] в Clang-е Наконец-то я написал пост про [[trivial_abi]]! Это новая фирменная фича в транке Clang-а, новая по состоянию на февраль 2018. Это вендорское расширение языка C++, это не стандартный C++, она не поддерживается транком GCC, и нет активных предложений WG21 включить её в станда...

Криптография простым языком: разбираем симметричное и асимметричное шифрование на примере сюжета Звездных войн Привет всем читателям Хабра! Не так давно решил разобраться с алгоритмами шифрования и принципами работы электронной подписи. Тема, я считаю, интересная и актуальная. В процессе изучения попробовал несколько библиотек, однако самой удобной с моей точки зрения является библио...

Гуляем по городу с умом — 2: ходим по городу кругами с помощью генетического алгоритма В прошлой статье я описал алгоритм, позволяющий строить более интересные (в противовес более коротким, как делают всякие яндексы-гуглы) пешеходные маршруты между двумя точками. Алгоритм загружал достопримечательности, парки и прочие приятные и интересные для пешеходов объект...

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

Самодокументируемый REST сервер (Node.JS, TypeScript, Koa, Joi, Swagger) Про преимущества и недостатки REST написано уже довольно много статей (и еще больше в комментариях к ним) ). И если уж так вышло, что вам предстоит разработать сервис, в котором должна быть применена именно эта архитектура, то вы обязательно столкнетесь с ее документировани...

Как реализовать язык программирования на JavaScript. Часть 1: Парсер Здравствуйте! Представляю вам любительский перевод руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достаточно мн...

Пишем под FPGA без HDL. Сравнение высокоуровневых средств разработки В последнее время производители FPGA и сторонние компании активно развивают методы разработки для FPGA, отличающиеся от привычных подходов использованием высокоуровневых средств разработки. Являясь FPGA-разработчиком, в качестве основного инструмента я использую язык описа...

Терраформируй это: обзор Terragenesis В App Store/Google Play можно найти самые разные игры, поэтому я не сильно удивился, когда в одном из профильных чатов меня спросили, знаю ли я игру о терраформировании небесных тел. Посмотрев ее, решил написать небольшой обзор, потому что игра, на мой взгляд, хоть и не без ...

Как аудиокапчу ИТ-гиганта «обошли» во второй раз Инженеры из Мэрилендского университета разработали систему, которая «обходит» reCAPTCHA от Google практически со стопроцентной вероятностью. Она задействует алгоритмы распознавания речи для решения аудиокапчи. Рассказываем, как это работает. Читать дальше →

Несколько соображений по поводу параллельных вычислений в R применительно к «enterprise» задачам Параллельные или распределенные вычисления — вещь сама по себе весьма нетривиальная. И среда разработки должна поддерживать, и DS специалист должен обладать навыками проведения параллельных вычислений, да и задача должна быть приведена к разделяемому на части виду, если тако...

[Из песочницы] Согласие на обработку данных по GDPR: подробный разбор GDPR (или «Регламент») содержит несколько оснований для обработки персональных данных. Эти основания можно условно разделить на две большие группы. Это обработка на основании личного согласия носителя (владельца) персональных данных, и обработка на иных основаниях. В данно...

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

Как быстро попробовать CQRS/ES в Laravel или пишем банк на PHP Недавно в подкасте "Цинковый прод" мы с товарищами обсуждали паттерн CQRS/ES и некоторые особенности её реализации в Elixir. Т.к. я в работе использую Laravel, грех было не покопаться в интернетах и не найти как же можно потягать этот подход в экосистеме данного фреймворка....

Навигация внутри Android приложения Введение При Андроид разработке мы используем разные архитектурные решения(паттерны). Например Mvp, Mvvm, Mvi и т.д… Каждый из этих паттернов решает несколько важных задач и поскольку они не идеальны они нам оставляют кое-какие нерешенные задачи. К примеру этих задач относят...

Автоматизация управления Let's Encrypt SSL сертификатами используя DNS-01 challenge и AWS Пост описывает шаги для автоматизации управления SSL сертификатами от Let's Encrypt CA используя DNS-01 challenge и AWS. acme-dns-route53 — это инструмент, который позволит нам реализовать данную фичу. Он умеет работать с SSL сертификатами от Let's Encrypt, сохранять их в Am...

Книга «Знакомство с PyTorch: глубокое обучение при обработке естественного языка» Привет, Хаброжители! Обработка текстов на естественном языке (Natural Language Processing, NLP) — крайне важная задача в области искусственного интеллекта. Успешная реализация делает возможными такие продукты, как Alexa от Amazon и Google Translate. Эта книга поможет вам из...

QVD файлы — что внутри QlikView и его младший брат QlikSense — замечательные BI инструменты, достаточно популярные у нас в стране и "за рубежом". Очень часто эти системы сохраняют "промежуточные" результаты своей работы — данные, которые визуализируют их "дашборды" — в так называемые "QVD файлы". ...

[Из песочницы] Подводные камни Java Здравствуйте. Хочу представить вашему вниманию небольшую статью. Цель данной публикации: Показать наиболее часто встречающиеся ошибки начинающих и некоторые приемы их исправления. Понятно, что некоторые ошибки могут быть сложными и происходить по тем или иным причинам. Цель...

Разрабатываем Telegram-бота на NodeJS и TypeScript У вас бывало такое, что вы приходите в кино и смотрите трейлеры перед началом фильма, при этом некоторые из них цепляют вас достаточно сильно и вы даете себе обещание посмотреть этот фильм если не в кинотеатре, то хотя бы позже, когда он станет доступен для скачивания? Сме...

Удобная программа по созданию визиток Компания AMS Software является лидером по созданию уникальных программ, которые позволяют обычным пользователям получить профессиональные и качественные инструменты для реализации аудио и видео проектов, а так же для создания коллажей, открыток и визиток. Софт создаваемый да...

[Перевод] ИИ и 2048. Часть 1: Метод Монте-Карло «2048» через несколько недель исполняется 5 лет, а значит, пора написать что-нибудь, посвящённое этой замечательной игре. Особенно познавательна тема самостоятельной игры искусственного интеллекта в головоломку. Способы реализации есть самые разные и сегодня разберём отно...

[Перевод] Назад к микросервисам вместе с Istio. Часть 1 Прим. перев.: Service mesh'и определённо стали актуальным решением в современной инфраструктуре для приложений, следующих микросервисной архитектуре. Хотя Istio может быть на слуху у многих DevOps-инженеров, это довольно новый продукт, который, будучи комплексным в смысле ...

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

Как я улучшил свои навыки работы с алгоритмами, структурами данных и научился использовать все это на практике От переводчика: сегодня публикуем для вас статью Фабиана Терха. Статья в первую очередь будет полезна для начинающих программистов. Я программист-самоучка, этот пост отражает мой личный опыт и навыки в такой сфере, как алгоритмы и структуры данных; кроме того, я расска...

Тайна прошивок Авторы: к.ф.-м.н. Чернов А.В. (monsieur_cher) и к.ф.-м.н. Трошина К.Н. Как с помощью самых общих предположений, основанных на знании современных процессорных архитектур, можно восстановить структуру программы из бинарного образа неизвестной архитектуры, и дальше восстановит...

[Из песочницы] Пишем «Hello, world!» приложение для web на Haskell (Spock) Мне стало скучно писать на Python, захотелось чего-нибудь необычного. Решил попробовать Haskell. Языка я не знаю, однако просто писать консольные учебные программы, типа вычисления факториала, не хотелось. После изучения довольно большого числа постов про Haskell и его приме...

[Перевод] Как реализовать язык программирования на JavaScript. Часть 3: CPS-интерпретатор Здравствуйте! Представляю вам третью часть моего перевода руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достат...

[Из песочницы] Headless CMS. Почему я пишу свою Всем привет! Написать эту публикацию меня побудила вот эта недавняя статья (вчера увидел). Пересказывать основные признаки Headless/content-first/api-first и т.п. CMS я не буду, материала полно и наверняка уже многие знакомы с этим трендом. А хочу я рассказать почему и ка...

Книга «Предиктивное моделирование на практике» Привет, Хаброжители! «Предиктивное моделирование на практике» охватывает все аспекты прогнозирования, начиная с ключевых этапов предварительной обработки данных, разбиения данных и основных принципов настройки модели. Все этапы моделирования рассматриваются на практических п...

[Перевод] Лабиринты: классификация, генерирование, поиск решений В этом классическом посте подробно рассказывается о самых популярных способах создания и прохождения лабиринтов. Статья разделена на четыре части: классификация, алгоритмы генерации, алгоритмы решения лабиринтов и другие операции с лабиринтами. Классификация лабиринтов Лаб...

Google Ads обновил алгоритм расчёта скорости страниц на мобильных устройствах Google Ads обновил алгоритма расчёта показателя «Скорость работы на мобильных устройствах» (Mobile Speed Score). Этот параметр доступен в отчёте «Целевые страницы». Он показывает, насколько быстро страницы сайта загружаются на мобильных устройствах, и оценивается по шкале от...

[Из песочницы] Работа Xamarin c SDK, написанном на C Не так давно у меня был интересный проект на Xamarin Forms для нескольких платформ: Android iOS UWP MacOS Нам было необходимо создать библиотеку, которая смогла бы подключаться к нескольким нашим проектам: Xamarin.Forms, Android на Java, Cordova, а также позволять сторонн...

В Apple Music появилась функция Replay. Она формирует плейлисты из ваших любимых треков Хотите узнать, какие треки в Apple Music вы слушали чаще всего? Replay поможет Ностальгия – это не про Apple. В Купертино привыкли безжалостно избавляться от тех технологий, которые считают бесперспективными. Именно поэтому из новых смартфонов Apple исчез Touch ID, из компью...

Что такое логическое программирование и зачем оно нам нужно У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал) Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас. Можно по-раз...

[Из песочницы] Использование PowerShell для сбора информации об инциденте PowerShell достаточно распространенное средство автоматизации, которое часто используется, как разработчиками вредоносных программ, так и специалистами по информационной безопасности. В данной статье будет рассмотрен вариант использования PowerShell для удаленного сбора данн...

Индийцев выдавали за искусственный интеллект Идея индийской компании Engineer. ai заключалась в том, что при помощи фирменной технологии искусственного интеллекта любой пользователь мог создать собственное мобильное приложение в кратчайшие сроки: для этого нужно было лишь зайти на сайт компании и выбрать в меню шаблон ...

Изучение английского — непопулярное мнение Всем привет. Очередная статья от «курсов изучения английского» сподвигла меня написать свои заметки. Этой статьёй я надеюсь ответить на некоторые вопросы изучающих язык и отговорить от глупых советов «запомнить вот эти 10/15/20 слов/конструкций», которые подаются как некие ...

Создание бэкенд приложения для онлайн чата Apollo, Node.js Некоторое время назад я работал над мобильным приложением, функционал которого включал в себя удобный онлайн-чат. И теперь я решил написать статью с краткой инструкцией, как создать чат, используя apollo server и node.js на бэкенде, а так же react native и apollo client на к...

[Из песочницы] Установка OpenCV + CUDA на Windows Введение В данной статье речь пойдет о сборке и установке OpenCV 4 из исходных файлов с дополнительными модулями CUDA 10 на ОС Windows. Я постарался включить сюда все тонкости и нюансы, с которыми можно столкнуться в ходе установки, и про которые не написано в официальном м...

Apple пригласила на работу руководителя разработки Google Assistant Компания Apple объявила о приеме на работу бывшего старшего вице-президента Google Джона Джаннандреа сразу же после того, как он сообщил об уходе из Google. Джаннандреа начал работать в Google в 2010 году и быстро занял должность руководителя разработок в области искусст...

[Перевод] Структуры данных для программистов игр: bulk data Любому программисту будет полезно понимание различных структур данных и способов анализа их производительности. Но на практике мне ни разу не пригождались АВЛ-деревья, красно-чёрные деревья, префиксные деревья, списки с пропусками, и т.д. Некоторые структуры данных я исполь...

Новый загрузчик Buhtrap Сегодня мы расскажем вам о новом подходе к рассылке ВПО группировкой Buhtrap. Модуль загрузчика 19 декабря нам стало известно о вредоносной рассылке, содержащей исполняемый файл (md5: faf833a1456e1bb85117d95c23892368). Файл принимал различные названия: «Сверка за декабрь....

Amnesty International запустила обучающий онлайн-тренажер по правам человека Подать уведомление о проведении мирной акции, пообщаться с чиновником-ботом и выбрать тактику в случае отказа – все это можно сделать с помощью онлайн-тренажера «Правозащитный воркаут». Это образовательная онлайн-платформа по правам человека на основе реальных дел. Его запу...

Заворачиваем весь трафик ОС в Tor Все описанное в статье реализовано в виде инструмента Toroxy, доступного на GitHub В последнее время анонимность в сети является предметом горячих споров. Ни для кого не секрет, что данные о посещениях Интернет-ресурсов с локального устройства могут собираться на разных у...

Подходы к сегментации мобильных игроков — перевод Алисса Перез из команды Google Play Dev написала статью, которую мы перевели. В ней много полезной информации о подходах к сегментации пользователей: юзер-таргетинге и его связи с развитием бизнеса. Основная цель каждой мобильной игры — создать для игроков что-то интерес...

Kubernetes Operator на Python без фреймворков и SDK Go на данный момент является монополистом среди языков программирования, которые люди выбирают для написания операторов для Kubernetes. Тому есть такие объективные причины, как: Существует мощнейший фреймворк для разработки операторов на Go — Operator SDK. На Go написа...

[Перевод] Разработка микросервисов с помощью BDD и IOD BDD — разработка через поведение. BDD для микросервисов — это сотрудничество клиента, разработчиков и тестировщиков. BDD — это разработка, которая учитывает и технические интересы и бизнес-требования. Этот подход обычно применяется для описания интерфейсов приложений, а так ...

Военные хотят ИИ, который будет играть не по правилам Обученные компьютеры с элементами искусственного интеллекта давно обыгрывают людей в шахматы и недавно научились обыгрывать в Go. Безусловно, эти программы можно назвать ИИ только с большой натяжкой. Но суть в том, что человек худо-бедно смог создать вычислительные системы, ...

[Из песочницы] Два процента «кота» или кто сфотографировал Мастера Йоду? В 2016 из-за давней мечты о видео-играх и «хайпа» вокруг AI я начал изучать Python. Computer Science is Fun потому только неделю назад я обучил первую recognition модель, но без использования Python (в computer science много соблазнов). Как и предсказывал Андрей Себрант (Ya...

Самая «дешёвая» электронная проходная в России управляемая со смартфона Не так давно я писал пост про самый «дешёвый» турникет в России на данный момент. На всякий случай напомню, что это турникет-трипод «RusGate» T3-NO-SF v.1 за 31 990 рублей, вот самая подробная статья про этот турникет из всех, что были написаны про турникеты. Но история ...

Архитектура нейронной сети для реализации алгоритма RL с возможностью задания одновременно выполняющихся действий Одна из классических схем нейронной сети для реализации алгоритма RL выглядит следующим образом: Где: inputs – входы в нейронную сеть; FC – (fully connected) архитектура скрытых слоев или CNN — FC – архитектура архитектура скрытых слоев (в зависимости о того, что подается ...

Про информацию Вот вчера я запостил пост о том, что мне нужно 2 человека для работы в совместной теме. И началось. Ты наёбуешь, ты опять курсы продаёшь, ооо бляяя, сука, как можно продавать курсы… Я вам объясню зачем мне нужны эти 2 человека. Эти 2 человека нужны для работы в теме ют...

Компьютерный алгоритм определил, кто умрёт в последнем сезоне «Игры престолов» Исследователи из Мюнхенского технического университета написали алгоритм, который способен предсказать, кто из персонажей «Игры престолов» погибнет в новом сезоне. Алгоритм делает это на основании ключевой информации про героев телесериала.

Как нужно и не нужно писать чат ботов на примере моего бота для игры в «Тайный Санта» Предыстория Год назад решил я создать телеграм бот для того, чтобы поиграть в достаточно популярную новогоднюю игру «Тайный Санта». Вдохновился я тем, что пару лет назад мы на работе компанией решили сыграть в эту игру (это показалось очень круто), и плюс я давно следил за...

Спорт для программиста второй свежести Около 30 лет назад я написал свою первую программу. Примерно тогда же впервые взял в руки штангу. Около 30 дней назад были приобретены PlayStation и PS VR. По случаю этих славных юбилеев размышления на темы: Как продуктивно провести много лет на сидячей работе? Без выгора...

Аркадий Волож отправил письмо сотрудникам Яндекса Золотая акция 2.0: письмо Аркадия Воложа сотрудникам компании: Только что было опубликовано решение Совета директоров Yandex NV, предлагающее акционерам внести изменения в структуру управления компанией. Подробное описание дано в нашем анонсе, а в этом ...

[Перевод] 9 советов по использованию библиотеки Cats в Scala Функциональное программирование в Scala может быть нелегко освоить из-за некоторых синтаксических и семантических особенностей языка. В частности, некоторые средства языка и способы реализации задуманного с помощью основных библиотек кажутся очевидными, когда ты с ними знако...

[Из песочницы] Как я стал PMP и как это лучше не делать Я давно осознал, что делиться опытом — это полезно. Но только недавно я понял, что им можно делиться не только со знакомыми и близкими, но и со всеми. Поэтому, я хочу рассказать, как я шел к сертификации, почему я это делал и чем это закончилось. Читать дальше →

Жириновский знает, как решить конфликты между школьниками Жириновский предложил ряд идей по предотвращению тяжелых конфликтов среди школьников. В последнем посте в Твиттере Жириновский написал о случае в Челябинской школе. По словам матери пострадавшей, инцидент произошел рядом со школой. Ее дочь избили одноклассницы за то, что т...

[Из песочницы] Хранение и автоматическая сортировка фото и других файлов. Работа с файлохранилищем на базе NAS Synology Давно хотел написать про то как я храню свои файлы, как делаю бэкапы, но все никак не доходили руки. Недавно тут появилась статья, в чем-то похожую на мою но с другим подходом. Сама статья. Я уже много лет пытаюсь найти идеальный для себя метод для хранения файлов. Думаю я ...

[Перевод - recovery mode ] Веб скрапинг для веб разработчиков: краткое резюме Знание только одного подхода к веб скрапингу решает проблему в краткосрочной перспективе, но все методы имеют свои сильные и слабые стороны. Осознание этого экономит время и помогает решать задачу эффективнее. Многочисленные ресурсы рассказывают об единственно верном мето...

Proof-of-Stake: взгляд изнутри В интернете ходит много обывательских статей и рассуждений, но достаточно мало информации по существу. В определённый момент автору стало понятно, что механика и множество связанных нюансов безопасности до конца не понятны даже многим разработчикам криптовалют. Это вскрылос...

Retentioneering: как мы open-source инструменты для продуктовой аналитики на Python и Pandas написали Привет, Хабр. Эта статья посвящена итогам четырехлетней разработки набора методов и инструментов обработки траекторий движения пользователей в приложении или на сайте. Автор разработки — Максим Годзи, который стоит во главе команды создателей продукта, он же — автор статьи. ...

[Из песочницы] Трансформация кода в Android Вместо вступления Всё началось с того, что мне захотелось изучить тонкости настройки Gradle, понять его возможности в Android разработке (да и вообще). Начал с жизненного цикла и книги, постепенно писал простые таски, попробовал создать свой первый Gradle плагин (в buildSrc)...

7 штук, которые точно не надо делать при открытии кружка робототехники. Вот совсем не надо делать Уже 2 года я развиваю робототехнику в России. Наверно громко сказано, однако недавно устроив вечер воспоминаний понял, что за это время под моим руководством было открыто 12 кружков по России. Сегодня решил написать об основных штуках, которые я делал в процессе открытия, н...

Простая реализация небольших CAM на ПЛИС Введение Как-то раз мне потребовалось по работе реализовать небольшой блок ассоциативной памяти. Почитав, как это делается у Xilinx на BlockRAM (BRAM) или на SRL16, я несколько опечалился, так как их реализации занимали довольно много места. Решил попробовать сделать его сам...

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

Построение металлокаркаса здания с помощью программы СПДС Металлоконструкции Одной из основных задач современного проектирования является поиск новых планировочных решений зданий с максимальным внутренним простором. Не сложно догадаться, что именно проектирование здания из металлического каркаса дает возможность для реализации этой идеи. Поэтому, мет...

Внедрение Airflow для управления Spark-джобами в ivi: надежды и костыли Задача деплоя моделей машинного обучения в продакшн — это всегда боль и страдания, потому что очень некомфортно вылезать из уютного jupyter notebook в мир мониторинга и отказоустойчивости. Мы уже писали про первую итерацию рефакторинга рекомендательной системы онлайн-киноте...

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

FFI: пишем на Rust в PHP-программе В PHP 7.4 появится FFI, т.е. можно подключать библиотеки на языке C (или, например, Rust) напрямую, без необходимости писать целый extension и разбираться в его многочисленных нюансах. Давайте попробуем написать код на Rust, и используем его PHP-программе Читать дальше →

Беспростойная миграция RabbitMQ в Kubernetes RabbitMQ – написанный на языке Erlang брокер сообщений, позволяющий организовать отказоустойчивый кластер с полной репликацией данных на несколько узлов, где каждый узел может обслуживать запросы на чтение и запись. Имея в production-эксплуатации множество кластеров Kubern...

Как мы делали клубную программу Спортмастера Если вы чаще раза в год ходите в наши магазины за спорттоварами или одеждой, скорее всего, у вас есть наша клубная карта (синяя, серебряная или золотая). Меня зовут Максим, я заместитель директора департамента разработки, внедрения и сопровождения ПО, и в этом посте мы с кол...

Алгоритм нашел 18 землеподобных экзопланет в старых данных «Кеплера» NASA/Ames/JPL-Caltech Всего на данный момент открыто почти 4 000 экзопланет, и их число постоянно растет. Недавно, как передает New Atlas, специалисты с помощью нового алгоритма сумели найти 18 ранее неизвестных планет за пределами нашей Солнечной системы в данных, собр...

[Из песочницы] Выбор между XML и SQL для накатывания скриптов LiquiBase на примере Java/Spring/H2 В процессе работы над очередным проектом в команде возникли споры по поводу использования формата XML или SQL в Liquibase. Естественно про Liquibase уже написано много статей, но как всегда хочется добавить свои наблюдения. В статье будет представлен маленький туториал по со...

Американские СМИ сообщили о возможной смене Путина Западные журналисты уже сейчас рассуждают, кто придет к власти после окончания полномочий действующего лидера РФ. Американские СМИ в лице издания The Cristian Science Monitor сообщили о возможной смене Владимира Путина после его ухода с поста и предложили несколько варианто...

Правда о железнодорожных тормозах: часть 1 Кинетическая энергия «Сапсана» на максимальной скорости — свыше 1500 мегаджоулей. Для полной остановки вся она должна быть рассеяна на тормозных устройствах Было дело, просили меня поподробнее раскрыть эту тему именно здесь, на хабре. Здесь публикуется довольно много обзор...

Обзор JavaScript-сканнеров штрихкодов Недавно появилась идея сэкономить на ТСД на складе и попробовать использовать вместо них обычные дешёвые мобильники (даже без пылезащиты). Интерфейс планирую реализовать в виде веб-приложения (обычные веб-странички, HTML + CSS + JS). Для того, чтобы всё получилось, необход...

[recovery mode] Добавляем функциональность Razor Pages в стандартный .NET Razor Pages — новая фича, появившаяся в Core.Net 2.0. Razor Page — это страница, состоящая из стандартной разметки (View) и бэкенд класса. В каком то смысле напоминает Web Forms только без поддержки сохранения состояния. Преимущество такого решения очевидно — мы избавляемся ...

[Перевод - recovery mode ] Как правильно обрабатывать ошибки: тишина — не всегда хорошо У меня никогда не было какого-то особого мнения относительно обработки ошибок. Если я начинала работать с существующим кодом, я продолжала выполнять задачу, над которой трудился автор исходника; если писала код с нуля — делала то, что казалось мне правильным. Но недавно...

Как восстановить удалённые данные из iCloud Удалённые данные из iCloud можно восстановить, но при условии, что вы удалили их сами Вы когда-нибудь слышали, что интернет помнит всё? Развитая система кэшей и облачных хранилищ позволяет не только хранить данные, но и при необходимости восстанавливать их даже после удалени...

Координатное устройство для рисования жидкостями Как-то на праздник мне нужно было купить торт. Смотрю, лежит торт с надписью «Ленинградский», однако глазомер кондитера немножко подвел, и последние буквы уже не вместились – получилось что-то вроде «Ленинградскш». Вот, думаю, использовали бы для нанесения надписей какую-ниб...

[Перевод] Руководство по развертыванию моделей машинного обучения в рабочей среде в качестве API с помощью Flask Друзья, в конце марта мы запускаем новый поток по курсу «Data Scientist». И прямо сейчас начинаем делиться с вами полезным материалом по курсу. Введение Вспоминая ранний опыт своего увлечения машинным обучением (ML) могу сказать, что много усилий уходило на построение дейс...

Реализация словаря в Python Всем привет, 30 апреля в ОТУС стартует курс «Алгоритмы для разработчиков», именно к этому приурочена публикация сегодняшнего материала. Начнём. В этой статье вы узнаете, как в Python реализованы словари. Словари индексируются с помощью ключей, и они могут рассматриваться ...

[Перевод] Специальные объекты, которые тяжело хватать роботам Чтобы сделать захват роботов более надёжным, исследователи разрабатывают максимально сложные для манипулирования объекты Вдохновившись концепцией состязательных изображений, исследователи из Калифорнийского университета в Беркли изучают физические состязательные объекты, тщ...

Детальная настройка браузера Firefox Вот уже 2 года, как я рекомендую всем моим знакомым использовать Firefox, как браузер для повседневного серфинга в интернете. Я люблю этот браузер за его гибкость в настройке, скорость и заботу о приватности. Много раз на форумах меня спрашивали про какие-то отдельные случаи...

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

Обучающий курс по DataPower Материал подготовлен в соавторстве с пользователем wedmeed В 2017 году, когда начинался наш проект во Вьетнаме, мы столкнулись с новым для нас зверем IBM DataPower. IBM DataPower – продукт, представляющий собой gateway между клиентами и бэкендами, предназначенный для фильтр...

Комик Владимир Зеленский рассказал, как выведет Украину из кризиса Лидер «Вечернего квартала 95» объявил о первом шаге в своей предвыборной кампании. Комик, который недавно шокировал всю Украину заявлением о том, что собирается баллотироваться в президенты, также рассказал, что не озвучит свою предвыборную программу до тех пор, пока официа...

Напиши свою песню за 10 минут (модуль textgenrnn Python3) Сегодня попробуем обучить свою собственную нейронную сеть, чтобы писала текст для песен. Обучающей выборкой будут тексты группы "Руки Вверх". Ничто не мешает чтобы поменять данные на тексты своих любимых групп. Для извлечения данных с веб-сайтов используем Python3 (модуль B...

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

Как QA организовать автоматизацию тестирования на проекте. Один практически примененный способ Некоторое время назад я написала статью о своем опыте организации работы QA Инженера на проекте. Сейчас хочу продолжить эту тему, но уже в более узком ее направлении — автоматизации тестирования. Речь пойдет о том же самом проекте, он небольшой, но развивающийся под запросы ...

Google объявил об обновлении основного алгоритма Google официально объявил об обновлении основного алгоритма. Запуск апдейта будет начат сегодня, 3 июня. «Завтра мы выпускаем широкое обновление основного алгоритма, как мы делаем это несколько раз в год. Этот апдейт получил название June 2019 Core Update. Наши рекомендации ...

Выбор авто для айтишника, или советы чайникам от чайника Привет хабр. Оговорюсь сразу — данный пост довольно слабо пересекается с тематикой хабра, но чуть дальше я объясню почему я решил его опубликовать. Надеюсь хабы выбраны правильно. Так вот, всё дело в том, что скромная выборка основанная на моих личных наблюдениях натолкнула ...

[Перевод] Встречайте Open Source License Compliance Handbook Большой зоопарк опенсорсных лицензий неизбежно приводит к тому, что приходится нередко задаваться вопросами касательно их совместимости, тех или иных применимых лицензионных условий в зависимости от соответствующего сценария использования. Замечательно, конечно, что существу...

[Перевод] F#5: Операторы Я намеревался написать 1/2 достойного поста в блоге об операторах F #, но потом я подумал, и, честно говоря, я не мог видеть слишком много достоинств в простом повторении того, что уже свободно доступно на MSDN, где перечисляются ВСЕ операторы F#. Читать дальше →

[Перевод] composer и автодополнение командной строки Так как я все больше и больше добавляю свои скрипты в файлы composer.json, было бы полезно иметь автозаполнение для команды composer в bash. Мой вопрос в Твиттере не дал немедленного решения, и, поскольку я уже делал нечто подобное для Phing, я закатал рукава и написал своё ...

Google осудили за ссылки на статьи SEO-экспертов в посте о Core Updates На прошлой неделе евангелист Google Дэнни Салливан опубликовал подробный пост, посвящённый обновлениям основного алгоритма поисковой системы. В нём он дал ссылки на статьи по теме от известных западных SEO-экспертов, что послужило причиной критики в адрес компании со стороны...

Алгоритмы Facebook помогут интернет-компаниям искать дубликаты видео и изображений для борьбы с недопустимым контентом Facebook объявила об открытии исходного кода двух алгоритмов, способных определять степень идентичности для фотографий и видео, даже если в них внесены небольшие изменения.

[Перевод] Декларативное управление памятью (достаточно вольный перевод огромной статьи, которая на практике наводит мосты между возможностями Си и Rust в плане решения бизнес-задач и разрешение багов, связанных с ручным управлением памятью. Также должно быть полезно и людям с опытом сборки мусора — отличий в плане пр...

[Из песочницы] Прикладные технологии на руинах блокчейн-лихорадки или о практической пользе распределения ресурсов В последние годы новостные ленты наводнили сообщения о появляющихся буквально из ниоткуда распределенных вычислительных сетях нового типа, решающих (точнее, пытающихся решить) самые разнообразные задачи — сделать город умным, спасти мир от нарушителей авторских прав или наоб...

[Из песочницы] Какой дистрибутив лучше использовать для вашей embedded системы? Какой дистрибутив лучше использовать для embedded систем. Этот вопрос является актуальным на сегодняшний день. Существует три актуальных подхода для решения этой задачи: Использовать готовый дистрибутив для вашего одно платного компьютера(Armbian, Openwrt и т.д.) Собрать...

[Перевод] Spring Boot 2: что нового? От переводчика: несмотря на то, что уже прошел год, вопросы о том что же нового дал нам 2-ой Boot не заканчиваются. Писать такой контент с нуля — затея не самая умная. Поэтому решили перевести статью, которая нам кажется наиболее локаничной и при этом достаточно полной. Рели...

Правда про парсинг сайтов, или «все интернет-магазины делают это» В этой статье я постараюсь наиболее просто рассказать о парсинге сайтов и его основных нюансах. Моя компания занимается парсингом сайтов уже более трёх лет и ежедневно мы парсим около 300 сайтов. Я обычно открыто пишу об этом в соц.сетях (плюс мы много чего из итогов парсинг...

Проверка кода Telegram Open Network анализатором PVS-Studio Telegram Open Network (TON) — это платформа от создателей мессенджера Telegram, которая, помимо блокчейна, содержит в себе большой набор сервисов. Недавно разработчики опубликовали код платформы, написанный на C++, и разместили его на GitHub. Нам захотелось проверить проект...

[Перевод] Reflective Shadow Maps: Часть 2 ― Реализация Привет, Хабр! В данной статье представлена простая реализация Reflective Shadow Maps (алгоритм описан в предыдущей статье). Далее я объясню, как я это сделал и какие подводные камни были. Также будут рассмотрены некоторые возможные оптимизации. Рисунок 1: Слева направо: бе...

Как сбежать из секты? Наш мир устроен очень странно. И чем дальше, тем становится страннее. И хрен поймешь, в чем дело. Вот есть на свете инженеры и программисты. Иногда в одном лице. Люди, понимающие, что такое алгоритм. Более того – люди, создающие эти алгоритмы. Прекрасно знающие, что созданн...

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

Упрощенный доступ к данным внутренней FAT12 для STM32 В предыдущей статье был рассмотрен вариант использования микроконтроллера STM32F103C8T6 как flash накопителя с внутренней файловой системой FAT12. Теперь можно рассмотреть, каким образом получить данные из нашей внутренней файловой системы. К примеру нам необходимо хранить н...

[Из песочницы] Создаем простой сервис коллтрекинга, часть 1 В рамках статьи будет рассмотрен один из возможных вариантов реализации коллтрекинга на сайте. Данный материал написан сугубо в образовательных целях и не несет в себе цели замены существующих специализированных сервисов, предоставляющих услугу «calltracking». Требования к ...

Spring Boot 2: чего не пишут в release notes Когда у масштабного проекта происходит масштабное обновление, всё никогда не бывает просто: неизбежно возникают неочевидные нюансы (проще говоря, грабли). И тогда, как бы хороша ни была документация, с чем-то поможет только опыт — свой или чужой. На конференции Joker 2018...

[Из песочницы] Как я свой первый ИИ писал Привет, Хабр. История моя берёт начало в январе 2019 года. Мы с моей тимой геймдевелоперов решили взяться за самый большой проект в нашей истории- 2Д платформер. Нет, мы не делали до этого какие-нибудь FlappyBird'ы или змейки, но объём работы в этом проекте просто сносил на...

CLRium #6: Парный доклад про Lock-Free, много теории и практически-полезных знаний Совсем скоро, 29-30 ноября в Санкт-Петербурге и 06-07 декабря — в Москве мы запустим шестой семинар по .NET. На этот раз — по теме многопоточки и конкурентности. Мы уже писали об этом пару раз на Хабре, но сегодня — День Программиста и есть отличный повод дать вам всем компл...

Business Intelligence по-русски — на квинтетах В одной из заметок нашего блога мы освещали подход к хранению и обработке данных, о котором получили несколько вполне ожидаемых вопросов такого плана: «В общем, ждём реализации, вот уж оно залетает...». По результатам нескольких реализаций я расскажу о плюсах и минусах этого...

Телега для датасайентиста How to deploy Python Telegram bot using Webhooks on Google Cloud Platform Вместо предисловия — Напиши телеграм-бота. Сейчас даже школьники пишут, — сказала она. — А почему бы и нет, — подумал я тогда ( — Ну, ну, — сказал бы я сейчас). Мы сидели в Бине и за чашкой кофе обсуж...

Школа разработки интерфейсов: разбор заданий для Минска и новый набор в Москве Сегодня открылся новый набор в Школу разработки интерфейсов Яндекса в Москве. С 7 сентября по 25 октября пройдёт первый этап обучения. Студенты из других городов смогут в нём поучаствовать дистанционно или очно — компания оплатит дорогу и проживание в хостеле. Второй, он же ...

Рекламные листовки — эффективный способ увеличения продаж! Как заинтересовать читателей рекламными листовками? Большинство выбрасывают их сразу же, едва прочитав содержимое. Креативный подход поможет разработать листовки, которые будут читать с интересом. Необходимо придерживаться следующих правил: Материал должен быть познаватель...

Сохранить преимущества цифровых технологий при сделках поможет нотариус С 13 августа 2019 года для совершения сделки по отчуждению недвижимости с помощью электронной цифровой подписи гражданам нужно будет заранее уведомлять Росреестр. Россиянам, планирующим сделку с недвижимостью с применением цифровых технологий, придется лично обратиться в МФЦ...

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

Управляем android устройством Это уже третья попытка подружить умный дом с android, напомню, что первая попытка контролировать android устройства посредством HTTP, была с помощью приложения Paw Server. Данное приложение позволяло с помощью языка BeanShell встраивать свой код в xhtml страницу и взаимоде...

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

Apple начнет враждебно относиться к сайтам, нарушающим правила конфиденциальности Safari Недавно компания Apple внесла ряд изменений в свою политику конфиденциальности. Теперь алгоритмы будут относиться к сайтам и приложениям, которые пытаются обойти функцию анти-отслеживания в браузере Safari, также, как и к вредоносному ПО.Читать дальше... ProstoMAC.com.| Пос...

CJDNS мертв, да здравствует Yggdrasil Что такое Yggdrasil? Yggdrasil — это распределённая Mesh сеть, которая работет в Overlay режиме, позволяя сделать интернет поверх интернета Последние новости о сети cjdns датируются 2017 годом, может показатся, что сеть умерла и разработка остановлена (на самом деле — да)...

4 приема, которые помогли нам оптимизировать frontend В трендах дизайна уже давно засели красивые анимации. UI-дизайнеры делают выверенные «карусели», загрузки, анимации меню и другие украшения, а frontend разработчики переводят их в код. Но сайт должен не только хорошо выглядеть, но и быстро работать. Современный «фронтенд» до...

[Перевод] Оптимизация поиска в ширину: как обработать граф с 10 миллиардами состояний Пару месяцев назад мне наконец пришлось признать, что я недостаточно умён, чтобы пройти некоторые уровни головоломки Snakebird. Единственным способом вернуть себе часть самоуважения было написание солвера. Так я мог бы притвориться, что создать программу для решения головол...

Разработка hexapod с нуля (часть 3) — математика Всем привет! Разработка гексапода продвигается и наконец-то базовая математическая часть протестирована и готова к документированию. Чтобы проект дожил до конца и не остался пылиться на полке нужно видеть его сдвиги в положительную сторону, даже если они незначительны. В эт...

Должна ли карточка товаров быть уникальной?   Вопрос пользователя: Какой контент писать товарам, если они отличаются только цветом/оттенком/объемом? Наш ответ: Если товарные карточки открыты к индексации, то в идеале все их описания должны быть уникальным (подробное руководство тут) Но это в идеале. В реальности...

ASH Viewer: перезагрузка Что делать, если надо работать с данными, которые по объему еще не Big data, но уже больше того, что умещается в памяти компьютера и для которых достаточно возможностей Excel? Для любителей велосипедостроения ответ очевиден – нужно писать что-то свое (да, мы не ищем легких п...

[Из песочницы] Как создать модель точнее transfermarkt и не предсказывать или что больше всего влияет на стоимость трансферов Я постараюсь рассказать вам насколько легко получить интересные результаты, просто применив совершенно стандартный подход из тьюториала курса по машинному обучению к не самым используемым в Deep Learning данным. Суть моего поста в том, это может каждый из нас, надо просто по...

Искусственный интеллект создал картину Искусственный интеллект неумолимо развивается, во многих сферах превысив возможности человека. И вот на днях, компания Microsoft в Музее русского импрессионизма представила картину, написанную нейросетью по мотивам песни группы «Альянс» «На заре». В основе алгоритма заложены...

Реализация пользовательского интерфейса OpenStack LBaaS При реализации пользовательского интерфейса балансировщика нагрузки для виртуального приватного облака мне пришлось столкнуться с существенными трудностями. Это привело меня к размышлениям о роли фронтенда, чем хочу поделиться в первую очередь. А далее обосновать свои разм...

PhpStorm 2019.3: поддержка PHP 7.4, PSR-12, WSL, MongoDB и многое другое Всем привет! Мы рады представить вам третий мажорный релиз PhpStorm в этом году! Обзор релиза можно посмотреть на странице “What’s new”. А под катом — подробный разбор всех заметных изменений и новых возможностей. Осторожно — очень много картинок. Скачать новую версию мож...

[Перевод] Монорепозитории: пожалуйста не надо От переводчика: Привет, Хабр! Да, это очередная статья о преимуществах и недостатках монорепозиториев. Собирался написать свою статью о том, как мы используем монорепозиторий, как мы переходили с maven на bazel и что из этого получилось. Но пока собирался с мыслями, вышла от...

Core UX Features & MVP при создании продукта Я уже 12 лет создаю различные веб-сервисы и мобильные приложения. И миллион раз я советовал людям делать MVP. Но я чувствую, что нужно быть очень осторожным с этим советом, нужно допускать множество оговорок, когда даешь этот совет и объяснять, что же такое "M" и "V" в этой ...

[Перевод] Дорожная карта Android-разработчика в 2019 году Всем привет! У нас отличные новости. В этом месяце в Отус стартует базовый курс "Android-разработчик", а также "Специализация Android-разработчик", которая включает в себя целый пакет курсов. В связи с этим делимся с вами полезной статьей, перевод которой приурочен к данным ...

Концепция персистентной ткани для контроля IT-инфраструктуры Всем привет. Расскажу вам про микросервисы, но немного с другой точки зрения, чем Вадим Мадисон в посте «Что мы знаем о микросервисах». Вообще я считаю себя разработчиком баз данных. При чем же тут микросервисы? В Авито используются: Vertica, PostgreSQL, Redis, MongoDB, Tara...

Про квантовые вычисления и свободу воли Хабр, привет! Хочу поделиться своими размышлениями, которые возникли в результате изучения вопросов, связанных с квантовыми вычислениями. Прошу прощения за то, что в посте нет картинки, но думаю, что любое изображение будет лишь сбивать с толку и уводить от сути вопроса. Буд...

Создан имплантат, который может управлять мозгом через смартфон Группа исследователей из Южной Кореи и США разработала беспроводной имплантат, воздействующий на определенные участки головного мозга. В этом, на самом деле, не было бы ничего удивительного, ведь уже давно существует масса различных устройств похожего типа. Однако интерес в...

Композитный «datasource»-объект и элементы функционального подхода Как-то раз я (ну ладно, даже не я) столкнулся с задачей добавить в UICollectionView с определенным типом ячеек одну ячейку совершенно другого типа, причем делать это лишь в особенном случае, который обрабатывается «выше» и никак не зависит от UICollectionView напрямую. Задач...

Пишем свой язык программирования, часть 3: Архитектура транслятора. Разбор языковых структур и математических выражений Введение Приветствую вас, заинтересованные читающие разработчики на не важно каких языках, на которых я ориентирую эти статьи и чьи поддержку и мнения я ценю. Для начала, по устоявшимся традициям, я приведу ссылки на предыдущие статьи: Часть 1: пишем языковую ВМ Часть 2:...

[Перевод] Как работает Flutter Как Flutter работает на самом деле? Что такое Widgets, Elements, BuildContext, RenderOject, Bindings?.. Сложность: Новичок Вступление В прошлом году (прим: в 2018), когда я начал свое путешествие в сказочный мир Flutter, в Интернете было очень мало информации по сравнению с...

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

Поиск JS-фреймворка для генерации UI Как-то я захотел попробовать реализовать одно маленькое клиент-серверное приложение. Реализация в задумке была такая: на клиентской стороне рисуем с помощью какого-нибуть JS-фреймворка окошки, на серверной стороне обрабатываем вызовы с клиента с помощью скомпилированного пр...

Амеба справилась с вычислениями лучше современного компьютера Группа исследователей из токийского университета Кейо решила использовать амебу для решения так называемой «задачи коммивояжера», известной в области компьютерных наук проблемы. Суть ее такова: представьте, что вы — путешествующий от города к городу продавец, предлагающий св...

[Из песочницы] Расшифровка LUKS контейнера в момент загрузки системы Всем доброго дня, ночи! Этот пост будет полезен тем, кто используется шифрование данных LUKS и хочет производить decryptдешифровку дисков под Linux (Debian, Ubuntu) на стадии расшифровки root раздела. И такой информации в интернете я найти не смог. Совсем недавно с увеличен...

[Перевод] 5 главных алгоритмов сэмплинга Работа с данными — работа с алгоритмами обработки данных. И мне приходилось работать с самыми разнообразными на ежедневной основе, так что я решил составить список наиболее востребованных в серии публикаций. Эта статья посвящена наиболее распространённым способам сэмплинга ...

[Перевод] Как улучшить навыки письменного английского с помощью изучения грамматики При изучении иностранных языков, зачастую, грамматика – один из самых сложных моментов. При этом существуют разные подходы – кто-то считает, что главное выучить побольше слов и представлять, как их применять, тогда вас поймут и с грамматическими ошибками. Кто-то не согласе...

Назад в 1985: представляем Windows 1.11 Мы долго интриговали вас в Twitter, делая посты о чем-то новом, связанном с Windows. И вот время пришло! К выходу третьего сезона сериала «Очень странные дела» мы с ребятами из Netflix создали приложение с Windows 1.11, которое поможет вам вернуться в 80-е (действия сериа...

Перевод книги «Using Google Analytics with R» (Michal Brys) Электронная книга «Using Google Analytics with R» (Michal Brys) представляет собой практическое руководство по анализу данных из Google Analytics в R. Написана дата-сайентистом в 2014 году, но ничуть не теряет своей актуальности и сегодня. Читать дальше →

Google: что вебмастера должны знать об обновлениях основного алгоритма Google опубликовал подробный пост, посвящённый обновлениям основного алгоритма (Core Updates), и поделился советами по проверке качества контента. Согласно Google, обновления основного алгоритма – это крупные, обширные апдейты, которые проводятся несколько раз в год. Эти обн...

Бенчмарк как основание для принятия решения об изменении кода Билл Кеннеди в одной из лекций своего замечательного курса Ultimate Go programming сказал: Многие разработчики стремятся оптимизировать свой код. Они берут строчку и переписывают ее, говоря, что так станет быстрее. Нужно остановиться. Говорить, что тот или иной код быстрее, ...

Telegram бот для изучения языков Не так давно я переехал в Финляндию и решил, что местный язык знать нужно. Занимаюсь с учителем онлайн, всё идёт хорошо, язык оказался не таким сложным, как казалось, но, пожалуй, самая большая проблема — увеличение словарного запаса. Сначала я решил пользоваться теми решен...

К вопросу о VNA или японо-китайский прибор «А что, так можно было?» В крайнем посте Джека Гансли был упомянут появившийся недавно на просторах Инета прибор, именуемый NanoVNA, или малогабаритный портативный векторный анализатор цепей (ВАЦ) в диапазоне 50кГц-900МГц со стоимостью 50 долларов США. «Пятьдесят долларов,...

[Перевод] Тот день, когда я полюбил фаззинг В 2007 году я написал пару инструментов для моддинга космического симулятора Freelancer. Ресурсы игры хранятся в формате “binary INI” или “BINI”. Вероятно, бинарный формат выбрали ради производительности: такие файлы быстрее загружать и читать, чем произвольный текст в форма...

Действительно понятное объяснение квантовой запутанности (парадокса ЭПР) Понятное для тех, кто захочет разобраться, конечно. Пост состоит из трех частей. Для понимания сути явления, достаточно ознакомиться только со второй частью. Вводная (зачем, да почему) Конкретные расчеты Философско-практическая часть. 1. Вводная (зачем, да почему) Сподви...

Ещё раз об ImmutableList в Java В своей предыдущей статье "Рукоблудие вокруг ImmutableList в Java" я предложил вариант решения поднятой в статье "Неизменяемых коллекций в Java не будет – ни сейчас, ни когда-либо" проблемы отсутствия в Java неизменяемых списков. Решение тогда было проработано только на уров...

Самый легкий и удобный экзоскелет в мире Экзоскелет, разработанный учеными из Кореи В последнее время экзоскелеты из чего-то из области научной фантастики перешли в разряд вещей, которые успешно можно применять в реальной жизни. Однако же если мы с вами говорим о полнофункциональных экзоскелетах, то они, как правил...

60 миллионов полей и 27 культур. Как мы делали карту всех полей Европы и США Несколько месяцев назад мы запустили первую в мире бесплатную интерактивную карту, с помощью которой можно посмотреть информацию о любом поле в США и Европе. Про карту написали десятки изданий, а на Product Hunt она собрала беспрецедентные для продукта из агросектора полторы...

[Из песочницы] Применение Go в производственных системах. Валидаторы Добрый день, Хабр! Я довольно часто начинаю утро с просмотра хабра и наконец решил внести свой вклад в данный процесс изучения интересного. Если всё сложится, то это первая моя статься из цикла применения языка GO на производственных системах. Я хочу рассказать некоторые т...

[Из песочницы] Имплементация кэша на Verilog В данной статье разбор простейшей реализации RAM на языке Verilog. Перед тем, как перейти к разбору кода, рекомендуется изучить базовый синтаксис языка Verilog. Здесь вы можете найти обучающие материалы. Читать дальше →

Особенности настройки Palo Alto: SSL VPN Несмотря на все преимущества межсетевых экранов Palo Alto, в рунете не так много материалов по настройке этих устройств, а также текстов, описывающих опыт их внедрения. Мы решили обобщить материалы, накопленные у нас за время работы с оборудованием этого вендора и рассказа...

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

myTarget обновила систему рекламной аттестации для маркетологов Mail.ru Group обновила систему аттестации рекламной платформы myTarget. Специалисты по интернет-маркетингу и сотрудники рекламных агентств смогут получить или обновить свой аттестат после прохождения двух экзаменов. Задания в тестировании соответствуют ключевым требованиям п...

[Перевод] 39 новых фич, которые будут доступны в Java 12 Из замечательного интервью на Хабре: «Саймон Риттер — человек, который работал над Java с самого начала и продолжает делать это в роли заместителя технического директора Azul — компании, работающей над виртуальной машиной Zing JVM и одним из лучших сборщиков мусора, C4 (Cont...

[Перевод] Как улучшить стиль письма на английском: 5 советов При написании текстов на любом языке важно не только избегать грамматических и синтаксических ошибок, но и в целом следить за стилем изложения. Читатели мгновенно видят, когда текст написан хорошо. Я наткнулся на интересный материал с пятью советами, которые призваны помо...

Как ускорить шифрование по ГОСТ 28147-89 на процессоре Байкал-Т1 за счет SIMD-блока В статье на примере описания реализации алгоритма шифрования по ГОСТ 28147–89, построенного на сети Фейстеля, показаны возможности двухъядерного процессора BE-T1000 (aka Байкал-Т1) и проведены сравнительные испытания реализации алгоритма с помощью векторных вычислений с сопр...

[Перевод] Как я создал фильтр, не портящий изображение даже после миллиона прогонов Завершив создание веб-архитектуры для нашего нового веб-комикса Meow the Infinite, я решил, что самое время написать несколько давно назревших технических статей. Данная статья будет посвящена фильтру, разработанному мной несколько лет назад. Он никогда не обсуждался в облас...

[Из песочницы] Как начать программировать в Adobe Illustrator. Скрипт Expand Clipping Mask. Часть первая Сразу хочу предупредить, что эта серия постов не для матёрых программистов и даже не для программистов вообще. Понимаю, что это звучит крайне вызывающе, учитывая IT-тематику ресурса, и все же позвольте объяснить… В качестве аудитории, я вижу обычных дизайнеров, которые хотел...

Разработка команды запроса данных из базы В настоящий момент занимаюсь реализацией взаимодействия с поставщиком KYC услуг. Как обычно ничего космического. Нужно просто выбрать из своей базы данных некий достаточно объемный комплект экземпляров различных записей, выгрузить их поставщику услуг и попросить поставщика з...

[Из песочницы] «Статья про минет»: ученые обработали 109 часов орального секса, чтобы разработать ИИ, который сосет член Привет, Хабр! Представляю вашему вниманию перевод статьи Саманты Коул (Samantha Cole) c motherboard.vice.com. Анонимные специалисты по машинному обучению написали «статью про минет», чтобы сделать эту машинку для отсоса более реалистичной. Autoblow AI, секс-игрушка для поль...

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

Почему владельцы сайтов выбирают украинский хостинг? Ни для кого не является секретом, что государство всерьез занялось Интернетом и стремится "вывести его из под коряги". Уникальность Интернета заключается в том, что он появился не сразу, а до его появления были такие сети, как Fido, которая не имела центра и была трудно упра...

Amazon обвинили в манипулировании результатами поиска Издание The Wall Street Journal нашло факты, указывающие на то, что Amazon манипулирует результатами поиска на своей платформе.   По данным источников WSJ, онлайн-ретейлер внёс изменение в свой поисковый алгоритм для продвижения тех товаров, которые приносят ему наибольшую п...

[Перевод] Новое в Hadoop: познакомимся с различными форматами файлов в Hadoop Всем привет! Публикуем перевод статьи, подготовленный для студентов новой группы курса «Data Engineer». Если интересно узнать, как построить эффективную и масштабируемую систему обработки данных с минимальными затратами, посмотрите запись мастер-класса Егора Матешука! Неско...

Архитектура конечных автоматов в Unity для организации поведений юнитов Первым этапом разработки моей игры стала разработка RTS-движка. Я планирую написать серию постов о возникших задачах и их решениях в этом блоге. В этом посте я расскажу как организовал поведения юнитов. Размышляя с чего начать вообще этот RTS движок, я пришел к выводу, что ...

5 советов о Design Leadership. Часть 1 Всем привет. Уже в этом месяце мы запускаем курс «Team Lead 2.0», который подготовлен специально для старших разработчиков, TeamLead’ов, SCRUM мастеров и специалистов, желающих повысить свой профессиональный уровень и получить уникальный опыт, необходимый для эффективного уп...

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

[Перевод] Один гигантский шаг для машины, играющей в шахматы Невероятный успех AlphaZero, алгоритма с глубинным обучением, провозглашает новую эру мышления, которая может оказаться недолгой для человека В начале декабря исследователи из компании DeepMind, занимающейся искусственным интеллектом и принадлежащей Alphabet Inc., родитель...

Terraformer — Infrastructure To Code Хотел бы рассказать про новый CLI tool который я написал для решения одной старой проблемы. Проблема Terraform уже давно стал стандартом в Devops/Cloud/IT сообществе. Вещь очень удобная и полезная чтоб заниматся infrastructure as code. Есть много прелестей в Terraform а т...

Microsoft, Sony и Nintendo будут требовать указывать шанс выпадения предметов из лутбоксов Несколько лет назад Star Wars Battlefront II вызвал споры о микротранзакциях. Многие страны выступают против данной практики, в том числе и США. Microsoft, Nintendo и Sony также недовольны ситуацией с кейсами и хотят быть прозрачными и честными перед игроками. Ассоциация ра...

BLoC паттерн на простом примере И еще раз про BLoC на классическом примере счетчика Flutter. Читая некоторые статьи про реактивное программирование и используя BLoC паттерн в приложениях я понимал, что чего-то не догоняю. Как обычно на все не хватает времени, но вот, выдался свободный час и силы есть — реш...

Модели натурального ряда чисел и его элементов: Геометрическая (плоскостная) модель натурального ряда     Задача криптографического анализа шифра (атака на шифр) предполагает построение и исследование модели криптографической системы (алгоритма шифра и его элементов), а также ситуации, в рамках которой осуществляется криптоанализ. Для шифра RSA такой моделью его элемента д...

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

Промышленных роботов самостоятельно принимать решения в изменяющейся среде Доклад по этой теме был признан лучшим в своей секции на конференции ICCAD’19, которая проходила 2-4 июля в Гренобле, Франция.Учёные ДВФУ создали и реализовали на практике новый принцип интеллектуального управления промышленными роботами - управление программными сигна...

Ускоряем PHP-коннекторы для Tarantool с помощью Async, Swoole и Parallel В экосистеме PHP на данный момент существует два коннектора для работы с сервером Tarantool ― это официальное расширение PECL tarantool/tarantool-php, написанное на С, и tarantool-php/client, написанный на PHP. Я являюсь автором последнего. В этой статье я хотел бы подели...

Решение задания с pwnable.kr cmd1, cmd2, asm, blukat. Обходим фильтрацию в Linux. Пишем shellcode с помощью pwntools В данной статье посмотрим как обойти легкий фильтр, разберемся как написать shell c помощью pwntools, а также решим несколько заданий с сайта pwnable.kr. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информацион...

Google Pixel: В чём секрет камеры смартфона от Google? Многие считают камеру Google Pixel лучшей. В плане железа она мало чем отличается от конкурентов — главное в софте. Но обработка изображения ИИ есть и у других производителей. Тем не менее Pixel (даже «бюджетный» 3a) на одном месте всех возил. Давайте разбере...

Умеет «оживлять» кинопостеры. У Bixby Vision появилось четыре новые функции Голосовой ассистент Bixby присутствует на рынке уже достаточно давно, но до сих пор не завоевал особой популярности. Причин достаточно много. Это и ограниченная поддержка языков, и поздний выход, и ограниченная функциональность. Но Samsung продолжает развивать Bixby, в...

MIT и Ford создали роботов-доставщиков, которые ориентируются без использования GPS Дроны, которым не нужен GPS — это что-то новое В последнее время все больше компаний делают ставку на использование роботов-курьеров. Для того, чтобы они смогли доставить посылку адресату, им, понятное дело, нужно как-то ориентироваться. Выход прост — использоват...

Новостройки в Алматы по адекватной цене от застройщика mercur-grad.kz Надежные новостройки в Алматы — это отличная возможность переехать от шумного города практически за его пределы. При этом в данном месте отменная транспортная развязка, которая позволит легко добираться до центра города. Застройщик сделал все возможное, чтобы полноценн...

Погружаемся в opensource-экосистему Android Disclaimer о том, что пост не призывает к радикальным формам фанатизмаКаждый выбирает свой "уровень погружения". Вам не обязательно следовать каждому пункту из этого поста. Моя цель — показать, насколько хорошо развита экосистема на данный момент и чего вы можете и не можете...

Многопоточные вычисления на Javascript, или как телефон выиграл гонку у ноутбука Привет, Хабр! Продолжаем битву за производительность Javascript на примере построения сводных таблиц. В прошлый раз мы реализовали несколько оптимизаций, и оставалась последняя реальная возможность ускорить расчет — перейти на многопоточные вычисления. В Javascript уже давн...

Учиться и спрашивать: как делиться знаниями с коллегами Задача руководителя – делать сотрудников героями, уверена Екатерина Иртикеева, экс-генеральный директор «Дирекции города-организатора Самары по подготовке и проведению в 2018 году чемпионата мира по футболу», член ассоциации «Профессиональное сообщество директоров «Директори...

Часть 4. Карьера программиста. Junior. Заход во фриланс Продолжение рассказа «Карьера программиста». Смеркалось. И прямо, и косвенно. Я с большим усердием искал работу программистом, но не было никаких вариантов. В моем городе было 2-3 объявления на 1С-разработчика плюс, редкий случай, когда требовались преподаватели курсов прог...

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

Я вам перезвоню Привет, я Катя, я нашла работу. И написала методичку по общению с работодателем. Расскажу, что спрашивать на собеседовании, чего не спрашивать и как это делать правильно. Весь месяц гоняла по собесам. Посмотрела и на стартапы и на Яндексы. Компаний много, выбирать сложно....

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

Проект национального IoT-стандарта OpenUNB: критический разбор Привет, Хабр! Некоторое время тому назад рабочая группа Сколтеха по Интернету вещей опубликовала проект национального стандарта узкополосной связи для IoT под названием «OpenUNB», полный текст которого можно найти здесь. С одной стороны, явление безусловно положительное – е...

Универсальная методика к решению задач на примере головоломки «12 монет, 3 взвешивания» Дано: 12 монет, одна из них фальшивая, отличается только весом. Неизвестно легче или тяжелее. Даны рычажные весы, которые показывают, что груз с одной из сторон тяжелее. За 3 взвешивания необходимо найти фальшивую монетку и определить легче она или тяжелее. Из опыта советую...

Отчёты по состоянию СХД с помощью R. Параллельные вычисления, графики, xlsx, email и всё вот это В статье приведён код по формированию регулярных отчётов по состоянию дисков СХД EMC VNX с альтернативными подходами и историей создания. Старался писать код с максимально подробными комментариями и одним файлом. Только пароли свои подставить. Формат исходных данных также ук...

[Перевод] Мое видение будущего D Когда Андрей Александреску покинул пост заместителя руководителя отдела языка программирования D, меня попросили взять на себя эту роль в будущем. Нет необходимости говорить об этом, но я все равно скажу, что эта шапка на меня великовата. Я все еще вхожу в свою новую роль в...

Windows 10 на ARM для Lumia получает поддержку датчиков Проект Windows 10 on ARM для Lumia 950 и Lumia 950 XL дал новую жизнь телефонам с Windows и открыл двери для новых функций, которые на самом деле были недоступны в Windows 10 Mobile.Совсем недавно проект Windows 10 on ARM для Lumia 950 и Lumia 950 XL получил обновление драйв...

Все материалы на данном сайте взяты из открытых источников или присланы посетителями сайта и предоставляются исключительно в ознакомительных целях. Права на материалы принадлежат их владельцам. Администрация сайта ответственности за содержание материала не несет. (Правообладателям)