Социальные сети Рунета
Вторник, 23 апреля 2024

Микросервисы на php и swoole для конвертации телеграм каналов в RSS В предыдущем посте я рассказал про то, как настроить и использовать php телеграм клиент madelineProto для парсинга постов. Но при использовании библиотеки я столкнулся с несколькими недостатками: Долгая обработка запросов из-за авторизации телеграм клиента; Неудобная нас...

[Из песочницы] Особенности HttpUrlConnection из java.net Здравствуйте, сегодня постараюсь рассказать о том, как можно отправить запрос и прочитать ответ от HTTP сервера, используя URLConnection из библиотеки JRE. Сейчас изучаем Java в онлайн режиме. Вся наша команда использует Slack для работы и общения. Заинтересовала возможнос...

[Из песочницы] Пишем блог на микросервисах – часть 2 «API Gateway» В первой части нашего цикла статей «Пишем блог на микросервисах» мы описали общий подход к решению задачи. Теперь пришла очередь API Gateway или API GW. В нашем c ptimofeev API GW мы реализуем следующие функции: Конвертация REST запросов в gRPC запросы и наоборот. Логир...

ReactiveX Redux Все, кто работает с Redux, рано или поздно сталкиваются с проблемой асинхронных действий. Но современное приложение разработать без них невозможно. Это и http-запросы к бэкенду, и всевозможные таймеры/задержки. Сами создатели Redux говорят однозначно — по умолчанию поддержив...

[Перевод - recovery mode ] Использование Union вместо OR Иногда медленные запросы можно исправить, немного изменив запрос. Один из таких примеров может быть проиллюстрирован, когда несколько значений сравниваются в предложении WHERE с помощью оператора OR или IN. Часто OR может вызывать сканирование индекса или таблицы, которая м...

Запрос к API c React Hooks, HOC или Render Prop Рассмотрим реализацию запроса данных к API c помощью нового друга React Hooks и старых добрых товарищей Render Prop и HOC (Higher Order Component). Выясним, действительно ли новый друг лучше старых двух. Читать дальше →

Унифицированная обработка ошибок (C++ вариант для микроконтроллеров) При разработке ПО для микроконтроллеров на С++ очень часто можно столкнуться с тем, что использование стандартной библиотеки может привести к нежелательным дополнительным расходам ресурсов, как ОЗУ, так и ПЗУ. Поэтому зачастую классы и методы из библиотеки std не совсем подх...

Ответы на поисковые запросы будут показываться в адресной строке Всего месяц назад мы писали о влиянии функции zero-click, благодаря которой пользователи получили возможность получать ответы прямо на странице поисковой системы, не кликая по ссылкам. Но, как оказалось, можно пойти ещё дальше.В ближайшем обновлении Google Chrome появится фу...

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

[Из песочницы] Унификация правил валидации на примере Asp core + VueJS В статье описывается простой способ унификации правил валидации пользовательского ввода клиент-серверного приложеия. На примере простого проекта, я покажу как это можно сделать, с использованием Asp net core и Vue js. Разрабатывая веб приложения, мы как правило сталкаваемся...

[Перевод] Приближающиеся изменения SameSite Cookie в ASP.NET и ASP.NET Core SameSite — это расширение файлов cookie HTTP 2016 года, предназначенное для предотвращения подделки межсайтовых запросов (CSRF). Первоначально его дизайн представлял из себя дополнительную функцию, которую можно использовать, добавив новое свойство SameSite в файлы cookie. У...

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

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

[Перевод] Множественные запросы к API с помощью mergeMap и forkJoin вместо subscribe Руководство по использованию mergeMap и forkJoin вместо простых подписок для множественных запросов к API. В этой статье я покажу два подхода к обработке множественных запросов в Angular с использованием mergeMap и forkJoin. Читать дальше →

Поиск задач в JIRA (простым языком). Часть 2: Продвинутый поиск Структуру JQL-запросов без примеров сложно понять специалистам, не знакомым ранее с JIRA. Мы уже успели рассказать про быстрый и базовый поиск. Теперь же прейдем к самому мощному из трех методов — к продвинутому поиску. В этом режиме вы можете указывать критерии, которые ...

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

[Перевод] DNS по HTTPS – половинчатое и неверное решение Всё время существования интернета открытость была одной из его определяющих характеристик, и большая часть сегодняшнего трафика всё ещё передаётся без какого бы то ни было шифрования. Большая часть запросов HTML-страниц и связанного с этим контента делается прямым текстом...

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

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

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

Использование DiagnosticSource в .NET Core: теория DiagnosticSource — это простой, но весьма полезный набор API (доступен в NuGet пакете System.Diagnostics.DiagnosticSource), который, с одной стороны, позволяет различным библиотекам отправлять именованные события о своей работе, а с другой — позволяет приложениям подписывать...

Архитектурный шаблон “Macro Shared Transactions for Microservices” Автор: Денис Цыплаков, Solution Architect, DataArt Постановка задачи Одной из проблем при построении микросервисных архитектур и особенно при миграции монолитной архитектуры на микросервисы часто становятся транзакции. Каждый микросервис отвечает за собственную группу фун...

[Из песочницы] Разработка приложения для старого КПК (Cybiko Xtreme) в 2019 году Введение Привет Хабр! Я хотел бы поделиться своим опытом написания приложения для очень старого карманного компьютера, который серьезно опередил свое время, а именно Cybiko Xtreme 2001 года выпуска. Тем, кому интересно как жилось мобильному разработчику в начале 2000-х, до...

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

Алгоритмы Google сократят порно в результатах поиска по запросу «лесбиянка» Нет задачи проще, чем найти порно в интернете. Даже «невинный» запрос (например, «школьница») может привести к тому, что в результатах поиска Google покажет вам видеоролик 18+. Однако теперь компания решила изменить алгоритмы поиска, по крайней мере, для одного запроса — «ле...

Некоторые аспекты оптимизации LINQ-запросов в C#.NET для MS SQL Server LINQ вошел в .NET как новый мощный язык манипуляции с данными. LINQ to SQL как часть его позволяет достаточно удобно общаться с СУБД с помощью например Entity Framework. Однако, достаточно часто применяя его, разработчики забывают смотреть на то, какой именно SQL-запрос буде...

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

Что не так с валидацией данных и при чем тут принцип подстановки Лисков? Если вы иногда задаете себе вопрос: «а всё ли хорошо мне в этот метод приходит?» и выбираете между «а вдруг пронесет» и «лучше на всякий случай проверить», то добро пожаловать под кат… Читать дальше →

[Перевод] Проблема со связанными переменными: как превратить оптимизатор из врага в друга Автор статьи – Виктор Варламов, OCP. Оригинал статьи опубликован 07.07.2017. Отдельное спасибо автору перевода — brutaltag. В нашей системе подготовки отчетности обычно выполняются сотни длительных запросов, которые вызываются различными событиями. Параметрами запросов с...

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

Пишем высокопроизводительный http клиент на примере fasthttp. Александр Валялкин (VertaMedia) Библиотека Fasthttp — ускоренная альтернатива net/http из старндартных пакетов Golang. Как она устроена? Почему она такая быстрая? Паттерны из Fasthttp можно использовать для ускорения ваших приложений, вашего кода. Кому интересно, добро пожаловать под кат. Читать дальше →

[Перевод] RxDart: магические трансформации потоков Добро пожаловать — это третья часть моей серии статей об архитектуре Flutter. Введение Основы Dart Streams RxDart: магические трансформации потоков (этот пост) Основы RxVMS: RxCommand и GetIt RxVMS: Службы и Менеджеры RxVMS: самодостаточные виджеты Аутентификация пользова...

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

[Из песочницы] ClusterJ — работаем с MySQL NDB Cluster из Java Привет, Хабр! В этой статье я хочу рассмотреть такую библиотеку для Java, как ClusterJ, которая позволяет очень просто работать с движком MySQL NDBCLUSTER из Java кода, которая представляет собой высокоуровневое API, схожее по концепции с JPA и Hibernate. В рамках статьи со...

[Перевод] Синхронный Запрос-Ответ с использованием Apache Kafka Архитектуры, управляемые событиями (Event Driven Architecture), в целом, и Apache Kafka, в частности, привлекли в последнее время большое внимание. Для реализации всех преимуществ архитектуры, управляемой событиями, механизм делегирования событий должен быть по своей сути ас...

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

[Перевод] Разбор задачи с собеседования в Google: синонимичные запросы Это новая статья из разбора задач с собеседований в Google. Когда я там работал, то предлагал кандидатам такие задачи. Потом произошла утечка, и их запретили. Но у медали есть обратная сторона: теперь я могу свободно объяснить решение. Читать дальше →

Новая жизнь старых игр: максимально опенсорсный каталог source-портов (Java + PHP) Недавно мне пришла в голову возродить свой старый каталог source-портов и графических модификаций для старых игр. Новая версия должна была стать максимально опенсорсной и открытой, чтобы любой пользователь мог править как содержание сайта, так и его код, а мне бы оставалось ...

Концепция очков дополненной реальности. Моя идеальная AR гарнитура, которая возможна Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Недавно мне пришла в голову идея интересная концепция AR очков, которые могут быть нужны пользователю. Многие недооценивают некоторые аспекты с точки зрения удобства использования и пользовательс...

Boost.Spirit, или Добавляем «духовности» фильтрам списков Доброго времени суток, коллеги. Я по-прежнему являюсь разработчиком ISPsystem, и меня все еще зовут Дмитрий Смирнов. Некоторое (довольно продолжительное) время я никак не мог определиться с темой следующей публикации, поскольку материала за последние месяцы работы с Boost.A...

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

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

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

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

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

Новый сервис подсказок для поиска в hh.ru Поисковые подсказки — это здорово. Как часто мы набираем полный адрес сайта в адресной строке? А название товара в интернет-магазине? Для таких коротких запросов обычно хватает ввести несколько символов, если подсказки поиска хороши. И если вы не обладаете двадцатью пальцами...

[Перевод] Грокаем PyTorch Привет, Хабр! У нас в предзаказе появилась долгожданная книга о библиотеке PyTorch. Поскольку весь необходимый базовый материал о PyTorch вы узнаете из этой книги, мы напоминаем о пользе процесса под названием «grokking» или «углубленное постижение» той темы, которую вы ...

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

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

[Из песочницы] Как я сделал кастомный прерыватель Okhttp через котлиновские корутины Начнём с постановки задачи. Надо в каждом запросе в header’s отправлять токен и id юзера Надо из каждого ответа вытаскивать из headers новый токен и id юзера Полученные данные надо сохранять Библиотека для серверного взаимодействия – Retrofit. За многопоточность отвеча...

[recovery mode] JS итоги 2018 и прогнозы на будущее Всем привет! В конце года я решил подумать, что ждет JS разработчика в Новом 2019 году и подвести итоги этого года. Добро пожаловать под кат! Читать дальше →

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

Пишем telegram-бота на python с помощью библиотеки telebot часть 2 Всем привет! Это вторая часть статьи, в которой я посвящу время запросам и серверам telegram. Если кто-то еще не видел первую часть, то рекомендую её почитать. В третьей части скорее всего будет описана работа с базами данных. Ну и если у вас опять возникли вопросы, то пишит...

Функциональное программирование с точки зрения EcmaScript. Композиция, каррирование, частичное применение Привет, Хабр! Сегодня мы продолжим наши изыскания на тему функционального программирования в разрезе EcmaScript, на спецификации которого основан JavaScript. В предыдущей статье мы разобрали основные понятия: чистые функции, лямбды, концепцию имутабельности. Сегодня поговор...

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

Учимся общаться между микросервисами на Node.js через RabbitMQ Это продолжение статьи «Пишем первый микросервис на Node.js с общением через RabbitMQ», которая была неплохо принята пользователями хабра. В этой статье я расскажу о том, как нужно правильно общаться между микросервисами, чтобы микросервисы оставались изолированными. Читать ...

Доступ к свойствам внутри поля Jsonb для Npgsql PostgreSQL имеет тип данных Jsonb, который позволяет добавлять к стандартной реляционной модели дополнительные свойства с возможностью поиска по ним. EntityFramework Core с расширением Npgsql умеет вытягивать данные поля в тип System.String Однако для фильтрации по Json свой...

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

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

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

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

[Из песочницы] Пишем блог на микросервисах – часть 1 «Общее описание» В этой статье хочу поделится нашими c SergeyMaslov наработками решения типовых задач с использованием микросервисной архитектуры на примере задачи «создание блога» (в надежде, что читатель представляет как устроен блог и это не должно вызывать вопросов по функциональности:) ...

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

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

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

[Из песочницы] Управление несколькими шаговыми двигателями Nema 17 одновременно или NemaStepper Всем привет. Я думаю что вы, если работали с arduino+nema 17, знаете, что запустить несколько двигателей одновременно бывает очень затруднительно. Есть разные способы решения этой проблемы, самый простой, пожалуй — использование библиотеки NemaStepper. Библиотека упрощае...

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

[Перевод - recovery mode ] Руководство по SQL: Как лучше писать запросы (Часть 2) Продолжение статьи Руководство по SQL: Как лучше писать запросы (Часть 1) От запроса к планам выполнения Зная, что антипаттерны не статичны и эволюционируют по мере того, как вы растете как разработчик SQL, и тот факт, что есть много, что нужно учитывать, когда вы задумыва...

Из риелтора в разработчика игр 2. «Операция: Андроид» Добрый день, Хабр. Две моих предыдущих статьи (раз, два) вы приняли очень тепло и даже выдвинули в топ, поэтому и продолжение не заставило себя ждать. Всего-то полгода, не такой уж и большой срок. Для тех, кто не в курсе – меня зовут Тим, мне 30 лет, я риелтор и сейчас пыта...

Примеры дичи из заказов «приходите спасать» (разбор десятка инцидентов с примерами) Иногда бывает так: — Приезжайте, у нас упало. Если сейчас не поднять — покажут по телевизору. И мы едем. Ночью. На другой край страны. Ситуация, когда не повезло: на графике показан резкий рост нагрузки на СУБД. Очень часто это первое, на что смотрят администраторы систем...

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

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

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

Firefox и Chrome будут шифровать DNS-запросы и обходить цензуру Обычно резолвер сообщает каждому DNS-серверу, какой домен вы ищете. Этот запрос иногда включает ваш полный IP-адрес или его большую часть, что можно легко объединить с другой информацией, чтобы установить вашу личность. Из статьи Лин Кларк «DoH в картинках» На Хабре неодно...

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 5 ← Часть 4. Программирование периферийных устройств и обработка прерываний Библиотека генератора ассемблерного кода для микроконтроллеров AVR Часть 5. Проектирование многопоточных приложений В предыдущих частях статьи мы подробно останавливались на основах программирования с ...

Уроки по SDL 2: Урок 5 — Текстуры Всем привет и добро пожаловать на пятый урок по SDL 2, в котором мы разберем текстуры, упростив работу компьютеру. Все уроки на английском языке вы можете найти здесь. Текстуры Читать дальше →

Бережная обработка ошибок в микросервисах В статье показано, как в Go реализовать обработку ошибок и логирование по принципу "Сделал и забыл". Способ расчитан на микросервисы на Go, работающие в Docker-контейнере и построенные с соблюдением принципов Clean Architecture. Читать дальше →

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

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

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

[Из песочницы] Android preferences delegate В данной статье разобран пример создания делегата для SharedPreferences, который уменьшает boilerplate и делает использование SharedPrefernces более удобным. Те кто хочет посмотреть результат, может перейти к готовому решению, остальным добро пожаловать под кат. Читать дальш...

[Перевод] ZIO & Cats Effect: удачный союз Cats Effect стал своего рода «Reactive Streams» для функционального Scala-мира, позволив объединить всю разнообразную экосистему библиотек вместе. Многие отличные библиотеки: http4s, fs2, doobie — реализуются только на базе тайп классов из Cats Effect. А библиотеки типа ZIO...

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

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

[Перевод] Конференция DEFCON 20. Захват за 60 секунд: от гостевой учётной записи до администратора домена Windows. Часть 1 Привет, я Зак Фейзел, я буду говорить быстро, если будет слишком быстро, можете меня притормозить. Днём я пентестер, ночью диджей и фотограф, меня можно найти в «Твиттере» по нику @zfazel. Люди всегда спрашивают меня насчёт дипломов. Я не из тех людей, которые перечисляют ку...

Доверие к мобильным SDK Недавняя история о бэкдоре в популярнейшей NPM-библиотеке заставила многих задуматься о том, насколько мы доверяем стороннему коду и как смело используем его в своих проектах (потенциально подставляя тем самым пользователей наших продуктов). Но ещё за месяцы до того, как ...

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

bobaoskit — аксессуары, dnssd и WebSocket Таким образом я описал строение системы управляемых программных аксессуаров. Упрощенная модель включает в себя главный процесс(bobaoskit.worker) и скрипты аксессуаров(использующие объекты bobaoskit.sdk и bobaoskit.accessory). От главного процесса идет запрос к аксессуару дл...

Представляем InterSystems API Manager (+ вебинар) Недавно мы выпустили InterSystems API Manager (IAM) — новый компонент InterSystems IRIS Data Platform, обеспечивающий наблюдение, контроль и управление трафиком в/из web API в рамках IT-инфраструктуры. В этой статье я покажу как настраивать IAM и продемонстрирую некоторые из...

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

[Из песочницы] AnyStub, библиотека заглушек соединений в Java В отличие от множества платформ Java страдает от недостатка библиотек заглушек соединений. Если вы давно в этом мире, то наверняка должны быть знакомы с WireMock, Betamax или даже Spock. Многие разработчики в тестах используют Mockito для описания поведения объектов, DataJpa...

9. Check Point Getting Started R80.20. Application Control & URL Filtering Добро пожаловать на 9-й урок! После небольшого перерыва на майские праздники мы продолжаем наши публикации. Сегодня мы обсудим не менее интересную тему, а именно — Application Control и URL Filtering. То, ради чего иногда Check Point и покупают. Нужно заблокировать Telegra...

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

Зоопарк AFL фазеров На Хабре уже пару раз появлялись статьи, поднимающие тему American Fuzzy Lop (AFL) (1,2). Но в данной статье речь пойдет не о классическом AFL, а о вспомогательных утилитах для него и его модификациях, которые, на наш взгляд, могут значительно улучшить качество фаззинга. Е...

Оптимальная линейная фильтрация: от метода градиентного спуска до адаптивных фильтров Развивая тему конспектов по магистерской специальности "Communication and Signal Processing" (TU Ilmenau), продолжить хотелось бы одной из основных тем курса "Adaptive and Array Signal Processing". А именно основами адаптивной фильтрации. Для кого в первую очередь была напис...

Что нового в Swift 5? Привет, меня зовут Илья. Я — iOS разработчик в компании Tinkoff.ru. В этой статье я сделаю краткий обзор основных изменений в Swift 5. Данные изменения описаны в release notes. Для тех, кто еще не ознакомился, добро пожаловать под кат! Читать дальше →

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

[Перевод] Параллельные запросы в PostgreSQL В современных ЦП очень много ядер. Годами приложения посылали запросы в базы данных параллельно. Если это отчетный запрос ко множеству строк в таблице, он выполняется быстрее, когда задействует несколько ЦП, и в PostgreSQL это возможно, начиная с версии 9.6. Понадобилось 3 ...

Проблемы общего кода в микросервисах Всем привет! Недавно на конференции PGConf в Москве один из докладчиков демонстрировал «микросервисную» архитектуру, упомянув мимоходом, что все микросервисы наследуют от одного общего базового класса. Хотя никаких пояснений по реализации не было, создалось впечатление, что...

[Перевод] 34 open source библиотеки Python (2019) Мы просмотрели и сравнили 10 000 open source библиотек для Python и выбрали 34 самые полезные. Мы сгруппировали эти библиотеки в 8 категорий. Читать дальше →

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

[Перевод] Отдельный уровень логирования для каждого запроса Читая Technology Radar от ThoughtWorks, я наткнулся на технику "Отдельный уровень логирования на каждый запрос (Log level per request)". Мы в Confirmit широко используем логирование, и мне стало интересно, как можно реализовать эту функциональность. Читать дальше →

Серый кардинал .NET — Джон Гэллоуэй Знаете ли вы, кто такой Джон Гэллоуэй? А между тем, он есть. Он не только один из авторов «Professional ASP.NET MVC», но и человек, который является исполнительным директором .NET Foundation, по сути – отвечает за весь опенсорс .NET. Основные темы этой статьи: подробности р...

[Из песочницы] Таймлапс собственными силами с облачного сервиса видеонаблюдения IPEYE Недавно появилась задача ежедневно формировать таймлапс с пары камер видеонаблюдения, подключенных к IPEYE. Если вам интересно как с этим справился человек с минимальными знаниями питона или вы хотите мне указать на мои ошибки — добро пожаловать под кат… Читать дальше &rarr...

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

Подрядчики Apple часто слышат в записях Siri конфиденциальную информацию Apple постоянно подчеркивает, что заботится о конфиденциальности пользователей, но изданию The Guardian стало известно, подрядчики Apple, контролирующие качество работы голосового помощника Sir, регулярно слышат конфиденциальную информацию. Это могут быть медицинские да...

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

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

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

Google назвал самые популярные романтические запросы В преддверии 14 февраля специалисты Google проанализировали данные поиска и составили рейтинги самых популярных романтических запросов. Мировой топ запросов о любви (запросы со словом «love»): Что такое любовь? Как заниматься любовью? Как полюбить себя? Как сказать «я тебя л...

Получение информации и обход двухфакторной аутентификации по картам банка из ТОП-10 (Украина) В прошлом году украинский банк из ТОП-10 пригласил меня протестировать свои системы интернет- и мобильного банкинга на предмет уязвимостей. Первым делом я решил начать с отслеживания запросов мобильного приложения. С помощью Fiddler (Burp или Charles) я начал рассматривать...

[Из песочницы] Token, refresh token и создание асинхронной обертки для REST-запроса В данном туториале мы кратко разберем, как реализовываются REST-запросы к API, требующие, чтобы пользователь был авторизован, и создадим асинхронную «обертку» для запроса, которая будет проверять авторизацию и своевременно ее обновлять. Читать дальше →

Оптимизация node.js приложения Дано: старое http node.js приложение и возросшая нагрузка на него. Стандартные решения проблемы: докинуть серверов, все переписать с 0, оптимизировать уже написанное. Давайте попробуем пойти путем оптимизации и разобраться, как можно найти и улучшить слабые места приложения....

5 самых частых проблем игроков во free-to-play играх С недавних пор одним из продуктов devtodev стал аутсорс технической поддержки для игровых проектов. Анна Башкирова, руководитель аутсорса службы поддержки в компании devtodev, описала наиболее типичные запросы игроков в customer support, чтобы вы знали, с какими запросами вы...

OpenSceneGraph: Обработка событий Введение Одной из особенностей языка C++, за которую его часто критикуют — отсутствие в стандарте механизма обработки событий. Между тем данных механизм это один из основных путей взаимодействия одних программных компонентов с другими программными компонентами и аппаратным ...

Через тернии к игре мечты — прогресс и эволюция существ Всем привет! Мы продолжаем работать над игрой “мечты” Another Way. Это уже третий пост на эту тему, с предыдущим вы можете ознакомиться по ссылке — Через тернии к игре мечты — месяц спустя. Я не писал о прогрессе чуть более месяца, скопилось много много информации, поэтому...

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

[Перевод] 9 библиотек веб-компонентов 1. Material components web Обычно заголовок «Material» размещает библиотеку компонентов пользовательского интерфейса прямо наверху рейтингов по количеству звездочек и загрузок. Веб-библиотека Google Material-components — это версия веб-компонента библиотеки Material-UI. По...

[Перевод] Интеграционные тесты баз данных с помощью Spring Boot и Testcontainers 1. Обзор С помощью Spring Data JPA можно легко создавать запросы к БД и тестировать их с помощью встроенной базы данных H2. Но иногда тестирование на реальной базе данных намного более полезно, особенно если мы используем запросы, привязанные к конкретной реализации БД. В эт...

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

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

Как создать крутых боссов. Опыт разработчиков Shadow Fight 3 Где искать вдохновение, как построить процесс между командами, какую механику выбрать и как добиться WOW-эффекта — рассказывает геймдизайнер Banzai Games Дмитрий Аборилов. Вы сталкивались с задачей сделать финального босса игры? Такого, чтобы он надолго запомнился много...

[Из песочницы] Как спихнуть на соседа счёт за пользование услугами Yandex Maps API или для чего IT гиганту нужен контроль качества С 10 июня 2019 (а технически с ноября 2019), Яндекс прекратил поддержку анонимного использования сервисов JS API & HTTP Geocoder — тарифицируемые запросы к API (поиск, геокодирование, панорамы и т.д.) перестали работать. Но адекватного биллинга и трекинга запросов Яндекс...

О разных тиках замолвите слово или как не получить ошибку в Powershell при работе с Get-Date Доброго дня, любители Powershell. Я люблю его, и сегодня заметил одну странность, которая мотивировала к написанию данного поста. Думаю, вам тоже будет интересно. Дело о лишнем тике. Если интересно, добро пожаловать под кат: Читать дальше →

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

Check Point Falcon Acceleration Cards — ускоряем обработку трафика Относительно недавно мы публиковали статью про Check Point Maestro, новую масштабируемую платформу, которая позволяет практически линейно наращивать “мощность” шлюзов Check Point. Однако это не единственная технология увеличения производительности. Еще в 2018 году были ано...

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

Повторное использование форм на React Привет! У нас в БКС есть админка и множество форм, но в React-сообществе нет общепринятого метода — как их проектировать для переиспользования. В официальном гайде Facebook’a нет подробной информации о том, как работать с формами в реальных условиях, где нужна валидация и п...

Who is HubEx? Как мы создали платформу для управления сервисом оборудования Иногда можно услышать такую фразу «чем старше продукт, тем он функциональнее». В век современных технологий, далеко идущего web и модели SaaS это утверждение почти не работает. Залог успешной разработки это постоянный мониторинг рынка, отслеживание запросов и требований клие...

[Перевод] Плагин Veeam для бэкапа и восстановления баз данных SAP HANA В этом сезоне разработчики Veeam представили решение для бэкапа и восстановления серверов и баз данных SAP HANA. Читатели нашего блога проявили интерес к новинке — а тут как раз подоспела и полезная статья от моего коллеги Клеменса Зербе. Сегодня поделюсь ею с вами, немного ...

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

Сильвестр Сталлоне сыграет Нео в Матрице, или Кино 2.0 Замена лиц актёров с помощью нейросетей работает уже неплохо. Если интересно, вбейте на ютубе запрос «Терминатор с лицом Сталлоне». Надеюсь, по контексту понятно, что вы увидите. Технология замена лиц открытая. Проще говоря, каждый может заморочиться и подменить лицо в любо...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 47. Устранение неполадок OSPF Сегодня мы продолжим тему предыдущего урока о протоколе OSPF, которому посвящен раздел 2.4 тематики ICND2, и рассмотрим устранение типичных проблем реализации этого протокола. Вернемся к примеру Packet Tracer, которым мы закончили последнее видео. Для начала я исправлю обозн...

А компетентен ли советчик? Проблемы рекомендации «не изобретай велосипед» Довольно часто приходится встречать рекомендацию "не изобретать велоcипед". Иногда с ярко выраженным пренебрежением и самоутверждением, иногда, якобы, как дельный совет. Однако, пусть и призванная быть советом, данным из благих побуждений, в ряде контекстов она лишь показыва...

Работа с cron под Android и добавление shell-скрипта в автозапуск при загрузке устройства В связи с тем, что мобильные устройства уже давно имеют обширный функционал, то задачи автоматизации можно смело переносить и на них. И, как нельзя лучше, здесь так же хорошо подходит cron для их выполнения. Но если в «обычных» Linux системах настройка cron занимает мало в...

[Из песочницы] Как одно изменение конфигурации PostgreSQL улучшило производительность медленных запросов в 50 раз Здравсвуйте, хабровчане! Предлагаю вашему вниманию перевод статьи «How a single PostgreSQL config change improved slow query performance by 50x» автора Pavan Patibandla. Она очень сильно мне помогла улучшить производительность PostgreSQL. В Amplitude наша цель — предоставит...

Банк «Точка» повысил оперативность ответов на запросы государственных ведомств в 5 с технологиями ABBYY Банк «Точка» автоматизировал обработку обращений от государственных органов. Интеллектуальное решение ABBYY распознает данные из 7 различных видов документов и обрабатывает несколько тысяч запросов в месяц. Система сама ...

Apple извинилась за прослушку пользовательских запросов к Siri После скандала о прослушке пользовательских запросов к Siri, Apple уволила 300 сторонних подрядчиков, которые были наняты для оценки качества определения голосовых команд. Напомним, что Apple собирала голосовые запросы пользователей к Siri и отправляла их для анализа третьим...

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

Spring Data JPA В статье опишу использование Spring Data. Spring Data — дополнительный удобный механизм для взаимодействия с сущностями базы данных, организации их в репозитории, извлечение данных, изменение, в каких то случаях для этого будет достаточно объявить интерфейс и метод в нем, ...

CS231n: Свёрточные нейронные сети для распознавания образов Добро пожаловать на одну из лекций курса CS231n: Convolutional Neural Networks for Visual Recognition. Читать дальше →

DeepPavlov для разработчиков: #1 инструменты NLP и создания чат-ботов Всем привет! Мы открываем цикл статей, посвященных решению практических задач, связанных с обработкой естественного языка (Natural Language Processing или просто NLP) и созданием диалоговых агентов (чат-ботов) с помощью open-source библиотеки DeepPavlov, которую разрабатывае...

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

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

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

Дайджест интересных материалов для мобильного разработчика #287 (18 февраля — 24 февраля) На этой неделе мы обсуждали известность российских команд мобильной разработки, создание звука, переписывание кода, проблемы игроков и самые популярные приложения, сломавшиеся кроссовки и, конечно, состояние экономики приложений. Добро пожаловать в наш новый дайджест интерес...

Вышел первый трейлер «Добро пожаловать в Zомбиленд 2» Старые герои и новые зомби. Премьера 17 октября 2019 года.

[Перевод] TensorFlow для начинающих. Часть 1: общие сведения, установка библиотеки TensorFlow — это опенсорсная библиотека, созданная Google, которая используется при разработке систем, использующих технологии машинного обучения. Эта библиотека включает в себя реализацию множества мощных алгоритмов, рассчитанных на решение распространённых задач машинного ...

На чем разрабатывать Oracle разработчику в 2019-м году (и после) Некоторое время назад я в очередной раз сменил место работы. Новый работодатель был настолько любезен, что разрешил мне выбрать любую IDE, которая понравится, и оплатить лицензию (но в разумных пределах). Также (в кои-то веки) у меня были права администратора на рабочем комп...

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

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

Как мы картонный программный код делали или Scratch-версия настольной обучающей игры Битва Големов Настольной игре, обучающей основам программирования и робототехники «Битва Големов» уже 5 лет. И игра продолжает жить и развиваться. Вы можете прочитать об идеях, которые мы туда заложили и разработке первого издания в этой статье. Но сейчас речь пойдет о достаточно кардина...

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

Что нужно знать о JavaScript Engine Switcher 3.0 JavaScript Engine Switcher изначально создавался как вспомогательная библиотека и его развитие во многом определялось потребностями библиотек, которые его использовали. Фактически каждая его мажорная версия решала одну или несколько крупных задач необходимых для дальнейшего...

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

10++ способов работать с аппаратными регистрами на С++ (на примере IAR и Cortex M) Рис. И. Кийко Всем доброго здравия! Помните наверное бородатый анекдот, а может быть и правдивую историю про то, как студента спрашивали о способе измерить высоту здания с помощью барометра. Студент привел, по-моему около 20 или 30 способов, при этом не назвав прямого(ч...

5 лайфхаков оптимизации SQL-запросов в Greenplum Любые процессы, связанные с базой, рано или поздно сталкиваются с проблемами производительности запросов к этой базе. Хранилище данных Ростелекома построено на Greenplum, большая часть вычислений (transform) производится sql-запросами, которые запускает (либо генерирует и...

Выписки из Росреестра через ФГИС ЕГРН и python. Часть 1 — образец Дешевые выписки, что может быть лучше ? У Романа Андреевича Карцева есть неплохой монолог про раков вчерашних по 5 руб. и сегодняшних по 3-и. Будем считать, что прошлый пост был про раков по 5 руб. Так как выписка из ЕГРН по 300 руб., хоть и автоматизированная не каждому по...

Huawei запретила установку сторонних лаунчеров на смартфонах с EMUI 9 Многие производители смартфонов оснащают свои устройства собственными графическими оболочками на базе операционной системы Android. При этом в интернете есть масса дополнительных оболочек или лаунчеров, которые позволяют настроить внешний вид операционной системы по соб...

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

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

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

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

Deep Learning vs common sense: разрабатываем чат-бота Чем больше пользователей у вашего сервиса, тем выше вероятность, что им понадобится помощь. Чат с техподдержкой — очевидное, но довольно дорогое решение. Но если применить технологии машинного обучения, можно неплохо сэкономить. Отвечать на простые вопросы сейчас может и бо...

Microsoft рассказала о новых функциях в Xbox One System Update 1905 Компания Microsoft поделилась подробностями о новшествах, которые будут ждать пользователей в новом обновлении операционной системы для Xbox One с номером версии 1905. Участники программы Xbox Insider на каналах Alpha Skip Ahead и Alpha получат обновление уже завтра. Играть...

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

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

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

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

В Drupal залатали баг удаленного выполнения кода Разработчики Drupal сообщили об опасной уязвимости ядра, затрагивающей 7-ю и 8-ю версии CMS. Брешь дает возможность злоумышленнику удаленно выполнить любой PHP-код и перехватить управление сайтом. Создатели CMS оценили баг как в высшей степени критичный и призвали веб-админи...

[Из песочницы] Автоматически экспортируем Google Forms в Notion с помощью IFTTT и Django Всем доброго дня! Думаю, статья будет интересна всем, кто пользуется Notion, но по какой-то причине не мог переехать на него полностью. Предистория Я разрабатываю свой проект. На лэндинге после ввода емейла выдается ссылка на соцопрос на базе Google Forms. Ответы записывают...

Самая полная классификация подводных навигационных систем, что вы можете найти Приветствую вас, глубокоуважаемые! «Гидроакустика — продажная девка империализма!» (С) Почему вообще подводная навигация важна? Да потому, что без нее любой подводный аппарат — дорогая игрушка, которая находится неизвестно где, потому что проще и дешевле сделать тысячи однот...

Делаем вездесущий Splash Screen на iOS Привет Хабр! Я расскажу о реализации анимации перехода со сплэш скрина на другие экраны приложения. Задача возникла в рамках глобального ребрендинга, который не мог обойтись без изменения заставки и внешнего вида продукта. Для многих разработчиков, участвующих в крупных...

[Перевод] 7 шагов к использованию Room. Пошаговое руководство по миграции приложения на Room Room — это библиотека, которая является частью архитектурных компонентов Android. Она облегчает работу с объектами SQLiteDatabase в приложении, уменьшая объём стандартного кода и проверяя SQL-запросы во время компиляции. У вас уже есть Android-проект, который использует SQL...

[Из песочницы] Покупки в Android приложении — Play Billing Library И как это до сих пор на Хабре нет статьи об этом? Не дело, надо исправлять. Есть 2 способа добавить In-App покупки в Android-приложение — старый и новый. До 2017 года все пользовались библиотекой от anjlab, но с июня 2017 года ситуация изменилась, Google выпустила собстве...

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

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

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

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

Что важнее при кластеризации – интент запроса, или пересечения по ТОПам? Пример Вопрос пользователя: Есть информационный ключ (например «маска с репейным маслом против выпадения волос») При кластеризации мне его нужно распределить в одну из групп «репейная маска для волос» или «маска против выпадения волос» Если смотреть по топу, то пересечение по трем ...

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

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

Facebook пропатчила Fizz — свою реализацию протокола TLS Компания Facebook закрыла серьезный баг в протоколе Fizz — оригинальной реализации TLS с открытым исходным кодом. Эксплуатация уязвимости позволяла удаленному злоумышленнику вызвать отказ в обслуживании и приводила к сбою в работе целевой системы. Баг обнаружили ИБ-специалис...

Свет, камера… облако: Как облака меняют индустрию кино Вы бы предпочли 10 000 часов обработки отснятого материала на 100 машинах или один час на 1 000 000 машин? Цена одинаковая. Добро пожаловать в облако. Как и в случае с футболом, на первый взгляд непонятно, как связаны между собой облачные решения и киноиндустрия. Но если...

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

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

Клон NumPy Небольшой модуль для работы с массивами в Python без использования сторонних библиотек (клон NumPy, но только на чистом Python). Читать дальше →

В Google Trends зафиксирован аномальный рост запроса «BTC» Показатель по запросу «ВТС» в Google вырос с 2 пунктов до 100, при этом запрос «биткоин» остался прежним — 8 пунктов. Согласно одной из версий, пользователи искали компанию Bahamas Telecommunications Company (BTC), интерес к которой обусловлен ураганом Дориан...

Устаревший ключ DNSSEC подверг угрозе корневые сервера Как сообщает VeriSign, корневые сервера DNS подверглись массовой атаке запросами о данных DNNSEC после того, как был обновлён главный криптографический ключ.Начиная с октября, когда было произведено обновление, количество запросов к корневым серверам увеличилось в 75 раз - с...

1. Check Point Getting Started R80.20. Введение Добро пожаловать на первый урок! И начнем мы c Введения. Прежде чем начать разговор о Check Point мне хотелось бы сначала настроиться с вами «на одну волну». Для этого я постараюсь объяснить несколько концептуальных вещей: Что такое UTM решения и почему они появились? Чт...

Rust + CLion = Любовь Привет, Хабр! В общем как я обещал вот рассказ о том как CLion в качестве IDE для Rust на MacOS использовать. Почему не IntelliJ IDEA? Потому что CLion может дебажить. Почему LLDB, а не GDB? Потому что LLDB у меня вместе с XCode был установлен. Мне нравиться эта IDE и наде...

Роллс-ройс среди самокатов — Ninebot KickScooter ES4 by Segway В этом обзоре кто-то откроет для себя отличный электроскутер, кто-то подумает «О, о моём скутере пишут, почитаю-ка!», кто-то спросит в комментариях «А чего вы о нём только сейчас рассказываете? Он же уже не новый, да и январь на дворе». Да, не новый, да, январь, но ещё вчера...

[Перевод] О декораторах в Python Всем привет! Перевод статьи подготовлен для студентов курса «Web-разработчик на Python». Интересно развиваться в данном направлении? Запишитесь на День Открытых Дверей курса и пообщайтесь вживую с преподавателем: онлайн-трансляция 23 июля в 20:00 по мск.! Когда вы упражняли...

Открытый вебинар «Fluent Validation как инструмент валидации данных» И снова здравствуйте! В рамках запуска курса «Разработчик C#» мы провели традиционный открытый урок, посвящённый инструменту Fluent Validation. На вебинаре рассмотрели, как избавиться от кучи if-ов на примере проверки корректности заполнения данных покупателя, изучили внут...

Тестирование на примере ReactJS: насколько глубока кроличья нора Всем привет, меня зовут Ярослав Астафьев, и сегодня я хотел бы провести обзорную экскурсию в тестирование ReactJS. Я не буду углубляться в сложности тестирования веб приложений с использованием определенных библиотек (руководствуясь подходом «сложно тестировать только плохой...

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

Открытый вебинар «Порядок выполнения запроса SELECT и план запроса в MS SQL Server» И снова привет! Коллеги, в последний день января мы запускаем курс «MS SQL Server разработчик», в связи с чем у нас прошёл тематический открытый урок. На нём мы поговорили о том, как MS SQL Server выполняет запрос SELECT, обсудили, в каком порядке и что анализируется, а та...

[Из песочницы] Schemathesis: property-based тестирование для API схем Фото Chris Keats на Unsplash Многие компании, и мы в том числе, перешли от монолитов к микросервисам ради лучшей масштабируемости и ускорения циклов разработки. У нас всё еще есть монолитные проекты, но они постепенно заменяются набором небольших и аккуратных микросервисов....

Вселенная трансформеров Лахта Центра. Эпизод 1: вверху и внизу Вы верите, что трансформеры существуют? А если покажем? Один из них живет в Петербурге, на улице Высотной, дом 1. Если хотите узнать, во что он превращается, как это происходит и других секретах трансформации, приглашаем в гости. Добро пожаловать под кат! Читать дальше ...

Neoquest 2019: «Связь с небесами» Недавно закончился очередной NeoQuest. Под катом разбор третьего задания, относящегося к поиску web-уязвимостей и немножко фишингу. Интересно, как обмануть Telegram бота и заставить его поделиться ключом? Тогда добро пожаловать под кат. Читать дальше →

3 недели с Galaxy S10: плюсы и минусы Вот и пришло время менять телефон и мой выбор пал на Samsung Galaxy S10. Для тех, кто поглядывает на флагман от Samsung, добро пожаловать под кат, расскажу что с ним так, а что не очень. Читать дальше →

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

[Перевод] Разбор задачи с собеседования Google: поиск соотношения Добро пожаловать в очередную из серии статей с разбором задачек, которые я задавал на собеседованиях в Google, прежде чем их запретили после утечки. С тех пор я оставил работу инженера-программиста в Google и перешёл на должность менеджера по разработке в Reddit, но у меня...

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

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

.Net Community Райффайзенбанка приглашает на митап .NET Community Райффайзенбанка приглашает на Meetup, который состоится в московском офисе в Нагатино 23 мая. Сообщество разработчиков Райффайзенбанка активно проводит митапы, готовит вокркшопы, и делает еще много всего, для того, чтобы сотрудники могли делиться опытом и зна...

Automation Day, или как мы наращиваем слой автотестов Как часто, работая в команде, вы сталкиваетесь с ситуацией, когда часть задач по автоматизации тестирования попадает в бэклог и остается в ручном тестировании навсегда? Мы постоянно сталкиваемся с такой проблемой, и причины всегда разные: не успели / не хватило времени, а ...

Синхронизация клиентских запросов в Spring Сегодня предлагаю Вам разобрать одну практическую задачу о гонке клиентских запросов, с которой я столкнулся в МаксимаТелеком при разработке back-end для нашего мобильного приложения MT_FREE. При старте клиентское приложение асинхронно отправляет «пачку» запросов к API. При...

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

[Перевод] RxJava2. Модифицируем адаптер для обработки состояния отсутствия интернета Довольно часто необходимо делать повторные запросы в сеть, например, когда у пользователя не было интернета и он захотел получить данные из интернета. Неплохо бы было заново кинуть запрос при его появлении. Хорошая практика — показать пользователю определенный UI, который...

[Перевод] Как мы подняли производительность Tensorflow Serving на 70% Tensorflow стал стандартной платформой для машинного обучения (ML), популярной как в индустрии, так и в научных исследованиях. Создано множество свободных библиотек, инструментов и фреймворков для обучения и обслуживания моделей ML. Проект Tensorflow Serving помогает обслужи...

Что мы знаем о микросервисах Привет! Меня зовут Вадим Мадисон, я руковожу разработкой System Platform Авито. О том, как мы в компании переходим с монолитной архитектуры на микросервисную, было сказано не раз. Пора поделиться тем, как мы преобразовали свою инфраструктуру, чтобы извлечь из микросервисов м...

DDoS-бот Godlua использует DoH для сокрытия трафика Новый Linux-зловред проникает на серверы Confluence с помощью эксплойта, открывает бэкдор и ждет команд на проведение DDoS-атаки. Отличительная черта Godlua, как его называют в Qihoo 360, — использование протокола DoH (DNS поверх HTTPS) для получения URL центра управления из...

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

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

«Очная ставка» NeoQUEST-2019: в мире кибербезопасности Седьмая «Очная ставка» NeoQUEST запомнилась гостям благодаря дронам, друзьям из Сбербанка и традиционной кибербезопасной атмосфере! Если вы были у нас, то это хороший шанс вспомнить и поностальгировать. Если же вам непонятно, о чем речь, то добро пожаловать под кат — все р...

Мутационное тестирование в PHP Как оценивать качество тестов? Многие полагаются на самый популярный показатель, известный всем, — code coverage. Но это количественная, а не качественная метрика. Она показывает, какой объём вашего кода покрыт тестами, но не то, как хорошо эти тесты написаны.  Один из спос...

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

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

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

Uibook — инструмент для визуального тестирования React-компонентов с медиа-запросами Всем привет! Меня зовут Виталий Ризо, я фронтенд-разработчик в «Амплифере». Мы сделали Uibook — простой инструмент для визуального тестирования React-компонентов с реальными медиа-запросами. Расскажу, как он работает и чем может быть полезен вам. Читать дальше →

[Перевод] Глубокое обучение с подкреплением: пинг-понг по сырым пикселям Это давно назревшая статья об обучении с подкреплением Reinforcement Learning (RL). RL – крутая тема! Вы, возможно, знаете, что компьютеры теперь могут автоматически учиться играть в игры ATARI (получая на вход сырые игровые пиксели!). Они бьют чемпионов мира в игру Го, ви...

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

Конференция Selectel Networking Academy 24-го октября в нашем конференц-зале состоялась мультибрендовая конференция по сетевым технологиям — Selectel Networking Academy. На мероприятии выступили с докладами представители крупнейших производителей сетевого оборудования — Extreme Networks, Juniper Networks, Huawei...

[Перевод] Бенчмарк потребления ЦП для Istio и Linkerd Введение Мы в Shopify занялись развертыванием Istio в качестве service mesh. В принципе все устраивает, кроме одной вещи: это дорого. В опубликованных бенчмарках для Istio говорится: С Istio 1.1 прокси потребляет примерно 0,6 vCPU (виртуальных ядер) на 1000 запросов в секун...

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

"Как вернуть расположение кота": в "Яндексе" составили список самых нелепых поисковых запросов "Иногда нам попадаются на глаза запросы, которые нарочно не придумаешь: смешные, трогательные, парадоксальные. Наши данные обезличенные, мы не знаем, кто задает эти запросы, а значит, не можем нарушить анонимность их авторов. Поэтому мы решили, что они не обидятся, если мы ...

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

Supply Chain Security: «If I were a Nation State...» Задумывались ли вы, сколько различных организаций, компаний, служб, людей приняли участие в создании и транспортировке вашего компьютера, роутера и любого другого устройства, которое вы используете в повседневной жизни или на работе? И чем это опасно? Если нет, то добро пож...

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

ИИ в собственном SOC’у: мечтают ли руководители центров мониторинга кибератак об электроаналитиках Тематика искусственного интеллекта, зародившаяся еще в 60-х годах, сейчас переживает просто сумасшедший бум. Компьютеры обыгрывают шахматистов и поклонников Го, порой точнее врача ставят диагнозы, нейронные сети (на этот раз не имеющие отношения к умам трех инженеров техподд...

Разработчики исправили 0-day в банкоматах Opteva Американская компания Diebold Nixdorf залатала уязвимость 0-day в своих банкоматах через несколько дней после того, как ИБ-специалисты опубликовали ее технические детали. Баг позволял злоумышленнику дистанционно выполнить вредоносный код на терминале и перехватить управление...

Gonkey — инструмент тестирования микросервисов Gonkey тестирует наши микросервисы в Lamoda, и мы подумали, что он может протестировать и ваши, поэтому выложили его в open source. Если функциональность ваших сервисов реализована преимущественно через API, и используется JSON для обмена данными, то почти наверняка Gonkey п...

6-8 декабря — Хакатон Rosbank Tech.Madness Участвуй в нашем третьем безумном хакатоне Rosbank Tech.Madness с призовым фондом 600 000 рублей. Заявки принимаем через сайт до 24 ноября. Интересно? Тогда добро пожаловать под кат, все подробности — там. Читать дальше →

[Перевод] Государственный университет Адамс. Как взламывать веб-сайты. Часть 2 Государственный университет Адамс. Как взламывать веб-сайты. Часть 1 Давайте поговорим о нашей следующей атаке. Расскажу, как серверы вас идентифицируют. Для этого между браузером и сервером используется протокол HTTP без сохранения состояния, когда общение с сервером проис...

Получаем выписки ЕГРН из Росреестра, минуя api. Ожидания в python, квадратные миллиметры в Росреестре Не первое знакомство с порталом Росреестра Любой юрист когда-либо обращался с запросом в Росреестр (Федеральная служба государственной регистрации, кадастра и картографии). Времена, когда для запроса надо было бежать в отделение Росреестра и подавать запрос на бумаге уходят...

Moto. Мокаем AWS Тестирование — это неотъемлемая часть процесса разработки. И иногда разработчикам требуется запустить тесты локально, до того момента коммита изменений. Если приложение использует Amazon Web Services, python библиотека moto идеально для этого подходит. Читать дальше →

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

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

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

Bing начал использовать подобные BERT модели ещё в апреле Американский поисковик Bing начал использовать модели, подобные BERT, в апреле этого года – за полгода до запуска BERT Update в Google. В настоящее время Bing применяет эти модели к каждому поисковому запросу по всему миру. Между тем Google внедрил BERT только для 10% запрос...

Мой опыт подключения LPS331AP к Omega Onion2 Доброго времени суток, хабровчане! Небольшое предисловие Намедни я стал счастливым владельцем одного из самых маленьких одноплатников, работающим на LEDE, и первое, что захотелось сделать (после моргания светодиодом) — домашняя метеостанция, к которой можно получить доступ ...

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

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

Яндекс назвал самые смешные поисковые запросы 2018 года Команда аналитиков Яндекса назвала самые необычные поисковые запросы, сделанные пользователями в 2018 году. К вопросу разработчики подошли творчески — не просто перечислили смешные, трогательные или парадоксальные запросы, а создали своеобразный генератор предсказаний.

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

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

Долгожданный шаг в сторону сложно структурированных документов (+видео) Этой статьей на Хабре мы с большим удовольствием анонсируем вам, друзья, что от шаблонных жестко структурированных документов мы перешли к распознаванию различных сложно структурированных. А это, поверьте, совсем другая песня! За деталями добро пожаловать под кат. Читать да...

Субъективный user.js для Mozilla Firefox и не только Вот уже почти 15 год я пользуюсь Mozilla Firefox на ежедневной основе, и, конечно, у меня есть свой небольшой субъективный user.js, который с каждым релизом новой версии приходится обновлять. Спешу им (и не только) поделиться. Если кому-то интересно, то добро пожаловать под...

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

Обзор методов сегментации изображений в библиотеке scikit-image Thresholding Это самый простой способ отделить объекты от фона, выбрав пиксели выше или ниже определенного порога. Это обычно полезно, когда мы собираемся сегментировать объекты по их фону. Вы можете прочитать больше о пороге здесь. Люди, знакомы с фильмом «Терминатор», нав...

Разработчик придумал как улучшить Touch Bar на Windows 10 Несмотря на то, что компания Apple представила MacBook с Touch Bar уже достаточно давно, Windows 10 до сих пор не получила полной поддержки сенсорной панели. Сейчас на ней просто отображаются функциональные клавиши, без которых полноценно взаимодействовать с системой не полу...

В Google Data Studio добавили поддержку параметров BigQuery Google позволил пользователям сервиса Data Studio (Центр данных) создавать параметризованные запросы. Теперь при подключении к BigQuery через Data Studio можно будет использовать специальные параметры даты или определять свои собственные именованные параметры как часть польз...

Как изменилось приложение «Почта» в macOS Catalina Несколько дней назад Apple показала нам новую macOS Catalina. Обновление не стало революционным — компания медленно, но уверенно совершенствует свою настольную операционную систему. Среди списка изменений можно выделить: полный отказ от iTunes, дебют функции Sidecar, ...

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

[Перевод] Создание игры для SEGA Mega Drive/Genesis в 2019 году Даже сегодня люди по-прежнему продолжают создавать новые игры для старых консолей. Мы называем их «homebrew». Иногда это способ реализовать детскую мечту о создании игры для консоли, на которой играл ребёнком. Но кроме того это ещё и интересная задача для любого дизайнера и...

Роскомнадзор отправил запрос в Instagram относительно утечки данных 49 млн пользователей Роскомнадзор отправил в Instagram запрос, касающийся утечки личных данных 49 млн пользователей сервиса, о которой ранее сообщило издание TechCrunch. Среди скомпрометированных данных, размещенных в открытом доступе, оказались учетные записи, принадлежащие знаменитостям и изве...

[Перевод] Ещё 9 проектов для оттачивания Front-End мастерства Введение Независимо от того, являетесь ли вы новичком в программировании или уже опытным разработчиком, в этой отрасли изучение новых концепций и языков/фреймворков является обязательно чтобы успевать за трендами. Возьмем, к примеру, React — код которого, Facebook открыл ...

Компоненты-агностики в Angular Когда работаешь над библиотекой переиспользуемых компонентов, вопрос API встает особенно остро. С одной стороны, нужно сделать надежное, аккуратное решение, с другой — удовлетворить массу частных случаев. Это относится и к работе с данными, и к внешним особенностям различных...

[Перевод] Что такое Strict Aliasing и почему нас должно это волновать? Часть 2 (ИЛИ каламбур типизации, неопределенное поведение и выравнивание, о мой Бог!) Друзья, до запуска нового потока по курсу «Разработчик С++», остается совсем немного времени. Пришло время опубликовать перевод второй части материала, в которой рассказывается о том, что такое ка...

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

[Перевод] Как соединить кластеры Kubernetes в разных дата-центрах Добро пожаловать в серию кратких руководств по Kubernetes. Это регулярная колонка с самыми интересными вопросами, которые мы получаем онлайн и на наших тренингах. Отвечает эксперт по Kubernetes. Сегодняшний эксперт — Даниэль Поленчик (Daniele Polencic). Даниэль работает инс...

Facebook интересуется данными Whois больше всех В мае этого года вcтупил в силу закон GDPR о защите персональных данных, который наложил ограничение на доступ к данным Whois. У большинства регистраторов их можно получить только через специальный запрос.Регистратор доменов Tucows рассказал, как часто к ним обращаются с про...

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

Сверхотвратительный релиз исправлен. Apple научила iPhone и iPad работать дольше и обезопасила клавиатуры Компания Apple выпустила обновление программного обеспечения iOS 13.1.1 и iPadOS 13.1.1 для iPhone и iPad, исправляющие найденные в новых ОС неполадки. А неполадок было немало. Один из разработчиков даже назвал iOS 13 «сверхотвратительным релизом, какого не было с...

Microsoft подтвердила информацию о прослушке части звонков Skype и запросов Cortana Компания Microsoft подтвердила, что сотрудники и подрядчики могут прослушивать аудиозаписи звонков Skype и запросов Cortana, а также обновила политику конфиденциальности, явно указав, что третьи лица могут прослушивать записи для улучшения услуг. Ранее в политике указывалос...

IntelliJ IDEA 2019.2: поддержка Java 13 Preview, инструменты профилирования, новое окно сервисов и многое другое Привет! Традиционно рассказываем, что нового в IntelliJ IDEA 2019.2. Список большой и все равно неполный: если хочется больше подробностей, добро пожаловать на страницу What’s new in IntelliJ IDEA 2019.2. Читать дальше →

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

Пропатчил Exim — пропатчь еще раз. Свежее Remote Command Execution в Exim 4.92 в один запрос Совсем недавно, в начале лета, появились массовые призывы к обновлению Exim до версии 4.92 из-за уязвимости CVE-2019-10149 (Срочно обновляйте exim до 4.92 — идёт активное заражение / Хабр). А на днях выяснилось, что вредонос Sustes решил воспользоваться этой уязвимостью. Те...

[Из песочницы] Почему самоуничтожающиеся фотографии/видео в Telegram не безопасны Совсем недавно я увидел статью, где говорилось о внедрении самоуничтожающихся сообщений в мессенджере WhatsApp. Она будет иметь схожую с Telegram функциональность, но если в мессенджере Дурова удаление распространяется как на обычные сообщения (секретные чаты), также их мо...

Как почистить Mac без использования сторонних приложений Тряпочка — это хорошо, но диск она вам не почистит Зачастую свободное место заканчивается не только на iPhone или iPad, но и компьютере Mac — особенно если «под капотом» у вас SSD на 128 ГБ. Многие сразу бегут за помощью к сторонним приложениям, но во-первых, они...

В Exim пропатчили критическую уязвимость Разработчики почтового агента Exim выпустили экстренный патч к критической уязвимости своего продукта. Как уточняется в описании, злоумышленники могли атаковать системы версий 4.80–4.92.1 с включенным TLS, чтобы выполнить на сервере сторонний код с root-привилегиями. Описани...

Проблемы пакетной обработки запросов и их решения (часть 2) Это продолжение статьи «Проблемы пакетной обработки запросов и их решения». Рекомендуется сначала ознакомиться с первой частью, так как в ней подробно описана суть задачи и некоторые подходы к ее решению. Здесь же мы рассмотрим другие методы. Читать дальше →

Что предложат новые хранилища для систем ИИ и МО MAX Data объединят с Optane DC для эффективной работы с системами ИИ и МО. Фото — Hitesh Choudhary — Unsplash По данным исследования MIT Sloan Management Review и The Boston Consulting Group, 85% из трех тысяч опрошенных управленцев считают, что системы ИИ помогут их комп...

Качество — ответственность команды. Наш QA опыт Я работаю QA-инженером в Miro. Расскажу о нашем эксперименте по передаче разработчикам части задач по тестированию и трансформации роли тестера в роль QA (Quality assurance). Сначала коротко о нашем процессе разработки. У нас ежедневные клиентские релизы и от 3 до 5 серверн...

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

Мир трехмерной гиперсферы. Геодезическая трассировка лучей в замкнутой вселенной со сферической геометрией Хотели посмотреть на мир глазами существа живущего в компактной замкнутой вселенной со сферической геометрией? Посмотреть на мир без ночи? Мир, где на небе виден другой полюс планеты? Мир, где нет разницы между солнечным и лунным затмением? Добро пожаловать под кат! Читать...

[Перевод] Fluent 1.0: гибкая система локализации Fluent — семейство спецификаций, реализаций и практик для локализации, разработанной Mozilla. Сейчас она применяется в браузере Firefox. Используя Fluent, переводчики могут писать более естественные переводы на родном языке. Сегодня мы представляем спецификацию формата фай...

Курсоры БД в Doctrine Используя курсоры, вы сможете порционно получить из БД и обработать большое количество данных, не расходуя при этом память приложения. Уверен, перед каждым веб-разработчиком хотя бы раз вставала подобная задача, передо мной тоже — и не раз. В этой статье я расскажу, в каких...

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

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

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

[Из песочницы] Умная лампа Привет, Хабр! Предлагаю вашему вниманию перевод статьи «DIY Smart Lamp» автора Maciej Matuszewski. Пошаговое руководство по переходу от придуманной идеи к работающему продукту. Ожидание против реальности Вы когда-нибудь задавали себе следующие вопросы? Может ли горяч...

Уязвимости ритейлеров — три случая, когда OTP можно было получить в запросе При входе в личные кабинеты различных сервисов, в целях безопасности, часто используется 2FA — помимо логина и пароля, нужно ввести одноразовый код. Но, как оказалось, не всё так безопасно даже с двухфакторной аутентификацией — за последний год я нашёл три (!) сервиса, ког...

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

Технический анализ эксплойта checkm8 С большой вероятностью вы уже слышали про нашумевший эксплойт checkm8, использующий неисправимую уязвимость в BootROM большинства iDevice-ов, включая iPhone X. В этой статье мы приведем технический анализ эксплойта и разберемся в причинах уязвимости. Всем заинтересовавшимся...

В системе безопасности Fortnite нашли 3 уязвимости Специалисты по сетевой безопасности из Check Point сообщили, что нашли 3 уязвимости в системе безопасности Fortnite. Они связаны с обработкой запросов на вход в игру. Проблема могла повлиять на 200 миллионов пользователей. Такой взлом может провернуть любой полуквалифицирова...

Как мы заново изобретали IP АТС Askozia, после того как проект был продан и закрыт разработчиком Как было все прекрасно до часа X Мы — небольшая команда разработчиков, которая много лет назад занималась разработкой и внедрением программ 1С. В далеком 2011 году мы хорошо знали программные продукты 1С, и не имели опыта в разработке собственных решений. На тот момент компа...

Kubernetes tips & tricks: о локальной разработке и Telepresence Нас все чаще спрашивают про разработку микросервисов в Kubernetes. Разработчики, особенно интерпретируемых языков, хотят быстро поправить код в любимой IDE и без ожидания сборки/деплоя увидеть результат — по простому нажатию на F5. И когда речь шла про монолитное приложени...

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

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

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

[recovery mode] Призрачные SQL запросы Взгляните на код PHP: $user->v_useragent = 'coresky.agent'; Такой код может спровоцировать SQL запрос UPDATE или INSERT, а может и не спровоцировать если идентичные данные уже установлены в БД, собственно поэтому этот функционал именуется «Призрачные SQL запросы». Дело в...

Magento 2: импорт продуктов прямо в базу В предыдущей статье я описал процесс импорта продуктов в Magento 2 обычным способом — через модели и репозитории. Обычный способ отличается весьма низкой скоростью обработки данных. На моём ноутбуке выходило примерно один продукт в секунду. В данном продолжении я рассматрива...

Больше и мощнее: как мы обеспечили работу нового оборудования в ЦОД MediaTek Нередко компании сталкиваются с необходимостью установить новое, более мощное оборудование в уже существующих помещениях. Иногда решить эту задачу бывает непросто, но существует ряд стандартных подходов, помогающих выполнить ее. О них мы сегодня расскажем на примере ЦОД Medi...

Не луноходы и не джокеры. Что мы знаем о роботах на Фукусиме Одна из тяжелейших техногенных катастроф в истории человечества произошла 26 апреля 1986 года. И затем почти повторилась 12 марта 2011 года. Как вы могли догадаться, речь идет об авариях на Чернобыльской атомной электростанции в СССР и АЭС Фукусима-1 в Японии. Сериал «Черн...

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

Intel — звучим по-новому В своей более чем полувековой истории компания Intel проявила себя, то есть, использовала свои технологии во многих областях нашей жизни — от детских игрушек до оборудования на стадионах. Но только сейчас компания, созданная во времена расцвета The Beatles и Pink Floyd, об...

[Перевод] Создание приложения для Slack с использованием функций 8base Slack — отличное приложение для внутреннего общения между командами. Одна из особенностей, что мы можем легко его расширить, создавая и интегрируя чат-ботов и слэш команды чата, позволяющие пользователям взаимодействовать с внешними сервисами. Отличным ботом Slack, весьма ...

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

[Перевод] Асинхронный PHP. Зачем? Асинхронное программирование сегодня востребовано, особенно в веб-разработке, где отзывчивость приложения особенно важна. Никому не хочется ждать, пока приложение «отвиснет», пусть даже в это время оно выполняет запрос к базе данных, отправляет электронное письмо или работ...

Клиенты «Мастертел» выбирают общение в соцсетях В 2019 году количество обращений в службу технической поддержки «Мастертел» через чаты в социальных сетях Telegram и Facebook превысило число традиционных запросов по телефону и электронной почте. Использование популярных ...

Android для радиоинженера (часть вторая) В первой части я немного рассказал о приложении RF & Microwave Toolbox. Во второй части расскажу о не менее интересном приложении, которое позволяет проектировать СВЧ устройства (преимущественно, планарные) на смартфоне/планшете под управлением ОС Android. Если вам интер...

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

Ограничение скорости обработки запросов, или как не устроить DDoS-атаку на своего клиента Иногда при разработке highload-продукта возникает ситуация, когда надо обработать не максимально большое количество запросов, а наоборот — ограничить количество запросов в единицу времени. В нашем случае это количество отправляемых push-уведомлений конечным пользователям. По...

Memcached plugin от MySQL: инструкция по осторожному применению Здравствуйте! Меня зовут Максим Матюхин, я PHP-программист Badoo. В своей работе мы активно используем MySQL. Но иногда нам не хватает её производительности, поэтому мы постоянно ищем возможности ускорить её работу. В 2010 году Yoshinori Matsunobu представил NoSQL-плагин ...

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

Firefox 70 будет выдавать отчёты по конфиденциальности Firefox заблокировал более чем 450 млн. запросов сторонних трекеров.

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

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

Почему запросы Firebase Cloud Firestore могут выполняться медленно? Давайте рассмотрим некоторые наиболее распространенные причины, по которым Cloud Firestore может показаться медленным, и что вы можете сделать, чтобы их исправить.

Президент Microsoft раскритиковал правительство США из-за санкций относительно Huawei Главный юрконсультант и президент Microsoft Брэд Смит (Brad Smith) на днях негативно высказался в сторону американского правительства из-за конфликта с Huawei. Смит назвал отношение правительства к китайскому гиганту неамериканскими, акцентируя внимание на том, что под...

Asterisk. Dialplan Askozia 6. Исходящие звонки В статье пойдет речь о бесплатной АТС Askozia версии 6. При разработке телефонной станции одной из первых задач была организация исходящих звонков. Как это было В старой версии Askozia использовались стандартные “шаблоны” dialplan. X! — все номера телефонов XXX — трехзна...

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

Google представил BERT Update – крупнейший прорыв в работе поиска за последние 5 лет Google официально представил BERT Update – обновление, которое компания назвала «крупнейшим прорывом за последние 5 лет и одним из самых крупных качественных скачков в истории поиска». Новый алгоритм помогает Google лучше понимать запросы на естественном языке. Он охватывает...

Serverless Telegram бот в Яндекс.облаке, или 4.6 копейки за 1000 сообщений "Whenever you receive a webhook update, you have two options" Из Telegram Bot Api Faq Привет, Хабр! Долгое время концепция serverless (а если говорить точнее — её реализация в виде сервиса AWS Lambda) была для меня относительно понятной, но очень абстрактной идеей. Она ча...

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

[Из песочницы] Watch Dogs в реальной жизни, или серьезные уязвимости в СКУД Мне кажется, что многие парни, особенно в юном возрасте, хотели быть крутыми хакерами. Взламывать сайты, телефоны, системы доступа. Вот и у меня немного остался этот мальчишеский задор. Поэтому периодически ковырялся в различном ПО и ничего стоящего не находил. Но однажды, м...

[recovery mode] KISS Architecture. От микросервиса до монолита Андрей Копылов, наш технический директор, рассказывает, какой подход к проектированию архитектуры приложений использует команда веб-разработчиков AREALIDEA, и, чем KISS Architecture, его собственная разработка, так хороша. Читать дальше →

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

TypeScript. Мощь never Когда я впервые увидел слово never, то подумал, насколько бесполезный тип появился в TypeScript. Со временем, все глубже погружаясь в ts, стал понимать, какой мощью обладает это слово. А эта мощь рождается из реальных примеров использования, которыми я намерен поделиться с ч...

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

PS2/PSP эмулятор + Google Drive + YouTube = «безумие» продолжается Привет всем читателям! Я продолжаю тему программного эмулятора для PlayStation 2 и PlayStation Portable — Omega Red. Более подробно: Как я подружил PlayStation 2 и PlayStation Portable (спойлер — объединил в один эмулятор) Красный Омега PS2 эмулятор В данном материале я...

[Перевод] Примеры C++ кода до и после Ranges Снова здравствуйте. Перевод следующего материала подготовлен специально для студентов курса «Разработчик C++», занятия по которому стартуют уже 27 июня. Библиотека Ranges была принята в C++20 на совещании стандартного комитета в Сан-Диего в ноябре прошлого года. Библиотек...

Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора) Я работаю со студентами на микроконтроллере STM32F411RE, имеющего целых 512 кБайт ROM и 128 кБайт ОЗУ. Обычно в этом микроконтроллере в ROM память записывается программа, а в RAM изменяемые данные и очень часто нужно сделать так, чтобы константы лежали в ROM. В микроконтро...

За большинством запросов на раскрытие данных Whois стоит Facebook Компания Tucows, один из ведущих доменных регистраторов мира, представила статистику полученных ею запросов на раскрытие данных регистрантов доменных имен. Практика сокрытия контактов и персональных данных регистрантов в общедоступной базе Whois введена компанией с мая прош...

ResNet50. Своя реализация Всем привет. Библиотека нейросети описана в моей прошлой статье. Здесь решил показать как можно использовать обученную сеть из TF (Tensorflow) в своем решении, и стоит ли. Под катом сравнение с оригинальной реализацией TF, демо приложение для распознавания картинок, ну и… в...

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

Активное обучение ранжированию Этим постом я открываю серию, где мы с коллегами расскажем, как используется ML у нас в Поиске Mail.ru. Сегодня я объясню, как устроено ранжирование и как мы используем информацию о взаимодействии пользователей с нашей поисковой системой, чтобы сделать поисковик лучше. Зад...

[Из песочницы] Скрипт настройки Windows 10 Давно хотел поделиться своим скриптом по автоматизации настройки Windows 10 (на данный момент актуальная версия 18362), да все руки не доходили. Возможно, он будет кому-то полезен целиком или только его части. Конечно, будет проблематично описать все пункты настройки, но по...

Обновление May 2019 Update доступно для консолей Xbox One 16 мая компания Microsoft объявила о выпуске обновления для Xbox One – May 2019 Update. Это обновление имеет версию 1905, которое является обновлением апрельской версии 1904.Обновление довольно незначительное, хотя в нем есть несколько новых функций. Во-первых, вы сможете ув...

[Из песочницы] Как технология in-memory изменила бизнес-аналитику Примерно 5 миллисекунд проходит от запроса до ответа, если данные хранятся на жестком диске. SSD отвечает в 300 раз быстрее — за 150 микросекунд. Оперативной памяти требуется в 300,000 раз меньше времени — лишь 15 наносекунд.* Можно долго рассуждать о том, как бизнес-анал...

Поточная конвертация баз Firebird 2.5 в формат ODS12 (Firebird 3.0) У каждой версии Firebird есть собственная версия формата дисковых структур базы данных – O(n)D(isk)S(tructure). До версии 2.5 включительно, движок Firebird мог работать с ODS предыдущих версий, то есть базы от старых версий открывались новой версией и работали в режиме совме...

[Из песочницы] Ассемблерные вставки… в C#? Итак, эта история началась с совпадения трёх факторов. Я: в основном писал на C#; лишь примерно представлял, как он устроен и работает; заинтересовался ассемблером. Эта, на первый взгляд, невинная смесь породила странную идею: а можно ли как-то совместить эти языки?...

Логирование HTTP запросов в Spring Boot с использованием Бобины Приветствую, дорогие друзья! Сегодня я хочу продемонстрировать потрясающий пример того, как Бобина может помочь в очень распространённой ситуации — логирование HTTP запросов и ответов в Spring Boot. Даже больше! Мы будем логировать только сообщения HTTP в отдельные файлы. Чи...

Получение статистики по всем клиентам из API Яндекс Директ в разрезе дней с помощью Python В работе часто использую короткую статистику в разрезе дней чтобы отслеживать отклонения трафика. Более подробно о написании запросов написал в статье « Получение рекламных кампаний Яндекс Директ с помощью API в DataFrame (Python)». В данной статье я в большей степени рас...

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

[Из песочницы] Универсальное DRO на базе Arduino Nano — shDRO Дамы и господа, здравствуйте. В данной статье я расскажу о разработке устройства для снятия показаний с цифровых линеек и других датчиков, размещенных на токарных и фрезерных станках. Разработка ещё не завершена и будет описано то, что сделано на данный момент. Кому интер...

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

Как диагностировать проблемы интеграции SDK. Опыт команды разработки Yandex Mobile Ads SDK Всем привет! Меня зовут Дмитрий Фисько, я разрабатываю Yandex Mobile Ads SDK. Наша библиотека предназначена для монетизации мобильных приложений на платформе Android и iOS. Сегодня я хочу рассказать вам о том, как мы упростили разбор сложных ошибок интеграции SDK в Android-п...

Instagram устранил угрозу приватности пользователей Независимый ИБ-специалист под ником ZHacker13 обнаружил уязвимость соцсети Instagram, которая позволяла автоматически собирать данные ее пользователей. Представители сервиса несколько недель не могли устранить угрозу и начали активно работать над решением только после обраще...

[Перевод] Конференция DEFCON 18. Практический шпионаж с помощью мобильного телефона. Часть1 Добро пожаловать на презентацию «Практический шпионаж с помощью сотового телефона». Прежде чем мы начнем, сделаю пару замечаний по поводу конфиденциальности. В-первых, звонок по сотовому телефону может быть записан прямо во время разговора. Сюрприз! Так что если вы не хотите...

Со смартфонов теперь можно гуглить голосом Компания Google добавила в мобильную версию своего веб-поисковика google.com голосовой ввод — отныне пользователи могут проговаривать свой запрос, а не вводить его с клавиатуры. На данный момент нововведение работает только в браузере Chrome для Android и недоступно пользова...

Apple извинилась за прослушивание подрядчиками запросов пользователей к Siri Издание The Guardian сообщает о том, что недавно Apple уволила порядка 300 человек в городе Корк (Ирландия). Все они были наняты компанией для оценки качества работы Siri. Также компания отказалась от услуг внешних подрядчиков, занятых в проекте оценки качества работы голосо...

Конференция Conversations: 8 часов теории и практики разговорного AI 26 ноября в Москве пройдет Conversations – конференция по разговорному искусственному интеллекту для разработчиков и бизнеса. Про инструменты, кейсы, фейлы, модели монетизации, перспективы и ограничения рынка будут говорить МТС, МегаФон, Билайн, Tikkurila, Банк Открытие, Янд...

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

Security Week 09: 19-летняя уязвимость в WinRAR Объявляем неделю доисторических багов. Уязвимость в архиваторе WinRAR, обнаруженную и закрытую в конце января, подробно описали специалисты компании Check Point Software (новость, оригинальное исследование). В худшем случае брешь позволяет распаковать вредоносный файл в прои...

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

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

Влияние Transparent Huge Pages на производительность системы Статья публикуется от имени Ахальцева Иоанна, Jiga Tinkoff.ru сегодня — это не просто банк, это IT-компания. Она предоставляет не только банковские услуги, но ещё выстраивает экосистему вокруг них. Мы в Tinkoff.ru заключаем партнерство с различными сервисами для повышения к...

Как мы внедрили онбординг новых разработчиков Привет, Хабр! Меня зовут Екатерина, я тимлид команды Биллинга сервиса МойСклад. Примерно два с половиной года назад команда разработки МоегоСклада состояла из 20 человек. За это время мы выросли в три раза, только с начала 2019 года у нас появилось три новых команды. На фон...

Не из-за любви к цензуре: провайдеры США осудили шифрование DNS-запросов в Chrome и Android Шифрование DNS запросов приведёт к тому, что абоненты окажутся рабами единственного DNS сервиса — у Google, в лучшем случае — Mozilla и CloudFlare.

Тысячи Android-приложений могут содержать RCE-уязвимость Уязвимость выполнения стороннего кода в WhatsApp присутствует и в других приложениях для Android. К такому выводу пришли специалисты TrendMicro, нашедшие около 3000 потенциально опасных программ в Google Play и сторонних файловых архивах. Баг эксплуатируется через вредоносны...

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

Состоялся релиз Xbox One May 2019 Update Компания Microsoft объявила о публичном релизе Xbox One May 2019 Update (версия 1905). Это довольно небольшое обновление, включающее в себя несколько новых функций. Во-первых, теперь в списке друзей отображаются иконки устройств (ПК, консоль или смартфон), чтобы вы могли бы...

3. Check Point Getting Started R80.20. Подготовка макета Приветствую, друзья! Добро пожаловать на третий урок. Сегодня мы займемся подготовкой макета, на котором будем тренироваться. Важный момент! Нужен ли вам макет или можно обойтись просто просмотром курса? Лично я считаю, что без практики, данный курс будет абсолютно бесполе...

Вышел Chrome 75 для Windows, Linux и macOS Компания Google выпустила новую версию Chrome для Windows, macOS и Linux. Релиз 75.0.3770.80 доступен для загрузки всем пользователям обозревателя и содержит 42 исправления, связанных с безопасностью. Апдейты затрагивают скрипт фонового запуска Service Worker, менеджер загру...

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

Коротко о работе с RabbitMQ из Python Так повелось, что в процессе работы в МегаФоне, приходится сталкиваться с однотипными задачами при работе с RabbitMQ. Закономерно возникает вопрос: «Как упростить и автоматизировать выполнение таких задач?» Первое решение, которое приходит в голову, использовать интерфейс ...

Устройство компилятора Swift. Часть 1 Swift — это не только язык программирования. Это проект, в который помимо компилятора входит много других компонентов. Да и сам компилятор — это не большая и страшная коробка, которая с помощью магии превращает ваш код в набор понятных для машины инструкций. Его тоже можно ...

Не ORMом единым Не ORMом единым Всем привет! Я руковожу отделом партнерской разработки (Partners Development) в сервисе бронирования отелей Ostrovok.ru. В этой статье я хотел бы рассказать про то, как на одном проекте мы использовали Django ORM. На самом деле я слукавил, название должно был...

МегаСлёрм для инженеров и архитекторов Kubernetes Через 2 недели стартуют интенсивы по Kubernetes: Слёрм-4 для тех, кто знакомится с k8s и МегаСлёрм для инженеров и архитекторов k8s. На Слёрм-4 остались последние 10 мест в зале. Желающих освоить k8s на базовом уровне хватает. Для Ops, который знакомится с Kubernetes, запу...

Сеть компании и MitM. Часть 1 Перехватить конфиденциальную информацию? Получить несанкционированный доступ к различным приложениям и системам? Нарушить нормальный режим работы? Все это и многое другое выполняют атаки типа Man in the Middle. Сегодня мы начинаем цикл статей, посвященный атакам «человек п...

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

Мы — Иван Голунов Обращение к пользователям и редакторам данного сайта от старожила. Мы не журналисты, но в каждом из нас должно быть представление о добре и зле. То, что сегодня происходит с журналистом Иваном Голуновым — это история про всех нас. Читать дальше →

Словарик айтишника или Что? Где? Куда? Часть 1 «Привет! Добро пожаловать! Спасибо, что приняла наш оффер. Пойдем знакомиться с твоей командой. У них как раз сейчас дейли. Ты вышла под конец спринта, поэтому пока работы для тебя не запланировали. Как стендап закончится, можешь почитать спеки, командные окиары и просмотрет...

Управление персонажем с помощью SharedEvents Ссылка на проект В данной статье я хочу показать, как можно использовать SharedEvents для управления персонажем от третьего лица, который предлагает стандартный набор ассетов. О SharedEvents я писал в предыдущих статьях (этой и в этой). Добро пожаловать под кат! Читать да...

«То, что мы обсуждаем в России, актуально и на Западе»: интервью с Денисом Неклюдовым Денис Неклюдов интересен Android-разработчикам по целому ряду причин. Он занимается «Android Dev Подкастом», выступает на конференциях, посещает саммиты GDE — в общем, вовлечён в жизнь сообщества самыми разными способами. А поскольку сейчас живёт в США и работает в Lyft, м...

Дракоины и Зинаид Зидан: Яндекс собрал самые смешные запросы и сделал генератор предсказаний Новогоднее гадание на запросах Яндекс.Поиска.

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

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

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

Google Ads API вышел из беты Google сообщил о выходе стабильной версии Google Ads API — v1. Бета-версия API, v0, будет переведена в разряд устаревших 30 апреля. Начиная с этой даты, она будет больше недоступна, а запросы к ней будут отклоняться. Пользователям API необходимо обновить свои клиентски...

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

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

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

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

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

Another Way — LFS, Multi User и текущий прогресс инди Action/RPG Всем привет! Прошло немногим больше месяца и по традиции я спешу поделиться прогрессом нашей авантюры, серии под названием “Через тернии к игре мечты”. Хочу напомнить, что же тут происходит. Мы разрабатываем игру Another way — Нелинейная Action/RPG от третьего лица с элеме...

Восстановление данных из пустого места Привет Хабр. В новогодние каникулы появилась возможность написать об интересном случае (хотя подобных кейсов у нас в DATALABS не мало). А интересен он тем, что из полностью обнулённой USB флешки, мы удачно восстановили данные. Если интересно как? Добро пожаловать под кат…...

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

Анализ производительности запросов в ClickHouse. Доклад Яндекса Что делать, если ваш запрос к базе выполняется недостаточно быстро? Как узнать, оптимально ли запрос использует вычислительные ресурсы или его можно ускорить? На последней конференции HighLoad++ в Москве я рассказал об интроспекции производительности запросов — и о том, что ...

Microsoft открыла код Калькулятора Windows Несколько дней назад корпорация Microsoft приняла решение открыть исходный код известной всем программы — «Калькулятора» из ОС Windows. Это приложение входило во все дистрибутивы ОС от Microsoft начиная с 1985 года, когда свет увидела Windows 1.0. Microsoft использует ли...

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

Все очень плохо или новый вид перехвата трафика 13 марта в рабочую группу RIPE по борьбе со злоупотреблениями поступило предложение рассматривать BGP-перехват (hjjack) в качестве нарушения политики RIPE. В случае принятия предложения интернет-провайдер, атакованный с помощью перехвата трафика, получал бы возможность отпра...

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

[Перевод] Автоматизация библиотек на Typescript Хочу сразу оговориться: эта статья не дает готового к использованию рецепта. Это скорее моя история путешествия в мир Typescript и NodeJS, а также результаты моих экспериментов. Тем не менее, в конце статьи будет ссылка на GitLab репозиторий, который вы можете посмотреть, и ...

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

Netramesh – легковесное service mesh решение В процессе перехода от монолитного приложения к микросервисной архитектуре мы сталкиваемся с новыми проблемами. В монолитном приложении обычно достаточно просто определить, в какой части системы произошла ошибка. Скорее всего, проблема в коде самого монолита, либо в базе дан...

[Перевод] DEFCON 21. Одних паролей недостаточно, или почему «ломается» шифрование диска и как это можно исправить. Часть 2 DEFCON 21. Одних паролей недостаточно, или почему «ломается» шифрование диска и как это можно исправить. Часть 1 Существуют забавные штуки, такие, как монотонно возрастающие счетчики, с помощью которых можно контролировать активность TMP, а затем проверять полученные значен...

1. Анализ зловредов с помощью форензики Check Point. SandBlast Network Добро пожаловать на новый цикл статей, на этот раз по теме расследования инцидентов, а именно — анализу зловредов с помощью форензики Check Point. Ранее мы публиковали несколько видео уроков по работе в Smart Event, но на этот раз мы рассмотрим отчеты форензики по конкретн...

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

[Перевод] Service mesh для микросервисов. Часть II, основы работы с Istio Перевод статьи подготовлен специально для студентов курса «Инфраструктурная платформа на основе Kubernetes». Настройка базового микросервиса в Kubernetes обманчиво проста. В одной из последних статей мы рассказали, как легко начать работать с контейнерами. Мы скомпоновали п...

Физические безумства Добрый день, уважаемый читатель! Я, начинающий Java-программист, долгое время не мог освоиться с библиотекой Box2D. Во-первых, из-за того, что она написана для C++, и по ней нет документации, а синтаксис Си я не знаю. Во-вторых, из-за того, что подробные уроки по этой библио...

[Перевод] 10 Git-команд, которые стоит знать разработчику В этой статье мы обсудим разные Git-команды, которые могут оказаться полезными для разработчика или специалиста по Big Data. Вы узнаете, как проверять, удалять и приводить код в порядок. А еще рассмотрим способы выхода из Vim и экономию времени с помощью псевдонимов Bash ...

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

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

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

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

[recovery mode] Как я отказался от Ruby в пользу Python, работая над бэкендом Перевели для вас статью Бенуа Зен, разработчика ПО в компании Sqreen. Бенуа работает над backend веб-сервиса и недавно перешел с Ruby на Python. В 2008 году, когда я еще учился на разработчика ПО, два моих друга решили основать компанию, назвав ее Feedbooks. Их целью бы...

[Перевод - recovery mode ] Тюнинг производительности запросов в PostgreSQL Настройка производительности базы данных — разработчики обычно либо любят это, либо ненавидят. Я получаю удовольствие от этого и хочу поделиться некоторыми методами, которые я использовал в последнее время для настройки плохо выполняющихся запросов в PostgreSQL. Мои методы ...

Внезапно вышла iOS 13.1.1 и iPadOS 13.1.1. Что нового   Apple выпустила iOS 13.1.1 и iPadOS 13.1.1. для всех желающих. Номер сборки — 17A6854.   Что нового: ▪️ Исправлены ошибки, препятствовавшие восстановлению iPhone из резервной копии ▪️ Устранена проблема, из-за которой время работы от аккумулятора могло сокр...

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

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

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

Пользователям Android угрожает уязвимость StrandHogg Исследователи из норвежской компании Promon обнаружили серьезную уязвимость Android, позволяющую злоумышленникам перехватывать критически важные пользовательские данные и устанавливать скрытый контроль над мобильными устройствами. Эксперты насчитали в Google Play несколько д...

[Перевод] Рассказ о том, почему я до сих пор использую jQuery Многие, когда речь заходит о jQuery, говорят так: «Просто пользуйтесь обычным JavaScript. Библиотека jQuery вам не нужна». Что тут сказать? Я не нуждаюсь во многих вещах, но, несмотря на это, хорошо, когда они есть. Так и jQuery. Я в этой библиотеке не нуждаюсь, но её, опред...

Основы архитектуры приложений на Flutter: Vanilla, Scoped Model, BLoC (оригинал статьи на английском языке опубликован на Medium) Flutter предоставляет современный реактивный фреймворк, большой набор виджетов и тулов. Но, к сожалению, в документации нет ничего похожего на руководство по рекомендуемой архитектуре приложения для Android. Не сущ...

Сеть компании и MitM. Часть 2 Перехватить конфиденциальную информацию? Получить несанкционированный доступ к различным приложениям и системам? Нарушить нормальный режим работы? Все это и многое другое выполняют атаки типа Man in the Middle. Сегодня мы продолжаем цикл статей, посвященный атакам «челове...

Omega Red + PS1 эмулятор = Кодзима гений Привет всем читателям! Я продолжаю тему программного эмулятора для PlayStation 2 и PlayStation Portable — Omega Red. Более подробно: PS2/PSP эмулятор + game play streaming (YouTube, Facebook, Twitch) = новая версия Omega Red PS2/PSP эмулятор + Google Drive + YouTube = «...

PADS Professional — Быстрый старт Доброго времени суток, уважаемый читатель! Компания Mentor Graphics совместно с Нанософт разработали краткое руководство пользователя в виде серии уроков, которые познакомят начинающих пользователей с базовым функционалом САПР PADS Professional. За более подробной информа...

Так все-таки RAML или OAS (Swagger)? В динамичном мире микросервисов измениться может все что угодно — любой компонент можно переписать на другом языке, используя иные фреймворки и архитектуру. Неизменными должны оставаться лишь контракты, для того, чтобы с микросервисом можно было взаимодействовать извне на не...

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

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

Matrix 1.0 — релиз протокола децентрализованного обмена сообщениями 11 июня 2019 разработчики Matrix.org Foundation объявили о релизе Matrix 1.0 — протокола для реализации федеративной сети, построенной на основе линейной истории событий (events) внутри ациклического графа (DAG). Самым распространённым способом использования протокола являет...

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

Библиотека генератора ассемблерного кода для микроконтроллеров AVR. Часть 2 Библиотека генератора ассемблерного кода для микроконтроллеров AVR Часть 2. Начало работы Как и планировалось, в этой части рассмотрим более подробно особенности программирования с использованием библиотеки NanoRTOS. Те, кто начал чтение с этого поста, могут ознакомиться с о...

CJM для ложного срабатывания антивируса DrWeb Глава, в которой Doctor Web удаляет DLL сервиса Samsung Magician, объявив его трояном, а для того, чтобы оставить запрос в службе техподдержки, нужно не просто зарегистрироваться на портале, а указать серийный номер. Коего, разумеется нет, потому что DrWeb высылает при регис...

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

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

Открытые библиотеки для визуализации аудиоконтента Мы изучили несколько тематических тредов на GitHub, Hacker News и Reddit, посвященных инструментам для визуализации аудиоконтента. Рассказываем о часто упоминаемых открытых библиотеках и решениях, которые пригодятся разработчикам веб-приложений или игр. Читать дальше →

[Перевод] Сборщик мусора в V8: как работает Orinoco Не то чтобы работа сборщика мусора — это то, о чём каждый день думает фронтенд-разработчик, но это очень интересно. Если честно, это одна из самых жестоких статей, что я читал за последнее время: тут много про смерть в молодом возрасте, про гонения из одной области памяти в ...

Атрибуты C#: обо всех аспектах Здравствуй, читатель. В этой статье описаны атрибуты со всех сторон — начиная от спецификации, смысла и определения атрибутов, создания собственных и работе с ними, заканчивая добавлением атрибутов на рантайме и наиболее полезными и интересными существующими атрибутами. Если...

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

Даёшь букридер в каждый карман! Обзор свежих новинок от ONYX BOOX Привет, Хабр! В арсенале компании ONYX BOOX есть большое количество электронных книг под любые задачи — здорово, когда есть выбор, но если он очень большой, то легко запутаться. Чтобы этого не происходило, мы старались делать максимально подробные обзоры у нас в блоге, из ...

GF PET-G от U3print. Пробуем "на зуб". "Назвался груздем, полезай в кузов!"Другими словами, получил пластик на обзор, будь добр отчитаться.Желающщие прочитать очередной опус про PET-G от U3print, добро пожаловать под "cut".Подробнее...

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

Nextcloud внутри, а снаружи OpenLiteSpeed: настраиваем обратное проксирование Как настроить OpenLiteSpeed на обратное проксирование в Nextcloud, находящийся во внутренней сети? Удивительно, но поиск на Хабре по запросу OpenLiteSpeed не даёт ничего! Спешу исправить эту несправедливость, ведь LSWS – достойный веб-сервер. Я люблю его за скорость и модный...

[Перевод] Рассказ о решении проблемы с производительностью Moment.js Moment.js — это одна из самых популярных JavaScript-библиотек для разбора и форматирования дат. В компании WhereTo используют Node.js, поэтому для них применение этой библиотеки было совершенно естественным ходом. Проблем с серверным использованием Moment.js не ожидалось. В ...

CodeSide. Новая игра для знаменитого соревнования Russian AI Cup Сообщество участников чемпионатов и команда Mail.ru Group в сотрудничестве с Codeforces.com приглашают вас на самую настоящую бойню, от которой вы получите бессонные ночи и мозоли на руках, поскольку будете участвовать в одном из самых живых и интересных чемпионатов по про...

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

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

[Из песочницы] Используем AppDynamics с Red Hat OpenShift v3 В последние время многие организации хотят, чтобы их приложения переходили из монолитов в микросервисам с использованием «платформы как услуги» (PaaS), таких как RedHat OpenShift v3, AppDynamics сделала значительные инвестиции в обеспечение первоклассной интеграции с такими...

IT Релокация. Из Бангкока в Сидней Доброго времени суток дорогой читатель. Если ты знаком с моей историей переезда в Бангкок, то, я думаю, тебе будет интересно послушать еще один мой рассказ. В начале апреля 2019 года я переехал в самый лучший город на Земле — Сидней. Занимай свое уютное кресло, завари теплы...

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

[Перевод] Использование Typescript с React – руководство для новичков Друзья, в преддверии выходных хотим поделиться с вами еще одной интересной публикацией, которую хотим приурочить к запуску новой группы по курсу «Разработчик JavaScript». Потратив последние несколько месяцев на разработку приложений на React и библиотек с использованием T...

Создание React-ивного хука usePosition() для получения и отслеживания координат браузера Если вкратце В этой статье мы создадим React-ивный хук usePosition() для отслеживания геолокации браузера. Под капотом этот хук будет использовать методы getCurrentPosition() и watchPosition() нативного браузерного объекта navigator.geolocation. Финальную версию хука я опуб...

[Перевод] Вышла Preview-версия XAML Hot Reload для Xamarin.Forms На прошлой неделе на Xamarin Developer Summit мы анонсировали «Горячую перезагрузку (Hot Reload) XAML для Xamarin.Forms», которая позволяет вносить изменения в пользовательский интерфейс XAML и просматривать их в режиме реального времени, не требуя другой сборки и развертыва...

Байт-машина для форта (и не только) по-индейски (часть 3) Наступил год 2019. Новогодние праздники подходят к концу. Самое время начать вспоминать байты, команды, переменные, циклы… Что-то я все уже забыл с этими праздниками. Придется вспоминать вместе! Сегодня сделаем интерпретатор для нашей байт-машины. Это третья статья, первы...

Криптографические токены PKCS#11. Графическая утилита «с функцией подписания и добавлением метки времени». Часть 1 В комментариях к статье «Использование механизмов криптографических токенов PKCS#11 в скриптовых языках» читатель kovserg написал: «С нетерпением ждём статью с функцией подписания документа и добавлением метки времени». Еще раньше другой участник хабра pas писал о том, что б...

[Перевод] Бесплатная библиотека Wolfram Engine для разработчиков программного обеспечения Оригинал перевода в моём блоге Пара видео о Wolfram Language Почему вы до сих пор не используете технологии Wolfram? Что ж, такое случается, и довольно часто. В процессе общения с разработчиками программного обеспечения, они достаточно лестно отзываются о наших технология...

[Перевод] Объясняем SQL и NoSQL для бабушки Одно из наиболее важных решений, которые принимает разработчик, заключается в том, какую базу данных использовать. В течение многих лет опции были ограничены различными вариантами реляционных баз данных, которые поддерживали язык структурированных запросов (SQL). К ним отно...

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

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

В библиотеке jQuery устранена серьезная уязвимость В jQuery закрыта уязвимость, которая позволяет провести DoS-атаку или получить права администратора веб-приложения, использующего эту JavaScript-библиотеку на стороне клиента. Эксперт по кибербезопасности Лиран Тал (Liran Tal) из Snyk обнаружил брешь 26 марта; пропатченная в...

[Перевод] Энциклопедия освещения художника Naughty Dog Джои Ленц из Naughty Dog подробно рассказал нам об освещении в UE4: о значениях, источниках, световой температуре, освещении в PBR, ресурсах, по которым можно изучать освещение, а также обо многом другом. На официальном сайте Джои polyplant.co есть множество полезных советов...

[Из песочницы] Визуальное представление выборов в Санкт-Петербурге — магия накрутки голосов Привет! В сентябре этого (2019) года прошли выборы Губернатора Санкт-Петербурга. Все данные о голосовании находятся в открытом доступе на сайте избирательной комиссии, мы не будем ничего ломать, а просто визуализируем информацию с этого сайта www.st-petersburg.vybory.izbirk...

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

Вулканический поросенок, или SQL своими руками Сбор, хранение, преобразование и презентация данных — основные задачи, стоящие перед инженерами данных (англ. data engineer). Отдел Business Intelligence Badoo в сутки принимает и обрабатывает больше 20 млрд событий, отправляемых с пользовательских устройств, или 2 Тб входя...

Блокировка Facebook и Twitter откладывается Роскомнадзор повторно отправит в Facebook и Twitter запросы о расположении личных данных Россиян.

[recovery mode] Использование NVME SSD как системного накопителя на компьютерах со старым BIOS и ОС Linux При соответствующей настройке можно загружаться с накопителя NVME SSD даже на старых системах. Предполагается, что операционная система (ОС) умеет работать с NVME SSD. Рассматриваю именно загрузку ОС, поскольку при имеющихся в ОС драйверах NVME SSD виден в ОС после загрузк...

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

Python + OpenCV + Keras: делаем распознавалку текста за полчаса Привет Хабр. После экспериментов с многим известной базой из 60000 рукописных цифр MNIST возник логичный вопрос, есть ли что-то похожее, но с поддержкой не только цифр, но и букв. Как оказалось, есть, и называется такая база, как можно догадаться, Extended MNIST (EMNIST). ...

C/C++ из Python (CFFI, pybind11) Продолжаем тему как вызывать C/C++ из Python3. Теперь используем библиотеки cffi, pybind11. Способ через ctypes был рассмотрен в предыдущей статье. Читать дальше →

[Из песочницы] Как создать 2D игру с Python и аркадной библиотекой Привет, Хабр! представляю вашему вниманию перевод статьи How to create a 2D game with Python and the Arcade library автора Paul Vincent Craven Как создать 2D игру с Python и аркадной библиотекой Узнайте, как начать работу с Arcade, простой в использовании библиотеки Python д...

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

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

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

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

[recovery mode] Асинхронная библиотека для работы с API Mikrotik Категорически приветствую. Недавно мне понадобилось поработать с Mikrotik через его API. Вроде бы ничего примечательного, есть официальная библиотека , есть еще на гитхабе обёртка, но вот беда — мне надо было работать асинхронно через asyncio и использованием плюшек async/aw...

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

Бот для ВКонтакте деанонимизировал пользователей Pornhub Программист Даниил Суворов создал скрипт для деанонимизации посетителей Pornhub, авторизованных через ВКонтакте. Бот PRNHB, уже заблокированный администрацией социальной сети, указывал пользователям, кто из их друзей заходил на порносайт. Разработчики PornHub и ВКонтакте нал...

4. Check Point Getting Started R80.20. Установка и инициализация Добро пожаловать на 4-й урок. Сегодня, мы наконец-то “пощупаем” Check Point. Естественно виртуально. В ходе урока мы выполним следующие дейсвтия: Создадим виртуальные машины; Выполним установку сервера управления (SMS) и шлюза безопасности (SG); Ознакомимся с процессом р...

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

Сервисный МФЦентр: россиян перестанут принимать в госорганах Федеральные и региональные ведомства прекратят прием россиян к 2024 году и передадут эти полномочия МФЦ. Такие нововведения содержит законопроект о госуслугах, разработанный Минэкономразвития (есть у «Известий»). Кроме того, получить помощь в центрах можно будет вне зависимо...

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

Платежный сервис QIWI подвергся хакерской атаке Сотрудники организации Qrator Labs зафиксировали максимальную активность киберзлоумышленников в Западной Европе и США. Специалисты компьютерной безопасности компании говорят, что 24 января платежный сервис QIWI подвергся хакерской атаке. Кибермошенники начали забрасывать за...

Новые наушники с шумоподавлением Sony WH-1000XM3 Компания Sony представила новые наушники с шумоподавлением Sony WH-1000XM3. В скором времени в наушниках будет доступна функция Alexa. Данное обновление придет через специальное приложение для Sony. Это означает, что одним нажатием кнопки вы можете попросить виртуального...

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

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

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

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

PR-CY выпустил новый сервис для анализа поисковой выдачи Инструмент поможет бесплатно сравнить семантику сайта с запросами страниц из ТОПа

CUBA 7: что нового? Три года назад мы объявили о выходе CUBA 6. Та версия стала революционной: вместо закрытой проприетарной лицензии мы стали распространять фреймворк свободно, по лицензии Apache 2.0. В то время мы не могли даже и близко представить, насколько это отразится на развитии фреймв...

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

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

[Из песочницы] Angular schematics, или как я писал свой шаблон для angular cli Здравствуйте, меня зовут Максим. Уже несколько лет я занимаюсь front-end разработкой. Мне часто приходится иметь дело с версткой различных html шаблонов. В своей повседневной работе я обычно пользуюсь сборщиком webpack c настроенным шаблонизатором pug, а также использую мето...

[Из песочницы] Реляционно-сетевая модель данных Реляционная модель потеряла свою исключительность Требования функциональности и структурированности баз данных (БД), наиболее полно реализованные в реляционных системах, сейчас находятся под давлением новых требований. Первая проблема – низкая эффективность для больших дан...

Восстановление данных из под компаунда Ух и рискую нарваться на минуса за этот каламбур «из под», но надеюсь хабрапублика простит, потому что пост по делу. Текста мало, но много смысла и картинок. Это история про NoName USB флешку бескорпусном исполнении, которую Windows в один прекрасный момент начал предлагат...

Число обращений правоохранителей к биткоин-бирже ShapeShift выросло на 175% Во второй половине 2018 года число информационных запросов швейцарских правоохранителей к местной криптовалютной бирже ShapeShift увеличилось на 175%. Об этом торговая площадка сообщила в официальном отчете. За первые два квартала 2018 года ShapeShift получила всего 16 запро...

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

В поисках серебрянной пули: акторы+FRP в Реакте Сейчас уже мало кто пишет на Perl'е, но известная максима Ларри Уолла "Keep simple things easy and hard thing possible" стала общепринятой формулой эффективной технологии. Ее можно трактовать в аспекте не только сложности задач, но и подхода: идеальная технология должна, с о...

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

[Перевод] Veeam Backup & Replication: полезные советы по обеспечению жизнеспособности бэкапов и реплик Сегодня я снова с удовольствием представляю вам полезные советы от моего коллеги Евгения Иванова, тим-лида команды технической поддержки Veeam. На этот раз Женя поделился рекомендациями для работы с бэкапами и репликами. Надеюсь, они помогут вам избежать типичных ошибок, и в...

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

Трекинг украденного велосипеда по протоколу NB-IoT Интернет вещей проникает повсюду, даже в велосипеды. Вы можете своими руками смастерить маленький трекер с поддержкой протокола NB-IoT. В любой момент этот гаджет ответит на ваш запрос через интернет и сообщит GPS-координаты велосипеда. И что самое приятное, такой трекер р...

Хакаем CAN шину авто. Виртуальная панель приборов В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др. В этой статье я...

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

На «Вконтакте» подали в суд за выдачу личных данных пользователя МВД Основатель паблика «Омбудсмен полиции» социальной сети «Вконтакте» подал в суд на социальную сеть. Дело в том, что администрация ресурса выдала личные данные пользователя УМВД по Белгородской области. Социальная сеть выдала все имеющиеся у нее данные на владельца паблика, вк...

Специалисты нашли способ внедрить вредоносный код в Excel Специалисты компании Mimecast разработали эксплойт, который позволяет внедрять и выполнять сторонний код в электронной таблице Excel. В ряде случаев PoC-эксплойт не предполагает взаимодействия с пользователем и плохо обнаруживается антивирусными сканерами. Разработчики Micro...

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

Эволюция или делаем базу для роботележки на ARDUINO платформе, а сенсоры и видео гоним на компьютер через смартфон Для уважаемых читателей GeekTimes очередная (четвёртая) долгожданная статья о том, что будет, если снова замешать ардуинку, ESP8266, WI-FI, приправить смартфоном на Android и посыпать сверх JAVA приложением. Речь у нас пойдет про роботелегу из позапрошлой статьи, которой пр...

6. Check Point Getting Started R80.20. Начало работы в SmartConsole Добро пожаловать на 6-й урок. Сегодня мы наконец поработаем со знаменитым графическим интерфейсом Check Point. То, за что большинство любят Check Point, а некоторые — ненавидят. Если помните прошлый урок, то там я сказал, что настройками безопасности можно управлять либо ч...

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

21 августа трансляция Zabbix Moscow Meetup #5 Привет! Меня зовут Илья Аблеев, я работаю в команде мониторинга Badoo. 21 августа приглашаю на традиционную, пятую, встречу сообщества специалистов по Zabbix в нашем офисе! Поговорим о вечной боли — хранилищах исторических данных. Многие сталкивались с проблемами произво...

Умные ТВ Supra допускают стороннее вмешательство в просмотр Независимый ИБ-исследователь Дхирадж Мишра (Dhiraj Mishra) нашел способ подменять трансляцию на смарт-телевизорах Supra. Программную ошибку можно использовать как для невинных розыгрышей, так и для более опасных атак. Проблема связана с функцией openLiveURL(), которая обеспе...

[Из песочницы] Об актуальных проблемах геймдизайна и путях их разрешения. Взгляд снизу Итак, всем привет и добро пожаловать в мир современных игр! Дабы заранее предупредить различные вопросы, а также обеспечить удобство чтения, далее — небольшой дисклеймер: всё что будет написано далее — основано на личном и субъективном игровом опыте, который включает в себя...

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

[Перевод] Собственная реализация библиотеки ECS На этой неделе я начал работать над своим движком для игры Vagabond и приступил к реализации шаблона entity-component-system. В этой статье я хочу рассказать о своей реализации, которая свободно доступна на GitHub. Но вместо простого комментирования кода я хочу объяснить, ...

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

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