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

Статический анализ IntelliJ IDEA против человеческого разума Не так давно я изучал вывод статического анализатора IntelliJ IDEA для Java-кода и наткнулся на интересный случай. Так как соответствующий фрагмент кода не является open source, я его анонимизировал и отвязал от внешних зависимостей. Будем считать, что он выглядел так: priva...

Анализ исходного кода RPC фреймворка Apache Dubbo статическим анализатором PVS-Studio Apache Dubbo — один из самых популярных Java проектов на GitHub. И это неудивительно. Он был создан 8 лет назад и широко применяется как высокопроизводительная RPC среда. Конечно, большинство ошибок в его коде давно исправлены и качество кода поддерживается на высоком уровн...

Проверка исходного кода библиотек .NET Core статическим анализатором PVS-Studio Библиотеки .NET Core — один из самых популярных C# проектов на GitHub. Неудивительно, с учётом его широкой известности и используемости. Тем интереснее попробовать выяснить, какие тёмные уголки можно найти в исходном коде этих библиотек, что мы и попробуем сделать с помощью...

Ищем и анализируем ошибки в коде Orchard CMS Эта статья – результат повторной проверки проекта Orchard с помощью статического анализатора PVS-Studio. Orchard это система управления контентом с открытым исходным кодом, которая является частью галереи ASP.NET-проектов некоммерческого фонда Outercurve Foundation. Проверк...

Знакомство со статическим анализатором PVS-Studio для Java На протяжении многих лет команда PVS-Studio развивает одноименный статический анализатор. На данный момент анализатор представляет собой сложное программное решение и предоставляет возможность анализа таких языков программирования, как C, C++, C# и Java на платформах Windows...

Использование статического анализатора PVS-Studio при разработке для встраиваемых систем на C и C++ Из этой статьи вы узнаете, как запустить проверку embedded-проекта и как работать с отчетом анализатора. Анализатор PVS-Studio поддерживает ряд компиляторов для встраиваемых систем. В текущей версии возможна проверка проектов при сборке одним из следующих компиляторов под...

Анализ кода CUBA Platform с помощью PVS-Studio Для Java программистов существуют полезные инструменты, помогающие писать качественный код, например, мощная среда разработки IntelliJ IDEA, бесплатные анализаторы SpotBugs, PMD и другие. Всё это уже используется в разработке проекта CUBA Platform, и в этом обзоре найденных...

Использование PVS-Studio при проверке Unreal Engine проектов на операционной системе Windows Данная статья посвящена особенностям проверки Unreal Engine проектов с помощью статического анализатора PVS-Studio на операционной системе Windows: как установить анализатор, как проверить проект, где и как посмотреть отчёт об ошибках. Читать дальше →

PVS-Studio for Java отправляется в путь. Следующая остановка — Elasticsearch Далеко не первый год команда PVS-Studio ведет блог о проверках open-source проектов одноименным статическим анализатором кода. На сегодняшний момент проверено более 300 проектов, а в базу найденных ошибок выписано более 12000 случаев. Изначально анализатор был реализован дл...

Как добавить проверки в NoVerify, не написав ни строчки Go-кода В статическом анализаторе NoVerify появилась киллер-фича: декларативный способ описания инспекций, который не требует программирования на Go и компиляции кода. Чтобы вас заинтриговать, покажу описание простой, но полезной инспекции: /** @warning duplicated sub-expressions in...

Настройка Warnings Next Generation плагина для интеграции PVS-Studio Релиз PVS-Studio 7.04 совпал c релизом плагина Warnings Next Generation 6.0.0 для Jenkins. Как раз в этом релизе Warnings NG Plugin добавил поддержку статического анализатора PVS-Studio. Этот плагин визуализирует данные о предупреждениях компилятора или других инструментов ...

[Из песочницы] Статический анализатор Detekt для Kotlin Пора полюбить статические анализаторы! Встречайте Detekt на Kotlin Если Вы уже знаете о чем пойдет речь и Вас интересут только внедрение в проект, переходите сразу к пункту установки. Что-же это такое? Анализ программного обеспечения, производимый (в отличие от динамическ...

CMake: тот случай, когда проекту непростительно качество его кода CMake — это кроссплатформенная система автоматизации сборки проектов. Эта система намного старше, чем статический анализатор кода PVS-Studio, при этом ещё никто не попробовал применить его к коду и сделать обзор ошибок. Ошибок, оказывается, много. Аудитория CMake огромна. Н...

Анализ коммитов и pull request'ов в Travis CI, Buddy и AppVeyor с помощью PVS-Studio В анализаторе PVS-Studio для языков С и C++ на Linux и macOS, начиная с версии 7.04, появилась тестовая возможность проверить список указанных файлов. С помощью нового режима можно настроить анализатор для проверки коммитов и pull request'ов. В этой статье будет рассказано,...

Знакомство со статическим анализатором PVS-Studio при разработке C++ программ в среде Linux PVS-Studio поддерживает анализ проектов на языках C, C++, C# и Java. Использовать анализатор можно под системами Windows, Linux и macOS. В этой заметке речь пойдет об анализе кода, написанного на C и C++ в среде Linux. Установка Установить PVS-Studio под Linux можно разными...

Проверка FreeRDP с помощью анализатора PVS-Studio FreeRDP – свободная реализация клиента Remote Desktop Protocol (RDP), протокола, реализующего удаленное управление компьютером, разработанного компанией Microsoft. Проект поддерживает множество платформ, среди которых Windows, Linux, macOS и даже iOS с Android. Этот проект ...

PVS-Studio идёт в облака: Azure DevOps Это вторая статья про использование статического анализатора PVS-Studio в облачных CI-системах, и на этот раз мы рассмотрим платформу Azure DevOps – облачное CI\CD-решение от компании Microsoft. В качестве анализируемого проекта в этот раз рассмотрим ShareX. Читать дальше ...

PVS-Studio идёт в облака: CircleCI Мы продолжаем цикл статей по использованию статического анализатора PVS-Studio в облачных CI-системах. Сегодня рассматриваем очередной сервис — CircleCI. В качестве проекта для анализа в этот раз выступит медиаплеер Kodi, в исходном коде которого постараемся найти интересны...

Находим баги в LLVM 8 с помощью анализатора PVS-Studio Прошло более двух лет с момента последней проверки кода проекта LLVM с помощью нашего анализатора PVS-Studio. Давайте убедимся, что анализатор PVS-Studio по-прежнему является лидирующим инструментом по выявлению ошибок и потенциальных уязвимостей. Для этого проверим и найдё...

[Перевод] Roslyn Analyzers. Как писать код быстро и безошибочно Roslyn, платформа компилятора .NET, помогает обнаруживать ошибки еще до запуска кода. Одним из примеров является анализатор проверки орфографии Roslyn, который встроен в Visual Studio. Скажем, вы создаете статический метод и случайно написали слово static как statc. Вы сможе...

Причины внедрить в процесс разработки статический анализатор кода PVS-Studio PVS-Studio – это инструмент для поиска ошибок и потенциальных уязвимостей в исходном коде программ, написанных на языках C, C++, C# или Java. PVS-Studio относится к классу инструментов статического тестирования защищённости приложений (Static Application Security Testing, S...

Ищем баги в PHP коде без статических анализаторов Моя самая любимая часть в статическом анализе кода — это выдвижение гипотез о потенциальных ошибках в коде с последующей их проверкой. Пример гипотезы: Функции strpos легко передать аргументы в неправильном порядке. Но есть вероятность, что даже на нескольких миллионах стро...

PVS-Studio идёт в облака: GitLab CI/CD Эта статья является продолжением цикла публикаций об использовании PVS-Studio в облачных системах. На этот раз мы рассмотрим работу анализатора совместно с GitLab CI — продуктом от GitLab Inc. Интеграция статического анализатора в CI систему позволяет выявить баги сразу пос...

Wireshark 3.x: анализ кода под macOS и обзор ошибок Wireshark Foundation выпустила финальную stable-версию популярного сетевого анализатора трафика — Wireshark 3.0.0. В новом релизе устранено несколько багов, реализована возможность анализа новых протоколов и заменен драйвер WinPcap на Npcap. Здесь заканчивается цитирование ...

PVS-Studio для Java В седьмой версии статического анализатора PVS-Studio мы добавили поддержку языка Java. Пришло время немного рассказать, как мы начинали делать поддержку языка Java, что у нас получилось и какие дальнейшие планы. И, конечно, в статье будут приведены первые испытания анализат...

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

Ошибки, которые не находит статический анализ кода, потому, что он не используется Время от времени читатели наших статей о проверке открытых проектов обращают внимание, что статический анализатор кода PVS-Studio выявляет большой процент ошибок, которые незначительны или вообще не влияют на работу приложения. Это действительно так. Большинство важных ошибо...

Для тех, кто хочет поиграть в детектива: найди ошибку в функции из Midnight Commander Приглашаем попробовать найти ошибку в очень простой функции из проекта GNU Midnight Commander. Зачем? Просто так. Это забавно и интересно. Хотя нет, мы соврали. Мы в очередной раз хотим продемонстрировать ошибку, которую с трудом находит человек в процессе code review, но л...

Запускаем инспекции IntelliJ IDEA на Jenkins IntelliJ IDEA на сегодня обладает наиболее продвинутым статическим анализатором кода Java, по своим возможностям оставившим далеко позади таких «ветеранов», как Checkstyle и Spotbugs. Её многочисленные «инспекции» проверяют код в различных аспектах, от стиля кодирования до х...

Как быстро посмотреть интересные предупреждения, которые выдает анализатор PVS-Studio для C и C++ кода? Время от времени программисты, которые начинают знакомиться с анализатором кода PVS-Studio, спрашивают: «Есть ли список предупреждений, которые точно указывают на ошибки?» Такого списка нет по той причине, что неинтересные (ложные) предупреждения в одном проекте, в другом о...

IntelliJ IDEA, ReSharper, SonarLint и SonarQube находят те же ошибки, что и PVS-Studio — ну и зачем нам PVS-Studio? Иногда люди задают вопрос, который, на первый взгляд, про одно, а на самом деле про другое. Как говорится, грамотно поставленный вопрос содержит половину ответа. На днях я вернулся с конференции JPoint, на которой впервые был представлен наш новый анализатор PVS-Studio для ...

Измерение качества кода Android-приложения с помощью Sonarqube и Jacoco в 2019 году Привет, Хабр! Меня зовут Артём Добровинский, я работаю Android-разработчиком в компании FINCH. Однажды, за парой пинт с коллегой из компании, которая занимается размещением объявлений по продаже комиссованных МИГ'ов и комаров по имени Игорь, мы начали обсуждать статические ...

PVS-Studio ROI Время от времени нам задают вопрос, какую пользу в денежном эквиваленте получит компания от использования анализатора PVS-Studio. Мы решили оформить ответ в виде статьи и привести таблицы, которые покажут, насколько анализатор может быть полезен. Мы не можем в статье доказа...

PVS-Studio и Bug Bounties on Free and Open Source Software Европейский союз стартовал в январе очередную большую охоту за ошибками в открытых программных проектах. Суммарный призовой фонд составляет около 850 тысяч евро. А теперь даём подсказу. Одним из способов поиска ошибок в исходном коде программ является использование статическ...

Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS История встречи статического анализатора PVS-Studio с кодом операционной системы Haiku уходит в далёкий 2015-й год. Это был интереснейший эксперимент и полезный опыт для команд обоих проектов. Почему эксперимент? Анализатора для Linux тогда не было и не будет ещё полтора год...

Статически безопасная динамическая типизация à la Python Привет, Хабр. На днях в одном моём хобби-проекте возникла задача написания хранилища метрик. Задача сама по себе решается очень просто, но моя проблема с хаскелем (особенно в проектах для собственного развлечения) в том, что невозможно просто взять и решить задачу. Необходим...

[Перевод] Путь к проверке типов 4 миллионов строк Python-кода. Часть 1 Сегодня мы предлагаем вашему вниманию первую часть перевода материала о том, как в Dropbox занимаются контролем типов Python-кода. В Dropbox много пишут на Python. Это — язык, который мы используем чрезвычайно широко — как для бэкенд-сервисов, так и для настольных клиентс...

Статический анализатор кода PVS-Studio как защита от уязвимостей нулевого дня Угроза нулевого дня (англ. zero day) – это термин, обозначающий уязвимости, допущенные при разработке, которые еще не были обнаружены. Такие уязвимости могут использоваться злоумышленниками, что в итоге затронет и репутацию компании. Перед разработчиками стоит задача максим...

Атакуем Joker 2019 полностью: как прошла самая крупная Java-конференция в России В октябре я далеко не впервые загрузился в самолет и отправился из далекого Иркутска в направлении Санкт-Петербурга. На Java-конференциях JUG Ru Group я оказывался и раньше, но всё равно не ожидал, что в этот раз будет побит рекорд, и в «Экспофоруме» соберутся более двух тыс...

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

Как фрагмент CSS разметки сломал C++ компилятор В методологии статического анализа применяются разные технологии. Одна из них — препроцессирование файлов непосредственно перед их анализом. Препроцессированные файлы создаёт компилятор, запускаемый в специальном режиме работы. К сожалению, этот режим не очень хорошо тестир...

Проверяем исходный код Roslyn Время от времени мы возвращаемся к проектам, которые уже проверяли ранее с помощью PVS-Studio и писали про это статьи. Делать это интересно по двум причинам. Во-первых, чтобы понять, насколько лучше стал наш анализатор. Во-вторых, чтобы отследить, обратили ли авторы проекта...

Анализ кода ROOT — фреймворка для анализа данных научных исследований Пока в Стокгольме проходила 118-я Нобелевская неделя, в офисе разработки статического анализатора кода PVS-Studio готовился обзор кода проекта ROOT, используемого в научных исследованиях для обработки больших данных. Премию за такой код, конечно, не дашь, а вот подробный обз...

Из-за тёмной темы Thunderbird пришлось запускать анализатор кода «Приключение» с почтовым клиентом Mozilla Thunderbird началось с автоматического обновления на версию 68.0. Заметными особенностями этой версии было вот что: больше текста добавляется во всплывающие уведомления и тёмная тема по умолчанию. Повстречалась ошибка, которую захоте...

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

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

Проверка rdesktop и xrdp с помощью анализатора PVS-Studio Это второй обзор из цикла статей о проверке открытых программ для работы с протоколом RDP. В ней мы рассмотрим клиент rdesktop и сервер xrdp. Читать дальше →

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

Приглашаем на DINS Java EVENING 18 сентября Приглашаем всех интересующихся java-разработкой на очередной открытый DINS Java EVENING, который пройдет в нашем офисе на Старо-Петергофском, 19. Этим вечером Денис Репп из Wrike расскажет, как организовать работу с техническим долгом в критически важных частях продукта. Ан...

Как внедрить статический анализатор в разработку, чтобы всем было хорошо? В процессе работы нам часто задают вопрос: как внедрить статический анализатор в разработку, чтобы всё всем было хорошо. О том, почему для безопасной разработки необходим статический анализатор, мы уже рассказывали. Эта статья будет полезна, если вы выбираете статический ана...

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

Встраиваем интерпретатор Python в java-приложение с помощью проекта Panama Пару дней назад увидел твит Брайана Гетца, но только сегодня дошли руки поиграться с примерами. Про это и хочу кратко рассказать. О проекте Panama на Хабре уже писали, поэтому просто покажу пару простых примеров того, как можно применить native binder. Читать дальше →

[Из песочницы] Автосэмплер — жизнь после жизни Жил он долго и счастливо… а потом сломался. Пролог Году, кажется в 2009 для одного проекта был куплен прибор-анализатор воды. Ввиду того, что предполагалось его использовать для обеспечения работы технологического оборудования, прибор был куплен в комплектации с автосэмплер...

Если у Вас нет Питона, но есть Керас-модель и Джава Всем привет! В построении ML-моделей Python сегодня занимает лидирующее положение и пользуется широкой популярностью сообщества Data Science специалистов [1]. Также, как и большинство разработчиков, Python привлекает нас своей простотой и лаконичным синтаксисом. Мы использу...

[Из песочницы] Размеры Java-объектов разного типа Введение Содержит ли Java-объект: поля, объявленные в суперклассе? private поля, объявленные в суперклассе? методы? элементы массива? длину массива? другой объект (в себе)? hash-код? тип (свой)? имя (своё)? Ответы на эти (и другие) вопросы можно получить с помощью библиот...

Проверяем инкапсуляцию с помощью Roslyn Что такое Roslyn? Roslyn – это набор компиляторов с открытым исходным кодом и API для анализа кода для языков C# и VisualBasic .NET от Microsoft. Анализатор Roslyn – мощный инструмент для анализа кода, нахождения ошибок и их исправления. Синтаксическое дерево и семантическая...

[Перевод] Любопытные извращения из мира ИТ — 3 Сайт The Daily WTF уже 14 лет собирает курьёзные, дикие и/или печальные истории из мира ИТ. Я перевёл несколько рассказов, показавшихся мне интересными. Все имена и названия компаний изменены. Предыдущие выпуски можно найти по метке "любопытные извращения". История первая:...

CMake и C++ — братья навек В процессе разработки я люблю менять компиляторы, режимы сборки, версии зависимостей, производить статический анализ, замерять производительность, собирать покрытие, генерировать документацию и т.д. И очень люблю CMake, потому что он позволяет мне делать всё то, что я хочу....

Azure PowerShell: «в основном безвреден» Привет всем. Сегодня у нас на тесте очередной проект Microsoft. По названию статьи можно догадаться, что в этот раз разработчики не смогли порадовать нас большим количеством ошибок. Надеемся, авторов проекта не обидит название. Ведь малое количество ошибок — это отлично, не...

VMware NSX для самых маленьких. Часть 4. Настройка маршрутизации Часть первая. Вводная Часть вторая. Настройка правил Firewall и NAT Часть третья. Настройка DHCP NSX Edge поддерживает статическую и динамическую (ospf, bgp) маршрутизацию. Первоначальная настройка Статическая маршрутизация OSPF BGP Route Redistribution Читать дальше →

Гайд по автоматическому аудиту смарт-контрактов. Часть 2: Slither Анализатор: Slither Описание: Open-source static analysis framework for Solidity githib: https://github.com/trailofbits/slither Это статический анализатор кода, написанный на python. Он умеет следить за переменными, вызовами, и детектирует вот такой список уязвимостей. У каж...

Astra Linux и Liberica JDK – российское платформенное решение для работы Java-приложений ГК Astra Linux первой из разработчиков отечественных операционных систем подтвердила совместимость последних версий ОС Astra Linux c российским Java-дистрибутивом Liberica JDK, программным продуктом компании BellSoft.

[Перевод] Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 2 Сегодня публикуем вторую часть перевода материала, посвящённого статическому анализу больших объёмов серверного Python-кода в Instagram. → Первая часть Читать дальше →

В анализаторе все должно быть прекрасно: и функциональность, и интерфейс… Изучаем новый интерфейс Solar appScreener 3.1 Как говаривал Генри Форд, все можно сделать лучше, чем делалось до сих пор. Вот и мы так подумали, когда приступили к работе над версией 3.1 нашего анализатора защищенности приложений. Нам ОООЧЕНЬ хотелось сделать наш продукт не только самым крутым по функциональности: напри...

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

Huawei Cloud: в PVS-Studio сегодня облачно В нынешний век каждый уже слышал об облачных сервисах. Многие компании освоили этот сегмент рынка и создали свои облачные сервисы самых различных направлений. Наша команда также в последнее время интересуется этими сервисами с точки зрения интеграции с ними анализатора кода...

Иван Осипов и Юрий Артамонов про Kotlin и плагины к IntelliJ IDEA на встрече jug.msk.ru 14 ноября 2019 года на встрече московского сообщества Java-разработчиков jug.msk.ru Иван Осипов и Юрий Артамонов представили доклады про миграцию приложений с Java на Kotlin и про написание плагинов для IntelliJ IDEA. Читать дальше →

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

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

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

Wireshark 3.0.0: обзор нововведений Wireshark Foundation выпустила финальную stable-версию популярного сетевого анализатора трафика — Wireshark 3.0.0. В новом релизе устранено несколько багов, реализована возможность анализа новых протоколов и заменен драйвер WinPcap на Npcap. Wireshark — самый популярный в...

Кирилл Толкачёв и Максим Гореликов про Spring Boot на jug.msk.ru На встрече московского сообщества Java-разработчиков jug.msk.ru, состоявшейся 28 июня 2019 года традиционно в офисе компании КРОК, Кирилл Толкачёв и Максим Гореликов представили свой доклад о Spring Boot: какие задачи можно решить с помощью него, какие сложности могут при эт...

Как тестируют в Автотеке: MindMap’s, статический анализ кода и MockServer Привет! Хочу рассказать вам, как устроено тестирование в проекте Автотека, сервисе проверки автомобилей по VIN. Под катом — о том, какие инструменты мы используем для тестирования требований, планирования спринта, как устроен процесс тестирования в нашем проекте. Читать д...

Топ 10 ошибок в C++ проектах за 2018 год Вот уже три месяца, как 2018 год позади. Для многих он пролетел почти незаметно, но для нас, разработчиков PVS-Studio, он оказался весьма насыщенным. Мы трудились в поте лица, бесстрашно боролись за продвижение статического анализа в массы и искали новые ошибки в открытых пр...

PVS-Studio заглянул в движок Red Dead Redemption — Bullet В наши дни для, например, разработки игр уже нет нужды самостоятельно с нуля реализовывать физику объектов, так как для этого существует большое число библиотек. Bullet в свое время активно использовался во многих ААА играх, проектах виртуальной реальности, различных симуля...

[Из песочницы] Статический анализ «BIOS/UEFI» или как получить Dependency Graph «Я вчера закончил ковку, Я два плана залудил…» … V.S. Vysotsky song... Уже почти 3 года назад (в начале 2016) в issue проекта UEFITool на GitHub появилось пожелание пользователей: построить «Dependency Graph» для исполняемых модулей, входящих в BIOS/UEFI. Завязалось да...

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

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

Эволюция кластерного взаимодействия. Как мы внедряли ActiveMQ и Hazelcast В течение последних 7 лет я вместе с командой занимаюсь поддержкой и развитием ядра продукта RealtimeBoard: клиент-серверным и кластерным взаимодействием, работой с базой данных. У нас Java с разными библиотеками на борту. Запускается всё вне контейнера, через Maven-плагин....

Киевстар отключает статические IP-адреса Теперь частные абоненты Киевстар не будут иметь статических IP-адресов.

Подсчитаем баги в калькуляторе Windows На днях компания Microsoft открыла исходный код калькулятора. Это приложение входило во все версии операционной системы Windows. Исходный код разных проектов Microsoft достаточно часто открывался за последние коды, но новость о калькуляторе в первый же день просочилась даже...

Основы компьютерных сетей. Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP Всем привет! Спустя продолжительное время возвращаемся к циклу статей. Долгое время мы разбирали мир коммутации и узнали о нем много интересного. Теперь пришло время подняться чуть повыше и взглянуть на сторону маршрутизации. В данной статье поговорим о том, зачем нужна ма...

Java Native Image: проверка возможности использования Не так давно Oracle выпустил первый релиз проекта GraalVM (https://www.graalvm.org/). Релизу был сразу присвоен номер 19.0.0, видимо, для того чтобы убедить, что проект зрелый и готов к использованию в серьезных приложениях. Одна из частей этого проекта: Substrate VM — фре...

[Из песочницы] Странные они, статические переменные в PHP Дисклеймер: данная статья не явит вам какого то откровения и не откроет третий глаз, но позволит разобраться в не очень очевидном вопросе более детально. Мне по крайней мере при ее написании она в этом помогла. Если вы матерый волк в php то можете не читать, опытным человека...

Ищем ошибки в исходном коде Amazon Web Services SDK для .NET Приветствую всех любителей покритиковать чужой код. :) Сегодня в нашей лаборатории новый материал для исследования — исходный код проекта AWS SDK для .NET. В своё время мы писали статью о проверке AWS SDK для C++. Тогда не нашлось ничего особо интересного. Посмотрим, чем на...

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

Проверка обёртки OpenCvSharp над OpenCV с помощью PVS-Studio OpenCV — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом, знакомая многим разработчикам на C++. Помимо C++, OpenCV также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков. Так как ...

График развития диагностических возможностей в PVS-Studio С момента появления продукта PVS-Studio прошло более 8 лет, и всё это время мы реализовывали в нём новые диагностические правила. И прекращать не собираемся. Если вас заботят вопросы, не растеряли ли мы за эти годы бодрость, и не останавливается ли PVS-Studio в развитии, то...

[recovery mode] Внутренние и вложенные классы java. Часть 1 Внутренние и вложенные классы java 02.03.2017 — 2019 год Часть 1. Начало Цель статьи: Рассказать о внутренних, вложенных, локальных, анонимных классах. Показать примеры их использования. Написать и протестировать классы в коде на java. Рассказать о свойствах этих клас...

Joker 2019: триумф года Неделю назад, 25-26 октября 2019 года, в Санкт-Петербурге прошла Java-конференция Joker 2019. Что на ней происходило, какие доклады были, что показалось интересным — обо всём этом дальше. Читать дальше →

Реализация горячей перезагрузки С++ кода в Linux и macOS: копаем глубже *Ссылка на библиотеку и демо видео в конце статьи. Для понимания того, что происходит, и кто все эти люди, рекомендую прочитать предыдущую статью. В прошлой статье мы ознакомились с подходом, позволяющим осуществлять "горячую" перезагрузку c++ кода. "Код" в данном случае — ...

[Перевод] LLVM IR и Go В этой статье мы рассмотрим, как построить программу на Go, такую, как компилятор или статический анализатор, которая взаимодействует с фреймворком компиляции LLVM, используя язык ассемблера LLVM IR. TL;DR мы написали библиотеку для взаимодействия с LLVM IR на чистом Go, см...

REST Assured: что мы узнали за пять лет использования инструмента REST Assured — DSL для тестирования REST-сервисов, который встраивается в тесты на Java. Это решение появилось более девяти лет назад и стало популярным из-за своей простоты и удобного функционала. В DINS мы написали с ним более 17 тысяч тестов и за пять лет использования ст...

Игра фреймворков: тренды JavaScript в 2019 TypeScript против ES6, React против Angular, Jest против Mocha… Не хуже нашумевшего сериала, эти «битвы» держат поклонников JavaScript в напряжении, заставляя их задумываться: «Что же учить дальше?» К тому же, армии пользователей каждой из технологий приводит настолько убеди...

Основы статической маршрутизации в Mikrotik RouterOS Маршрутизация — процесс поиска оптимального пути для передачи пакетов в сетях TCP/IP. Любой устройство подключенное к сети IPv4 содержит процесс и таблицы маршрутизации. Данная статья не является HOWTO, она описывает на примерах статическую маршрутизацию в RouterOS, я намере...

[Перевод] WolframClientForPython | Новая клиентская библиотека Wolfram Language для Python Оригинал перевода в моём блоге Получение полного доступа к языку Wolfram Language из языка Python Язык Wolfram (Wolfram Language) дает программистам в руки уникальный язык с огромным множеством сложных алгоритмов, а также встроенных знаний об окружающем мире. На протяжении...

По заказам Embedded-разработчиков: ищем ошибки в Amazon FreeRTOS Каждый, кто программирует микроконтроллеры, наверняка знает о FreeRTOS, или по крайней мере слышал об этой операционной системе. Ребята из Amazon решили расширить возможности этой операционной системы для работы с сервисами AWS Internet of Things – так появилась Amazon FreeR...

Один из крупнейших страховщиков Мексики защитил свои приложения с помощью Solar appScreener Компания Ростелеком-Solar объявляет о завершении проекта по внедрению анализатора защищенности приложений Solar appScreener в страховой компаний …

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

Несколько подводных камней статической типизации в Python Думаю, мы все потихоньку уже привыкаем, что у Python есть аннотации типов: их завезли два релиза назад (3.5) в аннотации функций и методов (PEP 484), и в прошлом релизе (3.6) к переменным (PEP 526). Так как оба этих PEP были вдохновлены MyPy, расскажу, какие житейские радос...

Опыт использования flatten-maven-plugin для упрощения версионирования в maven-проектах О нас В 1С мы разрабатываем не только платформу 1С: Предприятие на С++ и JavaScript, но и приложения на Java – в частности новую среду разработки Enterprise Development Tools на базе Eclipse и сервер глубоко интегрированного с платформой мессенджера – Системы Взаимодействия....

«Менеджеру нужно продолжать кодить»: интервью со Стивеном Чином Многие Java-разработчики знают Стивена Чина. Кто-то видел его трансляции с Java-мероприятий, кто-то — его интервью с другими известными джавистами, а кто-то — доклады про Java на Raspberry Pi. Да что уж там, в Твиттере он @steveonjava — то есть даже юзернеймом показывает, ...

[Из песочницы] Пользовательские правила iptables для docker на примере zabbix Задача: Закрыть все входящие соединение, кроме определенных ip адресов. Имеется тестовая среда, состоящий из linux и трех windows c статическими ip адресами. На linux установлен docker образами zabbix, redmine. А на двух windows машинах установлены и настроены агенты от zab...

[Из песочницы] Обзор и доработка устройств от DreamSourseLab Всех приветствую. По следам предыдущих статей по логическим анализаторам на Хабре решил таки закончить свой "фундаментальный" труд. Читать дальше →

Трансляция проектов и библиотек из Altium Designer в PADS Professional Часто у инженеров возникает необходимость транслировать проекты из одной САПР в другую. На предприятиях не редко бывает такая ситуация, когда разные отделы проектируют в разных САПРах. Также трансляция проектов может потребоваться, когда ваша система проектирования уже не с...

Статическое распределение объектов FreeRTOS По умолчанию все объекты в системе FreeRTOS распределяются динамически — очереди, семафоры, таймеры, задачи (потоки), и мьютексы. Программист видит только «кучу» — область где динамически выделяется память по запросу программы или системы, а что там творится внутри – не ясно...

NX JAVA meetup #14: исследование производительности на проде, плюсы и минусы Spark в решениях на основе Cassandra Привет! 29 августа в петербургском офисе Nexign пройдет java-митап. Начало в 19:30. Больше подробностей и ссылка на регистрацию — под катом. Читать дальше →

R2DBC Arabba-RELEASE — новый взгляд на реактивное программирование для SQL Поздравляем Хабр с выходом R2DBC версии Arabba-RELEASE! Это самый первый стабильный релиз проекта. R2DBC (Reactive Relational Database Connectivity) — открытый проект, посвященный реактивному программированию для SQL. Разработчики R2DBC готовили первую версию спецификации ц...

[Из песочницы] Кросс-компиляция Scala в Gradle проекте Для Scala проектов довольно распространённым является предоставление бинарных артефактов скомпилированных под несколько версий Scala компилятора. Как правило для целей создания нескольких версий одного артефакта в сообществе принято использовать SBT, где эта возможность есть...

Лучшие цены на статический переключатель Delta STS 30А со склада Landata! Компания Landata объявляет о снижении цен на  статический переключатель Delta STS 30А (АВР 30А, стоечный автоматический переключатель нагрузки) со склада Landata. STS Delta Electronics имеют оптимальное соотношение ...

Виктор Гамов о Kafka Streams IQ на jug.msk.ru 8 мая 2019 года на встрече московского сообщества Java-разработчиков jug.msk.ru Виктор Гамов рассказал про Kafka Streams IQ (Interactive Queries). Читать дальше →

[Екатеринбург, анонс] Митап для Java-разработчиков Мы уже писали, что такое JUG.EKB и зачем проводим митапы для Java-разработчиков. Сегодня анонсируем очередную встречу. Читать дальше →

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

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

Jaxb (XJC) генерация классов из XML Schema (XSD) с описаниями классов и полей в виде аннотаций. XJC плагин Думаю многие Java-разработчики которые хоть раз сталкивались с Web-сервисами, использовали генерацию Java DTO классов по описанию XML Schema (XSD). Jaxb с этим справляется на ура, не важно как его использовать, через xjc или wsimport вызов из командной строки, maven или grad...

Как мы учились эксплуатировать Java в Docker Под капотом hh.ru — большое количество Java-сервисов, запущенных в докер-контейнерах. За время их эксплуатации мы столкнулись с большим количеством нетривиальных проблем. Во многих случаях чтобы докопаться до решения приходилось долго гуглить, читать исходники OpenJDK и даже...

Лучшие Copy-Paste алгоритмы для C и C++. Сборник рецептов Haiku OS Многочисленные опечатки и Copy-Paste код стали темой для дополнительной статьи о проверке кода Haiku анализатором PVS-Studio. Впрочем, будут ошибки, связанные не сколько с опечатками, а скорее с невнимательностью и неудачным рефакторингом. Найденные примеры ошибок демонстрир...

[Перевод] Переносим 30 000 строк кода с Flow на TypeScript Недавно мы перенесли 30 тысяч строк кода JavaScript нашей системы MemSQL Studio с Flow на TypeScript. В этой статье я расскажу, почему мы портировали кодовую базу, как это происходило и что получилось. Дисклеймер: моя цель — вовсе не критика Flow. Я восхищаюсь проектом и ду...

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

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

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 20. Статическая маршрутизация Сегодня мы поговорим о статической маршрутизации и рассмотрим три темы: что такое статическая маршрутизация, как она настраивается и какая у неё альтернатива. Вы видите топологию сети, которая включает в себя компьютер с IP-адресом 192.168.1.10, подсоединенный через свитч к ...

VMware NSX для самых маленьких. Часть 5. Настройка балансировщика нагрузки Часть первая. Вводная Часть вторая. Настройка правил Firewall и NAT Часть третья. Настройка DHCP Часть четвертая. Настройка маршрутизации В прошлый раз мы говорили о возможностях NSX Edge в разрезе статической и динамической маршрутизации, а сегодня будем разбираться с ба...

Из Groovy ушёл Cédric Champeau‏ В проекте Apache Groovy перестаёт участвовать один из ключевых участников сообщества, само имя которого у многих ассоциировалось с этим языком. Уходит Седрик Шампо, известный в первую очередь как автор статического компилятора Groovy. Если рассмотреть причины ухода в том ...

Проверка Telerik UI for UWP для знакомства с PVS-Studio Уже стало традицией, что программисты, пополняющие команду PVS-Studio, начинают свою деятельность с написания статьи про анализ проекта с открытым исходным кодом. В этот раз таким проверенным проектом станет Telerik UI for UWP. Читать дальше →

Олег Шелаев про GraalVM на jug.msk.ru На прошедшей 4 апреля 2019 года встрече сообщества московских Java-разработчиков jug.msk.ru Олег Шелаев из OracleLabs сделал доклад о GraalVM. Читать дальше →

Backend на CodeFest. Кишочки заказывали? Java, .NET, Scala, Python, C++, Go, Postgres и #КонечноЖеKotlin В этом году в секцию Backend мы замешали очень разные доклады: про хардкор, энтерпрайз, архитектуру, базы данных и высокие нагрузки. А еще, на CodeFest возвращается Java. И как она это делает! Как и во всем о...

Вывод Jira из состояния помойки, с чего начать Вдруг мы понимаем, что Jira превратилась в помойку. Каждый второй РП настраивал Jira как ему было удобнее бесконтрольно. А когда проект начал гореть, начал тушить пожары вручную, оставляя задачи в трекере в каком-то состоянии, далеком от завершения. Если в проекте создан пол...

[Перевод] Использование strict-модулей в крупномасштабных Python-проектах: опыт Instagram. Часть 1 Публикуем первую часть перевода очередного материала из серии, посвящённой тому, как в Instagram работают с Python. В первом материале этой серии речь шла об особенностях серверного кода Instagram, о том, что он представляет собой монолит, который часто меняется, и о том, ка...

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

[Перевод] API IntersectionObserver и ленивая загрузка изображений Использование ленивой загрузки изображений для улучшения производительности веб-проектов — востребованная техника оптимизации. Всё дело в том, что изображения — это «тяжёлые» ресурсы, которыми переполнены современные веб-сайты. Мы уже кое-что об этом публиковали. Здесь можно...

Настройка кластера Nomad с помощью Consul и интеграция с Gitlab Введение В последнее время стремительно растет популярность Kubernetes — все больше и больше проектов внедряют его у себя. Я же хотел коснуться такого оркестратора, как Nomad: он отлично подойдет проектам, где уже используются другие решения от компании HashiCorp, например,...

[Перевод] Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 1 — Приготовления Из этой части вы узнаете: Зачем это всё нужно Как скомпилировать FFmpeg в Docker Зачем это всё нужно Главные задачи у серии публикаций такие: Создать туториал по использованию Emscripten для компиляции C/C++ библиотек в JavaScript (более детальный и полезный, чем написа...

Как мы разрабатываем документацию в открытом проекте Embox Добрый день. Являясь одним из разработчиков открытого проекта Embox, я часто слышал (в последнее время слишком часто) о том, что проект интересный, но поскольку документации нет, его невозможно использовать. Мы отвечали, что документация в каком-то виде есть, что мы всегда ...

Иван Углянский и Владимир Ситников на jug.msk.ru 30 мая 2019 года Иван Углянский и Владимир Ситников представили свои доклады «Ходячие объекты-мертвецы, или GC всегда прав» и «Java тормозит: CodeCache edition» на встрече московского сообщества Java-разработчиков jug.msk.ru. Читать дальше →

Haxe и PHP: статическая типизация, стрелочные функции, метапрограммирование и многое другое Привет, Хабр! Предлагаю вашему вниманию перевод доклада Александра Кузьменко с прошедшей недавно (14-15 июня) конференции Hong Kong Open Source Conference 2019. До того, как присоединиться к Haxe Foundation в качестве разработчика компилятора Haxe, Александр около 10 лет пр...

Проверка кода компилятора Ark Compiler, недавно открытого компанией Huawei Во время презентаций летом 2019 года Huawei анонсировала технологию Ark Compiler. По заверениям представителей компании, этот проект с открытым исходным кодом позволяет существенно повысить плавность и отзывчивость Android и сторонних приложений. Новый интересный открытый п...

[Перевод] 56 проектов на Python с открытым исходным кодом 1. Flask Это микро-фреймворк, написанный на Python. Он не имеет валидаций для форм и уровня абстракции базы данных, но позволяет вам использовать сторонние библиотеки для общих функций. И именно поэтому это микро-фреймворк. Flask предназначен для простого и быстрого создан...

[Из песочницы] Ещё одна библиотека для создания mock'ов Добрый день. Я занимаюсь автоматизацией тестирования. Как и у всех автоматизаторов, у меня есть набор библиотек и инструментов, которые я обычно выбираю для написания тестов. Но периодически возникают ситуации, когда ни одна из знакомых библиотек может решить задачу с риском...

Библиотеки Electronic Arts почти хорошего качества Наше внимание привлёк репозиторий Electronic Arts на GitHub. Он очень маленький и из двадцати трёх проектов нас заинтересовали только несколько C++ библиотек: EASTL, EAStdC, EABase, EAThread, EATest, EAMain и EAAssert. Проекты оказались тоже очень маленькими (около 10 файлов...

Иван Пономарёв про Kafka Streams API на встрече jug.msk.ru 25 июля 2019 года прошла встреча московского сообщества Java-разработчиков jug.msk.ru, на которой Иван Пономарёв представил доклад про Kafka Streams API. Читать дальше →

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 38. Протокол EtherChannel для 2 уровня OSI Сегодня мы рассмотрим работу протокола агрегирования каналов Layer 2 EtherChannel для 2 уровня модели OSI. Этот протокол не слишком отличается от протокола 3-го уровня, однако прежде чем начать изучение Layer 3 EtherChannel, я должен ознакомить вас с несколькими концепциями,...

Apache, ViewState&Deserialisation В данной статье рассмотрим уязвимость на основе подмены сериализованного Java-объекта ViewState и метод её эксплуатации на примере web-приложения виртуальной машины с HackTheBox, использующей технологию Apache MyFaces. Читать дальше →

IT-фестиваль TechTrain 2019: как JUG.ru, JUGNsk и JUG.MSK участвовали в нём 24-25 августа 2019 года в Санкт-Петербурге прошёл IT-фестиваль TechTrain 2019, в котором приняли участие представители Java-сообществ JUG.ru (Санкт-Петербург), JUGNsk (Новосибирск) и JUG.MSK (Москва). Как прошла конференция, что было на совместном стенде JUG — обо всём этом ...

Вышел Solar appScreener 3.3 с возможностью интеграции с SonarQube Компания «Ростелеком-Солар», национальный провайдер сервисов и технологий кибербезопасности, выпустила новую версию анализатора защищенности приложений Solar appScreener 3.3. В обновлении реализована поддержка языков программирования Perl и Vyper ...

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

[Из песочницы] Взаимодействие с Asterisk сервером из Java-приложения Взаимодействие с сервером Asterisk из java-приложения через Asterisk Managment Interface (AMI) Если вы только начинаете исследования в этой области, то взаимодействие с данным сервером может показаться вам несколько запутанным, как когда-то показалось мне. Чтобы не искать ...

Приглашаем на DINS Java EVENING 21 ноября: смотрим на AWS Lambda в действии и знакомимся с фреймворком Akka Будем рады видеть всех неравнодушных к java-разработке на очередном открытом DINS Java EVENING, который пройдет в нашем офисе на Старо-Петергофском, 19. Этим вечером Александр Груздев из DINS продемонстрирует разработку Serverless приложения на основе AWS Lambda. Игорь Шала...

«Ростелеком-Solar» обновляет анализатор защищенности приложений Компания «Ростелеком-Solar», национальный провайдер сервисов и решений кибербезопасности, объявила о масштабном …

WinForms: ошибки, Холмс Мы любим искать ошибки в проектах Microsoft. Почему? Всё просто: их проекты, как правило, легко проверить (работу можно вести сразу в среде Visual Studio, для которой у PVS-Studio есть удобный плагин) и они содержат мало ошибок. Поэтому обычный алгоритм работы такой: найти ...

Фотоотчёт с JPoint 2019 + анонс Joker 2019 в Санкт-Петербурге 5-6 апреля 2019 в Конгресс-центре ЦМТ прошел JPoint — на сегодняшний день, самая большая Java-конференция в России (пока не прошел новый Joker). Давайте вспомним, как прошёл JPoint, чего интересного там случилось… и начнём готовиться к Joker. Под катом много картинок, и, со...

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

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

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

Павел Финкельштейн о Kotlin в production на jug.msk.ru 13 марта 2019 года в офисе компании КРОК прошла очередная встреча сообщества московских Java-разработчиков jug.msk.ru, на которой Паша Финкельштейн рассказал о своём опыте использования языка программирования Kotlin. Читать дальше →

Митя Александров и Дмитрий Константинов на встрече jug.msk.ru 23 октября 2019 года, за пару дней до конференции Joker 2019, состоялась встреча московского сообщества Java-разработчиков jug.msk.ru. С докладами выступили Митя Александров (про MicroProfile) и Дмитрий Константинов (про Cassandra). Читать дальше →

Статическое распределение памяти в микроконтроллерах Холмс: Любезнейший, не подскажите где мы находимся? Пастух: Вы находитесь на воздушном шаре!!! Холмс: Вы должно быть программист. Пастух: Да, но как вы догадались? Холмс: Только программист мог дать столь точный и при этом столь бесполезный ответ. … отрывок из известного а...

«Тинькофф» открыл набор студентов на обучение разработке и аналитике со стипендией В трёхмесячной программе — frontend-разработка, аналитика, Java-разработка и другие дисциплины.

Читаем даташиты 2: SPI на STM32; ШИМ, таймеры и прерывания на STM8 В первой части я попробовал рассказать хобби-электронщикам, выросшим из штанишек Ардуино, как и зачем им стоит читать даташиты и прочую документацию к микроконтроллерам. Текст получился большой, поэтому я пообещал практические примеры показать в отдельной статье. Ну что же,...

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

[Перевод] Как отлаживать и профилировать любой EXE-файл с помощью Visual Studio Вам когда-нибудь нужно было отлаживать или профилировать исполняемый файл (файл .exe), для которого у вас нет исходного кода или вы не можете его собрать? Тогда наименее известный тип проекта Visual Studio, проект EXE, для вас! В Visual Studio вы можете открыть любой EXE-фа...

Июльские патчи Oracle устранили более 300 угроз Корпорация Oracle выпустила очередной пакет обновлений безопасности (Critical Patch Update, CPU), закрыв в своих продуктах 319 уязвимостей. Свыше 50 багов получили высшую оценку угрозы, набрав 9,8 балла по шкале CVSS. Больше всего заплаток пришлось на приложения Oracle Finan...

Unity Package Manager Unity — платформа, которая существует довольно давно и постоянно развивается. Однако, работая в ней с несколькими проектами одновременно, все еще можно столкнуться со сложностями в использовании общих исходников (.cs), библиотек (.dll) и остальных ассетов (изображения, звуки...

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

Astra Linux и Liberica JDK – решение для работы Java-приложений ГК Astra Linux первой из разработчиков отечественных операционных систем подтвердила совместимость последних версий ОС Astra Linux c российским Java-дистрибутивом Liberica JDK, программным продуктом компании BellSoft.

Компилятор Huawei Ark с открытым исходным кодом станет доступен для загрузки уже завтра В июне этого года компания Huawei представила свой собственный компилятор Ark, который позволяет ускорить плавность работы системы на 24% и скорость отклика на 44%. Сторонние приложения для Android после перекомпиляции могут работать на 60% быстрее. В начале августа ком...

Чем нам запомнилась последняя JokerConf На прошлой неделе в Санкт-Петербурге прошла международная Java-конференция Joker. Мы попросили наших ребят, которые её посетили, рассказать немного об организации и самых интересных, по их мнению, выступлениях. Кто-то отметил самые хайповые и весёлые, кто-то — самые актуальн...

[Из песочницы] uJVM: платформа для запуска Java-приложений на микроконтроллерах (MCU) Добрый день, уважаемые хабровчане. В этом цикле статей я попытаюсь рассказать Вам о Java Virtual Machine и запуске Java программ на микроконтроллерах. Тема достаточно спорная: Зачем Java на микроконтроллерах, где и так мало ресурсов? Лучше нативного кода написаного на чистом...

Empire ERP. Занимательная бухгалтерия: главная книга, счета, баланс В данной статье мы осуществим попытку проникновения в самое сердце "кровавого энтерпрайза" — в бухгалтерию. Вначале мы проведем исследование главной книги, счетов и баланса, выявим присущие им свойства и алгоритмы. Используем Python и технологию Test Driven Development. Здес...

Rollup: уже можно собирать приложения Rollup — это сборщик javascript приложений и библиотек нового поколения. Многим он давно знаком как перспективный сборщик, который хорошо подходит для сборки библиотек, но плохо подходит для сборки приложений. Однако время идет, продукт активно развивается. Я впервые попроб...

[Перевод] Повышаем производительность разработки на примере Vue — часть 2 Если вы не читали Часть 1, вы можете исправить сиё недоразумение здесь. Переиспользование конфигураций Новая библиотека vue-cli-3 избавила от необходимости поддерживать сложные шаблоны сборки и конфигураций. Вместо этого она позволяет разработчику сосредоточиться на создании...

[Перевод] JDK 9/JEP 280: конкатенация строк никогда больше не будет прежней И снова здравствуйте. Как мы уже писали, на следующей неделе стартует новая группа обучения по курсу «Разработчик Java», по устоявшейся традиции делимся с вами переводом интересного материала по теме. Начиная с JDK 9 конкатенация строк претерпела значительные изменения. JE...

Стохастический градиентный спуск(SGD) для логарифмической функции потерь(LogLoss) в задаче бинарной классификации Предыдущая часть (про линейную регрессию, градиентный спуск и про то, как оно всё работает) — habr.com/ru/post/471458 В этой статье я покажу решение задачи классификации сначала, что называется, «ручками», без сторонних библиотек для SGD, LogLoss'а и вычисления градиентов, ...

[Перевод] Создание приложения с использованием Styled-Components в Vue.js Привет, Хабр! На днях наткнулся на одну очень интересную статью на португальском. К счастью, удалось найти её английскую версию. Предлагаю вашему вниманию перевод на русский. Другие мои переводы вы можете найти на мой странице на хабре. Ссылка на оригинал: португальский, ан...

Создаём Azure DevOps extension У нас есть проект с настроенным CI/CD-процессом. Когда разработчик заканчивает задачу и вливает свои изменения в develop\qa, автоматически запускается билд, который выкладывает новую версию приложения на тестовую среду. В идеальном мире тестировщик автоматически узнаёт о зад...

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

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

Как мы работаем с идеями, и как родился LANBIX В «ЛАНИТ-Интеграции» много креативных сотрудников. Идеи новых продуктов и проектов буквально висят в воздухе. Выявить самые интересные порой бывает очень сложно. Поэтому мы совместными усилиями разработали свою методику. Как отобрать лучшие проекты и реализовать их, читайте ...

Распознавание объектов в режиме реального времени на iOS с помощью YOLOv3 Всем привет! В данной статье мы напишем небольшую программу для решения задачи детектирования и распознавания объектов (object detection) в режиме реального времени. Программа будет написана на языке программирования Swift под платформу iOS. Для детектирования объектов буд...

Тестирование аннотаций @NonNull/@Nullable Вместо «Посвящается ...» Описанная ниже задача не была новаторской или чертовски полезной, компания в которой я работаю не получит за нее прибыль, а я премию. Но эта задача была, а значит ее пришлось решить. Intro В статье вы часто будете встречать слово Lombok, прошу хей...

[Питер] Контейнеры и дистрибутивы — встреча JUG.ru с Дмитрием Чуйко и Александром Белокрыловым В четверг, 21 марта, в петербургском офисе компании Oracle состоится встреча JUG.ru с Дмитрием Чуйко и Александром Белокрыловым (alexbel) из BellSoft. Дмитрий расскажет про Java в контейнерной среде, а Александр — про создание и поддержку своего Java-дистрибутива. Участие бе...

Троян Adwind взял на мушку приложения Windows Исследователи из Menlo Security обнаружили новую версию RAT-трояна Adwind, нацеленную исключительно на ПК Windows. Троян Adwind, он же AlienSpy, Frutas, Unrecom, JRAT, SockRat и JSocket, целиком написан на Java и обычно используется для кражи информации с зараженных машин. Д...

Играем на смартфоне: Плюсы и минусы игры Minecraft PE (Pocket Edition) Вам не нужен компьютер или игровая приставка, чтобы играть в Minecraft благодаря наличию в интернете версии Minecraft PE. Тем не менее, мобильное приложение не включает в себя все функции, имеющиеся в Java-версии игры.

Анонс митапа ThinkJava #10 в Харькове Мы позаботились о том, чтобы один из пятничных вечеров октября Java-разработчики Харькова смогли провести особенно интересно и продуктивно.  Мы анонсируем, вы записываете, а потом все дружно 18 октября (если что, это будет вечер совершенно необычной пятницы :)) приходим н...

[Перевод] Что такое Android Lint и как он помогает писать поддерживаемый код Когда разработчик не достаточно осторожен, дела могут пойти весьма плохо. Например, классические упущения разработчика — использование новой версии API, которая не поддерживает работу со старым кодом, выполнение действий, которые требуют специальных пользовательских разреше...

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

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

Школа Java-разработчиков в Нижнем Новгороде Всем привет! Мы открываем бесплатную школу для начинающих Java-разработчиков в Нижнем Новгороде. Если ты — студент последних курсов или выпускник вуза, обладаешь небольшим опытом в IT или в смежной профессии, живешь в Нижнем или его окрестностях — welcome! Регистрация н...

[Из песочницы] FFmpeg начало работы с Visual Studio Привет! Начну с того, что я занимаюсь разработкой программы определения автомобильных номеров на дешевом слабо мощном процессоре типа Intel ATOM Z8350. Мы получили достаточно хорошие результаты в определении российских номеров на статической картинке (до 97%) с не плохим быс...

Курс по Kotlin – руководство для начинающих Это введение в Kotlin, статически типизированный язык программирования общего назначения с открытым исходным кодом.

Вики-проекты и Ноосфера зовут на HACKNOWLEGE 25 мая в «Благосфере» (Москва) начнется хакатон для всех, кто готов поработать с открытыми ресурсами – вики-проектами (в первую очередь, «Викиданными»), «Ноосферой», «Научным корреспондентом» и международными агрегаторами открытых произведений. Организаторы хакатона: НП «В...

МС-21 получит обогреваемое птицестойкое стекло Входящее в государственную корпорацию «Ростех» ОНПП «Технология» создаёт два варианта стекол — из поликарбоната и силикатное. Им предстоит пройти порядка 20 различных тестов: на устойчивость к попаданию посторонних предметов, птиц, молнии, воздействие высоких и низких темпер...

Обзор докладов Java-трека c конференции RigaDevDays Всем привет! С 29 по 31 мая состоялась конференция RigaDevDays в Риге. Это был 5-ый юбилейный год конференции. Более 600 участников собрались в кинотеатре Forum Cinemas, чтобы послушать доклады по технологиям — C#, Java, MachineLearning, Microservices, SQL. Конференция прох...

[Из песочницы] Умный принтер. Улучшая Octoprint Разрабатывая открытый проект 4-х экструдерного принтера Z-Bolt, мы столкнулись с проблемой выбора экрана для управления принтером. Из имеющихся экранов лишь решение от Duet Wifi умеет управлять более чем 2-мя экструдерами. Решение, мягко говоря, не бюджетное, да и интерфейс ...

(Статический) Подбор оптимальных контейнеров в программах на C++ Здравствуйте. Сегодня хотелось бы поговорить снова про статический анализ. И снова про C++. Только в отличие от PVS-Studio мы будем искать не какие-то ошибки в наших программах (хотя они ищут не только ошибки), а места, которые написаны недостаточно оптимально. И одним из та...

E-Dobavki — веб-сервис поиска пищевых добавок на Java и Spring Boot, написанный моими студентами Введение Так получилось, что последние почти два года я преподаю программирование в одной из IT школ Киева. Занялся я этим Just For Fun. Когда-то я вел блог по программированию, потом забросил. Но желание рассказывать полезные вещи заинтересованным людям никуда не делось. Мо...

[Из песочницы] Мобильный телефон BuratinoPhone Цель проекта — изучение основ разработки под Arduino, отработка технологий изготовления печатной платы, пайки элементов, изготовления корпуса в домашних условиях. Тем, кто захочет повторить или воспользоватся решениями для своих проектов, исходники можно скачать здесь Gith...

C/C++. Как использовать внедряемые ресурсы приложения, при работе в GCC на Linux Захотелось как-то мне использовать в Linux внедряемые ресурсы, причём, автоматически. В общем, задача такая: Имеется Eclipse проект программы на C++. ОС: Linux Ubuntu. Компилятор: G++ В проекте используются данные из внешних файлов: строки локализации, SQL-запросы, картинки...

16 марта Вadoo PHP Meetup: тесты и качество кода. Регистрация открыта Всем привет! Меня зовут Владимир Янц, я активно занимаюсь развитием инфраструктуры тестирования кода в Badoo. С PHP у нас давние и крепкие отношения, и мы с коллегами всячески поддерживаем сообщество. Нас все спрашивали: “Когда же уже, когда?” — и вот оно. 16 марта приглаша...

JPoint 2019: бесплатная онлайн-трансляция, вечеринка и многое другое 5-6 апреля, то есть уже на этих выходных, пройдёт JPoint 2019 — международная Java-конференция для опытных Java-разработчиков. Если вы не смогли поучаствовать, вживую или онлайн, то у нас есть сюрприз: бесплатная трансляция первого зала. Точнее, первый день и первый зал + к...

Введение в разработку CatBoost. Доклад Яндекса Меня зовут Стас Кириллов, я ведущий разработчик в группе ML-платформ в Яндексе. Мы занимаемся разработкой инструментов машинного обучения, поддержкой и развитием инфраструктуры для них. Ниже — мой недавний доклад о том, как устроена библиотека CatBoost. В докладе я рассказал...

[Из песочницы] Основы прозрачного проксирования с использованием 3proxy и iptables/netfilter или как «пустить всё через прокси» В данной статье хотелось бы раскрыть возможности прозрачного проксирования, которое позволяет абсолютно незаметно для клиентов перенаправлять весь либо часть трафика через внешние прокси-серверы. Когда я начинал решать данную задачу то столкнулся с тем, что её реализация ...

[Перевод] Разработка веб-серверов на Golang — от простого к сложному Пять лет назад я начал разрабатывать Gophish, это дало возможность изучить Golang. Я понял, что Go — мощный язык, возможности которого дополняются множеством библиотек. Go универсален: в частности, с его помощью можно без проблем разрабатывать серверные приложения. Эта ...

Как мы спасали код-ревью Я ведущий Java-разработчик в Яндекс.Деньгах. Каждое рабочее утро в 2018 году меня встречали около 30 пулл-реквестов, ожидающих ревью, а у меня не хватало времени разобрать их все за день. В конце лета я ушел в отпуск, а когда вернулся, обнаружил очередь из 50 PR, назначенн...

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

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

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

[Перевод] Добавление экшенов в грамматику PEG Грамматика становится ещё лучше, если вы можете добавить (некоторую) семантику в соответствии с правилами. В частности, для анализатора Python, который я разрабатываю, мне нужно возвращать узел AST из каждой альтернативы, поскольку я хочу придерживаться текущей реализации AS...

#ITX5 соберет тусовку JAVA-разработчиков X5 Retail Group – это не только 14 тысяч «Пятёрочек», тысяча «Перекрёстков» и «Каруселей», но еще и 1 300 айтишников, включая разработчиков на JAVA. В Х5 создано множество решений с помощью JAVA, мы готовы делиться своими кейсами и слушать партнеров. 9 июля соберёмся в офис...

SPA Meetup 5: интеграция Jest с QA, мощный UIKit, библиотеки компонентов, DI для масштабирования, платформенные команды Привет! Это пост-отчёт с митапа Moscow SPA 5, серии встреч для фронтенд-разработчиков, которым интересна тематика веб-приложений (Single Page Application). Вместе с докладчиками из Mail.Ru, Яндекса, ВКонтакте, Тинькофф и Авито мы говорили об интеграции Jest с QA-инфраструкту...

[Перевод] ServiceLoader: встроенный DI-фреймворк, о котором вы, возможно, никогда не слышали Салют, друзья. Уже в эту пятницу пройдет первое занятие в новой группе курса «Разработчик Java». Именно этому курсу и будет посвящена текущая публикация. Многие из java-разработчиков для внедрения зависимостей используют Spring. Некоторые, возможно, пробовали Google Guice...

Spring, байткод, JDK: топ-10 докладов JBreak 2018 Хабр, привет! Раньше мы проводили в Новосибирске Java-конференцию JBreak. В 2019-м решили её не проводить, но от этого доклады JBreak 2018 не перестают быть полезными, так что традиционно делимся подборкой лучших (по мнению зрителей). Тем более, что многие попавшие в эту п...

GitHub купил анализатор кода Semmle GitHub объявил о покупке Semmle — аналитического инструмента, который помогает разработчикам и исследователям безопасности находить уязвимости в коде.

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

Один день в компании Joker 2019 25-26 октября, буквально через два дня, в Санкт-Петербурге на территории Экспофорума пройдёт Joker 2019 — международная Java-конференция для хардкорных Java-разработчиков. В этот раз интерес к ней оказался таким, что сейчас остаются последние билеты — так что, если вам тоже...

[Из песочницы] Импорт OpenStreetMap. От бинарного исходника к таблице в БД в несколько шагов Обычно, когда кто-то говорит про OSM, то в голове всплывает какой-нибудь из веб-сервисов, или приложение вроде Maps.me, основанные на данных OSM. На самом деле проект OSM — это в первую очередь данные, всё остальное по сути частные случаи их использования. Сервисы предоставл...

История типизации на примере одного большого проекта Всем привет! Сегодня я расскажу вам историю развития типизации на примере одного из проектов в Ostrovok.ru. Эта история началась задолго до хайпа о typing в python3.5, более того, она началась внутри проекта, написанного еще на python2.7. 2013 год: совсем недавно был рел...

Прошлое и будущее Java в интервью с Саймоном Риттером из Azul Представляем вам интервью с Саймоном Риттером — человеком, который работал над Java с самого начала и продолжает делать это в роли заместителя технического директора Azul — компании, работающей над виртуальной машиной Zing JVM и одним из лучших сборщиков мусора, C4 (Continu...

Команда Sape представила бесплатный анализатор апдейтов Яндекса Также инструмент отслеживает скорость индексации документов

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

Раздельное логгирование методов в Java/logback Задача Допустим, нам захотелось логгировать каждый метод некого Java-класса по разному: Для каждого метода свой лог-файл, … свой формат лога, … свой минимальный уровень логгирования, формат лога расширяем собственными %переменными, возможность обновлять эту конфигурацию на...

[Из песочницы] Феерический screensaver для Kodi Назначение хранителя экрана для «Kodi» Проект предназначен для создания «Феерического» хранителя экрана с минимальным количеством исходного кода на языке Python. Проект является простейшим плагином для мультимедиа центра Kodi. Проект показывает как можно создать очень кра...

[Перевод] От Witcher 3 до Cyberpunk: эволюция дизайна квестов CD Projekt The Witcher 3 известен своим превосходным дизайном квестов, но разработчик игры CD Projekt Red обещает в своём новом проекте Cyberpunk 2077 развить и улучшить проверенный подход. На E3 2019 директор отдела квестов Матеуш Томашкевич рассказал нам, чему он научился, управляя...

[Перевод] Управление стейтом с помощью React Hooks – без Redux и Context API Всем привет! Меня зовут Артур, я работаю ВКонтакте в команде мобильного веба, занимаюсь проектом VKUI — библиотекой React-компонентов, с помощью которой написаны некоторые наши интерфейсы в мобильных приложениях. Вопрос работы с глобальным стейтом у нас пока открыт. Существу...

ЕС запустит программу поиска ошибок в открытом ПО Европейский союз объявил о серии программ по выявлению ошибок и уязвимостей в бесплатном программном обеспечении с открытым исходным кодом, включая такие популярные приложения, как VLC Media Player, Filezilla, PuTTY и 7-Zip. Финансовые вознаграждения будут предложен...

Архитектурный шаблон «Строитель» во вселенной «Swift» и «iOS»/«macOS» В этот раз я бы хотел немного поговорить о еще одном порождающем шаблоне проектирования из арсенала «Банды четырех» – «Строителе» («Builder»). Так вышло, что в ходе получения своего (пусть и не слишком обширного) опыта, я довольно часто видел, чтобы паттерн использовался в «...

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

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

Facebook готовит к выпуску цифровые монеты, привязанные к корзине валют и обеспеченные капиталом компании Когда Telegram выпустит свою криптовалюту, то будет не единственным мессенджером с возможностью финансовых расчётов, пишет NY Times. Аналогичные планы есть у Facebook (монеты для мессенджера WhatsApp) и Signal, и не только у них. Информацию о разработке такого проекта подтв...

«Фабричный метод» и «Абстрактная фабрика» во вселенной «Swift» и «iOS» Слово «фабрика» – безусловно одно из самых часто употребляемых программистами при обсуждении своих (или чужих) программ. Но смысл в него вкладываемый бывает очень разным: это может быть и класс, порождающий объекты (полиморфно или нет); и метод, создающий экземпляры какого-л...

Создаем краудсорсинговые карты помощи на WordPress + shMapper TL;DR мы сделали бесплатный опен-сорсный плагин shMapper, который позволяет создавать карты помощи, а также другие краудсорсинговые карты (с подложкой на Я.К и OSM) на WordPress. Завязка Девять лет назад горела вся центральная Россия. Я написал хабрапост, в котором призвал...

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

[Перевод] Глупая причина, по которой не работает ваше хитрое приложение машинного зрения: ориентация в EXIF Я много писал о проектах компьютерного зрения и машинного обучения, таких как системы распознавания объектов и проекты распознавания лиц. У меня также есть опенсорсная библиотека распознавания лиц на Python, которая как-то вошла в топ-10 самых популярных библиотек машинного ...

Южнокорейский ИБ-регулятор выбрал Solar appScreener для повышения защищенности своих разработок и сервисов Компания Ростелеком-Solar выиграла конкурс на поставку анализатора защищенности приложений Solar appScreener в Korea Internet&Security Agency (KISA …

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

[Перевод] Есть ли в CSS случайные числа? CSS позволяет создавать динамические макеты страниц и интерфейсы веб-проектов. Но CSS — статический язык. После того, как задано некое значение, изменить его нельзя. Идея случайного изменения неких значений здесь не рассматривается. Генерирование случайных чисел — это тер...

[Перевод] Профилирование кода Go-проекта и решение проблемы с выделением памяти Пожалуй, каждому программисту известны слова Кента Бека: «Make it work, make it right, make it fast». Сначала надо сделать так, чтобы программа работала, дальше — надо заставить её работать правильно, а уже потом можно переходить к оптимизации.  Автор статьи, перевод кото...

[Из песочницы] Создание минимального Docker-контейнера для Go-приложений Привет, Хабр! Предлагаю вашему вниманию перевод статьи основателя сервиса Meetspaceapp Nick Gauthier «Building Minimal Docker Containers for Go Applications». Время чтения: 6 минут Существует множество, как официальных, так и поддерживаемых сообществом контейнеров для разл...

Эксперимент — от парного программирования к программированию всей командой Очень хочу поделиться с вами переводом статьи про эксперимент с моб-программированием от одного из его создателей, Вуди Зила. Это когда вся команда сразу работает за одним компьютером. Как парное программирование, только групповое. Я бывший Java-разработчик и тимлид с 11-лет...

[recovery mode] Расширение (плагин) SketchUp для проектирования мебели программистом При расчете стоимости новой кухни цена оказалась такой большой, что я решил сделать её сам так как это обойдется в два раза дешевле. Для тренировки решил сделать для себя рабочий стол. Достаточно быстро пришло понимание: чтобы сделать хорошую вещь нужно сделать 3D модель. Эт...

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

Приглашаем на DINS IT EVENING в июле: QA и JS В июле нас ждут две встречи. Будем рады видеть всех неравнодушных к автоматизированному тестированию и JavaScript. 24 июля – QA EVENING: говорим о построении CI/CD, знакомимся с API для создания IDEA плагинов. 31 июля – JS EVENING: знакомимся со статической типизацией, Type...

Автоматизация ответов на часто задаваемые вопросы в навыке для «Алисы» с помощью библиотеки DeepPavlov Лаборатория нейронных систем и глубокого обучения МФТИ вот уже больше года делает DeepPavlov — открытую библиотеку для создания диалоговых систем. Она содержит набор претренированных компонент для анализа языка, с помощью которых можно эффективно решать задачи бизнеса. Напр...

GitHub Actions как CI/CD для сайта на статическом генераторе и GitHub Pages Немного прошерстив Habr удивился тому, что очень мало опубликовано статей на тему (beta-)фичи GitHub'а — Actions. Казалось бы, можно объяснить такую недосказанность тем, что функционал еще в тестировании, пусть и "beta". Но именно полезная особенность беты позволяет исполь...

Подборка психологических и нетипичных технических вопросов с собеседований Java-разработчика Как и у всех разработчиков, у меня настал период затишья. Проект подходил к концу, задач практически не было, хотелось выше зарплату, ну и пошла получать свой заветный job offer. Так вышло, что некоторые собеседования занимали 2-3 этапа, и я накопила парад вопросов, кото...

[Из песочницы] Extension в Dart (Flutter) В недавном релизе языка Dart 2.6 в языке появилась новая функция, static extension или статические методы расширения, который позволяет вам добавить новые методы к существующим типам. Зачем вообще нужны extension? Как их использовать и на что они годятся? Введение Начнём ...

[Екатеринбург, анонс] java.ural.Meetup @3 — анонс третьего Java-митапа + видео докладов с java.ural.Meetup @2 Приглашаем 21 сентября в субботу принять участие в третьей встрече java.ural.Meetup. Встреча пройдёт в конференц-зале в офисе Контура по адресу ул. Малопрудная, 5. Начало в 11:30. Расписание: 11:30 — 12:00 Регистрация и кофе 12:00 — 14:30 Три доклада 14:30 — 15:00 Перерыв ...

[recovery mode] Типобезопасная работа с массивами PHP Всем привет, расскажу о собственном велосипеде для удобной работы с массивами в PHP. Type hinting В PHP7 появились подсказки типов (type hinting), что позволило IDE проводить более качественный статический анализ кода, качество нашего кода улучшилось (или правильно говорит ...

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

Битва L2TP, RRAS vs SoftEther «Украденная с запада картинка для привлечения внимания» В прошлых наших статьях мы рассказали, как работать с VDS на Windows Server Core 2019 на нашем новом тарифе UltraLight за 99 рублей в месяц. Предлагаем еще один способ использования данного тарифа. На этот раз речь по...

Хакатон DevDays'19 (часть 2): парсер звуковых сообщений для Telegram и проверка орфографии в IntelliJ IDEA Мы продолжаем рассказывать о проектах весеннего хакатона DevDays, в котором участвовали студенты магистерской программы «Разработка программного обеспечения / Software Engineering». Кстати, хотим пригласить читателей присоединиться к VK-группе магистратуры. В ней мы будем ...

Применение компьютерного зрения в морских исследованиях или 12 человек на сундук мертвеца Горячо приветствую, уважаемые коллеги. В сообществе OpenDataScience успешно развивается инициатива ML4SG — Machine Learning for Social Good. В её рамках стартовал целый ряд интересных проектов, которые в самых разных областях улучшают нашу с вами жизнь. Мы хотели бы расска...

[Перевод] Часто задаваемые вопросы по SELinux (FAQ) Всем привет! Специально для студентов курса "Безопасность Linux" мы подготовили перевод официального FAQ проекта SELinux. Нам кажется, что данный перевод может быть полезен не только студентам, поэтому делимся им с вами. Мы попытались ответить на некоторые наиболее часто за...

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

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

[Перевод] Обработка 40 ТБ кода из 10 млн проектов на выделенном сервере с Go за $100 Написанной мной инструмент командной строки Sloc Cloc and Code (scc), который теперь доработан и поддерживается многими отличными людьми, подсчитывает строки кода, комментарии и оценивает сложность файлов внутри каталога. Здесь нужна хорошая выборка. Инструмент подсчитывает ...

Опыт использования генератора статических сайтов Hugo Делюсь 2-х летним опытом использования генератора статических сайтов Hugo. Заметка ориентирована на начинающих, но в этой заметке не будет инструкций "как установить Hugo" или "как создать первый пост". Эта заметка будет полезна тем, кто выбирает и сравнивает альтернативы дл...

[Перевод] Статический анализ больших объёмов Python-кода: опыт Instagram. Часть 1 Серверный код в Instagram пишут исключительно на Python. Ну, в основном это именно так. Мы используем немного Cython, а в состав зависимостей входит немало C++-кода, с которым можно работать из Python как с C-расширениями. Наше серверное приложение — это монолит, представ...

[Перевод] Архитектурная шизофрения Facebook Libra Спустя два года я вернулся к блогу ради поста, который отличается от обычных занудных лекций о Haskell и математике. Последние несколько лет я занимался финансовыми технологиями в ЕС, и, кажется, пришло время написать на тему, которой технические СМИ уделили мало внимания. ...

Книга «Java для всех» Привет, Хаброжители! Данная книга предназначена для начинающих. Вот уже многие годы язык Java входит в число самых популярных и востребованных. Он красивый, эффектный и, самое главное, очень производительный. Но, к сожалению, не самый простой. Именно поэтому спрос на Java-...

Получаем абсолютные курсы из парных кросс-курсов валют Проект: “Абсолютный курс валют” Введение О проекте Проект “Абсолютный курс валют” занимается анализом парных валютных курсов, выделением из них абсолютных валютных курсов и их анализом. В рамках проекта получена методика преобразования от парных курсов к абсолютным валютным...

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

Electronic Arts: новые части Battlefield и Star Wars находятся в разработке Компания Electronic Arts опубликовала ежеквартальный финансовый отчёт, в котором рассказала об успехах Apex Legends, а также раскрыла некоторую информацию о разрабатывающихся проектах, в том числе о новых частях Battlefield и Star Wars. Перечислим самые интересные моменты: ...

[Из песочницы] Создание многомодульного Gradle проекта SpringBoot + Angular в IDEA Достаточно часто в моей практике используется связка Spring + Angular. Хочу поделится своим опытом по подготовке подобного проекта в среде разработки IntelliJ IDEA. Создаем пустой Gradle проект Для начала создадим пустой Gradle проект в IDEA, при этом снимите все галочки би...

Cataclysm Dark Days Ahead, статический анализ и рогалики Скорее всего, из названия статьи вы уже догадались, что в центре внимания ошибки в исходном коде. Но это вовсе не единственное, о чем пойдет речь в этой статье. Если кроме С++ и ошибок в чужом коде вас привлекают необычные игры и вам интересно узнать, что это такие за «рога...

Синглтон размещающий объекты в ROM и статические переменные(С++ на примере микроконтроллера Cortex M4) В предыдущей статье Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора), был разобран вопрос о том, как расположить константные объекты в ROM. Теперь же я хочу рассказать, как можно использовать порождающий шаблон одиночка для создания ...

Организуем ML-проект с помощью Ocean Вступление За годы разработки ML- и DL-проектов у нашей студии накопились и большая кодовая база, и много опыта, и интересные инсайты и выводы. При старте нового проекта эти полезные знания помогают увереннее начать исследование, переиспользовать полезные методы и получить ...

Опыт перевода Maven-проекта на Multi-Release Jar: уже можно, но ещё сложно У меня есть маленькая библиотека StreamEx, которая расширяет возможности Java 8 Stream API. Библиотеку я традиционно собираю через Maven, и по большей части меня всё устраивает. Однако вот захотелось экспериментов. Некоторые вещи в библиотеке должны работать по-разному в раз...

[Перевод] 48 open source ресурсов для JavaScript (2019) Мы выбрали из 20 000 проектов и библиотек для JavaScript 48 самых лучших (по звёздам на GitHub) и сгруппировали в 5 категорий: Пользовательский интерфейс (1~9) Инструменты JavaScript (10~25) Machine Learning (26~33) Проекты (34~39) Инструменты разработчика (40~48) Чита...

Программы для управления проектами (задачами) онлайн для Mac (macOS) Проекты могут принимать самые разнообразные формы и размеры, как и используемые менеджерами проектов инструменты для управления. Вы можете искать оптимальное программное обеспечение с целью его дальнейшего приобретения, но зачастую такое ПО оказывается очень дорогим. Тем бол...

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

[Из песочницы] Etherblade.net — opensource проект по созданию инкапсулятора ethernet-трафика на FPGA (часть первая) Сразу хочу оговориться, что эта статья не только подразумевает пассивное чтение, но и приглашает всех желающих присоединяться к разработке. Системные программисты, разработчики железа, сетевые и DevOps инженеры — добро пожаловать. Поскольку проект идет на стыке сетевых те...

Обучающие настольные игры для программистов На рынке труда в Java-разработке наблюдается интересная ситуация. Активных резюме разработчиков больше 100 000 и на одно резюме приходится одна вакансия. В то же время работодатели и кадровые агентства жалуются на недостаток кадров, и, несмотря на тысячи резюме, найти хороше...

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

Тесты или типы? — Rust version Пару дней назад 0xd34df00d опубликовал здесь перевод статьи, описывающей, что можно узнать о функции в разных языках, если рассматривать её как "чёрный ящик", не используя информацию о её реализации (но, разумеется, не мешая ей пользоваться компилятору). Разумеется, получаем...

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

Как создать open source проект Уже на этой неделе в Санкт-Петербурге пройдет IT-фестиваль TechTrain. Одним из спикеров будет Ричард Столлман. Embox тоже участвует в фестивале, и конечно мы не могли обойти вниманием тему СПО. Поэтому один из наших докладов называется “От студенческой поделки до opensource...

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

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

Илон Маск написал первый твит, используя космический интернет Starlink Впервые о проекте Starlink мы узнали ещё в 2014 году, а более предметно о нём заговорили в 2016 году. Проект подразумевает вывод на орбиту Земли тысяч спутников, которые будут обеспечивать доступ к интернету. В частности, такое решение позволит обеспечить покрытием удал...

[Из песочницы] Пример реализации Continuous Integration с помощью BuildBot (Image by Computerizer from Pixabay) Привет! Меня зовут Евгений Черкин, я программист команды разработчиков в горнодобывающей компании Polymetal. Приступая к любому крупному проекту начинаешь задумываться: «Какой же софт лучше использовать для его обслуживания?». IT-пр...

Android Camera2 API от чайника, часть 4. Media Codec и стрим видео по UDP в JAVA приложение Итак, выходим на финишную прямую. Стримить видео с андроида на VLC плеер мы уже научились, теперь осталось только интегрировать окошко с видео в JAVA приложение и начать рулить роботелегой. В этом нам очень сильно поможет проект с открытым исходным кодом VLCJ CAPRICA. Th...

Прокачка проекта от Soft Launch до $1 млн выручки в месяц Привет, Хабр! Я руковожу отделом закупки трафика для мобильных и десктопных проектов в Mail.ru Group. Сегодня в этом посте я подробно расскажу про трафик для игр. Он написан по мотивам моего доклада на конференции The Big Deal. Но сначала немного о себе. Я работал с огромн...

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

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

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

Что такое статическое электричество Оно ломает ноутбуки, портит причёски и вызывает молнии.

[Перевод] Проект «Прометей»: поиск пожаров с помощью ИИ Перевод Project Prometheus — An AI-powered fire finding solution Мы с коллегами работаем в проекте Prometheus («Прометей») — это решение для раннего обнаружения пожаров, в котором объединены ИИ, компьютерное зрение, автоматические дроны и сервисы прогноза погоды. Этот ком...

[Из песочницы] Проект Lenergy, как переосмысление портативных источников питания Привет, Хабр! Хочу рассказать о своём виденье универсального программируемого портативного источника энергии. Как я к этому пришёл, каким в итоге проект стал в железе, для чего он нужен и варианты применения, а так же его дальнейшее развитие. Одной статьи будет явно недостат...

[Перевод] Новости из мира 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). Информация (пос...

Плагины Jira: несколько примеров успешного изобретения велосипеда Мы в Mail.ru Group вкладываем много сил в развитие продуктов компании Atlassian и, в частности, Jira. Благодаря нашим усилиям свет увидели плагины My Groovy, JS Includer, My Calendar, My ToDo. Все эти плагины мы развиваем и активно используем внутри компании. Мы получаем...

Как настроить Continuous Deployment для своего проекта: личный опыт Перевели для вас статью Юлиуса Минмо о настройке непрерывной интеграции (Continuous Deployment) для своего проекта. Автоматизация позволяет сэкономить кучу времени и сил. Статья будет полезна, в первую очередь, начинающим программистам. Непрерывная интеграция — отличная ...

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

Как интеллект-карты помогают вести IT-проекты В продолжение статьи о тайм-менеджменте, опубликованной ранее в блоге ЛАНИТ, предлагаю вашему вниманию историю о своем опыте использования инструмента по работе с интеллект-картами. Последние десять лет я занимаюсь управлением проектами в ИТ и телекоме, и всё это время я исп...

Nullable Reference типы в C# 8.0 и статический анализ Не секрет, что Microsoft достаточно давно работает над выпуском восьмой версии C#. В недавно состоявшемся релизе Visual Studio 2019 новая версия языка (C# 8.0) уже доступна, но пока ещё только в качестве beta релиза. В планах этой новой версии есть несколько возможностей, р...

[Из песочницы] Типизация REST API для фронтенд разработчика Сегодня широкое распространение имеют следующие подходы для описания взаимодействия браузера и сервера, такие как OpenApi & GraphQL. В этой статье я расскажу о нашей попытке сделать статически типизированное REST API и избавить фронтенд команду от написания кода по нап...

Попытка создать аналог ASH для PostgreSQL Постановка задачи Для оптимизации запросов PostgreSQL, очень требуется возможность анализировать историю активности, в частности – ожидания, блокировки, статистика таблиц. Имеющиеся возможности Инструмент анализа исторической нагрузки или «AWR для Postgres»: очень интересн...

PHP Composer: фиксим зависимости без боли Многие из вас наверняка сталкивались с ситуацией, когда в библиотеке или фреймворке, который вы используете, есть баг или нет необходимой функциональности. Предположим, вы даже не поленились и сформировали pull request. Но примут его далеко не сразу, а следующий релиз продук...

[Из песочницы] Настройка связки php-fpm + nginx под WSL Я — виндузятник и всячески увиливаю от окончательного перехода на Linux на своём PC не смотря на все его преимущества. Поэтому последние пару лет для создания локальных площадок под проекты использовал Docker for Windows. Не сказать что штука сверхстабильная, но существенных...

[Перевод] Расширение mypy с помощью плагинов Добрый день, друзья. А мы продолжаем наращивать интенсивность запуска новых курсов и уже сейчас рады сообщить о том, что в конце апреля стартуют занятия по курсу «Web-разработчик на Python». В связи с этим традиционно делимся переводом полезного материала. Начнём. Известно,...

Роботехнические соревнования программы «РобоНикель» прошли в Чите 31 марта завершились первые в 2019 году робототехнические соревнования в Чите, организованные образовательной программой «РобоНикель». В соревнованиях приняли участие 110 ребят (73 команды из 26 школ). Участники состязались в категориях «Шахта», «Здесь и сейчас» и «Твор...

FLProg – Самостоятельная интеграция в программу кастомных контроллеров На Хабре достаточно давно не освещался проект FLProg. Это связанно с отсутствием времени на написание статей, да и моими собственными личными проблемами. Но проект не умер, он живёт и развивается. В среднем раз в месяц выходит очередная версия программы. Со времени последне...

Инструменты для запуска и разработки Java приложений, компиляция, выполнение на JVM Ни для кого не секрет, что на данный момент Java — один из самых популярных языков программирования в мире. Дата официального выпуска Java — 23 мая 1995 года. Эта статья посвящена основам основ: в ней изложены базовые особенности языка, которые придутся кстати начинающим “д...

[Из песочницы] Rutoken, OpenSSL и локальный УЦ для подписи сообщений Некоторое время назад возникла необходимость в рамках проекта ограничить одновременное число компьютеров, имеющих доступ к web-приложению, работающему в рамках локальной сети заказчика. Решение использовать аппаратные USB-токены для идентификации компьютера пришло само собо...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 10. Режимы работы портов свитча Сегодня мы рассмотрим режимы портов свитча и функции свитча. Свитч имеет два режима работы: Access, или статический доступ, и Trunk – режим туннельной магистрали. Первый режим используется, когда вы подсоединяете к порту свитча какое-либо конечное устройство. Если вы подсоед...

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

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

Рецепты TeamCity. Доклад Яндекс.Такси Меня зовут Эдуард Мацуков, я делаю Таксометр — приложение для водителей Яндекс.Такси. Занимаюсь инфраструктурой и всем, что с ней связано. Какое-то время назад я выступил с докладом — рассказал об опыте дружбы TeamCity с нашим проектом и с разработчиками в целом. Отдельная ч...

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

Запускаем инструментальные тесты в Firebase Test Lab. Часть 1: iOS проект Меня зовут Дмитрий, я работаю тестировщиком в компании MEL Science. Совсем недавно я закончил разбираться со сравнительно свежей фичей от Firebase Test Lab — а именно, с инструментальным тестированием iOS приложений с использованием нативного фреймворка тестирования XCUITe...

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

Spring JPA репозитории в CUBA Тема статьи достаточно узконаправленная, но, возможно, окажется полезной тем, кто разрабатывает свои собственные хранилища данных и думает об интеграции со Spring Framework. Предпосылки Разработчики обычно не очень любят менять свои привычки (зачастую, в список привычек вхо...

Создаем отдел джунов в помощь основным командам, используя лишь Slack, Jira и синюю изоленту Почти вся команда разработки Skyeng, состоящая из более чем 100 человек, работает удаленно и требования к специалистам всегда были высоки: мы искали синьоров, fullstack-девелоперов и мидлов. Но в начале 2019 года мы впервые наняли трех джуниоров. Сделано это было по нескол...

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

[Перевод] Топ-10 самых распространенных ошибок, которые мне встречались в Go-проектах Этот пост — мой топ самых распространенных ошибок, которые встречались мне в Go-проектах. Порядок не имеет значения. Неизвестное значение Enum Давайте взглянем на простой пример: type Status uint32 const ( StatusOpen Status = iota StatusClosed StatusUnknown ) Здесь м...

Обзор вентиляторов Arctic P12 PWM PST и Arctic P14 PWM PST В конце прошлого года мы проводили тестирование пары вентиляторов Arctic Cooling BioniX P140 и Arctic Cooling BioniX P120. Сегодня героями обзора будут Arctic P12 PWM PST и Arctic P14 PWM PST, они были представлены в это же время. Ориентированы они на высокое статическое дав...

Никакой возни с наличными и картами. В российских магазинах станет можно платить по QR-коду Банк России начнёт тестирование быстрых QR-платежей в магазинах 30 августа. Об этом рассказало издание РБК со ссылкой на собственные источники.  Тестирование будет проводиться в рамках созданной регулятором системы быстрых платежей. Продолжительность тестир...

[Из песочницы] Беспроводной программируемый по Wi-Fi комнатный термостат с монитором качества воздуха и другими полезными функциями В системе автономного отопления моей квартиры работает выпускаемый серийно беспроводной комнатный термостат. Система, конечно, функционирует и без него: термостат был приобретен для экономии расхода газа и повышения комфорта. Вещь очень полезная, но, на мой взгляд, несколько...

[Перевод] Панель мониторинга Grafana для пивной системы BeerTender Пояснение. BeerTender — устройство для охлаждения и розлива пива от Krups и Heineken. По заявлению производителей, оно сохраняет качества свежего пива в течение 30 дней после открытия кега. Конечно, системным администраторам и девопсам удобно отслеживать температуру и уровен...

[Перевод] Unreal Engine 4 — шейдер горения Это небольшой шейдер, который появился, когда я думал о различных методах применения flowmap. Существуют много эффектов перехода/растворения, но большинство из них выглядит довольно статично, так как они используют статические текстуры. Данный шейдер далек от совершенства, н...

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

SonarQube и IntelliJ IDEA: правильная интеграция SonarQube — отличный инструмент для внедрения статического анализа кода в процесс разработки ПО. Он поддерживает как используемую у нас в компании Java, так и большое количество других языков программирования. На данный момент этот инструмент плотно вошёл в нашу жизнь, сле...

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

Авторский курс по обучению Ардуино для собственного сына Здравствуйте! Прошлой зимой я рассказывал на страницах Хабра о создании робота-«охотника» на Ардуино. Я занимался этим проектом со своим сыном, хотя, по сути, 95% всей разработки осталось за мной. Робота мы доделали (и уже, кстати, разобрали), но после этого возникла новая ...

Как мы делали облачный FaaS внутри Kubernetes и побеждали в Тинькофф-хакатоне Начиная с прошлого года у нас в компании начали организовывать хакатоны. Первое такое состязание прошло весьма успешно, о нем мы писали в статье. Второй хакатон прошел в феврале 2019 и был не менее успешным. О целях проведения последнего не так давно писал организатор. Уч...

[Из песочницы] 4 Причины, почему вы должны забыть о Redux в приложениях на React Я работаю с Реактом на протяжении почти 3 лет, использовал как Redux так и MobX и у меня к текущему моменту возник вопрос. Почему абсолютное большинство front-end разработчиков продолжают свято верить в то, что Redux + Redux Saga + Reselect + 100500 других библиотек «облегча...

Вышла новая версия Solar appScreener 3.1 Компания «Ростелеком-Solar» выпустила новую версию анализатора защищенности приложений Solar appScreener 3.1. Теперь …

[Из песочницы] Как в Microsoft SQL Server получать данные из Google Analytics при помощи R В этом материале я хочу подробно показать, как можно при помощи R в Microsoft SQL Server реализовать получение данных из Google Analytics (и вообще из любого API). Благодарности: Поскольку я ни разу не маркетолог мне требовалась помощь специалиста. Тестовый кабинет и доступ ...

Учебные проекты на Godot — Pong (часть 1) Создание и настройка сцены игрового процесса Приветствую вас, хабровчане! Как и обещал в конце прошлой статьи, я обратил свой взгляд на игровой движок. Правда мне больше приглянулся Godot. Почему? Тема для отдельной статьи размышления, а я не умею долго думать и, тем более, размышлять. Несмотря на то, что Pong имеетс...

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

Зрелая исполняемая среда для контейнеров: containerd стал «выпускником» CNCF За проектом containerd мы следим с самого его начала. Посему не можем обойти вниманием значимое событие: минувшей ночью организация CNCF, стоящая за Kubernetes и другими выдающимися Open Source-решениями для мира cloud native, объявила containerd своим «выпускником». Этот пр...

Сборка Android-проекта в Docker-контейнере Разрабатывая проект под платформу Android, даже самый небольшой, рано или поздно приходится сталкиваться с окружением для разработки. Кроме Android SDK, необходимо чтобы была последняя версия Kotlin, Gradle, platform-tools, build-tools. И если на машине разработчика все эти ...

История о том, как мы иконку PVS-Studio меняли Релиз 7.0 ознаменовал новую веху в истории анализатора PVS-Studio – теперь доступен анализ не только кода, написанного на C, C++, C#, но также и Java. Кроме этого глобального нововведения продолжают улучшаться и дорабатываться существующие механизмы анализа, добавляются ди...

Обзор Cat Quest II. Очень атмосферно Для фанатов качественных ролевых игр вышло продолжение шикарного проекта про котов — очень интересная история, красивая графика и милые главные герои делают проект максимально увлекательным и интересным. Конечно, это проект для тех, кто хочет именно котиков и все, что с ними...

Книга «React быстро. Веб-приложения на React, JSX, Redux и GraphQL» Привет, Хаброжители! Оригинальное издание вышло осенью 2017 года, но до сих пор считается лучшей книгой для знакомства с React. Автор постоянно обновляет и дорабатывает код к книги в репозитории Github. Предлагаем в посте ознакомится с отрывком «Состояния и их роль в интер...

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

Финансы для PMa в пресейле: как быстро посчитать бюджет и Cash Flow в MS Project Среди главных вопросов, на которые надо ответить руководству компании перед решением взяться за проект, выделяются эти: Будет ли выгодно выполнить обсуждаемый проект за предлагаемую цену? Как в течение проекта будет выглядеть ситуация по финансам, не появится ли кассового ...

SoftClub — первый в Республике Беларусь заказчик анализатора защищенности приложений Solar appScreener Компания SoftClub, стала первым в Республике Беларусь заказчиком и реселлером анализатора приложений на наличие уязвимостей и НДВ Solar appScreener. Внедрение решения «Ростелеком-Солар» в процесс безопасной разработки позволит ...

[Из песочницы] Динамический импорт в JavaScript В начале прошлого года было предложено ввести в JavaScript возможность динамического импорта. Если кто не знает, то сейчас в JavaScript нативно поддерживается только статическая импортизация и для этого есть причины, но это тема отдельного разговора. Предложение было реализо...

[Из песочницы] Опыт разработки ассета Unity для поиска пути в 3D пространстве Вас приветствует команда «Graceful Algorithms»! В качестве эксперимента нами было принято решение вести «дневники» разработчиков, в которых мы будем делиться опытом и освещать некоторые интересные результаты проводимых нами экспериментов. Это наша дебютная статья по проект...

Darksiders 4 уже разрабатывается и покажется геймерам на E3 2019 Если вы фанат вселенной Darksiders, то вам точно нельзя пропускать предстоящую E3 2019. На официальной странице мероприятия появилось сообщение об анонсе новой игры из серии Darksiders, который состоится уже 13 июня. Организаторы не рассказали деталей о новом проекте Airs...

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

Россияне смогут делать по QR-коду покупки до 600 тысяч рублей Тестирование нового сервиса начнется 30 августа в небольших магазинах. Россияне смогут оплачивать с помощью QR-кода покупки стоимостью до 600 тыс. руб., сообщает «РИА Новости» со ссылкой на производителя онлайн-касс «Эвотор». Компан...

Google Drive как хранилище для веб-приложения Предисловие Мое веб-приложение хранит данные в localStorage. Это было удобно, пока не захотелось, чтобы пользователь, заходя на сайт с разных устройств, видел одно и то же. То есть, понадобилось удаленное хранилище. Но приложение «хостится» на GitHub Pages и не имеет сервер...

[Перевод] Тестирование Node.js-проектов. Часть 1. Анатомия тестов и типы тестов Автор материала, первую часть перевода которого мы сегодня публикуем, говорит, что он, как независимый консультант по Node.js, каждый год анализирует более 10 проектов. Его клиенты, что вполне оправданно, просят его обратить особое внимание на тестирование. Несколько месяцев...

PyDERASN: как я написал ASN.1 библиотеку с slots and blobs ASN.1 это стандарт (ISO, ITU-T, ГОСТ) языка описывающего структурированную информацию, а также правил кодирования этой информации. Для меня как программиста это просто ещё один формат сериализации и представления данных, наравне с JSON, XML, XDR и другими. Он крайне распрост...

Жизнь до рантайма. Доклад Яндекса В большом проекте может возникнуть задача идентификации изменений для конечного пользователя по отличиям в коде фронтенда приложения. Разработчик из Яндекс.Маркета Никита Сидоров рассказал, как мы решали эту проблему при помощи библиотеки Diffector, о построении и анализе гр...

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

Atom – браузер на движке Chromium Сейчас многие крупные компании используют движок Chromium для создания своего браузера. Та же Microsoft поняла, что конкурировать с Хромом на движке Chromium практически невозможно, поэтому она также переходит на этот движок. Российские компании тоже активно используют данны...

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

Конференция архитекторов. Как это было Команда архитекторов ЛАНИТ активно проводит у себя тематические встречи, чтобы сотрудники могли прокачивать экспертизу и делиться опытом с коллегами из других компаний. В этот раз мы замахнулись еще круче и под одной крышей решили собрать более 300 специалистов и экспертов ...

Библиотека Symbols GOST для DipTrace Ниже на скрине представлена часть символов библиотеки. В общей сложности библиотека содержит около 300-сот УГО выполненных по стандартам ГОСТ (ЕСКД). Библиотека разрабатывается и поддерживается мной. Все предложения, пожелания по добавлению символов (УГО) или компонентов...

[Из песочницы] Легкое создание отчетов на C/C++ Если вы разрабатываете на C/C++ какое-либо ПО для операторов (администраторов) больниц, магазинов, сервисов проката гироскутеров, ремонта сотовых телефонов, то наверняка сталкивались с задачей создания отчетов, чтобы печатать их на принтере, ну или хотя бы в PDF. Существует ...

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

Мониторинг мёртв? — Да здравствует мониторинг Наша компания с 2008 года занимается преимущественно управлением инфраструктурами и круглосуточной технической поддержкой веб-проектов: у нас более 400 клиентов, это порядка 15% электронной коммерции России. Соответственно, на поддержке очень разнообразная архитектура. Ес...

Путь к первому 3d принтеру. Моделирование основных узлов Часть 1. Начало. Пояснения к началу. Основной месседж "Почему нет исходников на печатные детали? Неужели жабка задушила?"Все-таки буду строит D-bot подобный принтер с осью Z на полиспасте и осями Х и Y на рельсах. Проект ожидается долгим.Не мудрствуя долго решил начать моделить основ...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 25. Углубленное изучение IPv6 Сегодня мы продолжим изучение протокола IPv6. Этот урок довольно длительный, поэтому не будем терять время и приступим к изучению 3-х тем: автоконфигурация IPv6, настройка и проблемы IPv6 и основы маршрутизации IPv6. Последнюю тему мы посвятим статической маршрутизации и роу...

[Из песочницы] Быстрая интеграция с 1С: Предприятие В данной статье я расскажу о наиболее простом, на мой взгляд, способе интеграции сторонних приложений с конфигурациями 1С. Статья будет интересна в первую очередь разработчикам, пишущим на .Net Core, PHP и Python. Способов интеграции с 1С известно много, этому даже посвящен...

В списке целей ботнета GoldBrute более 1,5 млн хостов Ботнет GoldBrute атакует хосты с открытым RDP-доступом и угрожает более чем 1,5 млн устройств. К такому выводу пришли ИБ-специалисты, которым удалось изучить код вредоносной программы и результаты сканирования потенциально уязвимых портов, а также список логинов и паролей дл...

[Из песочницы] Ускорение компиляции в Xcode на swift С ростом проекта, скорость компиляции проекта замедляется. Особенно это заметно становится, когда тестируешь программу, делая параллельно небольшие изменения в программе. Сначала давайте узнаем как долго компилируется проект до наших улучшений. ЧТобы это сделать надо в тер...

Разработка плагина для Grafana: история набитых шишек Всем привет! Несколько месяцев назад мы запустили в продакшн наш новый open-source проект — Grafana-плагин для мониторинга kubernetes, который назвали DevOpsProdigy KubeGraf. Исходный код плагина доступен в публичном репозитории на GitHub. А в этой статье мы хотим поделиться...

PVS-Studio хотел, но не смог найти баги в robots.txt На днях Google опубликовал исходники парсера robots.txt. Почему бы не прогнать уже проверенный всеми вдоль и поперек проект через PVS-Studio и, возможно, найти ошибку. Сказано — сделано. Жаль, что ничего значимого найти не удалось. Ну что ж, тогда пусть это будет просто пов...

[Перевод] Новшества JavaScript: итоги Google I/O 2019. Часть 1 Материал, первую часть перевода которого мы сегодня публикуем, посвящён новым стандартным возможностям JavaScript, о которых шла речь на конференции Google I/O 2019. В частности, здесь мы поговорим о регулярных выражениях, о полях классов, о работе со строками. Ретроспект...

[Перевод] Создание изометрических 2D-уровней с помощью системы Tilemap В Unity 2018.3 появилась поддержка изометрических тайловых карт, очень напоминающая поддержку тайловых карт шестиугольников, которая была добавлена в версии 2018.2. Новые функции Tilemap позволяют быстро и эффективно создавать 2D-окружения на основе изометрических и шестиуг...

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

«WARNING: sanitizing HTML stripped some content» и как с ним правильно бороться Всем, кому приходилось вставлять HTML содержимое в DOM в Angular, доводилось видеть это сообщение. Конечно, все мы получаем проверенное содержимое с нашего же сервера и просто хотим застилизовать сообщение об ошибке. Или вставляем HTML из наших же констант, инлайним наши SVG...

[Из песочницы] Arduino и Processing. Как управлять микроконтроллером по COM порту. Двустороннее общение Всем привет! В интернете бытует заблуждение, что для управления компьютером при помощи самодельной электроники нужны только специальные платы, которые могут распознаваться как USB HID устройства. А касаемо Arduino все только и говорят о Arduino Leanardo. Такие популярные биб...

MapcamDroid 3.8.730 MapcamDroid — программа, предупреждающая водителя о радарах, камерах фиксации скорости, засадах ГИБДД и потенциально опасных местах на дороге. MapcamDroid вовремя напомнит о соблюдении ПДД и скоростного режима, и поможет избежать ДТП или штрафа. MapcamDroid может рабо...

Компания TESLI внедряет bpm’online с помощью НОРБИТ Компания НОРБИТ начала проект по интеграции CRM-системы на базе платформы bpm’online от «Террасофт» в компании TESLI. В рамках проекта планируется …

[Из песочницы] Наша с девушкой первая видео игра. Разработка на Unity. Часть 1 Ну как первая… Если не считать релизы только под Android и с десяток заброшенных проектов у финиша, то да, это первая наша игра с замахом больше чем одну платформу. Как же всё начиналось? А всё просто, работали мы значит над другим проектом, назовем его «проект А», работали ...

Автоматизация импортов в Python До После import math import os.path import requests # 100500 other imports print(math.pi) print(os.path.join('my', 'path')) print(requests.get) import smart_imports smart_imports.all() print(math.pi) print(os_path.join('my', 'path')) print(requests.get) Так получи...

Восемь блокчейн-проектов присоединились к платформе Klaytn Передовой блокчейн-проект Klaytn, возглавляемый южнокорейским Интернет-гигантом Kakao, сообщил о присоединении 8 новых блокчейновых проектов в качестве сервисных провайдеров Klaytn для дальнейшего распространения технологий блокчейна в глобальном масштабе. Ориентированная на...

Julia. С чего начать проект?… Очень часто, при решении задач анализа и подготовки данных, пишут одноразовые скрипты, поддержка и развитие которых не предусматривается вообще. Такой подход имеет право на существование, особенно в студенческой среде. Однако, когда появляется более одного человека, работаю...

Россияне смогут оплатить по QR-коду покупки стоимостью до 600 тысяч рублей "Первые пилоты с высокой вероятностью мы увидим 30 августа. Поначалу это будут небольшие магазинчики и торговля на рынках. Пока для оплаты товаров и услуг установлен общий лимит до 600 тысяч для совершения одной операции. Сегодня рассматриваются различные сценарии оплат...

Создание плагина для Clang Static Analyzer для поиска целочисленных переполнений Автор статьи: 0x64rem Вступление Полтора года назад у меня появилась идея реализовать свой фазер в рамках дипломной работы в университете. Я начала изучать материалы про графы потока управления, графы потока данных, символьное исполнение и т.д. Далее шёл поиск тулз, проба р...

[Из песочницы] Интеграция AppCenter и GitLab Трям, здравствуйте! Хочу рассказать о своём опыте настройки интергации GitLab и AppCenter через BitBucket. Необходимость такой интеграции возникла в ходе настройки автоматического запуска UI тестов для кроссплатформенного проекта на Xamarin. Подробный туториал под катом! Чи...

Разработка чат-бота (laravel+botman) Welcome! Я, как junior full stack разработчик, при попытке написать бота с использованием laravel и botman’а столкнулся с многими проблемами. Во-первых, я плохо знаю английский, а на русском статей очень мало на эту тему, а те, что есть не помогли мне решить мои проблемы. В ...

[Из песочницы] Openshift — красношляпые поделки OpenShift Развертка Openshift. Конфигурация после установки. Создание и подключение PV. Создание и разворачивание проекта Red Hat Decision Manager (enterprise аналог kie-workbench). Создание и разворачивание проектов AMQ (red hat active mq) и postgressql c использованием п...

Обзор Skaffold для разработки под Kubernetes Полтора года назад, 5 марта 2018, компания Google выпустила первую альфа-версию своего Open Source-проекта для CI/CD под названием Skaffold, целью которого стало создание «простой и воспроизводимой разработки под Kubernetes», чтобы разработчики могли сфокусироваться именно...

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

Фундаментальные основы хакерства. Мастер-класс по анализу исполняемых файлов в IDA Pro Для подписчиковВ этой статье мы окунемся в глубокий и подробный статический анализ с помощью IDA Pro — сверхпопулярного среди хакеров и специалистов по информационной безопасности дизассемблера. Начнем с самого базового анализа и постепенно будем пробираться вперед, разгреба...

[Перевод] 8 ошибок начинающих JavaScript-разработчиков, мешающих стать профессионалом Быть JavaScript-разработчиком круто, поскольку на рынке труда постоянно растет нужда в хороших JS-программистах. В наше время очень много фреймворков, библиотек и прочего, что можно использовать в работе, — и в значительной степени мы должны быть благодарны за это opensou...

[Из песочницы] Разработка VPN-плагина «Континент-АП» для ОС Sailfish Введение Я работаю программистом в отделе разработки и тестирования средств защиты мобильных платформ компании «Код безопасности». Перед командой мобильной разработки была поставлена задача портировать кроссплатформенную библиотеку абонентского пункта «Континент-АП», которая...

[Перевод] Топ-17 плагинов для Android Studio Существуют сотни плагинов для Android Studio, и их число растёт с каждым днём. Это в основном происходит по двум причинам. Во-первых, Android Studio — это официальная интегрированная среда разработки для создания Android-приложений. Во-вторых — Intellij IDEA, платформа, на ...

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

Tesli внедряет bpm’online с помощью Норбит Компания Норбит (входит в группу компаний Ланит) начала проект по интеграции CRM-системы на базе платформы bpm’online от "Террасофт" в компании Tesli. Основным видом деятельности компании Tesli является продажа, автоматизация и производство электрооборудования. В р...

Разворачиваем автоматизацию за пару часов: TypeScript, Protractor, Jasmine Привет, Хабр! Меня зовут Виталий Котов, я довольно много занимаюсь автоматизацией тестирования и мне это нравится. Недавно я участвовал в проекте по настройке автоматизации «с нуля» на стеке TypeScript + Protractor + Jasmine. Для меня этот стек был новым и необходимую инфор...

Пишем Reverse socks5 proxy на powershell.Часть 3 История об исследовании и разработке в 3-х частях. Часть 3 — практическая. Буков много — пользы еще больше Предыдущие статьи из цикла можно найти тут и здесь =) Проверка боем Давайте теперь проверим работу нашего скрипта на практике. Для этого попробуем выбросить обратный ...

[Перевод] Каково быть мейнтейнером свободного ПО 2013 год. Я узнаю об альфе нового проекта под названием GNOME Calendar. Интересно. Я люблю календари. «Круто, буду следить за ним», — сказал я по молодости. В ветке ui-rework шла бурная разработка. Каждый день несколько новых коммитов. Скачать, собрать, протестировать. И в...

[Из песочницы] О реализации известного жанра на платформе Minecraft Целью данной статьи является помощь начинающим игровым проектам с нестандартной тематикой избежать базовых ошибок в реализации. Данная статья рассказывает о личном опыте ведения игрового стартапа в рамках Minecraft. Как всё начиналось Мои интересы во многом не совпадали с и...

[Из песочницы] MicroPyServer простой HTTP сервер для ESP8266 и ESP32 Всем привет! Хочу рассказать о библиотеке MicroPyServer написанной на Python, которая позволяет взаимодействовать с устройствами ESP8266 и ESP32 посредством простого HTTP сервера. Что такое MicroPyServer? MicroPyServer это простой HTTP сервер предназначенный для проектов на...

[Из песочницы] Управление зависимостями в многомодульном проекте на градл Вступление Статья пишется с прицелом на нативные андроид проекты, но, так как градл универсальная система сборки, в принципе, подойдет и для других проектов, которые может собрать градл. Идея не моя, я ее подчерпнул из гитхаб проекта у Jake Wharton SdkSearch — набор програм...

Чем занимаются опенсорсные фонды — говорим о свежих проектах OpenStack и Linux Foundation Мы решили рассказать о проектах (Kata Containers, Zuul, FATE и CommunityBridge), которые недавно присоединились к двум крупным фондам, и о том, в каком направлении они развиваются. Читать дальше →

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

[Из песочницы] Сeph — от «на коленке» до «production» Выбор CEPH. Часть 1 У нас было пять стоек, десять оптических свичей, настроенный BGP, пару десятков SSD и куча SAS дисков всех цветов и размеров, а ещё proxmox и желание засунуть всю статику в собственное S3 хранилище. Не то чтобы это всё было нужно для виртуализации, но раз...

Обзор: сервис для получения экспертных рекомендаций по профессиональной эмиграции в США RB Relocate Привет, Хабр! Меня зовут Александр, уже пару лет я живу в США, развиваю здесь свои проекты и рассказываю о них. Если вы состоите в хабе IT-эмиграция, то наверняка видели мои статьи о переезде, развитии компаний и сложностях, с которыми приходится сталкиваться на этом пути....

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

[Перевод] Как встроить С-библиотеку в Swift-фреймворк В 2014 году был представлен Swift, новый язык для разработки приложений экосистемы Apple. Новинка принесла не только новые возможности и функции, но и проблемы — тем, кто хотел пользоваться старыми добрыми C-библиотеками. В этой статье я рассмотрю одну из них — бандлинг C-...

«Проще ответить, чем продолжать молчать» — большое интервью с отцом транзакционной памяти, Морисом Херлихи Морис Херлихи — обладатель целых двух премий Дейкстры. Первая — за работу по «Wait-Free Synchronization» (Brown University) и вторая, более свежая, — «Transactional Memory: Architectural Support for Lock-Free Data Structures» (Virginia Tech University). Премию Дейкстры дают...

Проектируем космическую ракету с нуля. Часть 5 — Первый закон Кеплера Содержание Часть 1 — Задача двух тел Часть 2 — Полу-решение задачи двух тел Часть 3 — Ужепочти-решение задачи двух тел Часть 4 — Второй закон Кеплера Привет всем читателям! Сразу приступим к продолжению без лишних разглагольствований. В прошлый раз остановились на: Э...

[recovery mode] Как я свою онлайн игру создавал. Часть 1: Работа с сетью Привет всем! У меня недавно был отпуск, и появилось время спокойно попрограммировать свои домашние проекты. Захотел я, значит, свою простенькую онлайн игру сделать на Rust. Точнее, простенькую 2D стрелялку. Решил сначала сделать сетевую часть, а там уже видно будет, что да...

[Из песочницы] Смок-тестирование релиз-кандидата автотестами за 15 минут Меня зовут Лилия, я QA Lead в одном из проектов финансовой группы БКС (сервис по подбору выгодных для клиента предложений из ряда кредитных продуктов), и сегодня я расскажу, как мы автоматизировали смок-тестирование, с какими проблемами столкнулись и какой стек технологий ис...

[Из песочницы] Как при помощи 2 видов unit-тестов сделать приложение более стабильным Привет, Habr. Меня зовут Илья Смирнов, я Android-разработчик в компании FINCH. Хочу показать вам несколько примеров работы с Unit-тестами, которые мы наработали у себя в команде. В наших проектах используется два вида Unit-тестов: проверка на соответствие и проверка на выз...

[Перевод] Введение в Redis с использованием Spring Boot Перевод статьи подготовлен специально для студентов курса «Разработчик на Spring Framework». В этой статье мы рассмотрим основы использования Redis через Spring Boot с помощью библиотеки Spring Data Redis. Мы создадим приложение, которое демонстрирует, как выполнять CR...

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

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

Как я создавал Recycle! VR В предыдущей статье мы попробовали создать базовую сцену в A-Frame, чтобы опробовать основные концепции фреймворка на практике. В этой статье я хотел бы поделится своим опытом создания игры на A-Frame — Recycle! VR. Репозиторий проекта доступен по следующей ссылке. Перера...

Работа с командами APDU на примере EToken "… Путь не так уж сложен для понимания. Силы природы, естественные наклонности, схемы событий… Примитивное миропонимание замечает только четыре стихии и дальше этого не идёт. Словно вселенная сводится к четырём доступным созерцанию понятным явлениям." Стивен Эриксон. «Полноч...

Теплица запускает конкурс инновационных проектов Команда Теплицы социальных технологий готова профинансировать два социально значимых IT-проекта. Если вы хотите разработать онлайн-инструмент, добавить новый функционал или запустить новый проект, а ресурсов не хватает, тогда подавайте заявку на участие в конкурсе инновацион...

Рука-робот сможет «нащупать» в воде опасные химикаты Ученые из Университетов Калифорнии, Дэвиса и Карнеги-Меллона разработали прототип анализатора среды для роботизированных систем. Он чем-то похож на человеческие органы чувств, так как его сенсоры изначально интегрированы в сам манипулятор робота. Подобно тому, как мы определ...

Кластерное хранилище для небольших web-кластеров на базе drbd+ocfs2 О чем мы расскажем: Как быстро развернуть общее хранилище для двух серверов на базе решений drbd+ocfs2. Для кого это будет полезно: Туториал станет полезен системным администраторам и всем, кто выбирает способ реализации хранилища или хотят попробовать решение. От каких р...

[Из песочницы] Фундаментальная ловушка единственной значимой метрики Тезисы эссе: люди предпочитают подтверждение статуса прямой финансовой выгоде; между желанием укрепить статус и опасением потерять чужие деньги, они, как правило, выбирают первое; поэтому сотрудники компаний заказчиков охотно инициируют веб-проекты (и прочие проекты в сфере ...

[recovery mode] Poor man's monitoring или мониторим сервера из консоли Всех приветствую уважаемые читатели. В данной статье я расскажу Вам о моём «велосипеде», на котором я делаю мониторинг разных вещей не выходя из консоли. Столкнулся я как-то раз с ситуацией, когда расплодилось довольно много разных проектов и серверов, а настроить нормальны...

Проект Microsoft Pegasus может привнести новый интерфейс в Windows 10 2 октября на конференции Microsoft Event 2019 помимо устройств Surface также было представлены и некие программные продукты, где компания представила новую версию Windows 10 для совершенно новой категории вычислительных устройств. Эта новая ОС, получившая название Windows 10...

Новые лицензии для открытого ПО, кто ими занимается В середине июля появился проект PolyForm. Его авторы разрабатывают новые типы лицензий для открытого ПО. Рассказываем, зачем они нужны и кто из компаний ими уже воспользовался. Читать дальше →

Две награды в конкурсе «Проект года» Global CIO Компания WaveAccess была удостоена двух наград в конкурсе «Проект года», организуемом профессиональным сообществом ИТ-директоров России Global CIO. Решения компании были отмечены в номинациях «Лучший проект в области интеграции CRM-системы и IP-телефонии» и «Лучший социальны...

Как написать сапера на Phaser и выполнить тестовое задание HTML5 разработчика Добрый день, уважаемые коллеги! Меня зовут Александр, я разработчик HTML5 игр. В одной из компаний, куда я отправлял свое резюме, мне предложили выполнить тестовое задание. Я согласился и, спустя 1 день, отправил в качестве результата разработанную по ТЗ HTML5 игру. Поск...

Форматирование исходного кода в Linux средствами ClangFormat: проблемы и решение Согласитесь, приятно и полезно, когда в проекте исходный код выглядит красиво и единообразно. Это облегчает его понимание и поддержку. Покажем и расскажем, как реализовать форматирование исходного кода при помощи clang-format, git и sh. Читать дальше →

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

Intel One API Project: архитектур много, API один На проходившем в июне Intel Software Technology Day ведущие инженеры компании рассказали о софтверном проекте под названием «Intel One API» — унифицированной модели программирования для облегчения разработки ПО под разнообразные вычислительные архитектуры, включающей в себ...

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

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

Десятки тысяч закупок, прозрачных как стекло: распутываем клубок Наводить порядок в закупках крупного банка непросто. Особенно когда они разведены по двум независимым комплексным системам ERP и СЭД. При объединении ВТБ и ВТБ24 у нас также произошло объединение информационных систем, и теперь единый процесс закупок проходит через них. Что ...

Детали перехода от парных (относительных) валютных курсов к абсолютным. Работа над ошибками Введение Настоящая статья описывает результаты эксперимента проведенного в рамках проекта “Абсолютный курс валют”. Протокол эксперимента можно увидеть перейдя по ссылке. Проект “Абсолютный курс валют” занимается анализом парных валютных курсов, выделением из них абсолютных ...

Подготовка данных в Data Science-проекте: рецепты для молодых хозяек В предыдущей статье я рассказывала про структуру Data Science-проекта по материалам методологии IBM: как он устроен, из каких этапов состоит, какие задачи решаются на каждой стадии. Теперь я бы хотела сделать обзор самой трудоемкой стадии, которая может занимать до 90% общ...

Портирование Qt на STM32 Добрый день! Мы в проекте Embox запустили Qt на STM32F7-Discovery и хотели бы об этом рассказать. Ранее, мы уже рассказывали как нам удалось запустить OpenCV. Qt — это кроссплатформенный фреймворк, который включает в себя не только графические компоненты, но и такие вещи ка...

[Из песочницы] Создаем современное веб приложение. Знакомство с проектом и подготовка к работе. Часть 1 В этой серии статей мы пройдем полный цикл создания клиентской части приложения и напишем небольшую библиотеку компонентов с использованием современного стека технологий. Читать дальше →

Celestia: приключения багов в космосе Celestia — трехмерный космический симулятор. Симуляция космоса позволяет исследовать нашу вселенную в трех измерениях. Celestia доступна на Windows, Linux и macOS. Проект очень маленький и в нём, с помощью PVS-Studio, обнаруживается совсем небольшое количество дефектов. Одн...

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

Минус уши или как не испортить звук в игре с самого начала Статья о звуке, но адресована скорее не саунд-дизайнерам (которым всё известно), а продюсерам, ПМ-ам игровой индустрии и начинающим разработчикам. Собранные здесь ошибки — это наш собственный опыт из времён, когда War Robots была ещё прототипом в новой для компании нише. ...

OMEGA — Автоматизация подсчета времени на спортивных мероприятиях Всем привет, меня зовут Сергей. Я руководитель образовательного проекта "SERVODROID". Мой проект занимается разработкой простых в повторении роботов для детей и взрослых. Сам я преподаю робототехнику в Санкт-Петербурге. Но также я спортсмен, и, одно из моих любимых спортив...

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

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

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

Tic Tac Toe, часть 6: Flask и Celery/RabbitMQ Tic Tac Toe: содержание цикла статейПопробуем подключить Celery/RabbitMQ к нашему проекту. В качестве основы возьмем проект с Flask'ом. Celery займется вычислением случайного числа. Читать дальше →

На хакатоне Aeternity в Чехии победил блокчейн-сервис для проверки подлинности продукции 15 сентября в Праге завершился двухдневный хакатон для разработчиков децентрализованных приложений на платформе æternity (æpps). Главный приз завоевал проект Identity of Things, предложивший решение для проверки подлинности продукции при помощи технологии блокчейн. Команда п...

Как мы сдружили EF 6 с MSSQL и PostgresSQL Жил-был проект на EF 6 с СУБД MSSQL. И появилась необходимость добавить возможность его работы с СУБД PostgreSQL. Проблем здесь мы не ожидали, ведь есть большое количество статей на эту тему, и на форумах можно найти обсуждение похожих задач. Однако, на деле не все оказало...

Управление автомобилем по CAN Введение Беспилотный автомобиль StarLine на платформе Lexus RX 450h — научно-исследовательский проект, стартовавший в 2018 году. Проект открыт для амбициозных специалистов из Open Source Community. Мы предлагаем всем желающим поучаствовать в процессе разработки на уровне код...

[Из песочницы] Объяснение физической сущности явления «Подъёмная сила Крыла» без использования уравнения Бернулли Монин Илья Алексеевич, к.т.н. СМ-9, 926-220-95-74, [email protected] Критика существующего Теоретического объяснения Подъёмной Силы на крыле самолёта Прослушав курс лекций МФТИ Факультет аэромеханики и летательной техники (ФАЛТ) «Введение в Аэродинамику» и прочитав неско...

Автор официальных обоев для OnePlus 7 поделился своими работами Пару дней назад были представлены смартфоны OnePlus 7 и OnePlus 7 Pro, вместе с которыми китайский производитель представил новую серию статических и динамических обоев А поделился ими с общественностью Хэмпус Олссон (Hampus Olsson), шведский дизайнер, который создал мн...

[Из песочницы] Modbus на российском микроконтроллере К1986ВЕ92QI Попал мне в руки российский микроконтроллер К1986ВЕ92QI производства АО "ПКК Миландр" с 32-битным RISC ядром ARM Cortex-M3 128кБ Flash и 32кБ ОЗУ, сразу же захотелось изучить и опробовать его в действии. Микроконтроллер поставляется в упаковке, которой позавидуют к...

Поиск задач в JIRA (простым языком). Часть 1: Быстрый и базовый поиск В последнее время JIRA активно используют организации, не имеющие прямой связи с IT. Специалистам, не знакомым ранее с JIRA, бывает сложно понять структуру JQL-запросов, если не привести примеры. Для упрощения восприятия, мы решили собрать всю документацию, локализовать и р...

Обзор самых интересных докладов CodeFest 2019: версия True Engineering В Новосибирске прошла юбилейная, десятая конференция CodeFest. Программа была очень насыщенной: десять секций о разработке, тестировании, дизайне, управлении и развитии. Сотрудники True Engineering два дня конспектировали доклады, теперь хотим поделиться этой пользой с вами....

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

Мелкая питонячая радость #4: Radon — качество кода, измеренное в числах Инженеры очень любят измерения и числа. Поэтому нет ничего удивительного в том, что они пытаются измерять в численном виде такую нетривиальную штуку, как качество кода. Метрик для оценки текстов программ придумали немало — от банального количества строк кода в проекте до н...

Новый монитор ASUS VL278H позаботится о ваших глазах Модель получила 27-дюймовую матрицу разрешением Full HD 1920 х 1080 пикселей. Устройство характеризуется яркостью 300 кд/м2. Статическая и динамическая контрастности составляют соответственно 1000:1 и 100 000 000:1.

[recovery mode] Руководство: Thymeleaf + Spring. Часть 1 Оригинал документации В этом руководстве объясняется, как Thymeleaf может быть интегрирован с Spring Framework, особенно (но не только) Spring MVC. Обратите внимание, что Thymeleaf имеет интеграции для версий 3.x и 4.x Spring Framework и выше, предоставляемые двумя отдель...

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

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 27. Введение в AСL. Часть 1 Сегодня мы начнем изучение списка управления доступом ACL, эта тема займет 2 видеоурока. Мы рассмотрим конфигурацию стандартного списка ACL, а на следующем видеоуроке я расскажу про расширенный список. На этом уроке мы рассмотрим 3 темы. Первая – что такое ACL, вторая — в ...

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

Используем статические ссылки на свойства объектов при помощи лямбд Так уж исторически сложилось, что в Java для свойств объектов (properties) не предусмотрено никакой физической сущности. Свойства в Java — это некоторые соглашения в именовании полей и методов доступа к ним (аксессоров). И, хотя наличие физических свойств в языке упростило б...

В OpenStack расширяют портфолио и займутся CI/CD В OpenStack Foundation объявили, что теперь организация будет поддерживать не только открытые проекты для IaaS, но и компании, занятые разработкой решений для контейнеризации, CI/CD и периферийных вычислений. Рассказываем, с чем связана смена направления и кто уже работает ...

Роскосмос готовит посадочную платформу «ЭкзоМарс» к финальной сборке и испытаниям ЭкзоМарс» — совместный проект Роскосмоса и Европейского космического агенства EKA по поиску жизни на Красной планете. Она состоит из двух этапов, первый из которых успешно завершился в 2016 году — орбитальный модуль «Трейс Гас Орбитер» благополучно вышел на орбиту планеты и...

Разработка hexapod с нуля (часть 5) — электроника Всем привет! Разработка гексапода близится к завершению первой боевой версии и вот настало время для описания всей его электронной начинки. На данном этапе разработки я наконец-то покажу все исходники проекта на github (ссылки как всегда будут в конце). Так же я добавил HC-...

Планирование проектов в организации (часть 4) Я продолжаю цикл публикаций о Pulse Management — Управление проектной организацией (Метод Пульса). В этой статье я расскажу о самой «вкусной» части: Планирование проектов. Планирование — это самая простая и самая сложная часть любого проекта основанного целью которого являет...

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

C++, FIX, Oracle и PL/SQL: что нужно знать IT-специалисту для получения работы в сфере финансов + реальные вакансии В наши дни, большинство бирж уже давно работают в электронном формате, а сделки совершаются не с помощью выкриков трейдеров из специальной ямы, а в пару кликов через интернет. Для организации торгов и участия в них используется передовой софт, железо, разрабатываются сложн...

[Из песочницы] Создание слайдера диапазона значений для фильтра без использования Jquery Очень часто на сайтах интернет-магазинов, и не только, можно фильтры со слайдером выбора диапазона значений. В одном из проектов мне тоже понадобилось сделать такой слайдер. Первое, что приходит в голову — найти уже готовый и вставить себе на сайт. Тут то я и столкнулся с п...

PHP Xdebug proxy: когда стандартных возможностей Xdebug не хватает Для отладки PHP-программ часто используют Xdebug. Однако стандартных возможностей IDE и Xdebug не всегда достаточно. Часть проблем можно решить с помощью Xdebug proxy — pydbgpproxy, но всё же не все. Поэтому я реализовал PHP Xdebug proxy на базе асинхронного фреймворка amph...

Test Maturity Model: как тестировщику оценить проект и спланировать процессы Привет! Меня зовут Миша, и я Senior QА с коммерческим опытом более 6 лет. Сейчас я работаю в Provectus, но начинал я свой путь тестировщика еще в студенческие годы с участия в альфа- и бета-тестах различных игр. В какой-то момент подумал: «Почему бы не начать заниматься этим...

Огневые испытания двигателя ракеты OmegA закончились взрывом сопла, но в целом признаны успешными Компания Northrop Grumman провела первый большой тест своей будущей ракеты OmegA. Статические огневые испытания двигателя компания назвала успешными. Хотя на финальном этапе теста произошёл небольшой взрыв. Двигатель первой ступени отработал 122 секунды, и уже в самом конце ...

[Перевод] Создание игровых 3D-моделей «для бедных»: путь инди Вы когда-нибудь задумывались о том, как работает небольшая инди-студия, занимающаяся разработкой видеоигр? Создавать игры с очень маленьким бюджетом можно, но для этого необходима смекалка, много труда и ещё больше любви к своему делу. Мы — небольшая команда из Польши. Нас...

Байки про суровое российское ИТ и жертв цифровизации Россия иррациональна. Есть правильные практики, есть сто раз ощупанные грабли, но всё равно с завидным постоянством случается что-то эпическое. Иногда по причине: «Ну уж меня-то точно пронесёт», иногда: «Всегда так делали, и работало», иногда просто из-за ошибок. Возможно,...

Microsoft и Warner Bros. записали фильм «Супермен» на кварцевом стекле Объём сохраняемых данных в «облаках» продолжает увеличиваться, и их долгосрочное хранение становится весьма серьёзной проблемой при использовании существующих технологий хранения. Чтобы избежать потери данных, их приходится многократно перезаписывать на новые носители. Имен...

Внедряем OSGI на платформе Karaf OSGI это не сложно Я много раз встречал мнение, что OSGI это сложно. И более того, у самого когда-то такое мнение было. Году в 2009, если быть точным. На тот момент мы собирали проекты при помощи Maven Tycho, и деплоили их в Equinox. И это действительно было сложнее, чем раз...

Rails + Postgres + bindings Привет друзья. Ни для кого не секрет, что работая на крупных проектах со сложной логикой, Active Record становится не помощником, а обузой. Представьте, что вам необходимо сделать очень сложный запрос для PostgreSQL нативным образом (на чистом SQL), где должно присутствова...

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

Как оказать Open Source взаимовыгодную поддержку Разработка программ на базе открытого кода уже давно переросла любительский уровень, когда ею занимались либо энтузиасты, либо профессионалы, но в свободное от работы время. Сегодня мир Open Source наполняют проекты ...

Google решила отказаться от самого удобного виджета Компания Google не так давно обозначила официальную дату закрытия соцсети Google+ — это произойдёт 2 апреля, то есть менее чем через месяц. Уже сейчас компания запрещает регистрироваться новым пользователям в данной соцсети, к тому же для многих неприятным станет отка...

Заводим Spring StateMachine Вступление В проектах я встречался с тремя примерами, так или иначе связанными с теорией конечных автоматов Пример 1. Занимательный говнокод код. Занимает уйму времени, на то чтоб понять что происходит. Характерной особенностью воплощения обозначенной теории в коде являет...

Неопределённая параметризация как универсальный метод построения архитектуры приложения на C++ и Java за минимальн. цену C++ — язык запутанный, и существенным его недостатком является сложность создания изолированных блоков кода. В типовом проекте всё зависит от всего. Эта статья показывает, как писать высокоизолированный код, который минимально зависит от конкретных библиотек (включая стандар...

Автоматизация homebridge с помощью Node-Red На мой взгляд, одним из главных минусов homebridge является отсутсвие возможности создавать продвинутые сценарии. Вся автоматизация возлагается на домашний центр, которым может быть Ipad (подключенный к зарядке), Apple TV или HomePod. Не у всех эти устройства есть, вдобавок ...

Разрабатывайте плагины для продуктов JetBrains и продавайте их на JetBrains Marketplace Мы запустили JetBrains Marketplace — новую платформу, на которой разработчики могут продавать и лицензировать свои плагины к продуктам JetBrains. Теперь у авторов плагинов появится возможность уделять больше времени именно разработке — им не придется придумывать свои решения...

«Глубокое погружение» и «Рекомендации сообщества». Valve добавила две новые функции в «Лаборатории Steam» и перенесла «Интерактивный советник» в основной клиент Valve продолжает модернизировать магазин Steam. Ранее на этой неделе компания запустила открытый бета-тест обновленной библиотеки и изменила систему рекомендаций игр. Теперь же стало известно о еще парочке функциональных новшеств, призванных упростить поиск игр и просмотр по...

[Перевод] Рассказ о том, как популярная JavaScript-библиотека начала выводить в терминал рекламу В пакете Standard, который представляет собой руководство по стилю JavaScript, линтер, и средство для автоматического исправления кода, реализовано то, что, по всей видимости, можно назвать первой рекламной системой для JavaScript-библиотек. В начале 20-х чисел августа сего...

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

[Из песочницы] Опыт установки Apache Airflow на Windows 10 Преамбула: волею судьбы из мира академической науки (медицины) я попала в мир информационных технологий, где мне приходится использовать свои знания о методологии построения эксперимента и стратегиях анализа экспериментальных данных, однако, применять новый для меня стек тех...

MMORPG с элементами выживания Dawn of Isles от NetEase вышла на Android Достойная внимания MMORPG с элементами симулятора выживания Dawn of Isles, как и было обещано, добралась до Android. Вас ждет яркий открытый мир, забавные персонажи и активности, характерные для жанра. Нужно будет заниматься исследованиями, крафтить предметы, общаться и вып...

Длинная история путеводителя — как я 5 лет писал сервис для умных пешеходных маршрутов У многих есть один или несколько своих домашних проектов. Это бывают небольшие утилиты, экспериментальные штуки, пробы новых технологий, “убийцы” фейсбуков и много что ещё. Заметно реже такими проектами занимаются долгое время. В статье я поделюсь своим опытом и расскажу ка...

Новые ключевые слова в Java В ближайшем будущем в языке Java появятся новые фичи, над которыми сейчас идет работа в рамках проектов Valhalla, Panama и Loom. Расширение языка — дело непростое, тем более — языка, в котором акцент делается на обратную совместимость; поэтому для того, чтобы их интеграция в...

«Ждёт тебя дорога дальняя…» или решение задачи прогнозирования на C# с помощью Ml.NET (DataScience) В последнее время мне все чаще на глаза попадается информация о фреймворке для машинного обучения Ml.NET. Количество упоминаний о нем переросло в качество, и я решил хотя бы одним глазком глянуть, что же это за зверь такой. Ранее мы с вами уже пробовали решить простейшую з...

ModLook — сканер регистров ModBus. Отмечаем 20-летие программы Сегодня я бы хотел рассказать о программе, с помощью которой я начинал изучать протокол ModBus и ПЛК. Я ей пользуюсь до сих пор, и лично видел её в использовании у нескольких наладчиков. Если кому-то интересна история её создания или исходники прошу под кат. Читать дальше →

‎На этот раз — без сучка и задоринки. SpaceX провела статические испытания системы аварийного спасения Crew Dragon SpaceX, которая на днях впервые запустила Falcon 9 с уже трижды летавшей первой ступенью и единожды летавшим головным обтекателем, провела статические огневые испытания двигателей системы аварийного спасения (САС) пилотируемого космического корабля Crew Dragon. Эти испытания...

Участие в образовательном проекте «КиберЛето» приняли более 250 столичных школьников В Москве успешно завершился образовательный проект «КиберЛето». Свыше 250 школьников мегаполиса в его рамках посещали занятия в стенах Центра патриотического воспитания и школьного спорта. В комментарии к новости руководитель проекта Елена Авдеева рассказала о том, что в вес...

Разработчики Linux поддержат Windows Когда-то дискуссии пользователей Windows и тех, кто отдает предпочтение Linux были в Сети были не менее, если не более, актуальны, чем современные споры о преимуществах iPhone и Android. Хотя смартфоны и стали для многих пользователей основными устройствами, компьютеры сохр...

opencv4arts: Нарисуй мой город, Винсент OpenCV — библиотека с историей непрерывной разработки в 20 лет. Возраст, когда начинаешь копаться в себе, искать предназначение. Есть ли проекты на ее основе, которые сделали чью-то жизнь лучше, кого-то счастливее? А можешь ли ты сделать это сам? В поисках ответов и желании ...

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

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

SNA Hackathon 2019: усложняем архитектуру — упрощаем признаки В этой статье я расскажу про свое решение текстовой части задачи SNA Hackathon 2019. Какие-то из предложенных идей будут полезны участникам очной части хакатона, которая пройдет в московском офисе Mail.ru Group с 30 марта по 1 апреля. Кроме того, этот рассказ может быть ин...

Минздрав запустил проект по проверке заведений общепита с помощью QR-кода Клиент, приходя в какое-либо заведение, может ввести его БИН на сайте и проверить заключение о соответствии объекта санитарно-эпидемиологическим правилам и нормам РК.

Переход на Boost-1.65.1 и баги, которые всплыли В прошлом году(уже почти целый год прошел) мы все–таки перешли на новую версию Boost-1.65.1, и под капотом вы найдете тройку багов boost-а, с которыми мы столкнулись. Еще важно упомянуть, что до этого у нас в ПО использовался boost -1.62.1, поскольку какие-то баги появились ...

Как бесплатно автоматизировать мониторинг госзакупок Скажу сразу, статья скорее техническая, это инструкция. Но начну с истории. Сейчас я работаю на компанию со 100 процентным государственным участием, учредитель — одна уважаемая госкорпорация. Год назад я запустил здесь новый процесс — участие в госзакупках. Да — да, вот та...

По следам русского Scala-движа. Часть 1 Эта серия интервью приурочена к ScalaConf — к первой настоящей конференции в России, полностью посвященной Scala, которая пройдет 26 ноября. Перед этим событием я взял интервью у 6 свидетелей и «апостолов» зарождения движения Scala в России. Здесь не будет обсуждения Free, T...

Проект «Arcadia Power» поможет снизить расходы на электроэнергию на 30% Снизить счета за электроэнергию желает каждый владелец домохозяйства, торговой точки или мелкого бизнеса. Но у них нет средств на начальные инвестиции в революционные проекты. А у новаторов в области зеленой энергетики есть трудности с интеграцией их проектов в энергосистему...

C, C++ и DotNet decompile — основы реверса. Решение задач на реверсинг с r0от-мi. Часть 1 В данной статье 5 первых заданий, узнаем основы дизассемблирования, решим задачи начального уровня реверса, а также декомпилируем dotNet приложение. Организационная информацияСпециально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и...

Злоумышленники подменили установщик пакетного менеджера PEAR Разработчики PEAR (PHP Extension and Application Repository, репозиторий расширений и приложений PHP) сообщили о взломе своего веб-сервера. Согласно официальному заявлению, проникновение произошло около полугода назад. Злоумышленникам удалось внести изменения в файл для уста...

ОK, а мне точно нужен Kubernetes? В большой компании часто очень тяжело согласовывать выделение ресурсов под рабочие задачи. Весь Agile с хрустом разбивается о стену трёхнедельного согласования с ИБ новой инфраструктуры. Поэтому к нам часто приходят запросы на перевод инфраструктуры на контейнеры, чтобы вы...

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

В столице стартует новая программа поддержки бизнеса «Московский акселератор» По словам замградоначальника Москвы Натальи Сергуниной, в городе запущена новая программа «Московский акселератор». Она нацелена на поддержку местного бизнеса за счет поиска уникальных решений и помощи с их выходом и закреплением на рынке. Под эгидой проекта в 2019/2020 годы...

Некоммерческим организациям помогут настроить e-mail-маркетинг Email-маркетинг – это больше, чем просто рассылки. Выстраивание грамотной стратегии коммуникации требует основательного подхода. Этому и учатся студенты UniSender, которые готовы взяться за проекты НКО в качестве прохождения практики. Принцип win win в действии! Для ваше...

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

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