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

RESTinio — это асинхронный HTTP-сервер. Асинхронный Пару лет назад мы опубликовали RESTinio — свой небольшой OpenSource C++фреймворк для встраивания HTTP-сервера в C++ приложения. Мегапопулярным за это время RESTinio не стал, но и не потерялся. Кто-то выбирает его за "родную" поддержку Windows, кто-то за какие-то отдельные фи...

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

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

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

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

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

[Перевод] Dart 2. Асинхронное программирование: футуры Асинхронное программирование: футуры Содержание Введение Что такое футура? Async — await Обработка ошибок Последовательное выполнение Future API Обработка ошибок Вызов нескольких функций, возвращающих футуры Что еще почитать? Что важно: Код в Dart работает в одном тре...

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

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

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

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

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

[Перевод] Как работать с async/await в циклах JavaScript Как запустить асинхронные циклы по порядку или параллельно в JavaScript? Перед тем, как делать асинхронную магию, я хочу напомнить как выглядят классические синхронные циклы. Читать дальше →

Непрерывное профилирование в Go pprof — основной инструмент профилирования в Go. Профилировщик включен в стандартную библиотеку Go и про него, за годы, написано уже очень много. Чтобы подключить pprof в существующее приложение нужно просто добавить одну строчку кода: import _ “net/http/pprof” В HTTP-сервер...

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

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

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

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

Достраиваем в RESTinio четвертый этаж из C++ных шаблонов. Зачем и как? RESTinio — это относительно небольшой проект, представляющий из себя встраиваемый в C++приложения асинхронный HTTP-сервер. Его характерной особенностью является широкое, можно сказать, повсеместное применение C++ных шаблонов. Как в реализации, так и в публичном API. C++ные ш...

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

Обработка исключений ASP.NET при помощи IRO.Mvc.MvcExceptionHandler Если вы являетесь c# бекенд разработчиком, наверняка рано или поздно появилась необходимость найти унифицированный способ обработки исключительных ситуаций. Хотя, даже если вы довольствуетесь кодом 500 в ответе, эта статья все равно поможет улучшить ваш способ, при этом не...

[Перевод] Асинхронное программирование – производительность async: понять расходы на async и await Это статья достаточно древняя, но не потерявшая актуальности. Когда разговор заходит об async/await, как правило, появляется ссылка на неё. Перевода на русский найти не смог, решил помочь кто не fluent. Асинхронное программирование долгое время было царством самых опытных р...

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

[Перевод] Осваиваем async/await на реальном примере Конструкция async/await представляет собой сравнительно новый подход к написанию асинхронного кода в JavaScript. Она основана на промисах и, в результате, не блокирует главный поток. Новшество этой конструкции заключается в том, что благодаря ей асинхронный код становится по...

Webasto анонсирует модульную систему батарей для автопромышленности Создатели сборок из аккумуляторов для автотранспорта часто сталкиваются с проблемами контроля температуры и зарядки. Масштабирование Акб поэтому всегда связано с определенным риском, и разумеется рано или поздно должно было появится более простое предложение на рынке Autom...

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

Рецепты Nginx: асинхронные уведомления из PostgreSQL в websocket Для приготовления асинхронных уведомлений из PostgreSQL в websocket нам понадобится сам nginx и его плагины postgres, push-stream, set-misc. (Я дал ссылки на свои форки, т.к. делал некоторые изменения, которые пока не удалось пропихнуть в оригинальные репозитории. Можно такж...

Выведение Action type с помощью Typescript Всем привет! Меня зовут Дмитрий Новиков, я javascript-разработчик в Альфа-Банке, и сегодня я расскажу вам про наш опыт выведения Action type при помощи Typescript, с каким проблемами мы столкнулись и как их решили. Это расшифровка моего доклада на Alfa JavaScript MeetUp. К...

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

[Перевод] Почему, зачем и когда нужно использовать ValueTask Этот перевод появился благодаря хорошему комментарию 0x1000000. В .NET Framework 4 появилось пространство System.Threading.Tasks, а с ним и класс Task. Этот тип и порождённый от него Task<TResult> долго дожидались, пока их признают стандартами в .NET в роли ключевых а...

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

[Перевод] Асинхронное общение — вот настоящая причина, почему удалённая работа более эффективна Теперь асинхронную связь внедряют не только на удалёнке Иллюстрация: Yin Weihung Исследование за исследованием вновь доказывают, что удалённые работники более продуктивны, чем их коллеги в офисе. Только не совсем понятно, почему. Да, люди сохраняют время (и рассудок), из...

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

[Перевод] Я был в семи словах от того, чтобы стать жертвой таргетированного фишинга Три недели назад я получил очень лестное письмо из Кембриджского университета с предложением выступить судьёй на премии Адама Смита по экономике: Дорогой Роберт, Меня зовут Грегори Харрис. Я один из Организаторов премии Адама Смита. Каждый год мы обновляем команду независ...

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

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

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

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

Асинхронное программирование (полный курс) Асинхронное программирование за последнее время стало не менее развитым направлением, чем классическое параллельное программирование, а в мире JavaSript, как в браузерах, так и в Node.js, понимание его приемов заняло одно из центральных мест в формировании мировоззрения раз...

[Перевод] Тестирование многопоточного и асинхронного кода Привет! На неделе встала задача написать интеграционный тест для Spring Boot приложения, использующего асинхронное взаимодействие с внешними системами. Освежил много материала про отладку многопоточного кода. Привлекла внимание статья «Testing Multi-Threaded and Asynchronous...

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

История одной проблемы со Speedometer, или Как Chromium управляет памятью Современный браузер — это крайне сложный проект, в котором даже безобидные с виду изменения могут приводить к неожиданным сюрпризам. Поэтому существует множество внутренних тестов, которые должны такие изменения отловить до релиза. Тестов никогда слишком много не бывает, поэ...

Функциональные практики и frontend: монады и функторы Всем привет! Меня зовут Дмитрий Руднев, я frontend-разработчик в компании БКС. Начинал я свой путь с верстки интерфейсов различной сложности и всегда уделял повышенное внимание именно интерфейсу: насколько пользователю будет комфортно с ним взаимодействовать, смог ли я донес...

[Перевод] SVG или canvas? SVG и canvas — это технологии, которые можно использовать для рисования чего-либо на веб-страницах. Поэтому их стоит сравнить и разобраться в том, когда стоит применять SVG, а когда — canvas. Даже весьма поверхностное понимание сути этих технологий позволяет сделать вполне...

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

Разработчики рассказали, что не могут перенести Android-приложения на HarmonyOS HarmonyOS — новая ОС от Huawei на замену Android Без чего немыслима никакая современная ОС? Конечно, без экосистемы и софта. Но если спроектировать составные элементы экосистемы такой компании, как Huawei, в общем-то, по силам, то перенести чужое ПО вручную — уже...

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

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

Как сделать BTC-транзакцию без сдачи из мелких монет Многие кошельки биткоина при выборе монет для отправки предпочитают использовать крупную монету, баланс которой больше отправляемой суммы. После каждой такой транзакции образуется монета-сдача. Через какое-то время весь кошелёк зарастает такими монетами порядка 0.001 (~10 д...

[Перевод] Асинхронные Stream в C# 8 Функционал Async/Await появился в C# 5, чтобы улучшить скорость отклика пользовательского интерфейса и веб-доступ к ресурсам. Другими словами, асинхронные методы помогают разработчикам выполнять асинхронные операции, которые не блокируют потоки и возвращают один скалярный ре...

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

PHP-Watcher: инструмент, который упрощает разработку долгоживущих приложений Мы любим PHP за простоту: ты пишешь код, обновляешь страницу в браузере и сразу видишь изменения. Но если дело доходит до консольных команд, которые могут быть долгоживущими процессами, — например, если мы пишем асинхронный HTTP-сервер для загрузки файлов, — разработка мож...

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

[Перевод] Руководство для начинающих по серверной веб-разработке с Node.js Большую часть своей веб-карьеры я работал исключительно на стороне клиента. Проектирование адаптивных макетов, создание визуализаций из больших объемов данных, создание инструментальных панелей приложений и т. Д. Но мне никогда не приходилось иметь дело с маршрутизацией или ...

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

[Перевод - recovery mode ] Django 3.0 будет асинхронным Andrew Godwin опубликовал DEP 0009: Async-capable Django 9 мая, а 21 июля он был принят техническим советом Django, так что можно надеяться, что к выходу Django 3.0 успеют сделать что-нибудь интересное. Он уже упоминался где-то в комментариях Хабра, но я решил донести эту но...

[Перевод] Монада «Maybe» через async/await в C# (без Task-oв!) Обобщенные асинхронные типы возвращаемых значений — это новая возможность появившаяся в C# 7, которая позволяет использовать не только Task в качестве возвращаемого типа асинхронных (async/await) методов, но также и любые другие типы (классы или структуры), удовлетворяющие ...

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

[Перевод] Дзен изолированных компонентов в Android-архитектуре Несколько лет назад мы в Badoo начали использовать MVI-подход к Android-разработке. Он был призван упростить сложную кодовую базу и избежать проблемы некорректных состояний: в простых сценариях это легко, но чем сложнее система, тем сложнее поддерживать её в корректном виде ...

OpenSceneGraph: Интеграция с фреймворком Qt Введение С одной стороны движок OpenSceneGraph и сам по себе обладает развитой подсистемой управления окнами, обработки событий пользовательского ввода, отправки и приема пользовательских сообщений. Об этом мы довольно подробно поговорили в предыдущих статьях этого цикла. ...

[Из песочницы] Асинхронный PHP и история одного велосипеда После выхода PHP7 появилась возможность сравнительно небольшой ценой писать долгоживущие приложения. Для программистов стали доступны такие проекты, как prooph, broadway, tactician, messenger, авторы которых берут на себя решение наиболее частых проблем. Но что если сделать ...

Три парадигмы асинхронного программирования в Vertx Я хочу показать три парадигмы асинхронного программирования — callbacks, futures, coroutines на примере простого веб приложения на фрейморке Vertx. Код будем писать на Котлине. Допустим у нас есть приложение, которое получает некую строку в HTTP запросе, по ней ищет URL в б...

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

Когда стандарта HTTP мало. Коммитим в Micronaut Всем привет, меня зовут Дмитрий, и сегодня я расскажу о том, как производственная необходимость заставила меня стать контрибутором для фреймворка Micronaut. Наверняка многие о нём слышали. Если вкратце, то это легковесная альтернатива Spring Boot, где основной упор сделан не...

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

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

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

MOBILE FIRST: Hackathon в OZON Когда релиз раз в две недели, новые фичи приходят от бизнеса, и технический долг требует свое — приходит время хакатона. Меня зовут Дмитрий Антышев, я iOS-разработчик в OZON, расскажу о том, как 27 февраля мы провели первый хакатон для мобильной команды. Читать дальше →

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

Как будет работать HPE SimpliVity 380 для VDI: жёсткие нагрузочные тесты Заказчик захотел VDI. Очень присматривался к связке SimpliVity + VDI Citrix Virtual Desktop. Для всех операторов, сотрудников офисов по городам и так далее. Там пять тысяч пользователей только в первой волне миграции, и поэтому они настояли на нагрузочном тестировании. VDI...

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

Человек без смартфона Мне 33 года, я программист из Санкт-Петербурга и у меня нет и никогда не было смартфона. Не то чтобы он был мне не нужен — нужен, даже очень: я работаю в IT сфере, у всех членов моей семьи они есть (у ребенка уже третий), мне приходилось руководить в том числе и мобильной ра...

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

[Перевод] Разворачиваем виртуалку с Windows с пробросом виртуальной видеокарты с помощью QEMU и Intel GVT-g Как заставить Intel GVT-g работать Всем привет! Intel предложили отличное решение извечной проблемы: "у меня есть ноутбук на Linux и мне надо запускать Windows с аппаратным ускорением, но у меня нет тяжеленного ноутбука с двумя GPU и жидкостным охлаждением". С помощью архите...

[Из песочницы] Асинхронный рассинхрон: антипаттерны в работе с async/await в .NET Кто из нас не косячит? Я регулярно встречаюсь с ошибками в асинхронном коде и делаю их сам. Чтобы прекратить это колесо Сансары делюсь с вами самыми типичными косяками из тех, которые иногда довольно сложно отловить и починить. Читать дальше →

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

Как писать полиморфические программы c помощью Arrow Привет, Хабр! Меня зовут Артём Добровинский, я работаю в компании Finch. Предлагаю к прочтению статью одного из отцов библиотеки функционального программирования Arrow о том, как писать полиморфические программы. Часто люди, которые только начинают писать в функциональном...

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

Расширяем возможности UObject в Unreal Engine 4 Всем привет! Меня зовут Александр, я уже более 5 лет работаю с Unreal Engine, и почти все это время — с сетевыми проектами. Поскольку сетевые проекты отличаются своими требованиями к разработке и производительности, нередко необходимо работать с более простыми объектами, та...

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

Неожиданный взгляд на асинхронные схемы, независящие от скорости В асинхронной науке центральное место занимает свойство схем, называемое независимостью от скорости, по английски speed independent (далее SI). Считается, что это свойство является аналогом независимости асинхронных схем от задержек логических элементов. Неудивительно, что т...

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

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

[Из песочницы] Кластерное хранилище Pacemaker + DRBD (Dual primary) + ctdb Доброго времени суток, хабровчане. Поступила задача — развернуть отказоустойчивое High Available хранилище по средствам pacamaker + drbd (в режиме dual primary) + clvmd + ctdb, которое будет монтироваться на сервер. Оговорюсь, что со всеми этими инструментами я сталкиваюсь в...

Univention Corporate Server (UCS) — установка простого и удобного LDAP сервера с web-панелью и его связка с Nextcloud Рано или поздно на любом маленьком или среднем предприятии возникает задача по созданию единого центра авторизации пользователей в многочисленных сервисах и порталах компании. Среди кандидатов на такой центр авторизации сразу приходит в голову Microsoft Active Directory ил...

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

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

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

Что делать, если не работает Google Play Music Не работает Play Music? Есть решение! Google Play Music — это замечательная вещь: почти любая песня мгновенно передается на ваше устройство «по воздуху» независимо от того, где вы находитесь. Кроме тех случаев, когда у вас, естественно, нет доступа к сети. Од...

Валидация форм во Vue.js Привет, Хабр! Валидация форм — одна из самых важных задач на сайте. Нам приходится валидировать данные на присутствие, на совпадение по паттерну, создавать асинхронные валидации, применять валидации только после снятия фокуса с поля или перед отправкой формы… Порой это стан...

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

Лучшие программы-архиваторы на Android Работать с архивами на Android просто Одним из наиболее распространенных типов файлов, с которыми нам приходится иметь дело, являются архивные файлы. Файлы форматов zip, rar, 7z и многие другие являются довольно удобным и универсальным инструментом для обмена информацией. См...

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

Как внедрить аналитику и не сломать приложение? Привет! Меня зовут Соснин Илья. Я работаю в Lamoda Android разработчиком. Крашу кнопочки, прогаю списочки и, к сожалению, пишу аналитику… Lamoda — это Data Driven Company, в которой все решения принимаются на основе поведения пользователей. Сначала мы наблюдаем и только пот...

Backend United #5: Шаурма — микросервисы, распределенные системы и Кафка Привет! 7 декабря в офисе Авито пройдёт пятый митап в серии Backend United, получивший название «Шаурма». Эта встреча ориентирована на архитекторов и на разработчиков. О чём хотим поговорить? Многие компании рано или поздно переезжают с монолита на микросервисы. Помимо очеви...

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

Редактор аудио онлайн, или как бесплатно обрезать, объединять, накладывать эффекты и т.д. на звуковые файлы Если вы записываете подкасты, информационные курсы или просто любите отправлять друзьям смешные аудиозаписи, рано или поздно вам понадобится программа-редактор. Но какую выбрать? Конечно, идеальный выбор – это Audacity, Cubase, Adobe Audition, Apple Logic или Avid Pro Tools....

Архитектура EBA aka реактивность на всю катушку Я пришел в Tinkoff пару лет назад, на новый проект Клиенты и проекты, который тогда только запускался. Сейчас уже не помню своих ощущений от новой тогда для меня архитектуры. Но точно помню: было непривычно, что Rx используется еще где-то, за пределами обычных походов в сеть...

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

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

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

Шесть причин пользоваться смарт-часами Samsung Galaxy Watch — смарт-часы на любителя Смарт-часы появились относительно недавно, но за это время они вызвали немало споров. Кто-то говорит, что они нужны. Кто-то доказывает, что это пустая трата денег. Я люблю говорить, что истина где-то посередине. Сегодня поп...

Где взять и как установить новые шрифты на iOS iOS 13 позволяет устанавливать кастомные шрифты. Но зачем? Наверное, на это мало кто обратил внимание, но за последнее время Apple сильно продвинулась по части всевозможных разрешений для iOS. В результате то, что ещё несколько лет назад было немыслимым, сегодня является абс...

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

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

Какой могла бы быть официальная веб-версия Apple Music Сервис Apple Music присутствует на всех популярных платформах — Mac, iOS, Android и Windows. Но по какой-то причине музыкальный сервис так и не обзавелся веб-версией. Радует только то, что компания предоставляет разработчикам официальный доступ к API, что позволяет эн...

RESTinio — это асинхронный HTTP-сервер. Простой пример из практики: отдача большого объема данных в ответ Недавно мне довелось поработать над приложением, которое должно было контролировать скорость своих исходящих подключений. Например, подключаясь к одному URL приложение должно было ограничить себя, скажем, 200KiB/sec. А подключаясь к другому URL — всего 30KiB/sec. Самым инте...

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

Тред Ариадны: как перестать бояться и полюбить JSR-133. Доклад Яндекса Многоядерные процессоры — обыденность. Рано или поздно любому программисту-практику придется зайти в лабиринт многопоточного программирования и встретиться с населяющими его «чудовищами». Поговорим о том, с чего начать этот путь и какие инструменты и подходы помогут выйти по...

Рисовать — это 10% работы UX-дизайнера Привет, Хабр! Меня зовут Никита. Год назад я пришёл работать в Промсвязьбанк UX-дизайнером в команду по разработке интерфейсов ДБО для малого и среднего бизнеса. В то время нашей команде прилетали совершенно разные задачи, с разных продуктов. Зачастую уже в виде четко описан...

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

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

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

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

Nintendo Switch скоро могут превратить в планшет на Android Nintendo Switch довольно стремительно ворвалась на рынок, доказав всему миру, что нестандартные решения вполне могут приносить прибыль, став одной из самых быстропродаваемых консолей от японской компании. «Сердцем» игровой системы является чип Nvidia Tegra, а это ...

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

[Перевод] Почему меня нервируют отказы современных SSD Сегодня один из SSD на одном из наших новых файловых серверов под Linux умер. Это не первая и, вероятно, не последняя смерть SSD, с которой мы столкнёмся, но, как почти всегда в таких случаях, я почувствовал, как шалят мои нервы – а всё из-за сочетания характера отказов SS...

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

Как стать коммиттером и действительно ли вам это нужно Привет! Меня зовут Дмитрий Павлов, я работаю в GridGain, а также являюсь коммиттером и участником PMC в Apache Ignite и контрибьютором в Apache Training. Недавно я выступал c докладом о работе коммиттера на митапе Сбербанка по open source. С развитием opensource-сообщества у...

[Из песочницы] События на базе LiveData Android LiveData – это отличный инструмент для связывания состояния ваших данных и объектов с жизненным циклом (LifecycleOwner, обычно это Fragment или Activity). Обычно LiveData помещаются во ViewModel и используются для обновления состояния вашего UI. Часто ViewModel может пережи...

Рецепты PostgreSQL: планировщик асинхронных задач Для приготовления планировщика асинхронных задач нам понадобится сам postgres и его расширение pg_task. (Я дал ссылки на свой форк postgres, т.к. делал некоторые изменения, которые пока не удалось пропихнуть в оригинальный репозиторий. Можно также воспользоваться готовым обр...

[Из песочницы] Тестирование API с использованием Postman и Excel Всем привет, я руководитель отдела тестирования, и недавно по работе появилась задача на тестирование API. Для ее решения освоил новый для меня инструмент Postman и JavaScript. Первоначально на каждый API я писал свои коллекции и готовил тестовые данные в JSON формате. Это ...

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

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

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

Code review: вредные советы для контрибьютера и ревьювера Привет! Меня зовут Николай Ижиков. В этом посте я хочу рассказать об одном важном элементе взаимодействия, с которым мы сталкиваемся в процессе разработки ПО, особенно в open source. Это прохождение и проведение code review. Я дам вредные советы, как сделать свою фичу и до...

Джон Мюллер: Google поддерживает ETag/If-None-Match В прошлом месяце сотрудник Google Джон Мюллер подтвердил, что Google поддерживает механизм ETag/If-None-Match. Об этом он заявил в ответ на вопрос в Twitter: При этом Мюллер отметил, что большинство сайтов чаще используют другой заголовок HTTP-запросов — If-Modified-Since. E...

[Перевод] Использование JavaScript-модулей в продакшне: современное состояние дел. Часть 1 Два года назад я писал о методике, которую сейчас обычно называют паттерном module/nomodule. Её применение позволяет писать JavaScript-код, используя возможности ES2015+, а потом применять бандлеры и транспиляторы для создания двух версий кодовой базы. Одна из них содержит с...

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

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

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

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

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

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

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

Как перенести файлы между Mac и Android Предположим, у вас есть MacBook или любой другой компьютер Mac и мобильный телефон Android, и вы хотите перенести файлы с MacBook на устройство Android. Если вы захотите использовать USB-кабель, вы не сможете передавать файлы с Mac на Android из-за несовместимости двух платф...

Software AG: не только ARIS Здравствуй, Хабр. Меня зовут Олег Порецкий. Я вице-президент по продажам Software AG в России и СНГ. Мы работаем в России еще с 80-х годов, и нам есть что о себе рассказать. В англоязычном сегменте мы поддерживаем собственное сообщество ИТ-специалистов (TECH Community). Тепе...

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

[Перевод] Пишем чистый и масштабируемый JavaScript-код: 12 советов Язык JavaScript родом из раннего веба. Сначала на нём писали простые скрипты, которые «оживляли» страницы сайтов. Теперь же JS превратился в полноценный язык программирования, который можно использовать даже для разработки серверных проектов. Современные веб-приложения силь...

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

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

[Из песочницы] Интервалы: грядущая эволюция C++ Уже скоро появится стандарт C++20, в который, скорее всего, добавят концепцию интервалов (ranges), однако мало кто знает, что они из себя представляют и с чем их едят. Доступных широкой аудитории русскоязычных источников про этого зверя мне найти не удалось, вследствие чего ...

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

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

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

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

«Удаление» объектов в Django Рано или поздно перед разработчиками встаёт задача удаления ненужных данных. И чем сложнее сервис, тем больше нюансов необходимо учесть. В данной статье я расскажу, как мы реализовали «удаление» в базе данных с сотней связей. Читать дальше →

Уроки труда на дому: наборы детских инструментов от Pebaro Года три назад ребенок захотел стучать молотком на даче, и тогда вдруг вспомнилось, что в детстве были классные наборы «взрослых» инструментов для маленьких. Найти года три назад что-то похожее удалось с огромным трудом и с доставкой из другого региона. Все запросы типа «н...

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

Python v3.x: обработчик исключений для корутин и синхронных функций. Вобщем, для всего В свободное время я работаю над своим небольшим проектом. Написан на Python v3.x + SQLAlchemy. Возможно, я когда-нибудь напишу и о нем, но сегодня хочу рассказать о своем декораторе для обработки исключений. Его можно применять как для функций, так и для методов. Синхронных ...

Разработка ТамТам-бота на Python Привет, Хабр! Позвольте представиться: меня зовут Сергей Агальцов, и я "программист по жизни". Это значит, что я давно уже IT-менеджер, а вовсе не программист по профессии, но программирование использую постоянно, как в своей основной деятельности, так и как хобби. Как част...

Angulareact У меня есть проблема. Приложение написано на Angular, а библиотека компонентов на React. Делать клон библиотеки слишком дорого. Значит, нужно использовать React-компоненты в Angular-приложении с минимальными затратами. Разбираемся как это делать. Читать дальше →

Асинхронные электродвигатели от Интер Электрик Российский производитель группа компаний ИЭК – один из лидеров индустрии – выпустил серию асинхронных электродвигателей переменного тока серии АИР. Современные и высокотехнологичные – они с успехом применяются на ведущих предприятиях страны — в промышленности, строител...

Идея о поиске людей в лесу Эта статья описание небольшой идеи возникшей после прочтения недавней статьи «Обыскать 314 км² за 10 часов — финальное сражение инженеров-поисковиков против леса» Сразу предупрежу, что у меня маловато опыта в радиотехнике, и совсем нет оного в поиске пропавших людей, так чт...

От Homo sapiens sapiens через Homo vulnerable к Homo science, или Security Awareness по-взрослому Современный рынок ИБ наполнен всевозможными продвинутыми решениями с приставками в названии Next generation, Unified, AntiAPT ну или хотя бы 2.0. Производители обещают новый уровень автоматизации, автореспонса, распознования зеродея и прочие чудеса. Любой безопасник знает: н...

В ADFOX появился асинхронный API Статистики для доступа к отчетам В ADFOX появился новый инструмент — асинхронный API Статистики для доступа к отчетам. Теперь работать с данными в ADFOX стало удобнее: можно выгружать их прямо из интерфейса, интегрировать новый API со своей CRM-системой, а также ...

Мир лучше без Windows XP Поддержка Windows XP была официально закрыта в апреле 2014 года, но это не значит, что все от нее отказались.Независимо от того, имеем ли мы в виду старые компьютеры, чье оборудование не может работать под управлением Windows 10, или предприятия, которым необходимо придержив...

[Перевод] Как втиснуть 16 ГБ памяти на материнскую плату, которая не поддерживает такой объём Некоторое время назад я поставил на один из своих компьютеров 16 ГБ памяти. На нём стоит материнка Foxconn P55MX с Core i5 750. Можно было бы и заменить этот старый CPU, но он он пока нормально работает и делает всё, что мне нужно. Вот что интересно. Материнская плата офици...

Как я решил проблему с Bootcamp и macOS Mojave У многих из нас, однажды купивших Mac, не получается расстаться с прошлым. С прошлым в виде компьютеров с Windows. Хорошо, что есть возможность запустить Windows на Mac! Кто-то использует Bootcamp из-за абсолютной несовместимости программ для OS X и Windows, а программы нуж...

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

Типичные ошибки при работе с PostgreSQL Чуть более месяца назад в Москве состоялась крупнейшая конференция постгресового сообщества PGConf.Russia 2019, собравшая в МГУ свыше 700 человек. Мы решили выложить видео и расшифровку лучших докладов. Выступление Ивана Фролкова с разбором типичных ошибок при работе с Postg...

[Перевод] JavaScript не нужно ничем заменять — другие языки тоже столкнутся с теми же проблемами «Существует только два вида языков: те, на которые жалуются и те, которыми никто не пользуется», — Бьёрн Страуструп, создатель C++ Очень часто слышатся заявления о том, что JavaScript нужно заменить каким-то другим языком. Причиной всегда становится то, что у JavaScript нак...

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

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

Новый пакет валидаций для React на Mobx @quantumart/mobx-form-validation-kit Добрый день. Сегодня я хочу рассказать о новом пакете для асинхронных валидаций в проектах использующих в своей основе React, Mobx и написанных на Typescript. Современная Frontend разработка предполагает большое количество логики при заполнении страниц с документами, анкет ...

Как мы внедряли навигацию из Jetpack в боевое приложение. Доклад Яндекс.Еды В мобильных приложениях всё чаще используются deep links. Это ссылки, которые позволяют не просто перейти в приложение извне, а попасть на конкретный экран. Android-разработчик из Яндекс.Еды Владислав Кожушко объяснил, почему мы для реализации deep links внедрили навигацию и...

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

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

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

[Из песочницы] SSEGWSW: Server-Sent Events Gateway by Service Workers Привет! Меня зовут Саша и я работаю архитектором в Тинькофф Бизнес. В этой статье хочу рассказать о том, как преодолеть ограничение браузеров на количество открытых долгоживущих HTTP-соединений в рамках одного домена при помощи service worker. Если хотите — смело пропуска...

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

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

JSConf Budapest 2019 Привет, Хабр! Меня зовут Дмитрий Татаринцев, я работаю frontend-разработчиком в FunCorp. В конце сентября я посетил JSConf в Будапеште. Это одна из серии комьюнити-конференций, проходящих по всему миру. В своем обзоре я кратко расскажу про организацию и более подробно — пр...

[Перевод] Ускоряем JavaScript-код с использованием типа данных Set Автор материала, перевод которого мы сегодня публикуем, говорит, что уверен в том, что многие JavaScript-разработчики пользуются, в основном, такими типами данных, как Number, String, Object, Array и Boolean. В большинстве случаев этого вполне достаточно. Но если нужно сдела...

[Из песочницы] Использование верилятора как средства быстрого моделирования RTL проектов. Введение в UVM В данной статье будут описаны установка и применение бесплатного ПО для моделирования схем цифровой логики на языке Verilog как альтернативы коммерческих продуктов Incisve от компании Cadense и ModelSim от компании MentorGraphics. Сравнение моделирования в ModelSim и Verilat...

Как мы сделали прототип приложения для остановочных ремонтов Привет! Меня зовут Андрей Грачев, и я продакт-менеджер в СИБУРе. У нас в СИБУРе регулярно происходят «остановочные ремонты». Это что-то вроде профилактики, планового обслуживания и ремонта, на время которого весь завод или часть его полностью останавливается. Такие ремонты...

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

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

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

Как мы запускаем новый сайт банка. Часть 1 Привет! Меня зовут Илья Голованов. Мы вместе с командой работаем над новым сайтом Промсвязьбанка. В этой статье я расскажу, какие задачи перед нами стоят, с какими проблемами мы сталкиваемся и к каким решениям приходим. Пока новый вид доступен для 30% страниц (их можно увид...

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

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

[Из песочницы] Как совместить преимущества ноутбука и стационарного компьютера? Разбор проблемы и идеи решения В данный момент ноутбуки и персональные компьютеры сильно отличаются друг от друга. Под системным блоком стационарного компьютера, как правило, понимается «башня» преимущественно стандарта midi-tower, весом килограмм в 15-20 (или больше), занимающий огромное пространство под...

Как мы оценивали качество документации Привет, Хабр! Меня зовут Леша, я системный аналитик одной из продуктовых команд Альфа-Банка. Сейчас я занимаюсь развитием нового интернет-банка для юридических лиц и индивидуальных предпринимателей. А когда ты аналитик, тем более в подобном канале, без документации и плотно...

[Из песочницы] Python + Pyside2 или просто «Калькулятор» Привет, Хабр! Меня зовут Саша. Я Junior разработчик. Работаю тестировщиком ПО. В основном я пишу тесты при помощи Python+Selenium, но Python стал настолько интересен, что мне захотелось углубиться в него и выучить как можно больше фреймворков! Я захотел написать десктопное ...

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

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

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

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

Как сделать триггер DAG'а в Airflow, используя Experimental API При подготовке наших образовательных программ мы периодически сталкиваемся со сложностями с точки зрения работы с некоторыми инструментами. И на тот момент, когда мы с ними сталикваемся, не всегда есть достаточно документации и статей, которые помогли бы с этой проблемой спр...

HTTP/2-серверы под угрозой DoS-атак Специалисты компаний Google и Netflix нашли группу DoS-уязвимостей в конфигурациях HTTP/2-серверов крупных вендоров и в аналогичных решениях с открытым кодом. Обнаруженные баги позволяют даже не самому продвинутому злоумышленнику заблокировать сервер — вредоносный клиент обр...

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

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

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

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

Huawei Watch GT — треккер или часы? У всех разное отношение к носимой электронике. Но нельзя отрицать факт того, что она занимает все более и более серьезные позиции в нашей жизни. Браслеты становятся совсем недорогими, а часы более функциональными. Но есть устройства посередине. Например, Huawei Watch GT. П...

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

Как отменить подписку на Mac? Два способа Если вы оформляли подписку на различные сервисы при помощи App Store, а сейчас хотите ее отменить, сделать это можно прямо с iPhone или iPad. Но что если вы хотите воспользоваться для решения этой задачи своим компьютером Mac? Например, если оформили пробную подписку на при...

Как мы разогнали САПР КОМПАС-3D → Часть 1 Уже 20 лет прошло с момента выпуска первой 3D-версии КОМПАС — V5.11. За это время мы поняли, что потребности наших пользователей растут пропорционально возможностям КОМПАС-3D, так же как и функциональность КОМПАС расширяется пропорционально запросам пользователей. Только вот...

Все, что нужно знать о Google Play Pass Что такое Google Play Pass и чем он так хорош? Недавно Google запустили подписку на сервис Google Play Pass, и многие пользователи, естественно, начали сравнивать его с Apple Arcade. Хотя у них есть некоторые общие черты, это далеко не «клоны» друг друга. В этой ст...

Как подружить стоковый Sonoff c OctoPrint -ом Пост оформлен как замета.     Имеется самый самый простой Sonoff (модель - Basic2). От него питается принтер. И raspberry pi 3b+ с OctoPrint -ом и Telegram ботом. Мне не хотелось менять стоковую прошивку, чтобы не терять возможность управления принтером из любой точки мира г...

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

Использование WiFi на Lerdge-X (K) через виртуальный COM порт Доброго дня дорогие друзья!На написание сего поста сподвигло меня полное отсутствие какой либо структурированной инфы по этому вопросу.Задача была заставить принтер печатать из Simplify3D без шнурка по WiFi на плате Lerdge-X (подойдет и для K).Из коробки WiFi убогий, по доку...

Как узнать пароль от Wi-Fi, к которому подключён ваш Android-смартфон За время использования своего Android-устройства вы, скорее всего, подключались к десяткам сетей Wi-Fi. Школа, дом, работа, спортзал, дома ваших друзей и семьи, кафе – каждый раз, когда вы вводите один из этих Wi-Fi-паролей, ваше Android-устройство сохраняет его для безопас...

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

Лучшая замена стандартному диктофону на iPhone У стандартного диктофона много недоработок. Но их можно решить Мы часто рассказываем о различных приложениях из App Store. Как правило, большинством из них пользуется редакция, и порой просто хочется поделиться полезной программой с читателями. Приятно, что с нашим мнением с...

Большая Философская Мысль: топ-10 докладов DotNext 2019 Piter Здравствуй, Хабр! В мае прошла наша большая .NET-конференция, где нашлось место и хардкору, и трендам, и архитектуре, и просто хорошим практикам. А теперь делимся лучшими докладами (по оценкам зрителей конференции), из которых вы: узнаете, почему (скорее всего) пишете ...

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

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

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

Работать с PDF сложно? Попробуйте это приложение PDFelement — мощный комбайн для работы с PDF Многим из нас так или иначе приходится работать с документами в формате PDF. Одним он нужен в офисе, другие просто предпочитают обмениваться документацией в формате PDF, так как он удобен в использовании и экономичен в потре...

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

[Из песочницы] Хакнуть Госуслуги – можно, если очень нужно Всем привет, дорогие хабравчане! Это небольшая история – пример применения технических навыков в обход системы в своих целях. Модератор: Внимание! Данный текст является описанием возможности в экспериментатаорских целях. Напоминаем, что повтор подобных действий может приве...

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

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

[Из песочницы] Open Session In View в Spring Boot: Скрытая угроза Все здесь правы, каждый по-своему, и, следовательно, все здесь не правы. "Сказка о Тройке" (А. и Б. Стругацкие)Если вы используете Spring Data JPA, то после обновления на Spring Boot 2 при старте приложения можете заметить в логе новое предупреждение: spring.jpa.op...

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

Как удалить задний фон на фото на Android-смартфоне Удалить задний фон при помощи смартфона не составит труда Почти наверняка у каждого из нас на смартфоне в галерее снимков есть фото, которое выполнено просто отлично, но задний фон на котором все портит. Конечно, никто не запрещает вам перебросить фотографию на компьютер, за...

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

[Из песочницы] Чётные числа Фибоначчи Навеяно комментарием под постом Фибоначчи на собеседовании. Пользователь pavellyzhin упомянул следующую задачу на собеседовании (комментарий): Больше года назад откликнулся на вакансию «php-программист», прислали ТЗ и там было задание с Фибоначчи: выбрать все четные числа Фи...

[Из песочницы] 5 наиболее распространенных проблем работодателей при подборе IT-специалистов с точки зрения рекрутера-аутсорсера Эта статья написана по материалам моего выступления на HR Meetup #5, проходившего 5 октября 2018 года в г. Ростове-на-Дону. О себе Меня зовут Игорь Шелудько. Я – предприниматель в сфере разработки и продаж программного обеспечения с 2000 года. У меня высшее техническое о...

Как на iOS научить приложение всегда запрашивать доступ к местоположению iOS 13 защитит вас от слежки приложений Конфиденциальность, о существовании которой раньше знали, наверное, два человека из десятка, с лёгкой подачи Apple превратилась чуть ли не в ключевую ценность для большинства пользователей. Теперь стало в порядке вещей заклеивать объек...

«Тушить» ли сервера, если «загорелся» смоук тест датацентра? Что бы вы почувствовали, если в один прекрасный летний день дата-центр с вашим оборудованием стал бы выглядеть вот так? Всем привет! Меня зовут Дмитрий Самсонов, я работаю ведущим системным администратором в «Одноклассниках». На фотографии один из четырёх дата-центров, гд...

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

От копипасты к компонентам: переиспользуем код в разных приложениях Badoo разрабатывает несколько приложений, и каждое из них — это отдельный продукт со своими особенностями, менеджментом, продуктовыми и инженерными командами. Но все мы работаем вместе, в одном офисе и решаем похожие проблемы. Развитие каждого проекта происходило по-своем...

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

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

Benchmarking ORM, используемых при создании Android-приложений Привет, Хабр! Меня зовут Артём Добровинский и я Android-разработчик в FINCH. Однажды, кутаясь в дыму утренней сигары, я изучал исходники одной ORM для Android. Увидев там package под названием benchmarks сразу заглянул туда, и был удивлен тем, что все оценки выполнены с помо...

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

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

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

Просто и на C++. Основы Userver — фреймворка для написания асинхронных микросервисов В Яндекс.Такси придерживаются микросервисной архитектуры. С ростом количества микросервисов мы заметили, что разработчики много времени тратят на boilerplate и типичные проблемы, при этом решения не всегда получаются оптимальные. Мы решили сделать свой фреймворк, с C++17 и ...

[Перевод] Новый курс по Python от Microsoft [на английском] Вероятно, самое большое препятствие при изучении любого нового языка программирования — просто знать, с чего начать. Что важно? Что нужно знать, чтобы стать профи? Трудно исследовать документы, когда даже нет уверенности, что читаешь то, что нужно. Возможно, вы присматривае...

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

Почему может тормозить телефон на Android? В первые дни после покупки смартфон, как правило, радует своей высокой производительностью и отзывчивостью. Но стоит «накатить» на него чуть больше приложений, нагрузить несколькими задачами, и в один день телефон может начать работать очень медленно. И дело здесь вовсе не ...

Security Week 41: больше уязвимостей в SIM-картах, дешифрование PDF На прошлой неделе получила развитие история про атаки на уязвимый софт в SIM-картах. Обнаруженная ранее активно эксплуатируемая атака SimJacker оказалась не единственной. Исследователи из компании Ginno Security сообщили о похожей проблеме в компоненте Wireless Internet Brow...

#Мнение: Почему в дешевые телефоны не ставят старые процессоры от флагманов? Далеко не каждый готов отдать 70-80 тысяч рублей за новый флагманский смартфон при том, что среди устройств среднего ценового сегмента сегодня есть вполне привлекательные смартфоны, которые порадуют и дизайном, и возможностями. В таких смартфонах используются специально раз...

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

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

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

Как бороться с flaky тестами в opensource-сообществе С проблемой flaky-тестов сталкиваются многие проекты, и тема эта уже не раз поднималась на Хабре. Тесты, не определившиеся со своим состоянием, постоянно отнимают не только машинное время, но и время разработчиков и тестировщиков. И если в коммерческой компании можно выделит...

Как в Яндекс.Практикуме побеждали рассинхрон на фронтенде: акробатический номер с Redux-Saga, postMessage и Jupyter Меня зовут Артём Несмиянов, я фулстек-разработчик в Яндекс.Практикуме, занимаюсь в основном фронтендом. Мы верим в то, что учиться программированию, дата-аналитике и другим цифровым ремёслам можно и нужно с удовольствием. И начинать учиться, и продолжать. Любой не махнувший ...

[Из песочницы] О чем молчит EXPLAIN, и как его разговорить Классический вопрос, с которым разработчик приходит к своему DBA или владелец бизнеса — к консультанту по PostgreSQL, почти всегда звучит одинаково: «Почему запросы выполняются на базе так долго?» Традиционный набор причин: неэффективный алгоритм когда вы решили сделать J...

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

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

Как объединить внутреннюю и внешнюю память на Android-смартфоне Одной из главных проблем современных смартфонов остается недостаточное количество памяти (ну и время автономной работы). Многие решают ее покупкой карты microSD, однако для того, чтобы память устройства работала как единый организм, не лишним будет объединить внутренний и в...

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

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

[Из песочницы] Рефакторинга много не бывает Привет, Хабр! Представляю вашему вниманию перевод статьи "Refactoring — oops, I’ve been doing it backwards" автора Джастина Фуллера (Justin Fuller). Я очень завишу от рефакторинга, и не боюсь признать это, но есть только одна проблема: я всегда делал это задом на...

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

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

[Перевод] Python и быстрые HTTP-клиенты В наши дни, если вы пишете некое Python-приложение, то вам, скорее всего, придётся оснащать его функционалом HTTP-клиента, который способен общаться с HTTP-серверами. Повсеместное распространение REST API сделало HTTP-инструменты уважаемыми жителями бесчисленного множества п...

Как получить быстрый доступ к веб-приложениям iCloud из Chrome За что многие пользователи так любят Google Chrome, что готовы ради него отказываться от не в пример более экономичного и быстрого Safari? Конечно, за расширения, которым Google даже посвятила отдельный магазин. Благодаря расширениям можно существенно расширить функциональн...

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

Как передать файлы с Android-устройства на Mac. Все способы Передаем файлы с Android на Mac На сегодняшний день люди пользуются самыми разными платформами в различных их сочетаниях — iOS, Windows, Android, MacOS. У большинства из нас есть практически все гаджеты, работающие на перечисленных операционных системах. И не всегда &#...

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

История о том, как PVS-Studio нашёл ошибку в библиотеке, используемой в… PVS-Studio Это небольшая история о том, как с помощью PVS-Studio удалось найти ошибку в исходном коде библиотеки, используемой в PVS-Studio. Причём не теоретическую, а фактическую — ошибка проявлялась на практике при использовании библиотеки в анализаторе. Читать дальше →

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

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

Перечитывая Лу Гринзоу «Философия программирования Windows 95/NT» Небольшая рецензия по книге двадцатилетней выдержки была написана еще в 2016, публикую с микроправками. В оригинале исповедь автора называется «Дзен программирования в Windows 95» (Zen of Windows 95 Programming). Пусть вас не пугает цифра «95», ключевым сюжетом является име...

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

Как флагманы: Redmi Note 7 поддерживает установку приложения Google Camera напрямую, без манипуляций с загрузчиком После покупки нового смартфона многие пользователи пытаются установить на него приложение Google Camera, которое дает более качественные фото и видео, нежели стандартное приложение камеры. Далеко не каждая модель поддерживает установку Google Camera, а те, что поддержив...

[Из песочницы] Генератор мемов на Ruby для привлечения интереса к языку По моему мнению язык Ruby перестал быть популярным как в 2012 — 2014 году и поэтому у меня возникло желание пока про язык совсем не забыли, попробовать его снова донести в массы, ведь Ruby по моему мнению самый удобный и практичный язык для веб разработки. Я с неделю назад ...

Как я искала эталон красоты с помощью NLP (и не нашла) Невозможно объективно измерить, какие девушки красивее: блондинки или брюнетки, смуглые или белокожие, высокие или миниатюрные. Но можно посчитать, какие черты внешности упоминают чаще, когда говорят о красоте. У меня была неделя на эксперименты, наши движки анализа данных...

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

Зачем нам на производстве AR и VR Привет! AR и VR — штуки модные, сейчас приложения с их использованием не сделал только ленивый (или тот, кому оно просто не надо). От Oculus до MSQRD, от простых игрушек, радующих детишек появлением динозавра в комнате, до прикладных приложений вида «Расставь мебель в своей ...

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

[recovery mode] Цель оправдывает средства? (!) Черное и серое SEO Попытаюсь коротко рассказать про черное и белое SEО. Что это такое, стоит ли пользоваться и т.д.Для начала, сама аббревиатура SEO, расшифровка которой звучит, как: «Search Engine Optimization», уже предполагает некую «серость». Слово «оптимизировать» хоть и не звучит как что...

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

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

Изюминки прошедшей Moscow Python Conf++ 2019: трансформация в площадку для общения Самыми горячими темами Moscow Python Conf++ оказались асинхронная разработка, а также сопоставление Python, его лучших практик и инструментария с аналогами из других языков, и его место в ландшафте современной разработки. Плюс мы пригласили выступить Бенджамина Петерсона, од...

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

Система удаленного файлового доступа Cage Назначение системы Поддержка удаленного доступа к файлам на компьютерах в сети. Система «виртуально» поддерживает все основные файловые операции (создание, удаление, чтение, запись и др.) путём обмена транзакциями (сообщениями) по протоколу ТСР. Области применения Функционал...

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

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

Apple представила льготный период для приложений в App Store Льготный период — теперь и в App Store У вас когда-нибудь бывало такое, что средств на карте оказывалось недостаточно для продления подписки, и вы теряли возможность использовать тот или иной сервис, который распространяется только за плату? Вот и у меня нет. Но Apple ...

[Перевод] Dart 2. Асинхронное программирование: потоки данных Асинхронное программирование: потоки данных Содержание Получение событий потока События с ошибкой Работа с потоками Типы потоков Потоки-подписки Широковещательные потоки Методы, обрабатывающие поток Методы, изменяющие поток Функция transform() Чтение и декодирование файл...

Программное улучшение монохромной DLP/LCD печати Всем доброго времени суток! Почти месяц я осваиваю науку (искусство) фотополимерной печати, на принтере Anycubic Photon. В основном мне требуются всевозможные небольшие детали, и так уж получилось, что фотополимерной печатью можно добиться почти любого результата. Осложнения...

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

Как волонтёры со всего мира создают прямой эфир ICPC-2019 Меня зовут Лида Перовская, я работаю в Яндексе, а ещё с 2015 года помогаю организовывать прямой эфир International Collegiate Programming Contest. ICPC — студенческий чемпионат мира по программированию — проводится ежегодно с 1970-х. Это чуть ли не единственная олимпиада п...

Это приложение добавит вашему iPhone ночной режим съёмки Ночная съёмка на iPhone — это реальность Высокое качество фото всегда было коньком iPhone. Даже четырёхлетний iPhone 6s по сегодняшним меркам фотографирует вполне бодро, не говоря уже о более современных моделях. Но, так или иначе, назвать камеру флагманских iPhone луч...

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

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

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

[Из песочницы] OpenAI Gym+ROS+Gazebo: обучение автономного робота в домашних условиях. Часть 1 За последние несколько лет мы стали свидетелями внедрения технологий искусственного интеллекта в нашу повседневной жизни — от роботов-пылесосов до беспилотных дронов. Все они, управляемые искусственным интеллектом, уже являются для нас обыденностью. Но несмотря на это, проце...

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

[Перевод] Почему жульничает дружественный ИИ в Ghost Recon Wildlands При создании игр разработчики одержимы желанием создать для игроков интересный и увлекательный игровой процесс: поставить их в новые условия или по-новому взглянуть на знакомые. И иногда для этого необходимо немного сжульничать. Разработчики вносят небольшие изменения в сист...

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

[Из песочницы] Построение пакета RPM для Rosa Linux на практике Если Вы уже давно пользуетесь операционной системой Linux и хоть немного разбираетесь в программировании, рано или поздно Вам может понадобиться собрать программу из исходного кода. Может быть, нужной программы не окажется в репозиториях дистрибутива. Или в этих репозиториях...

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

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

[Из песочницы] Импорт отчета по звонкам из CoMagic в BigQuery по расписанию с помощью Google Cloud Functions Для чего При сложной структуре рекламных кампаний и большого количества звонков становятся необходимы дополнительные инструменты хранения, обработки и анализа информации о поступающих обращениях. Часто нужен быстрый доступ к данным за большой период времени. Иногда необходим...

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

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

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

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

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

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

Практическое применение трансформации AST-деревьев на примере Putout Введение Каждый день при работе над кодом, на пути к реализации полезного для пользователя функционала, становятся вынужденные (неизбежные, либо же просто желательные) изменения кода. Это может быть рефакторинг, обновление библиотеки или фреймворка до новой мажорной версии, ...

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

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

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

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

Стажёр Вася и его истории об идемпотентности API Идемпотентность — звучит сложно, говорят о ней редко, но это касается всех приложений, использующих API в своей работе. Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникну...

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

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

[Из песочницы] Хранение настроек в памяти Базового устройства Привет! Если Вам посчастливилось подержать в руках микроконтроллер ESP32 (мне посчастливилось больше и у меня в руках M5Stack) от китайской компании ESPRESSIF, то этот пост, возможно, будет полезен. Бывает ситуация, когда необходимо сохранить какие-то параметры в энергонеза...

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

У флагманских смартфонов OnePlus снова проблемы В последние дни у смартфонов OnePlus вдруг начали появляться различные проблемы. Сначала OnePlus 5 и 5T, получив обновление Android 9.0 Pie, у многих пользователей оказались вовсе не так стабильны, как хотелось, затем OnePlus 6 с 6T начали разряжаться слишком ...

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

Инициализация в современном C++ Общеизвестно, что семантика инициализации — одна из наиболее сложных частей C++. Существует множество видов инициализации, описываемых разным синтаксисом, и все они взаимодействуют сложным и вызывающим вопросы способом. C++11 принес концепцию «универсальной инициализации». ...

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

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

[Перевод] Технические детали недавнего сбоя расширений Firefox Об авторе. Эрик Рескорла — технический директор группы Firefox в Mozilla Недавно в Firefox произошёл инцидент, когда большинство дополнений (расширений, аддонов) перестали работать. Это связано с ошибкой с нашей стороны: мы не заметили, что истёк срок действия одного из сер...

Microsoft ML Spark: расширение Spark, делающее SparkML человечнее, и LightGBM как бонус Многие, кто работал с Spark ML, знают, что некоторые вещи там сделаны "не совсем удачно" или не сделаны вообще. Позиция разработчиков Spark в том, что SparkML — это базовая платформа, а все расширения должны быть отдельными пакетами. Но это не всегда удобно, ведь Data Scient...

Автоматизация квартиры с HomePod, Raspberry Pi и Node.js Перевели для вас статью Криса Хокинса, в которой он рассказывает о превращении своей квартиры в умный дом. В качестве базы используется HomePod от Apple, но, конечно, можно применять и другие системы. У меня дома работает Apple HomePod, который помогает контролировать о...

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

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

Сюрпризы планировщика запросов в БД PostgreSQL Графики, отчеты и аналитика – все это так или иначе присутствует в back-office любого, даже совсем маленького, предприятия. Когда в обычных таблицах в Excel/Numbers/Libre становится уже тесно, но data все еще не очень big, традиционные решения для внутренних потребностей ком...

Сбагри — это «Uber» для малого и среднего бизнеса У любой компании малого или среднего бизнеса возникает потребность в сбыте или покупке определенного товара или услуги. Для того, чтобы упростить компаниям данный процесс, была открыта первая в России мобильная онлайн бизнес-площадка «Сбагри», где можно размещать свои объяв...

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

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

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

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

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

Что не так с macOS Catalina? Не так давно Apple показала нам новую macOS Catalina. Обновление не стало революционным — компания медленно, но уверенно совершенствует свою настольную операционную систему. В системе появилось множество полезных опций, о которых мы неоднократно рассказывали. Однако п...

Как установить файл APK на Android Робот-логотип Android машет рукой Каждый владелец устройства, работающего под управлением операционной системы Android, рано или поздно сталкивается с аббревиатурой APK. Что это такое? Зачем нужен этот файл на смартфоне или планшете? Какие возможности даёт его установка? Все...

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

В сети обсудили выбор Toyota Land Cruiser 120 с правильной подвеской: «Пневма – помойка, бери пружины» Пневматическая подвеска, убеждены «прадоводы», гораздо менее надёжна. Началось всё с того, что в тематическом сообществе «ВКонтакте» одному из автомобилистов понадобился совет. Он захотел приобрести себе Toyota Land Cruiser Prado 120, но никак не мог определиться, что ему в...

Умеренный Hardening для Firefox Современный веб состоит из множества разных технологий, которые предоставляют самые разные возможности… но ещё и создают немалое количество угроз. Современные браузеры давно стали самыми сложными приложениями на компе, обогнав по сложности даже ядро ОС (в Firefox в нескольк...

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

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

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

Continuous delivery для вашей Kotlin Multiplatform библиотеки Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и принимаю участие в создании библиотеки Reaktive — Reactive Extensions на чистом Kotlin. В процессе работы мы столкнулись с тем, что в случае с Kotlin Multiplatform continuous integration и continuous del...

[Из песочницы] Разработка Chrome Extension вместе с Angular CLI Разработкой расширений к Chrome я занимаюсь давно и за это время я прошел целый путь от Greasemonkey юзер-скриптов до полноценного Angular-приложения в оболочке chrome-extension. Моя задача в том, что я патчу некоторые уже работающие сайты, чтобы изменить их функционал и авт...

"Инновации" на Алиэкспресс Поводом к написанию поста послужили непонятки, возникшие при очередном заказе всякой нужной мелочевки со знакомого всем не понаслышке Алиэкспресса.Для отслеживания движения посылок я, как и наверное многие, пользуюсь сервисом https://myparcels.ruИ до последнего времени ничег...

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

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

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

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

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

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

Инженерный подход к разработке ПО. От теории к практике Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Что делать, когда возможностей тестов недостаточно? Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндекс.П...

Юристы PILnet помогут НКО на платформе IT-волонтёр Ваша некоммерческая организация теперь может получить правовую помощь профессиональных юристов бесплатно. Такая возможность появилась благодаря сотрудничеству сообщества юристов PILnet и проекта IT-волонтер. Центры координации юридической помощи pro bono, созданные PILne...

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

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

Как выглядит ночная тема в Google Play Ночная тема для Google Play — только в Android 10 Никогда не понимал, за что многие так любят ночные темы, и на каждый аргумент, который мне приводили, у меня всегда находился контраргумент. Тем, кто утверждал, что темные оттенки снижают нагрузку на глаза, я отвечал, ч...

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

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

Что будет, если Google откажется от поддержки наших смартфонов? Ничего хорошего Когда Google решила запретить доступ Huawei к своим сервисам, казалось, что ничего особенно страшного не случилось. В конце концов, китайцы всегда смогли бы взять Android Open Source Project и «слепить» на его основе некое подобие собственной операционки, установив необходи...

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

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

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

Разработчики Cisco закрыли 10-балльный баг в IOS XE Компания Cisco обнаружила критическую ошибку в одном из компонентов программы IOS XE, устанавливаемой на несколько линеек промышленных роутеров компании. Баг в контейнере виртуальной службы REST API допускает обход системы авторизации и позволяет злоумышленнику выполнить ряд...

Как включить музыку на нескольких Android-устройствах одновременно Сегодня у многих из нас есть беспроводные колонки. И если вам нужно в компании включить музыку, то с громкостью проблем не возникнет. А что делать, если колонка разрядилась\сломалась? Выход есть — можно запустить музыку на нескольких устройствах одновременно. При этом...

VShard — горизонтальное масштабирование в Tarantool Меня зовут Владислав, я участвую в разработке Tarantool — СУБД и сервера приложений в одном флаконе. И сегодня расскажу вам, как мы реализовали горизонтальное масштабирование в Tarantool при помощи модуля VShard. Читать дальше →

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

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

Пользоваться ES File Explorer теперь опасно. В приложении найдены уязвимости Французский исследователь безопасности, известный под псевдонимом Эллиот Алдерсон (Elliot Alderson) обнаружил уязвимость в популярном файлменеджере ES File Explorer, которая позволяет получить доступ к данным других пользователей, подключенных к той же Wi-Fi сети. Всё, что д...

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

#Видео: Может ли iPad заменить компьютер? Apple всеми силами пытается показать, что iPad может полноценно заменить компьютер. Мы решили проверить насколько это действительно возможно, и пришли к неоднозначным выводам. Подробности ниже. Я очень хорошо отношусь к iPad и пользуюсь им начиная с первого поколения. Несм...

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

Он всё-таки существует: Единственный эффективный способ защитить Land Cruiser от угона нашли водители Уберечь «Крузак» от кражи можно даже без противоугонной системы, считают автолюбители. Ни для кого не секрет, что японский внедорожник Toyota Land Cruiser пользуется огромным спросом у угонщиков по всей России. Покупать этот автомобиль довольно рискованно, поскольку 100-про...

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

[Перевод] Комбинирование Signed Distance Fields в 2D В предыдущем туториале мы научились создавать и перемещать простые фигуры с помощью функций расстояний со знаком. В этой статье мы научимся комбинировать несколько фигур для создания более сложных полей расстояний. Большинству описанных здесь техник я научился из библиотеки ...

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

Обзор Google Play Книги. Читаем и развиваемся Я большой фанат книг и читаю очень много. Это не только полезно для развития кругозора, но и позволяет убить время в поездках, длительном ожидании чего-либо. Или же если отключат интернет, а такое тоже иногда случается, можно просто взять книгу и занять себя чем-то интересны...

Асинхронное программирование в JavaScript (Callback, Promise, RxJs ) Всем привет. На связи Омельницкий Сергей. Не так давно я вел стрим по реактивному программированию, где рассказывал про асинхронность в JavaScript. Сегодня я бы хотел законспектировать этот материал. Но перед тем как начать основной материал нам нужно сделать вводную. Итак...

Из жизни с Kubernetes: Как HTTP-сервер испанцев не жаловал Представитель нашего клиента, стек приложений которого обитает в облаке от Microsoft (Azure), обратился с проблемой: с недавнего времени часть запросов некоторых клиентов из Европы стала завершаться ошибкой 400 (Bad Request). Все приложения написаны на .NET, развёрнуты в K...

Мнение: Почему я не куплю iPad с iPadOS Вчера Apple представила iPadOS — операционную систему только для iPad. Вообще, уже давно было понятно, что Тим Кук и его команда хотят вывести планшеты из группы iOS-устройств в отдельную категорию (iPad Pro и Apple Pencil — наглядное тому подтверждение). Но в Apple р...

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

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

[Из песочницы] Практические аспекты ранней пенсии FIRE movement в России Ранний выход на пенсию является горячей темой в последнее время. Отчасти это связано с движением FIRE: «финансовая независимость и ранняя пенсия» — зарабатывать больше, тратить меньше и рано сбросить оковы работы. Казалось бы причем здесь FIRE и habr.com? А при том, что не...

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

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

Подключение к Windows по SSH как в Linux Меня всегда удручало подключение к Windows машинам. Нет, я не противник и не сторонник Microsoft и их продуктов. Каждый продукт существует для своей цели, но речь не об этом. Для меня всегда было мучительно больно подключаться к серверам с Windows, потому что эти подключения...

Как настроить длительность оповещений в центре уведомлений Чтобы пользователям было удобно получать оповещения от различных приложений, установленных на компьютере Mac, в том числе о новых письмах и сообщениях из социальных сетей, в OS X Apple разработала единый центр уведомлений, который затем усовершенствовала в новых версиях опе...

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

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

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

Создан квантовый компьютер «для бедных», способный работать при комнатной температуре Вероятностные вычисления выполняются с использованием вероятностных битов, или p-битов, состояние которых колеблется во времени между 0 и 1. Они аналогичны квантовым вычислениям, где используется суперпозиция 0 и 1 квантовых битов, или q-битов.Исследовательской группе удалос...

Huawei FreeBuds Lite: дешевые AirPods или сомнительная альтернатива? В последнее время мы много говорим про наушники. В этот раз мы решили сравнить между собой AirPods и Huawei FreeBuds Lite. Тем более, нас об этом ни раз спрашивали наши читатели. В первую очередь, стоит отметить, что AirPods и FreeBuds Lite — это совершенно разные ти...

[Из песочницы] Поймут даже дети: простое объяснение async/await и промисов в JavaScript Привет, Хабр! Представляю вашему вниманию перевод статьи «JavaScript Async/Await and Promises: Explained like you’re five years old» автора Jack Pordi. Каждый, кто считает себя JavaScript-разработчиком, в какой-то момент должен был столкнуться с callback-функциями, промисам...

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

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

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

Возможно ли без Redux? На сегодняшний день можно найти уйму позиций, где требуется react/redux. React прекрасен, вопросов нет. Вопрос к Redux — возможно ли без него. Если погуглить чуть-чуть, найдется добротная статья на хабре (https://habr.com/ru/post/350850/), где автор задается таким же вопросо...

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

[Перевод] Учим английский: 7 практических способов расширить словарный запас Одна из важнейших задач при изучении иностранного языка – это не только практика с грамматикой, но и расширение словарного запаса. Чем больше слов вы знаете, тем в большем количестве ситуаций сможете объясниться – даже если у вас большие проблемы с артиклями и формирование...

Что такое RCS-сообщения Android и в чем отличие от SMS? SMS (Short message service) — это технология, позволяющая передавать короткие сообщения с помощью телефона. Как часто в 2018 году пользователи используют SMS? Давайте будем честны, данная технология устарела, поэтому её использование уже неактуально. В 2019 году нас м...

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

Разрабатываем утилиту на GraalVM Постановка задачи Периодически у меня возникает задача поделиться файлами по локальной сети, например, с коллегой по проекту. Решений для этого может быть очень много — Samba / FTP / scp. Можно просто залить файл в общедоступное публичное место типа Google Drive, приложить к...

5 ITSM-трендов года, за которыми стоит следить Nancy Van Elsacker Louisnord, президент компании TOPDesk, поделилась своими соображениями о ближайшем развитии ITSM. Если в 2018 году и была большая тема, то это был искусственный интеллект (ИИ). И ждите от него еще большего в 2019 году. Машинное обучение окажет огромное вл...

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

. За такие деньги – только «ведро» с сюрпризами: В сети объяснили, какую б/у Toyota Camry лучше покупать. Лучше подкопить денег и взять нового «француза» в салоне. Так считает абсолютное большинство комментаторов, опрошенных одним из водителей. В одном из своих постов для сообщества «дастероводов» соцсети «ВКонтакте» он объяснил, что хочет приобрести б/у Renault Duster 2016 год...

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

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

Битва титанов. Google Pixel 4 против iPhone 11 Pro в первом тесте камер Смартфоны Google Pixel 4 и 4 XL представлены, и осталось дождаться их появления в продаже, чтобы оценить все особенности новинок и сравнить их с конкурентами. Но наши коллеги из The Verge уже успели провести одно небольшое тестирование. Они сравнили камеру Google 4 с iP...

Яндекс.Такси доставит посылки Доставку выполняют лучшие водители, давно работающие с заказами Яндекс.Такси, с рейтингом не ниже 4,8 из 5 баллов. Минимальная стоимость услуги составляет 249 рублей - в неё входят первые 6 минут и 2 километра поездки. Пока "Доставка" работает только в Москве, но п...

[Из песочницы] Современное программирование: взгляд после 25 лет перерыва или как я писал бота для Телеграм Задача кажется простой, когда ничего про нее не знаешь и когда решил. В один “прекрасный” день, я понял, что мне не интересно сидеть на многочисленных форумах, а хочется создать свой канал и делиться “мудростью”. Мне нравится Телеграм заложенными в него возможностями в то...

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

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

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

Google признала, что слушает ваши разговоры. А то вы не знали! Искусственный интеллект, лежащий в основе Google Assistant и обеспечивающий ему лучшее в классе распознавание человеческой речи, оказался не таким уж искусственным. Такой вывод сделали журналисты бельгийского издания VRT, изучив файл с более чем 1000 записей голосовых коман...

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

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

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

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

В системе разрешений Android — серьезный баг, и Google о нем знает Система разрешений – это одно из самых полезных нововведений, которые когда-либо появлялись в Android. Благодаря ей пользователи могут самостоятельно контролировать, какую информацию собирают приложения и к каким компонентам операционной системы они имеют доступ. Если вы не...

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

Как мы переложили управление инфраструктурой на Terraform — и начали жить У нас было 4 Amazon-аккаунта, 9 VPC и 30 мощнейших девелоперских окружений, стейджей, регрессий — всего более 1000 EC2 instance всех цветов и оттенков. Раз уж начал коллекционировать облачные решения для бизнеса, то надо идти в своем увлечении до конца и продумать как все э...

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

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

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

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

Как сделать из сайта приложение и выложить его в Google Play за несколько часов. Часть 2/2: Trusted Web Activity В первой части мы превратили наш сайт в Progressive Web App. Там же было сказано, что совсем недавно, 6 февраля 2019 года, Google предоставили простую возможность выкладывать PWA в Google Play при помощи Trusted Web Activity. Всё, что нужно сделать, это написать небольшую ...

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

Huawei Mate X готовится к продаже Некоторое время назад, когда производители со всего мира только начали говорить о складных смартфонах, никто не верил, что такого рода устройства вообще могут попасть в продажу. Ведь это устройство с дисплеем, который складывается пополам и рано или поздно может просто испор...

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

Как использовать функцию Motion Sense на Google Pixel 4 Google Pixel 4 имеет довольно интересные возможности по использованию Google в этом году действительно оказалась щедра на нововведения. Свеженький Google Pixel 4 буквально набит ими практически под завязку. Но самой, пожалуй, интересной является опция под названием Motion Se...

Топ-5 функций iOS 13, которые должны появиться на Android Apple не стесняется копировать идеи конкурентов, если они способны сделать ее собственный продукт лучше. Именно этот подход во многом повлиял на развитие компании из Купертино и ее продукции, которая, по мнению многих потребителей, совершенно не знает аналогов. Отчасти это ...

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

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

Удалите это Android-приложение. Оно распространяет вирусы Вирусы для Android — везде, даже в Google Play Думаю, не ошибусь, если предположу, что большинство наших читателей используют для загрузки приложений только Google Play. Самый распространённый довод в пользу фирменного каталога Google – это безопасность. Многим кажется...

#Опрос: Готовы ли вы купить Android-смартфон без Google Play Google Play на Honor 20 Pro Несмотря на то что Еврокомиссия обязала Google удалить свои приложения из Android и даже обложила её штрафом в размере 5 миллиардов долларов, никто почему-то не подумал о том, что такой инструмент, как Google Mobile Services делает производителей ...

Новости Apple: iPhone 6 без iOS 13, iPhone X без ARKit 3, Mac без Sidecar Когда мы впервые увидели список поддерживаемых устройств iOS 13, у нас, знаете ли, изрядно так бомбануло: ничего, что iPhone 6 и iPhone 6 Plus еще пользуются популярностью? Ну ладно у нас многие успели обновиться на «десятку» (как чувствовали, блин), но до этого у них как ра...

Где ГАИ 4.4 Где ГАИ — это бесплатная онлайн карта постов ГАИ и ГИБДД. Если Вы хотите всегда знать, где стоят инспекторы дорожно-патрульной службы, то именно это приложение придет Вам на помощь. Где ГАИ показывает на карте, где в текущий момент стоят патрульные машины ГАИ, что позволит В...

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

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

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

Перевод: живые плитки Windows 10 мертвы? Зак Боуден (Zac Bowden), редактор портала Windows Central, поделился своими размышлениями о некоторых функциях Windows 10, учитывая, что в 19H1 компания начала постепенно отказываться от функций, которые не сработали. Например, в течение 2019 года, видимо, Microsoft полност...

Google бесплатно заменит Google Home, которые сломались после обновления Google случайно сломала колонки Google Home по всему миру, но менять их будет не везде Может ли экосистема, которой пользуется человек, влиять на его мировосприятие? Мне кажется, что может, и пользователи iOS и Android доказывают это на своём примере. Первые никогда не были ...

[Перевод] Как мы изменили состояние «всегда на связи», чтобы предотвратить профессиональное выгорание Перевод статьи подготовлен специально для студентов курса «DevOps практики и инструменты». Миссия Intercom заключается в том, чтобы сделать бизнес в интернете персонализированным. Но персонализировать продукт невозможно, когда он не работает как надо. Работоспособность к...

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

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

[Перевод] Перенос десктопных приложений на .NET Core С тех пор, как я начала работать с сообществом над переносом десктопных приложений с .NET Framework на .NET Core, я заметила, что существует «два лагеря»: представители одного хотят очень простой и короткий список инструкций для переноса своих приложений на .NET Core, в то в...

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

«Карта в стоп-листе». Что делать? В 2019 году не надо носить с собой банковские и транспортные карты. Apple Pay всегда выручит. Ну, почти всегда Сегодня бесконтактные платежи с помощью Apple Pay прочно вошли в нашу жизнь. Многие перестали носить с собой не только наличные деньги, но и банковские карты. Но ин...

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

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

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

[Из песочницы] Распознавание цифровых схем. Асинхронный счётный триггер Борис Цирлин и Александр Кушнеров 30.10.2019 Для опытного разработчика схем не составляет большого труда узнать знакомую схему, в каком бы виде она не была нарисована. В этой статье мы покажем, что две транзисторные схемы из патентов являются вариантом асинхронного счётного ...

Reactor, WebFlux, Kotlin Coroutines, или Асинхронность на простом примере Многие сервисы в современном мире, по большей части, «ничего не делают». Их задачи сводятся к запросам к другим базам/сервисам/кешам и агрегации всех этих данных по различным правилам и разнообразной бизнес-логике. Поэтому неудивительно, что появляются такие языки, как Go...

Дайджест интересных материалов для мобильного разработчика #300 (27 мая — 2 июня) Понадобилось немногим более 6 лет на выпуск 300 дайджестов. Всем привет, меня зовут Леонид, и это я делаю эти статьи. Читать дальше →

Мнение экспертов: Android всё больше привлекает фанатов iOS У каждого человека различные требования к системе. Кому-то важны функции, а кому-то дизайн и удобство. Именно поэтому долгое время iOS с этой точки зрения оставалась для многих лидером. Системой приятно пользоваться, чего нельзя было сказать об Android еще несколько лет наз...

YouTube Music бесплатный на Google Home, но есть одна загвоздка Google только что объявил, что его музыкальный сервис YouTube Music теперь доступен для всех интеллектуальных колонок Google Home. Начиная с сегодняшнего дня, те, кто владеет интеллектуальным динамиком Google Home, смогут пользоваться всеми преимуществами, предоставляемыми с...

[Перевод] Как Apple (приватно) найдёт в офлайне ваше потерянное устройство? В понедельник на конференции WWDC компания Apple представила классную новую функцию под названием “Find My". В отличие от стандартной «Найти мой iPhone», которая полагается на инфраструктуру сотовой связи и GPS потерянного устройства, функция «Найди меня» способна найти даже...

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

Как “дочка” Ростелекома пользователям 80 порт забанила Утром в среду, 14 августа, пользователи московского интернет-провайдера ОнЛайм обнаружили серьезные проблемы в работе приложений и сервисов. Оказалось, что провайдер попросту заблокировал своим пользователям доступ извне к 80 порту – одному из важнейших сетевых портов, испол...

Одна из лучших читалок для iPhone и iPad стала еще лучше Ее уже загрузили тысячи человек. Попробуйте и вы (теперь скачать можно бесплатно!), проходите по этой ссылке, если нет времени читать всю статью. Вообще, мы уже неоднократно рассказывали вам о приложении i2Reader Cloud, которое по мнению нашей редакции является одной из луч...

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

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

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

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

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

День, когда Dodo IS остановилась. Асинхронный сценарий Привет, Хабр! Каждый SRE в нашей команде когда-то мечтал спокойно спать по ночам. Мечты имеют свойство сбываться. В этой статье я расскажу про это и про то, как мы достигаем производительности и устойчивости своей системы Dodo IS. Читать дальше →

Как разблокировать частоту обновления экрана в 90 Гц на Google Pixel 4 Google Pixel 4 имеет и некоторые скрытые особенности После нескольких месяцев постоянных утечек, спекуляций и слухов. После ожидания и прогнозов различных инсайдеров, Google, наконец, представила свои флагманы Google Pixel 4 и Google Pixel 4 XL. На нашем сайте вы найдете мас...

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

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

Курс «Основы эффективной работы с технологиями Wolfram»: более 13 часов видеолекций, теория и задачи Все документы курса можно скачать здесь. Этот курс я прочел пару лет назад для довольно обширной аудитории. Он содержит очень много информации о том, как устроена система Mathematica, Wolfram Cloud и язык Wolfram Language. Однако, конечно, время не стоит на месте и за по...

Работаем с USB Custom HID на Android В современных Android — приложениях для взаимодействия с другими устройствами чаще всего используются беспроводные протоколы передачи данных, как например Bluetooth. В годы, когда часть устройств имеют беспроводную зарядку, сложно представить себе связку Android устройства ...

Революция или боль? Доклад Яндекса о React Hooks Меня зовут Артём Березин, я разработчик нескольких внутренних сервисов Яндекса. Последние полгода я активно работал с React Hooks. По ходу дела возникали некоторые сложности, с которыми приходилось бороться. Теперь хочу поделиться этим опытом с вами. В докладе я разобрал Rea...

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

Как примерить тату? Подборка приложений для фанатов татуировок на Андроид и IOS Татуировки — это вам не шутки. Это способ самовыражения, которым люди обычно гордятся. Для фанатов этого вида искусства существует ряд приложений: идеи для татуировок, базы с лучшими художниками и другие стандартные приложения, без которых не обойтись. Adobe Illustrator Dra...

Истории-Live с рынка бизнеса и продаж Я просто расскажу истории своих знакомых. Есть у меня один знакомых, который занимается шкафами. Вот его рассказ: Если я повышаю стоимость шкафа с 20 000 до 20150 рублей, то всё пизда продажи встают. Ебучие 150 рублей полностью отключают продажи. Этот ебучий демпинг уже меня...

[Из песочницы] Python + Raspberry Pi + Pixhawk и квадрокоптер. Или как не надо делать роботов Привет, Хабр! Меня зовут Алексей, уже 7 лет я ведущий разработчик Smart TV-решений в крупной компании из Ижевска, занимающейся заказной разработкой. Каждый год у нас проводится конкурс новогодних украшений, и каждый раз мы ничего не украшаем, а пилим всякие технологичные шт...

Как масштабировать дата-центры. Доклад Яндекса Мы разработали дизайн сети дата-центров, который позволяет разворачивать вычислительные кластеры размером больше 100 тысяч серверов с пиковой полосой бисекции (bisection bandwidth) свыше одного петабайта в секунду. Из доклада Дмитрия Афанасьева вы узнаете об основных принци...

[Из песочницы] Мой подход к реализации делегатов в C++: вызов функции с неизвестными параметрами во время выполнения Предыстория Мне нравится язык C++. Я бы даже сказал, что это мой любимый язык. Кроме того, для своих разработок я использую технологии .NET, и многие идеи в нём, по моему мнению, просто восхитительны. Однажды мне пришла в голову идея – как реализовать некоторые средства рефл...

Метод бисекционного деления в тестировании Содержание Описание метода Применение тестировщиками Строка данных Файл Применение разработчиками Резюме Иногда баги сами нас находят. Вот мы впихали большую строку данных — и система подвисла. Это она из-за 1 млн символов упала? Или ей какой-то конкретный не понравилс...

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

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

Caller Name Announcer Pro 4.70 Приложение «Caller Name Announcer Pro» озвучивает имя абонента, когда он вам звонит или отправляет сообщение. Эта программа, которая мгновенно определяет абонента, вы даже не успеете дотянуться до телефона и посмотреть на экран. Наше приложение также способно идентифицироват...

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

Моделирование для печати на 3D принтере в КОМПАС 3D В сегодняшней статье хотелось бы поговорить об отечественном САПР КОМПАС 3D. Не буду многословным и не буду рассказывать на сколько это мощный инструмент в умелых руках.И так как сегодня речь пойдёт о моделях для принтера, покажу как правильно сохранять модель в формате STL....

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

[Перевод] There vs. Their vs. They’re: Как понять, какое слово использовать Омофоны – одна из сложных тем при изучении английского. При использовании таких слов часто допускают ошибки, ведь они звучат одинаково, но различается их значение. На первый взгляд это может показаться удивительным, но одними из наиболее трудных омофонов для не-носителей я...

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

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

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

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

Что произошло с моим MacBook Pro Retina за 6 лет В последнее время многие говорят о том, что новые MacBook Pro не так хороши, как прошлые поколения ноутбуков Apple. Можно относиться к этому как к фразе «раньше трава была зеленее», но если говорить объективно, проблемы с новыми компьютерами действительно есть (другое дело ...

#Конкурс! Как работать с видео в 4K на Mac без Final Cut Pro X За последние несколько лет компьютеры Mac у многих стали ассоциироваться как инструменты для работы с видео. Действительно, Apple сама не скрывает, что делает упор на тех, кто монтирует ролики (особенно в 4K), но кроме профессионального решения Final Cut Pro X ничего не пре...

Как быстро изменить размер изображения на iOS Работа с изображениями на iOS по умолчанию оставляет желать лучшего. Штатное приложение «Фото» открывает не так уж много возможностей для редактирования, поэтому те, кому нужна более обширная функциональность, предпочитают пользоваться сторонними редакторами. Их единственны...

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

Доверяй, но проверяй! Как проверить свою модель с помощью облака IBM (Watson OpenScale) Проблема доверия предсказаниям, сделанных моделями машинного обучения, становится все более и более актуальна. Чем существеннее решение, принимаемое на основании этого предсказания, тем меньше доверия. Вызвано это в первую очередь тем, что далеко не всегда понятно, что же ...

Меняем встроенную Android-клавиатуру на более удобную Совсем не обязательно использовать встроенную клавиатуру, ведь всегда можно найти кое-что получше Большинство пользователей Android обычно используют приложение клавиатуры, которое поставляется «в комплекте» с устройством. Тем не менее, в магазине Google Play есть ...

[Из песочницы] Как работать со множественными запросами. Композиция, Reducer, ФП Привет, Хабр. Меня зовут Максим, я iOS-разработчик в компании FINCH. Сегодня я покажу вам некоторые практики использования функционального программирования, которые мы наработали у себя в отделе. Читать дальше →

[Перевод] io_submit: альтернатива epoll, о которой вы никогда не слышали Недавно внимание автора привлекла статья на LWN о новом интерфейсе ядра для опроса (polling). В ней обсуждается новый механизм опроса в Linux AIO API (интерфейс для асинхронной работы с файлами), который добавили в ядро версии 4.18. Идея довольно интересная: автор патча пр...

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

[Перевод] Гид по параллельному масштабированию Amazon Redshift и результаты тестирования Мы в Skyeng пользуемся Amazon Redshift, в том числе параллельным масштабированием, поэтому статья Стефана Громолла, основателя dotgo.com, для intermix.io, показалась нам интересной. После перевода — немного нашего опыта от инженера по данным Данияра Белходжаева. Архитекту...

NASA нужно еще 20 миллиардов долларов, чтобы высадить людей на Луну к 2024 году NASA необходимо еще 20-30 миллиардов долларов сверх текущего бюджета космического агентства, чтобы высадить людей на Луну к 2024 году. Об этом рассказал администратор NASA Джим Брайденстайн. «Подумайте об этом, как о краткосрочных инвестициях, которые позволят заполучить ст...

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

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

4 раздражающие проблемы Android и как с ними справиться Делаем Android лучше! Давайте будем честны с самими собой: идеальной мобильной операционной системы не существует. Можно сколь угодно долго спорить о том, что лучше — Android или iOS, но неоспоримый факт всегда будет лишь один — и там, и там, есть раздражающие мо...

[Перевод] Тренды в дизайне UI и UX 2019 Иллюстрация от J.HUA Год назад мы составили прогноз трендов в дизайне мобильных UI. В этом году мы решили выйти за рамки мобильных интерфейсов, потому что тренд №1 в современном дизайне — это контекст. Больше никаких обобщений — теперь всё завязано на контексте. Кажется, м...

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

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

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

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

Как установить iOS 13 Golden Master с Mac и Windows После релиза iOS 13 Golden Master мы получили множество вопросов от читателей, которые захотели установить себе новую версию операционной системы. Как правило, GM имеет такой же номер, как релизная версия, а значит это легальный способ заполучить себе финальную iOS 13 за не...

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