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

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

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

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

Анализ сайта: полный гайд по сервису для онлайн-аудита Руководство по сервису «Анализ сайта» от PR-CY. Автоматическая проверка сайта: SEO, трафик, технический аудит, юзабилити, санкции ПС и другие параметры.

Аудит безопасности облачной платформы MCS SkyShip Dusk by SeerLight Построение любого сервиса обязательно включает в себя постоянную работу над безопасностью. Безопасность — это непрерывный процесс, который включает в себя постоянный анализ и улучшение защищенности продукта, мониторинг новостей про уязвимости и мн...

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

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

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

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

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

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

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

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

Регламент экспресс аудитов SEO-cпециалист Александр Чепукайтис составил подробный регламент для экспресс-аудитов сайтов услуг и интернет-магазинов. Регламент включает аудит основной аудит, проверку технических факторов и внешней оптимизации, есть шаблоны для заполнения.

Nginx опубликовал обновление безопасности против DoS-уязвимостей в HTTP/2 Во вторник Nginx опубликовал пресс-релиз о важнейшем обновлении, в которое вошли патчи безопасности, закрывающие Dos-уязвимости в протоколе HTTP/2. Напомним, что эти уязвимости Netflix обнаружил еще в мае, с деталями можно ознакомиться на GitHub-странице компании. Читать да...

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

Проверка проекта CDK с помощью статического анализатора IntelliJ IDEA Я решил потестировать статический анализатор Java-кода IntelliJ IDEA и с его помощью проверил проект The Chemistry Development Kit. Здесь я приведу некоторые ошибки, которые я нашёл. Думаю, что часть из них характерна для Java-программ в целом, поэтому могут быть интересны. ...

Акция — аудит сайта(проекта) со скидкой 50% В течении 3 дней любой желающий может заказать аудит своего сайта или проекта со скидкой 50%.   Цена по акции — 3500 рублей. Что вы получите: Аудит сайта Выявление проблем у сайта Построение плана продвижение сайта Ответы на вопрос в течении 2 месяцев после аудита...

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

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

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

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

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

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

Программные решения САТЕЛ прошли аудит Минкомсвязи По итогам аудита Минкомсвязи все собственные программные продукты САТЕЛ остались в реестре российских программ для ЭВМ и баз данных и рекомендованы для закупок госструктурам: программные комплексы "Платформа РТУ", "СОВА" и "Атмосфера".

Приложения Facebook, Instagram и WeChat не обновляются в Google Play Store Обновление, которое не обновляетРаспространено мнение, что, если человек регулярно обновляет приложения до последней версии, он защищен от хакерских атак. Но это не так. Исследователи Check Point доказали, что патчи в высококлассных приложениях - Facebook, Instagram, WeChat ...

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

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

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

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

[recovery mode] Расширения Google Chrome для программиста Работа программиста настолько сложна и разнообразна, что в ней просто не обойтись без помощи различных инструментов. Подготовил для вас список полезных расширений для Google Chrome, которые облегчат вашу жизнь и сэкономят время. 1. Code Cola Плагин, который предлагает ши...

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

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

Аудит сайта проекта со скидкой 50% + месяц продвижения сайта бесплатно В течении 3 дней любой желающий может заказать аудит своего сайта или проекта со скидкой 50%.   Цена по акции — 3500 рублей. Что вы получите: Аудит сайта Выявление проблем у сайта Построение плана продвижение сайта Ответы на вопрос в течении 2 месяцев после аудита...

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

Введение в программирование: простой 3Д шутер с нуля за выходные, часть 1 Этот текст предназначен для тех, кто только осваивает программирование. Основная идея в том, чтобы показать этап за этапом, как можно самостоятельно сделать игру à la Wolfenstein 3D. Внимание, я совершенно не собираюсь соревноваться с Кармаком, он гений и его код прекрасен. ...

Анализ трендов российского YouTube за 2018 год Старожилы, наверное, и не вспомнят, но в конце 2017-го года в обсуждениях в интернете была распространена мысль о том, что в трендах YouTube часто встречаются «накрученные» видео. Поэтому накануне нового 2018-го года я написал утилиту для сбора информации о видео, которые по...

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

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

Чек-лист: что нужно было делать до того, как запускать микросервисы в prod Эта статья содержит краткую выжимку из моего собственного опыта и опыта моих коллег, с которыми мне днями и ночами доводилось разгребать инциденты. И многих инцидентов не возникло бы никогда, если бы всеми любимые микросервисы были написаны хотя бы немного аккуратнее. К сож...

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

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

VPN в каждый дом или как приручить Дракона Ниже я расскажу о том, как заменить ваш VPN провайдер собственным сервером, развернутым на DigitalOcean с использованием WireGuard. В чем главная проблема VPN провайдеров? Вы не знаете что они делают с вашими данными. Очень мало VPN провайдеров прошли сторонний аудит и почти...

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

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

[Из песочницы] Dagger 2 – это элементарно (Часть 1) Содержание Введение Что такое Dependency Injection, Пример зависимости Dagger 2 – введение Первое использование Dagger 2 Введение Статья написана не продвинутым программистом для таких же, обычными и понятными словами В статье используется пример кода на Kotlin. Версия da...

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

И снова о WIFI на 3D принтере Всем привет!Уже много раз писали как подключить принтер к wifi, но время идет все меняется...Уже и версия ESP3D поменялась и библиотеки все.Скорее это будет упрощенный перевод мануала собранный в одном месте.Поехали! Нам понадобится:ESP: ESP8266 ESP-12E прелести этой платы, ...

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

Вебинар «Как пережить комплаенс? Оптимальный подход к выполнению требований регуляторов» Не всегда аудит ИБ в компании ограничивается увлекательным пентестом: в ряде случаев требуется провести оценку соответствия разного рода нормативам и стандартам. Особенно активно пугают аббревиатурами 382-П, ОУД4, КИИ, 152-ФЗ, при этом о практических вещах не говорят: как ...

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

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

2 дня скидки 70% на аудит от Арба и Константина Мазаева Сегодня и завтра будет действовать скидки на Seo аудит и аудит о Контекстной рекламе.   Вот вся информация по Seo аудиту и находится вот здесь — http://blogarbik.ru/?page_id=2 Аудит по контекстной рекламе имеет такую же информацию как и по Seo, но проводит её Конс...

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

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

[Перевод] Делаем стильный водопад из RiME прямо в Unity или UE4 Есть игры с таким запоминающимся визуалом, что страшно считать потраченное на его разработку время, взять хотя бы последний God of War или RDR2. А бывают проекты, которые подкупают своей атмосферной, даже если они далеки от ААА. Как пример — RiME не раз хвалили за стиль, зву...

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

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

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

Опасные производства: мы следим за тобой, %username% (аналитика видео) Один товарищ — без каски, второй — без перчатки. На производствах есть много не самых хороших камер, в квадраторы которых смотрят не самые внимательные бабушки. Точнее, они там просто с ума сходят от однообразности и не всегда видят инциденты. Потом медленно звонят, а есл...

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

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

Самостоятельный SEO-аудит внутренних страниц за 15 минут Как провести быстрый аудит любой страницы сайта самостоятельно, потратив минимум времени и денег.

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

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

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

[Перевод] Занимательная практика для разработчика Человек остается начинающим в течение 1000 дней. Он находит истину после 10000 дней практики. Это цитата Оямы Масутацу, которая довольно хорошо излагает суть статьи. Если вы хотите быть классным разработчиком — приложите усилия. В этом весь секрет. Проводите много часов за к...

«Билайн» первым в России получил высокую оценку этического аудита RBEN Комплексный аудит уровня этической культуры «Билайн» провела Ассоциация этики бизнеса и КСО (RBEN, Russian Business Ethics Network).

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

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

[Перевод] Рекомендации по созданию приложений на React Native. Часть 1 Добрый день, хабровчане. Сегодня делимся с вами переводом статьи, перевод которой был подготовлен специально для первого запуска курса «ReactJS/React Native-разработчик». Приятного прочтения. Если вы новичок в мире React Native, то вы знаете, что в нем есть некоторые по...

Создаём голосовое приложение на примере Google Assistant Каждый пятый житель США владеет умной колонкой, а это 47 000 000 человек. Помощник может создать напоминание, список дел, будильник, таймер, прочитать новости, включить музыку, подкаст, заказать доставку, купить билеты в кино и вызвать такси. Все это «навыки» или «skills» по...

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

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

НПО «Эшелон» успешно выявляет уязвимости в программных продуктах Испытательная лаборатория «НПО «Эшелон» является одной из ведущих в стране и успешно провела сертификационные испытания более тысячи изделий в интересах Минобороны России, ФСБ России и ФСТЭК России. Отличительной чертой испытательной лаборатории является профессионально...

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

Мониторинг СЭС от ЦКТ «МАЙ» – подтвержденное качество ЦКТ «МАЙ» провел комплексный аудит подсистемы мониторинга и управления системы гарантированного электроснабжения резервного коммутатора одного из крупнейших сотовых операторов республики Башкортостан. Результаты аудита подтвердили эффективность разработанной и внедрен...

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

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

Вышла новая версия SiteAnalyzer 1.8 Вышла новая версия программы SiteAnalyzer, предназначенной для сканирования и анализа содержимого сайта. В версии 1.8 был полностью переработан раздел «Статистика SEO», предназначенный для проведения аудита сайта. Теперь SEO-аудит проверяет 50+ основных SEO-параметров и опре...

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

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

«СёрчИнформ» вывела на рынок продукт для аудита файловых систем Отечественный разработчик программного обеспечения «СёрчИнформ» объявил о коммерческом релизе нового продукта — «СёрчИнформ FileAuditor». Решение относится к классу DCAP-продуктов (аудит и защита неструктурированных данных) и позволяет контролировать ...

Холивар. История рунета. Часть 3. Поисковики: Яндекс vs Рамблер. Как не делать инвестиции Холивар. История рунета. Часть 1. Начало: хиппи из Калифорнии, Носик и лихие 90-е Холивар. История рунета. Часть 2. Контркультура: пАдонки, марихуана и Кремль «Я ж не сразу поддамся, ты хоть нажимай». Программисты Дмитрий Крюков и Сергей Лысаков создали Rambler.ru — гла...

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

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

Operating Systems: Three Easy Pieces. Part 2: Абстракция: Процесс (перевод) Введение в операционные системы Привет, Хабр! Хочу представить вашему вниманию серию статей-переводов одной интересной на мой взгляд литературы — OSTEP. В этом материале рассматривается достаточно глубоко работа unix-подобных операционных систем, а именно — работа с процесс...

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

Мониторинг безопасности облаков. Часть 2 Итак, я продолжу статью, посвященную мониторингу безопасности облачных провайдеров. В первой части я рассказывал об опыте Cisco в работе с внешними облачными сервисами, а также о наблюдениях Cisco, с которым мы столкнулись при построении или аудите SOCов наших заказчиков. Вз...

Бессерверный REST API «на коленке за 5 минут» Привет, Хабр! Сегодня продолжим разговор о возможностях, которые предоставляет нам Amazon Web Services и о том, как эти возможности использовать в решении прикладных задач. На простом примере рассмотрим создание буквально за несколько минут собственного бессерверного автом...

ГК «КОРУС Консалтинг» провела аудит безопасности в Itella ГК «КОРУС Консалтинг» завершила аудит системы информационной безопасности для российского офиса компании Itella, крупного международного логистического оператора. По итогам аудита эксперты сформировали набор рекомендаций для усиления контура ...

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

[Перевод] Простейший JSON RESTful API на Эликсир Как реализовать на Эликсир JSON API endpoint без каких либо фреймворков? От переводчика: В статье приведён пример очень простого веб-приложения, которое можно рассматривать как Hello, World! в создании простейшего API на Эликсире. Код примера незначительно изменён для того, ...

[recovery mode] Портал государственного и финансового аудита разбрасывается персональными данными & свалка востока Подмосковья Часть 1-я.Портал государственного и финансового аудита разбрасывается персональными данными Несколько дней назад счётная палата выступила с инициативой: охрана окружающей среды — отличная идея! Но, эту идею разделяют не все те граждане, которые реально столкнулись с проб...

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

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

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

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

[Перевод] React, JSX, импорт ES модулей (в том числе динамический) в браузере без Webpack Эта статья — попытка свести воедино имеющиеся на текущий момент средства и выяснить, возможно ли создавать production ready приложения на React без предварительной компиляции сборщиками типа Webpack, или по крайней мере свести такую компиляцию к минимуму. Все описанное носит...

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

Запустился онлайн-сервис для оценки финансовых и законодательных рисков НКО Команда благотворительного собрания «Все вместе» разработала онлайн-рискометр для российских некоммерческих организаций. С помощью него можно оценить финансовые и законодательные риски. Создатели предлагают пройти два теста: по ведению финансовой политики и по взаимодей...

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

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

Разбор уязвимостей EvilParcel Введение В середине апреля мы опубликовали новость о троянце Android.InfectionAds.1, который эксплуатировал несколько критических уязвимостей в ОС Android. Одна из них — CVE-2017-13156 (также известна как Janus) — позволяет вредоносной программе заражать APK-файлы, не повреж...

Разработка электроники. Аудит проекта в примерах. Спасаем тёплые полы всем хабром Лирическое отступление По моему мнению, в сегодняшней России наибольшие шансы на успех в области технологических стартапов имеют два типа проектов: узконишевые в области промышленной автоматизации, основанные командой профессионалов в данной области и подкреплённые старто...

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

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

NoVerify: линтер для PHP от Команды ВКонтакте теперь в открытом доступе Расскажу, как нам удалось написать линтер, который получился достаточно быстрым, чтобы проверять изменения во время каждого git push и делать это за 5−10 секунд при кодовой базе в 5 миллионов строк на PHP. Мы назвали его NoVerify. NoVerify поддерживает базовые вещи вроде ...

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

Для ждущих SKR 1.3, можно пока развлечься....) Большое дерево, выложило видео производства своих скр 1,3....)  Завораживает.... В вашем браузере отключен JavaScript BX.ready(function() { BX.message({'ENABLE_JAVASCRIPT':'В вашем браузере отключен JavaScript','JS_PLAYLISTERROR':'Произошла ошибка при загру...

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

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

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

[Перевод] Зачем ЯОП? Зачем Racket? Это продолжение статьи «Зачем Racket? Зачем Lisp?», которую я написал примерно через год после того, как открыл для себя Racket. Будучи новичком, я не мог понять дифирамбов, которые со всех сторон сыпались в адрес Lisp. Я не знал, что и думать. Как понимать, что Lisp в конце...

«Черная пятница» в PR-CY — 50% на «Анализ сайта»! До 30 ноября дарим скидку на сервис для полного аудита сайтов.

[Из песочницы] Фантазии на тему метаклассов в C# Программистам вроде меня, которые пришли в C# с большим опытом работы в Delphi, часто не хватает того, что в Delphi принято называть ссылками на класс (class reference), а в теоретических работах – метаклассами. Я несколько раз натыкался в разных форумах на обсуждение, прохо...

Использование DiagnosticSource в .NET Core: практика В предыдущей статье я рассказал про механизм DiagnosticSource и на простом примере показал, как с его помощью можно перехватывать запросы в базу данных через классы SqlConnection и SqlCommand и измерять время их выполнения. В настоящее время DiagnosticSource уже используется...

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

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

5 крутых сервисов digital-маркетинга, о которых не слышали в России Привет, Хабр! Поделюсь своим опытом работы с сервисами, которыми практически не пользуются в России, но при этом они мега-популярны в Европе и США. Кратко распишу, что это за сервисы и для чего они нужны, их плюсы/минусы на личном опыте, и дам для сравнения аналоги популяр...

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

Корректный ASP.NET Core Специально для любителей книг "С++ за 24 часа" решил написать статью про ASP.NET Core. Если вы раньше не разрабатывали под .NET или под какую-то аналогичную платформу, то смысла заходить под кат для вас нет. А вот если вам интересно узнать что такое IoC, DI, DIP, Intersept...

Как простой <img> тэг может стать высоким риском для бизнеса? Безопасность на реальных примерах всегда интересна. Сегодня поговорим об SSRF атаке, когда можно заставить сервер делать произвольные запросы в Интернет через img тэг. Итак, недавно занимался тестированием на проникновение одновременно на двух проектах, сразу на двух э...

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

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

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

АйТеко в очередной раз подтвердила статус Gold Certified Partner компании Cisco Компания «АйТеко» прошла ежегодный независимый ресертификационный аудит Cisco. В ходе аудита были детально разобраны процессы по работе с заказчиками и управлению проектами, реализуемыми на базе решений Cisco. Был оценен уровень ...

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

SDSUPPORT, Anet Board и очередная регрессия в Marlin 1.1.9 Картридер у Anet Board (и не только ее) не имеет подключенного SD_DETECT_PIN и не в состоянии определять наличие или отсутствие карты в слоте картридера.Но на Marlin 1.1.8 после старта можно было сразу печатать с карты, а на Marlin 1.1.9 надо сначала вручную делать из меню I...

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

[Из песочницы] Три парадигмы Привет, Хабр! Предлагаю вашему вниманию перевод статьи «Three Paradigms» автора Robert C. Martin (Uncle Bob). За последние 40 лет технологии аппаратного обеспечения увеличили вычислительную мощность наших устройств более чем на двадцать порядков. Теперь мы играем в Angry ...

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

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

Асинхронные пользовательские сценарии на чистом Rust без фреймворков и SMS Привет, Хабр! Иногда при разработке сетевых сервисов и пользовательских интерфейсов приходится сталкиваться с достаточно сложными сценариями взаимодействия, содержащими ветвления и циклы. Такие сценарии не укладываются в простую стейт-машину — недостаточно хранить все данны...

Мы включили TLS 1.3. Почему вам стоит сделать то же самое В начале года, в отчете о проблемах и доступности интернета за 2018-2019 мы уже писали, что распространение TLS 1.3 неизбежно. Некоторое время назад мы сами развернули версию 1.3 протокола Transport Layer Security и, после сбора и анализа данных, наконец, готовы рассказать...

Расчет нулевой гипотезы, на примере анализа зарплат украинских программистов Решил поделиться, да бы и самому не забывать, как можно использовать простые статистические инструменты для анализа данных. В качестве примера использовался анонимный опрос относительно зарплат, стажа и позиций украинских программистов за 2014 и 2019 год. (1) Этапы анализа...

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

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

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

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

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

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

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

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

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

Основы реактивного программирования с использованием RxJS. Часть 2. Операторы и пайпы В предыдущей статье мы рассмотрели, что такое потоки и с чем их едят. В новой части мы познакомимся с тем, какие методы RxJS предоставляет для создания потоков, что такое операторы, пайпы(pipes) и как с ними работать. RxJS обладает богатейшим API. В документации описано б...

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

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

Список полезных книг по анализу данных, математике, data science и machine learning Хабр, привет! Написал пост, который идет строго в закладки, он со списком полезнейших книг по анализу данных, математике, data science и machine learning. Они будут полезны как новичкам, так и профессионалам. Для удобства можете читать здесь или использовать удобный google ...

[Перевод] Posit-арифметика: победа над floating point на его собственном поле. Часть 1 Часть 2 От переводчика: Тема формата Posit уже была на хабре здесь, но без существенных технических подробностей. В этой публикации я предлагаю вашему вниманию перевод статьи Джона Густафсона (автора Posit) и Айзека Йонемото, посвящённой формату Posit. Так как статья имеет ...

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

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

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

Большое интервью про Big Data: зачем за нами следят в соцсетях и кто продает наши данные? Disclaimer. Специалист по Big Data, Артур Хачуян, рассказал, как соцсети могут читать наши сообщения, как наш телефон нас подслушивает, и кому все это нужно. Эта статья — расшифровка большого интервью. Есть люди, которые экономят время и любят текст, есть те, кто не может на...

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

[Перевод] Есть ли что-то общее у разных песен-хитов? Если выполнить вход на Spotify.me, то можно получить персонализированную сводку того, как Spotify понимает вас через музыку, которую вы слушаете на этом сайте Spotify. Это круто! Я слушаю много музыки и люблю работать с данными, поэтому это вдохновило меня на попытку анали...

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

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

[Перевод] Изучаем Python: модуль argparse Если вы занимаетесь обработкой и анализом данных с использованием Python, то вам, рано или поздно, придётся выйти за пределы Jupyter Notebook, преобразовав свой код в скрипты, которые можно запускать средствами командной строки. Здесь вам и пригодится модуль argparse. Для но...

[Из песочницы] Full-stack TypeScript Apps Привет, Хабр! Представляю вашему вниманию перевод статьи "Full-Stack TypeScript Apps — Part 1: Developing Backend APIs with Nest.js" автора Ana Ribeiro. Часть 1: Разработка серверного API с помощью Nest.JS TL;DR: это серия статей о том, как создать веб-приложение TypeScript ...

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

Введение в программирование: простой 3Д шутер с нуля за выходные, часть 2 Продолжаем разговор про 3Д шутер за выходные. Если что, то напоминаю, что это вторая половина: Часть первая: отрисовка стен Часть вторая: населяем наш мир + оконный интерфейс Как я и говорил, я всеми силами поддерживаю желание в студентах делать что-то своими руками. В ча...

[Из песочницы] Организация маршрутов в Laravel Здравствуй, Habr. Недавно я согласился на ревью сайта, заказанного на фрилансе. Я ожидал увидеть контроллеры, которые делают вообще все и занимают 200+ строк (и прочие проявления плохого кода), но все было вполне прилично. Валидация не лежала в контроллере, что встречается д...

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

Самые распространенные SEO-ошибки на сайте — исследование Serpstat В течение 2018 года пользователи Serpstat провели 204 тысячи аудитов сайтов с использованием инструмента Аудит сайта и проверили  223 миллиона страниц. Специалисты  Serpstat проанализировали эти данные и обнаружили наиболее распространенные ошибки оптимизации, кото...

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

Аудит выявил критический баг в эмуляторе терминала iTerm2 для macOS Спонсируемый Mozilla аудит выявил критическую уязвимость в эмуляторе терминала iTerm2, которая приводит к удаленному выполнению команд.

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

Гугология (это не опечатка) для программистов О математике (так, чтобы было интересно) писать сложнее, чем о физике. Однако я надеюсь, что вы дочитаете хотя бы до примеров сумасшедших программ на C. Читать дальше →

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 31. CDP, Syslog и NTP. Часть 1 Сегодня мы рассмотрим 3 концепции: проприетарный протокол Cisco CDP, системный журнал Syslog и протокол сетевого времени NTP. Мы также продолжим обсуждение темы неполадок и рассмотрим несколько инструментов для их диагностики, затем ознакомимся с Syslog и NTP и в конце урока...

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

[Перевод] Четыре больших ошибки, которые совершал каждый программист Фотограф — Blake Connally, источник — Unsplash Создание программного обеспечения — искусство. Написание кода позволяет нам самовыражаться. И каждый разработчик делает это по-своему. Но индивидуализм не бесплатен — в этой статье я напишу о некоторых самых распространённых оши...

Google открывает исходный код парсера robots.txt Сегодня компания Google анонсировала черновик RFC стандарта Robots Exclusion Protocol (REP), попутно сделав доступным свой парсер файла robots.txt под лицензией Apache License 2.0. До сегодняшнего дня какого-либо официального стандарта для Robots Exclusion Protocol (REP) и...

Если есть в кармане пачка сигарет… Но если есть в кармане пачка сигарет, Значит всё не так уж плохо на сегодняшний день. Это – знаменитая фраза из знаменитой песни Виктора Цоя. Песня, вроде, вообще не о курении, но не так давно я понял – так мог написать только курильщик. Не знаю и, наверное, никогда уже не ...

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

Web Security Testing Starter Kit Всем привет! Меня зовут Андрей. Уже 10 лет я занимаюсь поиском уязвимостей в различных веб-сервисах. и готов поделиться своими знаниями с вами. В мае прошлого года я выступал с докладом про это на конференции Heisenbug, а теперь готов поделиться своими знаниями еще и здесь,...

[Перевод] Я просканировал всю Австрию и нашёл… ...IP-камеры, принтеры, АСУ ТП и многое другое Отказ от ответственности: статья — результат нескольких недель работы. О самых больших проблемах я сообщил владельцам серверов, если смог их найти, а о других — в Cert.at. Кроме того, я не пытался войти ни на какое устройство/се...

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

Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 2 В предыдущей части мы разобрались с основными возможностями Liquibase и написали базовый пример Spring boot приложения, который использует Liquibase для инициализации БД. Полный код базового приложения можно увидеть тут. В этой статье мы поговорим про liquibase-maven-plugin ...

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

[Перевод] Анонс Github Security Lab: защита всего кода вместе Мы все несем коллективную ответственность за обеспечение безопасности программного обеспечения с открытым исходным кодом — никто из нас не может это делать в одиночку. Сегодня в Github Universe мы объявили Github Security Lab. Место где соберутся вместе исследователи безоп...

Как готовят пентестеров? Разбор вступительных испытаний для стажеров «Digital Security» Summer of Hack 2019 в Digital Security уже идёт полным ходом, а значит самое время рассказать, как мы набирали людей. Под катом объемный и интересный материал о том, как мы отбираем молодых специалистов к нам на стажировку «Summer of Hack 2019», а конкретно — в департаме...

Microsoft обвиняет Foxconn в невыплате роялти В минувшую пятницу Microsoft подала в суд на Hon Hai, родительскую компанию Foxconn, крупнейшего контрактного партнёра Apple. Stephen Brashear/Getty Images News/Getty Images Тайваньский производитель бытовой электроники якобы не соблюдает соглашение с Microsoft о лицензирова...

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

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

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

Искусственный интеллект на примере простой игры. Часть 2 В этот раз выбрана игра «Змейка». Создана библиотека для нейросети на языке Go. Найден принцип обучения, зависимый от «глубины» памяти. Написан сервер для игры между разработчиками. Читать дальше →

Как строить, развертывать и тестировать Waves RIDE dApp Здравствуйте! В статье я покажу, как написать и запустить на ноде Waves обычный dApp. Рассмотрим необходимые инструменты, методы и пример разработки. Схема разработки dApps и обычных приложений почти не отличается: Пишем код Пишем автоматизированное тестирование Запуска...

[recovery mode] QtCreator и его использование в качестве IDE для Rust В общем попросил я у коллеги маленький гайд по тому как настроить QtCreator в качестве IDE для Rust и с его разрешения выкладываю. Сам Я использую CLion и позже напишу о том как с ним дела обстоят на этом поприще. Мопед не мой. Я просто разместил объяву. (с) Что нужно совре...

«Ростех» защитит IT-инфраструктуру ангольского оператора сотовой связи Movicel Российские специалисты уже провели комплексный аудит оператора, на новом этапе сотрудничества все выявленные уязвимости в системе безопасности будут устранены.

HolyJS 2019: Разбор задач от компании SEMrush (Часть 2) Это вторая часть разбора задач от нашего стенда на конференции HolyJS, прошедшей в Санкт-Петербурге 24-25 мая. Для большего контекста рекомендуется сначала ознакомиться с первой частью настоящего материала. А если Countdown Expression уже пройден, то добро пожаловать на сл...

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

[recovery mode] История слона Slonik, логотипа PostgreSQL Привет, Хабр! Всегда думал, что логотип для продукта придумать если не пару пустяков, то дело небольшого количества времени. Однако на примере PostgreSQL видно, что это совершенно не так. Предлагаю вашему вниманию перевод статьи Патрисии Дыбки, комьюнити менеджера компани...

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

Android Camera2 API от чайника, часть 2, пишем видео Продолжаем разбираться с CAMERA2 API Android. В предыдущей статье мы осваивали работу камеры, чтобы делать фоточки, используя новое API. Теперь же займёмся съемкой видео. Вообще изначально, главной моей целью был стрим по сети живого видео с камеры Android при помощи Med...

[Из песочницы] Как сойти за хорошего программиста Привет, Хабр! Представляю вашему вниманию перевод статьи «How To Fake Being a Good Programmer» автора Stan Sootla. Программисты – это, своего рода, волшебники: слегка потрепанные персонажи-бедняки, которые умеют превращать кофе в строчки кода. Я не владею магией, я всего ...

Как защититься от копирования (парсинга) или воровства статей и фотографий с сайта? Короткая инструкция, как защититься если кто-то забирает авторский контент с вашего сайта на свои ресурсы. Написать письмо автору ресурса Первым делом имеет смысл связаться с автором сайта, где вы увидели свой контент (текст или фото). Обычно ищут страницу с контактами, с сс...

[Из песочницы] Система контроля библиотеки на Flask-Potion, Часть 0: готовим всё, что понадобится Введение В своей работе я уже некоторое время использую Flask-Potion — фреймворк, основными достоинствами которого являются: весьма удобная интеграция с SQLAlchemy моделями, автогенерация crud-эндпоинтов, наличие клиента potion-client (весьма удобного, если пишешь API сервис...

Arend – язык с зависимыми типами, основанный на HoTT (часть 2) В первой части статьи про язык Arend мы рассматривали простейшие индуктивные типы, рекурсивные функции, классы и множества. 2. Сортировка списков в Arend 2.1 Упорядоченные списки в Arend Определим тип упорядоченных списков как пару, состоящую из списка и доказательства его ...

Ubuntu 18.04 Root on ZFS В прошлом году потребовалось мне создать инструкцию по установке операционной системы Ubuntu 18.04. К слову, ничего сложного в установке Ubuntu нет, но есть нюанс: я хотел использовать файловую систему ZFS как базовую. С одной стороны, Ubuntu поддерживает ZFS на уровне ядра,...

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

Семинар “Сам себе ревизор: аудит проекта дата-центра и приемо-сдаточные испытания”, 15 августа, г. Москва 15 августа Кирилл Шадский расскажет, как сделать аудит проекта дата-центра или серверной и провести приемку построенного объекта. Кирилл 5 лет руководил службой эксплуатации крупнейшей в России сети дата-центров, проходил аудиты и сертификации Uptime Institute. Сейчас он п...

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

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

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

Optane Memory и накопители разных типов: пытаемся ускорить один SSD при помощи другого Ускорять твердотельные накопители внешним кэшированием — значит, ремонтировать то, что и не ломалось. В части сценариев у них с производительностью все и без того неплохо, а где не слишком хорошо — там и кэш не поможет (собственно, «не хорошо» зачастую как раз потому, что не...

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

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

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

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

Участвуй в розыгрыше от Andro-news! Samsung Galaxy S10 ждет тебя Давненько мы не устраивали хороших розыгрышей с отличными призами, как считаете? Вот мы и подумали, что пора бы запустить новый розыгрыш, который в этом раз мы проводим совместно с Citrus. Скоро состоится презентация, на которой Samsung представит флагманскую линейку Galaxy ...

[Из песочницы] Deploy Symfony + React приложения на AWS посредством CI Добрый день, в данной статье я покажу как развернуть Symfony 4 приложение на AWS. В официальной документации есть пример подобного процесса, однако мой вариант не столь тривиален, как загрузка zip архива с приложением. На дворе 2019, в моде docker, микросервисная архитектура...

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

[Перевод] Кризис Agile. Что делать? Ключевые моменты Многие организации устали от Agile Часть проблемы — в существовании большой коммерческой отрасли Agile Нужно вернуться к основам: простоте Манифеста и 12 принципов Примеры базовых и простых фреймворков: Heart of Agile и Modern Agile Многие уроки можно и...

[Перевод] Горячие клавиши Unreal Engine, которые сделают жизнь левел-дизайнера проще Горячие клавиши используют все. Банальные Ctrl+C и Ctrl+V, а сколько раз выручал Ctrl+Z? Ну а Alt+F4? А если вспомнить количество негативных отзывов, когда в новых MacBook Pro добавили тачбар и вырезали ряд командных клавиш? Увидел хороший гайд по полезным хоткеям и небольш...

Свежий взгляд на отображение диалогов в Android На картинке первая мысль читателя, который недоумевает, что можно написать про такую простую задачу как отображения диалога. Аналогично думает и менеджер: «Тут ничего сложного, наш Вася за 5 минут сделает». Я, конечно, утрирую, но на самом деле всё не так просто, как кажетс...

[Из песочницы] Обзор нового javascript фреймворка Htmlix В данной статье постараюсь описать все основные возможности нового javascript фреймворка Htmlix, а также рассмотреть принцип его работы на примере создания небольшого приложения. Данное приложение — это страница простого фильтра товаров по категориям, с различными частями ш...

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

В системе безопасности Google Фото имеется серьезная уязвимость, о которой вы не знали Каким бы продвинутым и хорошо защищенным не был бы тот или иной сервис. Какие бы заявления о том, что пользоваться их продуктами максимально безопасно не делали разработчики. Как бы вы не доверяли той или иной компании. Любой цифровой продукт имеет недоработки и «дыры&...

Google запустила бесплатный аналог SMS для Android. Но не спешите радоваться RCS должен был стать заменителем SMS, но как-то не срослось В последнее время в Сети всё чаще и чаще встречаются упоминания RCS. Говорят, что это бесплатный аналог привычных смс-сообщений, но никто толком не объясняет, как это стало возможно и, самое главное, почему никто не...

Опыт разработки сервиса Refund Tool с асинхронным API на Kafka Что может заставить такую большую компанию как Lamoda с отлаженным процессом и десятками взаимосвязанных сервисов существенно менять подход? Мотивация может быть совершенно разная: от законодательной до присущего всем программистам желания экспериментировать. Но это вовсе н...

[Из песочницы] Duality — легкий и быстрый движок для игростроя под Windows (Доп.) Приветствую, читатель. В данной публикации речь пойдет о перспективном и достаточно молодом игровом движке, который незаслуженно остался в тени таких гигантов, как Unity или Unreal Engine. Разработчиками является объединение энтузиастов под руководством Adam's Lair. Как...

Азартный клуб Вулкан Делюкс Отлично и весело провести время можно на одном из игровых сайтов казино Wulcan. Этот клуб предлагает невероятно увлекательные и выгодные игровые предложения для геймеров. На портале https://vulkandeluxe6.net/ можно играть без регистрации и без внесений депозита. Этот сайт им...

Ломаем простую «крякми» при помощи Ghidra — Часть 2 В первой части статьи мы при помощи Ghidra провели автоматический анализ простой программы-крякми (которую мы скачали с сайта crackmes.one). Мы разобрались с тем, как переименовывать «непонятные» функции прямо в листинге декомпилятора, а также поняли алгоритм программы «верх...

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

Обещают выход Redmi Note 8T с платформой от Qualcomm У Xiaomi сейчас сложный модельный ряд. Особенно активно множится количество устройств в рамках портфолио «дочки» Redmi. Не так давно компания представила Redmi Note 8 и Redmi Note 8 Pro, которые стали показательным примером того, как надо делать среднего класса с...

Спортфишка — ваше место для получения дополнительного заработка В современном мире каждый из нас неоднократно в интернете находился в поисках успешного варианта заработка, который вы сможете найти здесь: http://sportfishka.com/. Это и понятно, ведь всем хочется жить достойно, получать хорошие деньги, наслаждаться этой жизни в конце концо...

Security Week 32: дыра в iMessage, приватность голосового ввода 22 июля Apple выпустила обновление операционной системы iOS до версии 12.4, в котором были закрыты три серьезные уязвимости, обнаруженные экспертом из команды Google Project Zero Натали Сильванович. Самая опасная (CVE-2019-8646) позволяет красть данные с удаленного устройств...

Universal Radio Hacker — легкий способ исследовать цифровые радиопротоколы Universal Radio Hacker (URH) — невероятно простой и понятный инструмент для анализа цифровых радиопротоколов. В отличие от монстров вроде GnuRadio, освоить его можно за пять минут без мучений. Главные особенности URH: Работает на всех платформах — на macOS/Linux/Windows и...

Intel oneAPI — один за всех Итак, случилось то, о чем еще с июля месяца говорила компания Intel — вышла бета-версия Intel oneAPI Toolkits, набора инструментов для разработки, с которыми жизнь больше не будет прежней. В состав набора, как и обещалось, вошел компилятор нового языка Data Parallel C++, наб...

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

Как начать применять R в Enterprise. Пример практического подхода Публикация по выступлению на секции R meetup @ Moscow Data Science Major (Spring 2019). Вся презентация в pdf формате. Почему этот вопрос актуален? Бизнес-кейсы различны, техническая суть одинакова Аналитика работы колл-центра Аналитика продаж, включая прогнозы Антифрод си...

[recovery mode] Стратегия информационной безопасности: а вы решили, как двигаться вперед? Здравствуйте! Меня зовут Антон Удовиченко, я являюсь начальником отдела аудита «Инфосекьюрити». На основе своего опыта я подготовил инструкцию как разработать стратегию ИБ в компании. Читать дальше →

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

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

Apple запустила сервис Apple Arcade для сотрудников Пока сервис Apple Arcade, который должен предоставлять пользователям доступ к уникальным играм по подписке, не доступен широкой аудитории. Однако, как сообщают источники, некоторое время назад купертиновцы начали внутреннее тестирование игрового сервиса.Читать дальше... Pro...

[Перевод] Выпуск Rust 1.33 Команда разработчиков Rust рада сообщить о выпуске новой версии Rust, 1.33.0. Rust — это язык программирования, который дает возможность каждому создавать надежное и эффективное программное обеспечение. Если у вас установлена предыдущая версия Rust с помощью rustup, то для о...

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

[Перевод] Вышел Orleans 3.0 Это гостевой пост от команды Orleans. Orleans — это кроссплатформенный фреймворк для создания распределенных приложений с использованием .NET. Для получения дополнительной информации см. https://github.com/dotnet/orleans. Мы рады объявить о выпуске Orleans 3.0. По сравнению...

Как не промахнуться с бюджетом на серийное производство корпусов: 20 примеров из практики бюро по инженерному дизайну Публикация всего двух статей о том, как самостоятельно оценить стоимость производства корпуса для прибора (первая и вторая) подняла просто волну запросов из серии «А вот сколько будет стоить наш корпус при тираже 5-100-1000- ∞ штук?» Как выясняется в ходе общения, большин...

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

Как усилить Wi-Fi сигнал Wi-Fi стал работать хуже? Не беда! Есть решение! Если вы чувствуете, что ваш Wi-Fi стал работать плохо, то на это есть масса причин. При этом есть и не меньшее количество способов улучшить работу вашего домашнего интернета. Но не переживайте безумных лайфхаков в стиле «...

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

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

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

Написание змейки на ipad (pythonista) … или как убить время имея ipad и больше ничего... Привет! О чем речь? К сожалению, планшеты пока не заменяют компьютеры. Но покодить в поездке/полете это же жизненно необходимо. Поэтому я поискал какие ide есть под ipad, и собственно сегодня буду делать игрульку на Python...

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

Дизайн интерфейса для игры, рисуем пак иконок Всем привет! Я Михаил Кравченко, дизайнер игровых интерфейсов. Это статья о том как нарисовать пак иконок для игры. Ниже вы видите результат. Фиксируем требования к результату Вот к нам прилетела задача примерно такого содержания. В игре начинается событие — вторжение ра...

Почему программист — не самая перспективная профессия Юноше, обдумывающему житье, Решающему — делать жизнь с кого, Cкажу, не задумываясь — делай ее C товарища… Склифосовского ! Привет, Хабр! Следуя завету древних “хочешь разобраться в вопросе — напиши об этом статью”, я решил разобраться в вопросе — а какие собственно спец...

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

Python и FPGA. Тестирование В продолжение к первой статье, хочу на примере показать вариант работы с FPGA (ПЛИС) на python. В данной статье затрону подробнее аспект тестирования. Если фреймворк MyHDL позволяет людям, работающим на python, используя знакомый синтаксис и экосистему, заглянуть в мир FPGA,...

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

Космическая экология: как разглядеть свалку на снимке со спутника Космические снимки легко найти в открытом доступе. Достаточно выбрать «спутниковую подложку» на Google Maps. Что делать дальше с полученной информацией и как разглядеть свалку из космоса, Теплице рассказал генеральный директор проекта Geoalert Георгий Потапов.  След...

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

Apple все еще хочет купить часть бизнеса Intel По данным издания The Information, компания Apple не отказалась от идеи создания собственных модемов. Ускорить работы в этом направлении купертиновцам может помочь Intel. Сейчас Apple ведет переговоры о покупке немецкого подразделения чипмейкера.Читать дальше... ProstoMAC.c...

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

Теперь и на Xbox One Google Ассистент с голосовым управлением Microsoft запустила бета-тестирование Ассистента Google на Xbox One. Пользователи Xbox One получат помощника с программным обновлением, которая уже доступна. Помощник пока что общается только на английском языке, но Google и Microsoft работают над языковыми барьерами. Из з...

Hero Express – доставка для героя Разработчики из Fantastico Studio уже не новички в сегменте мобильных игр. В прошлом они выпустили неплохой пиксельный сайдскроллер под названием Black Paradox. Проект получил немало положительных отзывов. Поэтому нет ничего удивительного, что разработчики решили снова верну...

[Перевод] Создание игры Tower Defense в Unity: сценарии и волны врагов [Первая, вторая, третья и четвёртая части туториала] Поддержка врагов малого, среднего и крупного размеров. Создание игровых сценариев со множественными волнами врагов. Разделение конфигурации ассетов и геймплейного состояния. Запуск, пауза, победа, поражение и ускорение и...

Алиса в стране Битрикс Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим наше приложение так, чтобы оно отправляло заказы клиентов (т.н. лиды) в CRM Битрикс24. ...

Смотри меня полностью: выжимаем максимум из live video на мобильных платформах Самый простой способ воспроизвести видео на мобильном устройстве — это открыть ссылку имеющимся в системе плеером, но это не всегда эффективно. Можно взять ExoPlayer и оптимизировать его, а можно вообще написать свой видеоплеер, используя только кодеки и сокеты. В статье ...

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

Как мы со Стасом завод за 2 месяца автоматизировали Случалось ли вам видеть автоматизацию производственного предприятия, выполненную за 2 месяца? Или, может быть, доводилось делать такую автоматизацию? Я уверен, таких примеров много. У меня тоже есть – кидаю в копилку. Сразу скажу, чтобы у вас не было предвзятости при прочте...

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

[Из песочницы] Что они думали о программистах Привет, Хабр! Представляю вашему вниманию перевод статьи «What They Thought of Programmers» автора Robert C. Martin. Интересно и познавательно вернуться в прошлое и посмотреть, как программисты были представлены в массовой культуре. Что люди о нас думали? Знали ли они, кто ...

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

Настройка CD через gitlab Задумался как-то раз я об автоматизации развертывания своего проекта. gitlab.com любезно предоставляет для этого все инструменты, и я конечно решил воспользоваться, разобравшись и написав небольшой сценарий деплоя. В статье я делюсь своим опытом с сообществом. Читать дальше ...

[Перевод] Создание процедурного генератора головоломок В этом посте описывается генератор уровней для моей игры-головоломки Linjat. Пост можно читать и без подготовки, но он легче усвоится, если сыграть в несколько уровней. Исходный код я выложил на github; всё обсуждаемое в статье находится в файле src/main.cc. Примерный план ...

Анализ инцидентов, связанных с кибератаками на блокчейн-проекты Все помнят взлет криптовалюты в 2017 году, когда кто-то впервые о ней узнал, а кто-то смог сколотить состояние или даже успел потерять его. История криптовалюты берет начало в 90-х годах прошлого столетия, а большую популярность она получила в 2009 году, когда появился битко...

Все свое: туториал по созданию новых действий для UiPath RPA Данная статья – обучающий материал, который позволяет по шагам пройтись по процессу создания и публикации нового компонента для платформы UiPath RPA. Это удобно в разных случаях, например, для простой интеграции с системами компании или в ситуациях, когда компания хочет помо...

Эволюция H2 — оконные функции, CTE, JSON/XML во встраиваемой базе данных Есть open source проекты которые стали коммерчески успешным мейнстримом, как например PostgreSQL/Elasticsearch. Другие, к примеру RethinkDB, проиграли на рынке и остановили разработку. А проект H2 database встраиваемой базы данных, написанной на языке java, развивается и здр...

Искусство парсинга 2 или транслитерация собственной разметки +БОНУС: как включать классы друг в друга в C++ Привет, Хабр! Эта статья — прямое продолжение статьи Искусство парсинга или DOM собственными руками, где мы разобрали HTML-документ и построили на его основе абстрактное синтаксическое дерево (AST) с доступом к любому элементу ч...

[Перевод] Стильный водопад из RiME в игровом движке: делаем водяной поток Это вторая (и последняя) часть гайда по созданию водопада в Unity или UE4 после вдохновения игрой RiME. В первой разобрались с инструментами, выбрали среду разработки и создали шейдер кругов на воде. Почему начали именно с этого? Все просто: там используется большинство мето...

[Перевод] Делать хорошо, делая плохо: написание «злого» кода с помощью Go, часть 1 Вредные советы для Go-программиста После десятилетий программирования на Java, последние несколько лет я в основном работал на Go. Работать с Go — здорово, прежде всего потому, что за кодом очень легко следовать. Java упростила модель программирования C ++, удалив множеств...

[Перевод] Пример создания Makefile для Go-приложений В этом руководстве мы рассмотрим, как разработчик Go может использовать Makefile при разработке собственных приложений. Что такое Makefile-ы? Makefile — невероятно полезный инструмент автоматизации, который можно использовать для запуска и сборки приложений не только на G...

Sophos XG Firewall: От классического МЭ до NGFW с автоматической реакцией на ИБ инциденты В настоящее время происходят изменения в архитектуре угроз и резкое увеличение числа и сложности систем безопасности и, конечно, происходит эволюция в разработке средств защиты, в том числе межсетевых экранов. Межсетевые экраны нового поколения (Next-Generation Firewall, NG...

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

Samsung интегрирует сервис OneDrive в свои смартфоны. Чем это может обернуться в итоге? Зачем Samsung отказывается от собственных сервисов? Ряд инсайдеров утверждали еще в августе, Samsung может начать сотрудничество с Microsoft. Так и получилось: южнокорейская компания интегрирует сервис OneDrive для синхронизации Samsung Gallery (это корейский облачный сервис...

Еще один источник сообщает о скором анонсе 16-дюймового MacBook Pro Тайваньский ресурс DigiTimes со ссылкой на собственные источники в цепи поставщиков Apple утверждает, что официальный анонс нового MacBook Pro с 16-дюймовым дисплеем состоится уже в конце текущего месяца. Читать дальше... ProstoMAC.com.| Постоянная ссылка | No comment Вы т...

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

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

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

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

[Перевод] Как написать смарт контракт на WebAssembly в сети Ontology? Часть 2: С++ В этой статье мы разберем на двух примерах, как написать смарт контракт на языке C++, используя WASM на основе блокчейн сети Ontology. Сегодня, после нескольких месяцев стабильной работы в тестовом режиме, Ontology запустила WASM в основной сети, что позволяет безболезненн...

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

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

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

Новые сертификации для девелоперов от Cisco. Обзор отраслевых сертификаций Сертификационная программа Cisco существует уже 26 лет (была основана в 1993 году). Многим хорошо известна инженерная линейка сертификаций CCNA, CCNP, CCIE. В этом году программа дополнилась еще и сертификациями для девелепоров, а именно DevNet Associate, DevNet Specialist, ...

Зомби-проекты – сливают данные пользователей даже после своей смерти Я снова про утечки персональных данных, но на этот раз расскажу немного про загробный мир ИТ-проектов на примере двух недавних находок. В процессе аудита безопасности баз данных часто бывает, что обнаруживаешь сервера (как искать базы данных, я писал в блоге), принадлежащи...

[Перевод] PowerShell в роли инструмента для пентеста: скрипты и примеры от Varonis Хакеры любят использовать PowerShell для запуска «fileless malware» — бестелесных вредоносных программ, которые не являются традиционными бинарными файлами с компилированным вредоносным кодом, и по этой причине подчас не могут быть обнаружены антивирусными решениями. Powe...

Flutter, руководство для начинающих На дворе середина 2019 года, кроссплатформа плотно вошла в жизнь стартапов по всему миру, но все чаще в ее сторону смотрят и команды аутсорс-разработки, и клиенты, которые делают ставку на снижение затрат. Кто-то делает ставку на React Native, кто-то исследует возможности Ko...

Kotlin Native: следите за файлами Когда вы пишите command line утилиту, последнее, на что вам хочется полагаться, так это на то, что на компьютере где она будет запущена установлен JVM, Ruby или Python. Так же хотелось бы на выходе иметь один бинарный файл, который будет легко запустить. И не возиться слишко...

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

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

Трансформация кода в Android 2. Анализ AST Первая часть Пример на Github В этой статье расскажу о том, как решал проблемы, с которыми столкнулся в предыдущей части при реализации проекта. Во-первых, при анализе трансформируемого класса, нужно как-то понять, является ли этот класс наследником Activity или Fragment...

МВД расследует хищение средств, выделенных на создание российского аналога космического телескопа "Хаббл" По данным "Коммерсанта", дело о хищении было заведено в конце декабря на основе проведенного ранее аудита госконтракта 2012 года. Сумма хищения пока что оценивается в 28,5 млн рублей, а скоро в деле должны появиться подозреваемые.

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

У вас тоже есть такой друг, а может это Вы? Моему другу почти 32 и он программист (java-разработчик, если хотите). Раньше я любил читать «мотивашки», о том как люди приходят в IT, я читал их пачками, и каждая следующую, хоть и была похожа на предыдущую — давала свежий глоток позитива и оптимизма, веры в светлое будуще...

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

Разработка модулей для puppet при помощи puppet development kit Примерно месяц назад у меня был выбор: писать ли модуль для puppet "в стол" (то есть, для внутренней инфраструктуры) или делать его универсальным, открывать исходники и публиковать его на puppet forge. Конечно, быстрее и проще было бы набросать быстро под себя 2-3 класса и н...

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

[Перевод] UX Резюме: Перезагрузка Практически у каждого из вас есть резюме, не так ли? Так как это важная часть вашего основного набора инструментов используемого при поиске работы, точно такая же, как и портфолио (если у вас еще есть проблемы с этим — то вам сюда). Однако, уверены ли вы, что оно проходит че...

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

Load Balancers для систем оркестрации К Load Balancers в системах оркестрации (Kubernetes, Nomad и других) предъявляется больше требований, чем просто балансировка загрузки. Во-первых, Load Balancer должен уметь читать каталог, со списком сервисов, на которые необходимо перенаправлять трафик (или, как вариант, д...

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

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

«Хотели как лучше…» или Почему частичный технический анализ вредит сайту Частичный технический аудит сайта бесполезен и даже опасен для сайтов. Почему? Сообщение «Хотели как лучше…» или Почему частичный технический анализ вредит сайту появились сначала на Searchengines.ru.

Полезная help-ссылка для маркетологов Привет, Хабр! Представляю вам таблицу ресурсов для маркетологов. Материал в Google-таблице подойдёт как профессионалам, так и тем, кто делает первые шаги в маркетинге. Пользуйтесь, прокачивайте навыки сами и делитесь с коллегами. На данный момент файл содержит шесть раздело...

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

[Перевод] Sketch + Node.js: генерируем иконки для множества платформ и брендов Нет ничего проще, чем добавить иконку в проект: нужно всего лишь написать дизайнеру, он экспортирует её из Sketch и пришлет вам нужный вариант, а вы используете ее у себя в коде. Если же у вас с десяток проектов, несколько платформ и множество А/Б-тестов на дизайн, то дост...

Photoshop для iPad должен выйти до конца 2019 года В прошлом году компания Adobe объявила о своих планах перенести графический редактор Photoshop на iPad. В мае этого года разработчики запустили закрытое бета-тестирование приложения. Правда, точная дата релиза Photoshop для iPad все еще остается неизвестной. Однако если вери...

Холивар. История рунета. Часть 6. Блокировки: Лурк, Лента, 282-я и китайский путь Холивар. История рунета. Часть 1. Начало: хиппи из Калифорнии, Носик и лихие 90-е Холивар. История рунета. Часть 2. Контркультура: пАдонки, марихуана и Кремль Холивар. История рунета. Часть 3. Поисковики: Яндекс vs Рамблер. Как не делать инвестиции Холивар. История рунета. Ч...

Xamarin.Forms — простой пример Host-based Card Emulation В этой статье будем реализовывать так называемую Host-based Card Emulation (HCE, Эмуляция банковской карты на телефоне). В сети много подробных описаний этой технологии, здесь я сделал акцент именно на получении работающих приложений эмулятора и ридера и решении ряда практич...

Сравниваем micro:bit с Arduino. И как получить micro:bit бесплатно, если ты не английский школьник? О плате micro:bit, которая была разработана британской корпорацией Би-Би-Си для обучения школьников, уже несколько раз писали на Хабре, например, вот хорошая обзорная статья. Но, почти каждый раз, упоминание об этой плате вызывает одни и те же вопросы с большой долей сомнени...

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

Тестовый клиент TON (Telegram Open Network) и новый язык Fift для смарт-контрактов Больше года назад стало известно о планах мессенджера Telegram выпустить собственную децентрализованную сеть Telegram Open Network. Тогда стал доступен объемный технический документ, который, предположительно, был написан Николаем Дуровым и описывал структуру будущей сети. Д...

Что такое API Содержание Что такое API API — набор функций Как составляется набор функций При чем тут слово «интерфейс» Как вызывается API Вызов API напрямую Косвенный вызов API Что значит «Тестирование API» Резюме Слово «API» мелькает в вакансиях даже для начинающих тестировщико...

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

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

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

Анализ производительности ВМ в VMware vSphere. Часть 3: Storage Часть 1. Про CPU Часть 2. Про Memory Сегодня разберем метрики дисковой подсистемы в vSphere. Проблема со стораджем – самая частая причина медленной работы виртуальной машины. Если в случаях с CPU и RAM траблшутинг заканчивается на уровне гипервизора, то при проблемах с ди...

[Перевод] Python как предельный случай C++. Часть 2/2 Продолжение. Начало в «Python как предельный случай C++. Часть 1/2». Переменные и типы данных Теперь, когда мы окончательно разобрались с математикой, давайте определимся, что в нашем языке должны означать переменные. В С++ у программиста есть выбор: использовать автоматичес...

Почему ежемесячные обновления безопасности Android — это фарс Обновлений не существует. Вот доказательства Привет. Меня зовут Иван, и я апдейт-диссидент. После этого должны были послышаться вялые хлопки, но их нет. Скорее всего потому, что многим не понятно слово, которым я себя обозвал. Если вы из их числа, не пытайтесь искать определ...

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

[Перевод] Чем закончилась история с бомжом-программистом Решил разузнать из первоисточников как начиналась, развивалась и закончилась история про то, как программист обучал бомжа. Я даже пролистал всю группу в FB с логами проекта (там чересчур много деталей для поста на Хабре). Самые иллюстрирующие моменты есть в трёх статьях на M...

Робот тестирует SAP ERP Мы в Альфастраховании используем SAP ERP как процессную систему урегулирования убытков. И так уж получилось, что мы ее немножко дорабатываем, это неизбежно приводит к возникновению в коде ошибок. Если ошибки доходят до продуктивной системы — это плохо. Этого надо избегать, о...

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

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

Badoo Jira API Client: магия в Jira на PHP Если в строке поиска на Хабре ввести “Jira Badoo”, результаты займут не одну страницу: мы упоминаем её почти везде, потому что она играет важную роль в наших процессах. Причём каждый из нас хочет от нее немножко разного. Разработчик, которому пришла задача на ревью, ожида...

MAM: сборка фронтенда без боли Здравствуйте, меня зовут Дмитрий Карловский, и я… обожаю MAM. MАМ управляет Агностик Модулями, избавляя меня от львиной доли рутины. Агностик Модуль, в отличие от традиционного, это не файл с исходником, а директория, внутри которой могут быть исходники на самых разных язык...

Чайник и голосовые ассистенты. Начало большой дружбы Что мы имеем на данный период времени в мире ГА? Известный факт: каждая из крупных IT-компаний имеет свой инструмент для работы с умными домами. И каждый вендор предоставляет свой API для заинтересованных в интеграции. А на начальном этапе даже доплачивает разработчикам за...

Беспощадная автоматизация. Director's Cut Я хочу рассказать о своем опыте ускорения автоматизации в команде программистов, и о том, какие приемы мы применили на практике, и что из этого получилось. Начальные условия Наш эксперимент по ускорению работы программистов мы проводили в следующих условиях: это было террит...

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

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

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

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

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

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

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

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

Как сделать костыль для Тинькофф Инвестиций своими руками или уведомления об action required for take profit / stop loss Есть такой брокер — Тинькофф Банк. И есть проблема в том, что на текущий момент этот брокер не имеет приказов take profit / stop loss. Поэтому, если вы хотите торговать более активно, то вам нужно костылить какое-то временное решение, пока в недрах Тинькоффа программисты раз...

Сайт который не взлетел Сегодня я покажу вам пример обычного сайта и как он продвигается. Это совершенно обычный сайт, не лучший, но и не худший. Начнём. Вот сам сайт — http://monastery-russia.ru/ Идея проекта простая: По запросам монастырей очень хорошая посещаемость. А всего монастырей в Ро...

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

CardInfo — API для определения логотипа, цветов банка и прочего по номеру карты Тут и демо, и документация: cardinfo.online Это API. Вы ему 6 первых цифр банковской карты, оно вам ссылку на логотип банка, его фирменные цвета, бренд (Visa, MasterCard, и т.д.) и прочее в формате JSON. CardInfo нужен тем, кто создаёт форму для приёма банковских карт у се...

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

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

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

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

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

Умный принтер или лучше чем просто Octoprint В то время как Zavodik реализует механическую часть 4-х экструдерного принтера Z-Bolt, встал вопрос, а как же управлять “Змей Горынычем”. Если c Marlin’ом вопрос  решен уже давно, то с экраном дело обстоит сложнее. Из имеющихся экранов лишь решение от Duet Wifi умеет уп...

Сравним инструменты для аудита изменений в Active Directory: Quest Change Auditor и Netwrix Auditor Оба продукта предназначены для выявления несанкционированных действий пользователей, подозрительной активности и контроля конфигураций в инфраструктуре Microsoft. Quest Change Auditor и Netwrix Auditor прямые конкуренты, которые вполне себе борются друг с другом за место н...

[Перевод] Мой компилятор для Lisp Очень рад объявить о завершении моего первого компилятора для языка программирования! Malcc — это инкрементальный AOT-компилятор Lisp, написанный на C. Вкратце расскажу о его многолетней разработке и что я узнал в процессе. Альтернативное название статьи: «Как написать комп...

Дайджест новостей из мира PostgreSQL. Предновогодний (укороченный) выпуск №13 Мы продолжаем знакомить вас с самыми интересными новостями по PostgreSQL. В этом предновогоднем выпуске не будем утомлять вас длинным перечнем новостей. С Наступающим Новым Годом! Релизы pgAdmin4 3.6 В этой версии добавлены: из панели Properties можно дропать несколько...

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

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

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

noexcept-ctcheck или несколько простых макросов, чтобы компилятор помогал при написании noexcept кода При разработке на C++ время от времени приходится писать код, в котором исключения не должны возникать. Например, когда нам нужно написать не бросающий исключений swap для собственных типов или определить noexcept move-оператор для своего класса, или вручную реализовать нетр...

Что не нужно делать если у вас украли телефон Ранее каждый раз, когда я видел сообщения о том, что у человека украли телефон, то всегда задавался вопросом: а зачем? Ну, серьезно, зачем воруют смартфоны если: — его можно отследить по IMEI, а смена IMEI явно не бесплатна; — на телефоне могут быть установлены блокировк...

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

Монады с точки зрения программистов (и немного теории категорий) Введение Как узнать, что человек понял, что такое монады? Он сам вам об этом расскажет в первые 5 минут общения и обязательно попробует объяснить. А ещё напишет об этом текст и по возможности где-нибудь его опубликует, чтобы все остальные тоже поняли, что такое монады. Среди...

Краткое руководство по проведению пилотов и PoC Введение За годы своей работы в области ИТ и в особенности в продажах ИТ видел много пилотных проектов, но большинство из них оканчивалось ничем при значительных расходах времени. При этом, если мы говорим о тестировании железных решений, как например СХД, на каждую демо-с...

WatchOS: ставим приложения без iPhone Apple Watch 4 и 5 на ладони Apple Watch всегда рассматривались как некое дополнение к iPhone, поэтому нет ничего удивительного в том, что при своей функциональности они не «умели» многих вполне очевидных на первый взгляд вещей. К счастью, watchOS 6 привнесло долгожданные изм...

Samsung сделала приложение, которое будет работать только на Galaxy S10 5G Никто, я думаю, не станет спорить с тем, что AR (дополненная реальность) – тренд, которому производители в мире мобильной индустрии уделяют, пожалуй очень много внимания. К сожалению, в большинстве случаев это повышенное внимание приводит к созданию очередных «анимоджи», ис...

Как превратить Android-смартфон в пульт от телевизора Как превратить Android-смартфон в пульт от телевизора? Сейчас расскажем! Пульт дистанционного управления является, пожалуй, той вещью, что довольно часто теряется в квартире. Но зачем он нужен, если для этих целей отлично подойдет смартфон? Да, его тоже можно потерять, но на...

[Из песочницы] Анализ эмоциональной окраски отзывов с Кинопоиска Вступление Обработка естественного языка (NLP) является популярной и важной областью машинного обучения. В данном хабре я опишу свой первый проект, связанный с анализом эмоциональной окраски кино отзывов, написанный на Python. Задача сентиментного анализа является довольно р...

Security Week 47: нетривиальные уязвимости В прошлом году у нас уже был дайджест про нетривиальные атаки. Тогда речь шла про DoS-атаку на ПК через акустическое воздействие на жесткий диск и кражу пользовательских данных через хак со стилями CSS. А на прошлой неделе как раз было опубликовано два исследования про уязви...

SKRV1.1. И МАРЛИН 2.0 Для тех у кого такой девайс - SKRV1.1, теперь есть это - https://github.com/bigtreetech/BIGTREETECH-SKR-V1.1Есть там и схема.Может, кому поможет..)))Подробнее...

Patch’ти — не считается: сказ о патч-менеджменте в лицах и красках Наверно, все SOC-аналитики спят и видят, как их детектирующие правила отлавливают модные техники проправительственных APT-группировок, а расследования приводят к обнаружению эксплойтов для zero-day уязвимостей. К сожалению (или к счастью), большая часть инцидентов, с которым...

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

Уязвимость в браузере Internet Explorer позволяет злоумышленникам красть файлы с ПК под управлением Windows Исследователь безопасности Джон Пейдж (John Page) опубликовал подробные сведения об уязвимости XXE (XML eXternal Entity), обнаруженной в браузере Internet Explorer, которая позволяет злоумышленникам красть файлы с ПК под управлением Windows. Уязвимостью можно воспользов...

[Перевод] Патенты в дизайне: часть первая (общие положения, примеры от Apple, Facebook) У вас собственный бизнес — пиццерия. Пиццу все любят, она легко и быстро готовится, спрос высокий, это золотой стандарт американской кухни. Но вместе с тем, у вас куча конкурентов, продвигать продукцию сложнее, чем вы думали, аренда все дороже, дизайны приложений унылые, каж...

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

В сети появились снимки корпуса iPad mini 5 В конце прошлого года сразу несколько крупных сетевых изданий сообщило о том, что уже весной компания Apple может показать два новых планшетных компьютера. При этом одной из новинок должен стать преемник iPad mini 4. На днях ресурс Slashleaks опубликовал фотографии, на котор...

[Перевод] Руководство пользователя Kibana. Визуализация. Часть 6 Пятая часть перевода официальной документации по визуализации данных в Kibana. Ссылка на оригинальный материал: Kibana User Guide [6.6] » Visualize Ссылка на 1 часть: Руководство пользователя Kibana. Визуализация. Часть 1 Ссылка на 2 часть: Руководство пользователя Kibana....

[Из песочницы] Что не так с нашим IT Когда я только начинал смотреть в сторону программирования, а это, примерно, 2012 год, мои попытки нагуглить, что же учить и с чего начать, сводились к ответам с тогда еще незнакомого мне, stackoverflow и, казавшегося чуть ли ни единственным ресурсом в it — Хабре. С тех по...

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

Баг macOS позволяет получить доступ к паролям в Связке ключей Пока купертиновцы еще полностью не справились в багом в FaceTime. Однако в яблочных операционных системах уже обнаружилась другая недоработка. На этот раз ошибка была найдена в macOS. Согласно имеющимся данным, новая уязвимость связана со Связкой ключей iCloud (iCloud Keycha...

Уязвимость в ядре iOS 12 позволила взломать iPhone Xs Max За последние пару лет компания Apple заметно повысила защищенность свое+й мобильной операционной системы, исправив целый ряд уязвимостей, которые хакеры могли использовать для взлома iOS. Однако, как показывает практика, уязвимостей еще хватает. На днях это наглядно показали...

Большой гайд по профессии архитектора решений (+список полезных ссылок) Еще лет 10 лет назад роль архитектора решений (Solution Architect) на проектах выполняли сами разработчики. Теперь это отдельная профессия, довольно востребованная и активно обсуждаемая. Вместе с коллегами-архитекторами подробно разбираемся во всех деталях и рассказываем, ка...

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

Autoscaling своими руками с помощью AWX, Ansible, haproxy и Облака КРОК Какое-то время назад мы сделали безагентский (Agentless) мониторинг и алармы к нему. Это аналог CloudWatch в AWS с совместимым API. Сейчас мы работаем над балансировщиками и автоматическим скейлингом. Но пока мы не предоставляем такой сервис — предлагаем нашим заказчикам сд...

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

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

Unit-тесты в СУБД — как мы делаем это в Спортмастере, часть вторая Первая часть — здесь. Представьте ситуацию. Перед вами стоит задача разработки нового функционала. У вас есть наработки от ваших предшественников. Если предположить, что вы никаких моральных обязательств не имеете, то как бы вы поступили? Чаще всего все старые наработки ...

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

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

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

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

[Из песочницы] Делаем расширение для браузера, проверяющее результаты ЕГЭ Я, как и любой другой выпускник, переживаю по поводу экзаменов. От баллов, полученных на ЕГЭ зависит слишком многое, поэтому сейчас трудно думать о чем то другом. Чтобы не обновлять сайт check.ege.edu.ru каждые две минуты, я решил написать расширение, которое будет делать э...

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

[Перевод] Как решить «Сапёра» (и сделать его лучше) «Сапёр» (Minesweeper) — это простая игра с простыми правилами, однако некоторые её конфигурации создают любопытные трудности. В этой статье мы создадим солвер «Сапёра» с увеличивающейся сложностью, и поразмышляем над тем, как меняется динамика игры при постепенном повышении...

[Из песочницы] Руководство по организации архитектуры Android приложения Привет, Хабр! Представляю вашему вниманию вольный перевод «Руководство по архитектуре приложения (Guide to app architecture)» из JetPack. Все замечания по переводу прошу оставлять в комментариях, и они будут исправлены. Так же для всех будут полезны комментарии от тех кто ис...

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

AMA с Хабром, v 7.0. Лимон, донаты и новости Каждую последнюю пятницу месяца я делаем AMA с Хабром — перечисляю список сотрудников, которым вы можете задать любой вопрос. Сегодня вы также можете задать нам любой вопрос, но вместо списка сотрудников будут слёзы счастья и радости по поводу того, что мы стали миллионерами...

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

Хардфорк Ethereum отложен из-за обнаруженной критической уязвимости Запланированный апгрейд сети Ethereum под названием Constantinople был отложен на неопределенное время после обнаруженной критической уязвимости в одном из улучшений, сообщает CoinDesk. Речь идет об уязвимости в EIP-1283, которая, как выявила компания по аудиту смарт-контрак...

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

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

В смарт-контракте для голосований MakerDAO обнаружена уязвимость Некоммерческая организация Maker Foundation в партнерстве с компанией Coinbase и платформой Zeppelin провела второй раунд аудита смарт-контракта для голосования в сети MakerDAO, в ходе которого была обнаружена критическая уязвимость. Разработчики инициировали срочный апгрейд...

Холивар. История рунета. Часть 4. Mail.ru: игры, соцсети, Дуров Холивар. История рунета. Часть 1. Начало: хиппи из Калифорнии, Носик и лихие 90-е Холивар. История рунета. Часть 2. Контркультура: пАдонки, марихуана и Кремль Холивар. История рунета. Часть 3. Поисковики: Яндекс vs Рамблер. Как не делать инвестиции «Дамы и господа, Марк Цук...

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

[Из песочницы] Учим компьютер различать звуки: знакомство с конкурсом DCASE и сборка своего аудио классификатора за 30 минут Введение Доброго времени суток, хабр! Накопив немного опыта в решении задач классификации и детектирования акустических событий, мы с ananaskelly решили, что готовы им с вами поделиться. Цель этой статьи — познакомить вас с некоторыми задачами и рассказать о соревновании по ...

Команда Firefox выпустила для своих пользователей менеджер паролей Lockbox Вчера, 26 марта, команда разработчиков браузера Firefox представила новый продукт под названием Firefox Lockbox — менеджер паролей для мобильный устройств. Согласно странице FAQ проекта, сейчас доступна только версия для iOS, но «в ближайшее время появится и вариант для ус...

Опыт интеграции онлайн кассы Атол с собственной торговой CRM Вокруг онлайн касс в последнее время дикий ажиотаж, 1 июля 2019 заканчивается последняя отсрочка, поэтому и мне пришлось заняться этим вопросом. Тем, у кого 1С или другая система особо можно не напрягаться, но если у вас собственная самописная система, то на ваши плечи ложит...

Вебинар от Group-IB: «Red Team или Пентест» 12.02.2019 Как повысить готовность вашей организации противостоять масштабным атакам и получить более реалистичное понимание рисков для вашей инфраструктуры? Cпециалисты Group-IB, международной компании, специализирующейся на предотвращении кибератак, подготовили вебинар на тему «Re...

[Из песочницы] Bowers&Wilkins PX. Запоздалый НеОбзор На дворе 2019 год. В мире портативного беспроводного аудио царит тотальный стабилизец. Хорошо звучащие Bluetooth наушники умеют делать считанные компании. А итоговый список моделей не дотягивает и до десятка. Сегодня поговорим как раз о такой модели. Прошлогодний флагман Bow...

Генерация многофазного ШИМ сигнала на TMS320F28027 Давным давно в далекой далекой галактике я написал небольшую статью о специализированных контроллера Piccolo от Texas Instruments, которые предназначены для управления силовыми преобразователями и электроприводом. Данные контроллеры являются очень мощным инструментов разрабо...

[Из песочницы] Как я поступал в 18 университетов США Всем привет. Меня зовут Даниил, и в этой статье я хочу поделиться с вами своей историей поступления в бакалавриат 18 университетов США. В интернете достаточно много рассказов о том, как можно учиться в магистратуре или аспирантуре совершенно бесплатно, но мало кто знает, что...

[Из песочницы] Структуры данных с примерами на языке Swift. Часть первая: связаный список Предисловие Кто из iOS разработчиков не мечтал о работе в престижном месте вроде Yandex или Avito. К сожалению, про мечты на собеседованиях спрашивает только hr, а вот интервьюеры из числа разработчиков задают вопросы немного другого характера. Чем отличается reference type ...

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

«Умные» туалеты — главные звезды CES 2019. Вот некоторые из них Готовы вы к этому или нет, умные устройства наконец-то добрались и до ванной комнаты. Мы уже видели душ, температуру которого можно регулировать с iPhone, познакомились с умным зеркалом на Android и не только. Но хедлайнерами выставки CES 2019 среди гаджетов для ванной стал...

[Из песочницы] Sourcery для автоматического конвертирования в структуры объектов Realm В интернете, да и даже на Хабре, есть куча статей о том, как работать с Realm. Эта база данных достаточно удобная и требует минимальных усилий для написания кода, если ей уметь пользоваться. В этой статье будет описан метод работы, к которому пришел я. Читать дальше →

Сервер, ты меня слышишь? BROP-атака на примере задания NeoQUEST-2019 Как найти уязвимость на сервере, не имея информации о нём? Чем BROP отличается от ROP? Можно ли скачать исполняемый файл с сервера через переполнение буфера? Добро пожаловать под кат, разберём ответы на эти вопросы на примере прохождения задания NeoQUEST-2019! Читать дальш...

[Перевод] Монады за 15 минут Вступление На конференции YOW! 2013 один из разработчиков языка Haskell, проф. Филип Вадлер, показал, как монады позволяют чистым функциональным языкам осуществлять императивные по сути операции, такие, как ввод-вывод и обработку исключений. Неудивительно, что интерес аудито...

Визуализация сортировок обменами В данной статье рассматриваются различные варианты сортировки обменами, а также даётся описание простого графического приложения (processing.js) с примерами сортировок. Перед прочтением рекомендую ознакомиться со статьями: → Сортировка обменами → Пузырьковая сортировка ...

[Перевод] Выпуск Rust 1.32 Команда разработчиков Rust рада сообщить о выпуске новой версии Rust, 1.32.0. Rust — это язык программирования, который дает возможность каждому создавать надежное и эффективное программное обеспечение. Если у вас установлена предыдущая версия Rust с помощью rustup, то для о...

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

DevOops вчера и сегодня Сегодня мы поговорим немного о настоящем, будущем и о программе конференции DevOops 2019.  DevOps меняется с каждым днём. Вы помните 2004 год? У нас есть спикер, который работал с облаками в то время, когда и термина такого не было. Amazon Web Services запустили в 2006 году....

Подписка на видеосервис Apple будет стоить около $15 Ожидается, что уже в конце марта компания Apple представит свой собственный видеосервис, в который купертиновцы вложили немало сил и средств. При этом пока неизвестно, сколько именно будет стоить подписка на новый сервис. Однако аналитики уже строят предварительные прогнозы....

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

AvaloniaUI особенности на примере MessageBox Avalonia ui — восхитительный фреймворк, к которому хочется возвращаться снова и снова. Так давайте же вернемся к нему еще раз и рассмотрим некоторые особенности вместе с моим message box. Читать дальше →

Революция 2011 года: Objective-C 3.0, ссылки, сборщики мусора Иосифу Виссарионовичу, говорят, термин “гиперссылка” понравился бы. Это спорно, а кроме того, никакого отношения к тому о чем эта статья, не имеет. Речь в ней пойдет о совсем других ссылках. И о других сущностях называемых приведенными словами… В 2011 году на смену системе ...

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

Про одного парня История реальная, я все видел своими глазами. Несколько лет один парень, как и многие из вас, работал программистом. На всякий случай напишу так: «программистом». Потому что он был 1Сником, на фиксе, производственной компании. До этого он пробовал разные специальности – 4 ...

Видеообзор нового профессионального 3D принтера Flashforge Creator 3 Всем привет!Это видеообзор новой модели профессионального 3D принтера FlashForge Creator3. В видеоролике мы расскажем и покажем, на что способны два независимых экструдера. Какие сложные формы можно создавать на этом принтере. Какими опциями производитель снабдил Creator 3? ...

Восемь именных законов в UX дизайне (часть 2) Эта статья является продолжением опубликованной ранее первой части. Если вы еще не успели ознакомиться с ней, рекомендую начать именно с нее. Читать дальше →

Многие SEO-специалисты всё ещё анализируют в основном десктопные страницы – опрос Известный западный SEO-эксперт Алейда Солис (Alyeda Solis) опубликовала в Twitter опрос, согласно результатам которого многие SEO-специалисты по-прежнему уделяют основное внимание анализу десктопных страниц. Участникам опроса предлагалось ответить на следующий вопрос: «Перек...

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

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

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

Виртуальная машина на ESP8266 для запуска игр VM, написанная неуверенной рукой гуманитария в среде программирования Arduino с использованием быдлокода и велосипедов. А еще есть компилятор для нее из си-подобного языка, написанный на JavaScript теми же методами. Да. Уже можно спешить в комментарии, бросать камни. Ну а те...

Шифр ускорением: изучаем акселерометр Android-устройства на примере задания NeoQUEST-2019 Акселерометр — он же G-сенсор — является одним из самых распространенных датчиков на сегодня. Встретить его можно практически в каждом современном гаджете. Акселерометр выполняет довольно простую задачу — измеряет ускорение устройства. Давайте посмотрим, как он это делает ...

MCDM-Project. Часть 1. Концепция Предисловие Все-таки в душе я фантазер и мечтатель, на деле (в мире программирования) максимум «парень из гаража», но после «раскручивания гаек» не мог не удержаться от идеи явить Хабражителям на справедливый суд концепцию проекта MCDM-Project в целом и игрушечную тестовую ...

[Из песочницы] Уроки по SDL 2: Урок 1 — привет, SDL 2 Всем привет! Решил, вот, посмотреть на SDL 2, но на русском ничего толкового не нашел. Решил написать свое, питаясь вдохновением отсюда. Установку SDL 2 я пропущу, а начну сразу с написания программ, итак: Ваше первое окно начнем с подключения SDL 2. #include <SDL2/SD...

Как открывать ссылки в самом приложении, а не в Safari Можно открывать ссылки в приложениях прямо из Телеграмм С каждой новой версией iOS Apple уделяет пристальное внимание возможностям поделиться контентом — сейчас, например, можно открыть нужную ссылку в гораздо большем количестве приложений, чем несколько лет назад. Одн...

Чем «Вконтакте» выгодно отличается от YouTube Music и других музыкальных сервисов YouTube Music был представлен в прошлом году. Google вместе с YouTube Premium продвигает данный музыкальный сервис. Помимо YT Music, я пользовался Play Музыкой и Apple Music. Во всех трёх случаях смысла в продлении подписки не увидел и остановил свой выбор на «Вконтакт...

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

Автоматизация Для Самых Маленьких. Часть Вторая. Дизайн сети В первых двух статьях я поднял вопрос автоматизации и набросал её фреймворк, во второй сделал отступление в виртуализацию сети, как первый подход к автоматизации настройки сервисов. А теперь пришло время нарисовать схему физической сети. Если вы не на короткой ноге с устрой...

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

Распознавание номеров. Практическое пособие. Часть 1 Все начиналось банально — моя компания уже год платила ежемесячно плату за сервис, который умел находить регион с номерными знаками на фото. Эта функция применяется для автоматической зарисовки номера у некоторых клиентов. И в один прекрасный день МВД Украины открыло дост...

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

Fusion 360 - редактируем готовые компоненты. Меняем T-slot, на V-slot Всем привет. Продолжаем изучать Fusion 360. Подготовил для вас очередной видеоурок.В данном видео расскажу и покажу вам как во Fusion 360 можно поменять готовый компонент из библиотек готовых компонентов на примере конструкционного профиля T-slot и V-slot. Как обещано в виде...

Сканирование на уязвимости и безопасная разработка. Часть 1 В рамках профессиональной деятельности разработчикам, пентестерам, безопасникам приходится сталкиваться с такими процессами, как Vulnerability Management (VM), (Secure) SDLC. Под этими словосочетаниями скрываются различные наборы практик и используемых инструментов, которы...

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

Подставка для дозиметра СОЭКС 112 Недавно увидел в каталогах дозиметр СОЭКС 112 и ради интереса купил его. Надеюсь, радиофилы со стажем не закидают меня помидорами... Я знаю, что нужен прибор, в котором используется счётчик со слюдяным окном (например, Радиаскан или МКС) или даже сцинтиллятор и ФЭУ, но решил...

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

[Из песочницы] Руководство Google по стилю в C++ Часть 1. Именование Часть 2. Комментарии … Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Хотя все C++ программисты читают на английском легче, чем на родном, приятнее иметь...

[Перевод] Руководство пользователя Kibana. Визуализация. Часть 5 Пятая часть перевода официальной документации по визуализации данных в Kibana. Ссылка на оригинальный материал: Kibana User Guide [6.6] » Visualize Ссылка на 1 часть: Руководство пользователя Kibana. Визуализация. Часть 1 Ссылка на 2 часть: Руководство пользователя Kibana. В...

Обзор IPSec в Mikrotik IPSec (IP Security) — набор протоколов и алгоритмов для шифрования данных в IPv4 и IPv6 сетях. Звучит не сложно, но IPSec не устанавливает четких правил для шифрования трафика, вместо этого разработчики реализуют набор инструментов (протоколов и алгоритмов), используя которы...

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

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

JVM TI: как сделать плагин для виртуальной машины Хотели бы вы добавить в JVM какую-нибудь полезную фичу? Теоретически каждый разработчик может внести свой вклад в OpenJDK, однако на практике любые нетривиальные изменения в HotSpot принимают со стороны не очень-то охотно, и даже с текущим укороченным релизным циклом могут...

Selenium, Selenoid, Selenide, Selendroid… Что все это значит? Привет, Хабр! В мире автоматизации новичку ориентироваться довольно сложно. Приходится узнавать множество понятий, разбираться в особенностях существующих инструментов. Например, вот: Selenium, Selenide, Selenoid, Selendriod — что это, чем отличается? Да и можно ли их сравн...

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

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

Huawei вернулась в списки членов консорциума SD Association и Wi-Fi Alliance За последнюю неделю компания Huawei исчезла из списка членов консорциума SD Association и из аналогичного списка Wi-Fi Alliance. Правда, во втором случае ситуация была не столь плачевной. Однако уже сегодня Huawei появилась в списках обеих групп. С чем это связа...

Компания Bitwise наняла поставщиков услуг для биткоин-ETF Компания Bitwise Asset Management наняла нескольких поставщиков услуг под запуск своего биткоин-ETF, включая банк BNY Mellon. Об этом говорится в соответствующей заявке Bitwise Bitcoin ETF Trust на сайте . BNY Mellon выступит администратором предлагаемого биржевого фонда, и ...

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

Всё ли могут деньги? Юзабилити-аудит сайта на три миллиона Когда я встречаю очередную историю о том, как «инновационные» стартапы сливают миллионы на создание сервиса, а потом их сайт выглядит как нечто невразумительное, я искренне негодую. А прочитав статью о многозадачности и симбиозе от сооснователя и операционного директора «Тно...

Морти, мы в UltraHD! Как посмотреть любой фильм в 4K, дорисовав его через малоизвестную нейросеть Наверное, вы слышали про технологию Яндекса DeepHD, с помощью которой они как-то раз улучшили качество советских мультфильмов. Увы, в публичном доступе ее еще нет, а у нас, рядовых программистов, вряд ли найдутся силы написать свое решение. Но лично мне, как обладателю Retin...

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

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

5 ошибок начинающего лида У каждого тимлида есть своё кладбище сотрудников управленческих ошибок. Каждый день публикуются новые статьи «5 ошибок начинающего разработчика», «7 примеров того, как не надо управлять процессами», «100 и 1 способ укладываться в сроки». И это круто! Чужие грабли экономят в...

Киберпреступники вновь атакуют сайты на Drupal Специалисты компании Akamai Technologies выяснили, что злоумышленники все еще пользуются уязвимостью Drupalgeddon2, пропатченной полтора года назад. Исследователи обнаружили следы атак в журналах сканеров безопасности, а также провели анализ полезной нагрузки, найденной на о...

Назло Роскомнадзору: список зеркал для t.me без рекламы Одна из проблем, вызванных попытками Роскомнадзора заблокировать доступ к «Телеграму» на территории России стали перебои с работой внешних ссылок на каналы и профили вида t.me/habr_com. При попытке перейти по ссылке без включённого VPN или прокси появляется страница «Не удал...

[Из песочницы] Phoenix LiveView: когда вам больше не нужен JavaScript* * для создания динамической страницы Не так давно 12.12.2018 был анонсирован выход новой библиотеки для фанатов phoenix framework под названием Phoenix LiveView. Я бы хотел поделиться с вами впечатлениями от ее использования и phoenix в целом, а в следующей статье попробова...

Символьный калькулятор на C# Понадобилась мне как-то библиотека на c#, которая умеет делать символьные вычисления (время от времени дополняю возможностями одну математическую программу). Всякие исходники в сети найти можно и на разных языках, но вот что-то попроще и попонятнее найти не удавалось. Обрати...

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

Выставка в Лас-Вегасе — для разработчиков электроники, а не ее потребителей. A report from Design Automation Conference Я решил написать эту заметку на Хабре по-русски и по-английски, чтобы раздавать ссылку на нее как в англо- так и в русско-язычные форумы и группы. Русский текст не является переводом английского и наоборот — я просто написал заметку дважды (терпеть не могу переводить). Жел...

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

Кабмин намерен найти у «Укрзалізниці» и «Укрпошти» избыточное имущество, чтобы сдать его в аренду либо вовсе продать Кабинет Министров Украины на заседании 12 октября поручил Национальной акционерной компании «Нефтогаз України», а также акционерным обществам «Укрзалізниця» и «Укрпошта» провести детальный анализ и аудит своих балансов с целью выявления «избыточного имущества», которое можно...

[Перевод] Конференция DEFCON 19. Три поколения DoS-атак (с участием аудитории в качестве жертв). Часть 2 Конференция DEFCON 19. Три поколения DoS-атак (с участием аудитории в качестве жертв). Часть 1 Но что еще хуже… Я попытался разработать проект для своих студентов, и получалось забавно, но проблема заключалась в том, что нельзя было посмотреть «убиваемые» адреса, так как эт...

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

Баг в mIRC позволяет выполнить в Windows сторонний код Специалисты в области информационной безопасности Батист Девинь (Baptiste Devigne) и Бенджамин Четиуи (Benjamin Chetioui) опубликовали описание и PoC-эксплойт уязвимости в mIRC — распространенном IRC-клиенте для Windows. Как выяснили исследователи, приложение допускает внедр...

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

[Из песочницы] Честное резюме программиста Раздел 1. Soft Skills Я молчу на совещаниях. Стараюсь делать внимательное и умное лицо, даже если мне все равно. Читать дальше →

Apple не может создать 5G модем Американское издание, со ссылкой на источник в компании Apple, сообщает о трудностях известной компании при разработке модемов 5G. Оказалось, что создать столь сложную технологию компания самостоятельно не может, так как пока что нет нужных наработок, а пользоваться чужой те...

Huawei выпустила 16-дюймового конкурента MacBook Pro Если верить слухам, то в будущем компания Apple может выпустить 16-дюймовый MacBook Pro. Но случится это не раньше следующего года. По крайней мере, такие прогнозы делают многие аналитики. Пока Apple только собирается создать такое устройство Huawei уже подготовила 16-дюймов...

[Перевод] Как приоритеты pod'ов в Kubernetes стали причиной простоя в Grafana Labs Прим. перев.: Представляем вашему вниманию технические подробности о причинах недавнего простоя в работе облачного сервиса, обслуживаемого создателями Grafana. Это классический пример того, как новая и, казалось бы, исключительно полезная возможность, призванная улучшить кач...

[Перевод] Настройка НА-кластера Kubernetes на «голом железе», мониторинг, логи и примеры использования. Часть 3/3 Часть 1/3 тут. Часть 2/3 тут. Всем привет! А вот и третья часть руководства «Kubernetes на «голом железе»! Я уделю внимание мониторингу кластера и сбору логов, также мы запустим тестовое приложение для использования предварительно настроенных компонентов кластера. Затем про...

Luke, I am your fuzzer. Автоматизируем поиск уязвимостей в программах Для подписчиковФаззинг все чаще применяют и программисты — для проверки своих приложений на прочность, и исследователи безопасности, и хакеры. Но пользоваться фаззерами не выйдет, если не понимаешь, что именно они делают. В этой статье я расскажу, как работают разные виды фа...

Docker — это игрушка или нет? Или всё-таки да? Всем привет! Ооочень хочется прям сразу приступить к теме, но правильнее будет немного рассказать про мою историю: Вступление Я программист с опытом разработки frontend одностраничных приложений, scala/java и nodejs на сервере. Довольно долго (уже точно пару — тройку лет), ...

Пишем свой язык программирования, часть 1: пишем языковую ВМ Введение Доброго времени суток всем хабрачитателям! Итак, пожалуй стоит сказать, что целью моей работы, на основе которой будет написан ряд статеек было пройти весь путь создания полнофункционального ЯП самому с 0 и затем поделиться своими знаниями, наработками и опытом с и...

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

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

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

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

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

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

Настольные боевые роботы - Флиппер Всем привет! Сегодня у меня для Вас гайд по сборке настольного боевого робота класса Флиппер (опрокидыватель) в самой лёгкой весовой категории "antweight" - до 150 грамм.Ссылка на оригинальный проект робота -  https://www.thingiverse.com/thing:3186849Мои дополнения и ссылки ...

[Перевод] Реверс-инжиниринг Fantastic Dizzy Fantastic Dizzy — это игра в жанре «пазл-платформер», созданная в 1991 году компанией Codemasters. Она является частью серии игр про Диззи (Dizzy Series). Несмотря на то, что серия Dizzy до сих пор популярна, и по ней создаются любительские игры (Dizzy Age), похоже, что никт...

Близкие контакты ADL-ной степени Как навсегда вписать своё имя в историю? Первыми слетать на Луну? Первым встретиться с инопланетным разумом? У нас есть способ проще — можно вписать себя в стандарт языка C++. Хороший пример показывает Эрик Ниблер — автор C++ Ranges. «Запомните это. 19 февраля 2019 года — д...

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

Клуб Вулкан — игровые автоматы 24/7 бесплатно Вулкан хорошо известен, как клуб с лучшими автоматами. На портале собраны интересные игры: от классики до новинок. Откройте Вулкан Гранд с помощью ссылки https://domvlk.ru/vulkan-grand.htm, чтобы увидеть все разнообразие слотов. Даже самые искушенные геймеры будут приятно уд...

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

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

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

SamsPcbGuide, часть 13: Использование IBIS-моделей В этой спонтанной статье решил поделиться опытом применения IBIS-моделей на примере простой задачи. Читать дальше →

Современный валютный рынок Маринус ван Реймерсвале. Меняла и его жена. 1539 г. Музей Прадо, Мадрид. Я начал работать в Deutsche Bank программистом на Java в 2009-м году (последствия кризиса, чудо на Гудзоне, «Миллионер из трущоб», свиной грипп, поражение сборной в Мариборе). На собеседовании мне соо...

Security Week 07: локальные уязвимости IoT-устройств В традиционную рубрику «что еще не так с IoT» на прошлой неделе добавилось научное исследование специалистов из американского Мичиганского университета и бразильского Федерального университета Пернамбуку. В рамках исследования было изучено 96 IoT-устройств для умного дома из...

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