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

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

Clean Decomposition Об использовании чистой архитектуры в Android сказано предостаточно. На GitHub можно найти десятки шаблонов на разные вкусы: на Java или Kotlin, с Dagger2 или Koin, с Rx или с Coroutines. Но никто не говорит о том, как разбить определенный функционал при использовании «чисто...

Google выпустила AR-режим в Google Maps для всех Несмотря на то что смартфоны Google Pixel не пользуются особой популярностью, именно им Google посвящает большую часть своих программных наработок. Google Camera, Night Sight и даже AR-режим в Google Maps – все это было доступно только на «пиксельных» аппаратах, пока разраб...

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

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

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

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

Мониторинг сообщений в RabbitMQ Рассмотрим классическую схему построения конвейера сообщений в RabbitMQ состоящую из элементов Producer, Exchange, Queue и Consumer. Задача состоит в том, что бы организовать мониторинг происходящего в очереди и не затронуть основное программное обеспечение (ПО), добавить...

ObjectRepository — .NET in-memory repository pattern для ваших домашних проектов Зачем хранить все данные в памяти? Для хранения данных сайта или бекэнда первым желанием большинства здравомыслящих людей выберет SQL базу данных.  Но иногда в голову приходит мысль что модель данных не подходит для SQL: например, при построении поиска или социального графа ...

Подходы к учёту простоя услуг В редакцию портала поступил вопрос: Добрый день, в процессе заключения SLA есть необходимость согласования подхода к корректному учету простоев ИТ-услуги (и даже сервисной операции), а именно: как справедливо определить, когда услуга простаивает полностью, а когда — частич...

Отладка cети с помощью eBPF (RHEL 8 Beta) Всех с прошедшими праздниками! Нашу первую статью после праздников мы решили посвятить линуксу, то есть под наш замечательный курс «Администратор Linux», который у нас входит в когорту самых динамичных курсов, то есть с наиболее актуальным материалами и практиками. Ну и, со...

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

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

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

[Перевод] 10 самых распространенных ошибок при работе с платформой Spring. Часть 1 Всем привет. Сегодня делимся первой частью статьи, перевод которой подготовлен специально для студентов курса «Разработчик на Spring Framework». Начнём! Spring — пожалуй, одна из самых популярных платформ разработки на языке Java. Это мощный, но довольно сложный в освоении...

Использование DbTool для засеивания (seeding) баз данных в приложениях .NET (Core) Представляем вашему вниманию DbTool — утилиту командной строки для экспорта данных БД в различные форматы и open-source библиотеку Korzh.DbUtils, использование которых может значительно упростить первоначальное "засевание" базы данных в вашем .NET (Core) приложении. С помощь...

Универсальный DSL. Возможно ли это? Язык предметной области. Не перегружен конструкциями языка общего назначения. При этом позволяет всего несколькими строчками реализовать весьма сложную логику. Все это — DSL. Однако создание DSL требует от разработчика соответствующей квалификации. Регулярное использование...

Может ли Chromebook заменить обычный ПК на Windows? Летом 2016 года первые ноутбуки на Chrome OS начали получать поддержку Android-приложений. Это позволило серьезным образом расширить возможности системы. Конечно, многие Android-приложения пока не поддерживают Chrome OS, но ситуация постепенно налаживается. Наш коллега из a...

[Перевод] Преимущества и недостатки HugePages Перевод статьи подготовлен для студентов курса «Администратор Linux». Ранее я рассказал о том, как проверить и включить использование Hugepages в Linux. Эта статья будет полезна, только если у вас действительно есть, где использовать Hugepages. Я встречал множество людей, ...

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

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

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

[Перевод] Зачем нам столько мессенджеров? Slack, Signal, Hangouts, Wire, iMessage, Telegram, Facebook Messenger… Зачем нам так много приложений для выполнения одной задачи? Десятилетия назад научные фантасты представляли себе летающие машины, автоматически готовящие еду кухни и возможность позвонить кому угодно на...

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

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

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

Digital-мероприятия в Москве c 11 по 16 июня Подборка мероприятий на неделю Встреча с пользователями TheQuestion и Знатоков 11 июня (вторник) Толстого 16 бесплатно Приглашаем пользователей TheQuestion и Яндекс.Знатоков на встречу, посвящённую интеграции сервисов. Мы расскажем, как построена наша работа, и поделимся п...

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

[Перевод] Логическая репликация между версиями PostgreSQL Есть разные подходы к обновлению PostgreSQL, но некоторые приводят к простою приложения. Если нужно избежать простоя, используйте для обновления репликацию — логическую или физическую (потоковую), в зависимости от сценария. В этой статье мы рассмотрим разницу между логическ...

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

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

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

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

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

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

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

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

Обеспечение надежной работы Zextras Team в сложных корпоративных сетях В прошлой статье мы рассказали вам о Zextras Team — решении, которое позволяет добавить в Zimbra Collaboration Suite Open-Source Edition функциональность корпоративных текстовых и видео-чатов, а также возможность проводить видеоконференции с большим числом участников, без не...

[Перевод] Улучшите свой CSS с помощью этих 5 принципов Написание CSS — процесс достаточно простой и понятный, тогда почему для этого требуются еще какие-то принципы и best-practices? По мере увеличения масштабов проекта и количества людей, работающего над ним, всё более и более явно начинают проявляться новые сложности, котор...

RAID0 из пары SATA SSD или... Intel Optane 800p: продолжаем поиски смысла старых подходов в современных условиях Недавно мы попробовали «поиграть» с массивами RAID0 из пары NVMe-накопителей и пришли к выводу, что это лишено практического смысла. Даже если окажется, что старого маленького медленного SSD уже не хватает, его проще заменить на новый большой и быстрый, а не пытаться докупит...

Принятие лучших практик ITSM: преимущества и недостатки Управление ИТ-услугами (ITSM) — это искусство внедрения и поддержки ИТ-услуг для удовлетворения потребностей организации в осуществлении оперативной деятельности как в настоящее время, так и в будущем (конечно, существует множество других определений ITSM). Облас...

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

3-way merge в werf: деплой в Kubernetes с Helm «на стероидах» Случилось то, чего мы (и не только мы) долго ждали: werf, наша Open Source-утилита для сборки приложений и их доставки в Kubernetes, теперь поддерживает применение изменений с помощью 3-way-merge-патчей! В дополнение к этому, появилась возможность adoption’а существующих K8s...

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

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

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

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

[Перевод] Самое простое объяснение принципа работы современных алгоритмов симметричного шифрования (Нашёл в твиттере тред с очень крутым объяснением работы симметричных шифров. Его написал Colm MacCárthaigh один из основных контрибьюторов Apache. Я спросил разрешение Колма на перевод, он любезно согласился). Я объясню вам доступным языком, что происходит при шифровании да...

Использование werf для выката комплексных Helm-чартов Статья посвящена разработке Helm-чартов для Kubernetes с использованием готовых решений из репозиториев чартов. При таком подходе пользователь применяет рецепты сообщества или свои собственные, обеспечивая своевременное обновление типовых компонентов всех своих проектов и ...

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

Предсказания от математиков. Разбираем основные методы обнаружения аномалий За рубежом все большую популярность набирает использование искусственного интеллекта в промышленности для предиктивного обслуживания (predictive maintenance) различных систем. Цель этой методики — определение неполадок в работе системы на этапе эксплуатации до выхода её из с...

[Из песочницы] Управление состоянием и событиями между компонентами в GameObject Управление состоянием и событиями между компонентами в GameObject Ссылка на проект Как известно всем, более или менее знакомых с платформой Unity, каждый игровой объект GameObject состоит из компонентов (встроенных или пользовательских, который обычно называют «скрипт»). Ко...

5 функций Android 10, которые Google скопировала у iPhone Справедливости ради отметим, что и Apple иногда тоже «подсматривает» некоторые фишки у Android. Но не в этот раз С выхода Android 10 прошло совсем не так много времени и пользователи устройств, на которых уже доступно обновление, вовсю устанавливают себе новую верс...

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

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

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

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

ok.tech: Data Толк 13 июня приглашаем всех, кто работает с данными, в московский офис Одноклассников, на ok.tech: Data Толк. Вместе с коллегами из OK.ru, Mail.ru Group, ivi.ru, Яндекса и других технологических компаний обсудим вопросы эволюцию хранилищ и баз данных, поговорим о достоинтвах и...

[Перевод] Ментальные модели продакт менеджмента для всех Ментальные модели — это простые выражения сложных процессов или отношений. Эти модели можно собирать и использовать для принятия более быстрых и качественных решений. Вот пример: принцип Парето гласит, что около 80% всех результатов приходится на 20% усилий. В контексте упр...

MVP и Dagger 2 – скелет Android-приложения – часть 1 Данная статья нацелена на новичков в Android-разработке и призвана помочь в создании минимально необходимой структуры приложения. Так получилось, что я относительно недавно начал программировать под Android – после месяца без проекта в компании, где я работаю, меня определи...

Вышел финальный релиз TensorFlow 2.0 Вчера 30 сентября Google объявил о выходе финального релиза TensorFlow 2.0. «TensorFlow 2.0 является ПО с открытым исходным кодом и поддерживается сообществом, которое говорит, что им нужна простая в использовании платформа, гибкая и мощная, которая поддерживает развертыв...

Microsoft открывает Azure Security Lab Azure Security Lab - это набор выделенных облачных хостов, изолированных от пользователей Microsoft Azure, позволяющий специалистам по безопасности тестировать сценарии атак на IaaS. В рамках данной программы предлагается не только безопасная тестовая среда, но и прямое взаи...

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

Играем в браузере бесплатно Современные пользователи поголовно играют в игры — на компьютерах, игровых приставках или на смартфонах. Вот только не у всех есть возможность покупать мощное железо или обновлять его каждый год, чтобы запускать сложные проекты. Благо, есть проект https://oigri.com/, который...

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

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

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

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

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

End2End-подход к пониманию разговорной речи Существует несколько подходов к понимаю машиной разговорной речи: классический трехкомпонентный подход (включает компонент распознавания речи, компонент понимания естественного языка и компонент, отвечающий за некую бизнес-логику) и End2End-подход, который предполагает четыр...

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

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

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

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

Тarantool Cartridge: шардирование Lua-бекенда в три строчки У нас в Mail.Ru есть Tarantool — это такой сервер приложений на Lua, который по совместительству ещё и база данных (или наоборот?). Он быстрый и классный, но возможности одного сервера всё равно не безграничны. Вертикальное масштабирование тоже не панацея, поэтому в Tarant...

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

Что нужно знать о Red Hat OpenShift Service Mesh Переход на Kubernetes и Linux-инфраструктуры при цифровой трансформации организаций приводит к тому, что приложения все чаще начинают строиться на основе микросервисной архитектуры и, как следствие, очень часто обрастают сложными схемами маршрутизации запросов между сервисам...

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

[Из песочницы] Делаем простой Circuit Breaker на базе кеша в Spring Эта статья для тех, кто использует в своем приложении эффективный кеш и хочет простым добавлением 1 класса в проект добавить стабильности не только приложению, но и всему окружению. Если вы узнали себя, читайте дальше. Что такое Circuit Breaker Читать дальше →

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

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

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

NURBS моделирование в Rhino 3D и T-Spline Существует, как минимум, два подхода к созданию 3D моделей. В одном из них, наиболее популярном, объекты состоят из множества полигонов. В другом (freeform surface modelling) — из NURBS поверхностей, которые задаются кривыми (сплайнами). Каждый из подходов имеет свои преиму...

[Перевод] Поиск на скорости 1 ТБ/с TL;DR: Четыре года назад я покинул Google с идеей нового инструмента для мониторинга серверов. Идея состояла в том, чтобы объединить в одну службу обычно изолированные функции сбора и анализа логов, сбора метрик, оповещений и панели мониторинга. Один из принципов — сервис до...

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

[Из песочницы] Parse & Android: рекомендации начинающим разработчикам Аннотация В данной статье я бы хотел поделиться общими впечатлениями от использования BaaS – решения под названием Parse для разработки бэкэнда Android-приложения, рассказать о всех «подводных камнях», с которыми мне пришлось столкнуться в период разработки. Впервые эту плат...

Один день из жизни модели ресторана Данная статья описывает новые компоненты фреймворка для имитационного моделирования, ранее представленного в статье «Простая система имитационного моделирования на Go». По мере расширения фреймворка появилась возможность моделировать более сложные системы, например, провест...

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

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

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

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

Инструменты для автотестов, интеграция Yandex Mapkit 3, крутой дизайн и подход Server Driven UI — анонс Android-митапа Привет! Меня зовут Андрей Данилов, я андроид-разработчик в Авито. Хочу пригласить вас на Android-митап, который пройдёт в нашем офисе 28 сентября. Обсудим опыт интеграции Yandex Mapkit 3 в приложение, инструменты для автотестов, поговорим, как сделать по-настоящему запоминаю...

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

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

Как Android-смартфоны могут обеспечить безопасность iOS Этой весной Google решила упростить работу с двухфакторной аутентификацией на Android. Для этого компания превратила все смартфоны на базе Android Nougat в Bluetooth-токены, позволяющие пройти авторизацию без ввода одноразового пароля из SMS. Такая функция оказалась чрезвыч...

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

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

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

Что делать с подарочными картами iTunes после его закрытия В этот понедельник Apple сделала то, чего от нее ждали с незапамятных времен, компания официально закрыла iTunes. Вероятно, это решение носило, скорее, идеологический характер, поскольку все функции утилиты распределили между тремя независимыми приложениями и операционной с...

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

[Из песочницы] Профилирование под Linux с помощью Performance Analyzer Профилирование под Linux с помощью Performance Analyzer Коллеги, считаю полезным рассказать об удобном и бесплатном профилировщике кода для Linux/Solaris. Он входит в пакет Sun/Oracle Developer Studio [1]. По моему мнению, другие части этой среды разработки несколько бесполе...

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

Обнаружена опасная многолетняя уязвимость в Android Эксперт Positive Technologies Сергей Тошин выявил критически опасную уязвимость в актуальных версиях операционной системы Google Android (7.0, 8.0, 9.0) и ее более ранних редакциях. Ошибка обнаружена в компоненте WebView. Она позволяет получать доступ к конфиденциальным данн...

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

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

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

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

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

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

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

[Перевод] Сценарии использования и производительность Blazor Server в .NET Core 3.0 С момента релиза Blazor Server с .NET Core 3.0 в прошлом месяце многие люди поделились с нами своим восторгом от возможности создания клиентского веб-интерфейса используя только с .NET и C#. В то же время мы также слышали много вопросов о том, что такое Blazor Server, как он...

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

В новый Firefox добавлена блокировка криптомайнеров Разработчики Mozilla выпустили новую версию браузера Firefox для Windows, macOS, Linux и Android. В релизе 67.0 обозревателя исправлена 21 уязвимость, а также добавлена функция блокировки встроенных криптомайнеров и скриптов, скрытно отслеживающих пользователя по цифровым от...

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

[Из песочницы] Начинаем FPGA на Python Технология FPGA (ПЛИС) в настоящее время обретает большую популярность. Растёт количество сфер применения: помимо обработки цифровых сигналов, FPGA используются для ускорения машинного обучения, в blockchain технологиях, обработке видео и в IoT. Данная технология имеет од...

[Перевод] Система частиц в Core Animation. Рождественская история Всем привет! Рождество давно прошло, но после него у нас осталась занимательная история о том, как при помощи нечасто используемой возможности Core Animation можно создать пользователям праздничное настроение. Делюсь переводом статьи моего лондонского коллеги Алексиса. Р...

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

[Из песочницы] Перенос данных бэкапа новой версии MS SQL Server на более старую версию Предыстория Как-то раз для воспроизведения бага мне потребовался бэкап production-базы. К моему удивлению я столкнулся со следующими ограничениями: Бэкап базы был сделан на версии SQL Server 2016 и не был совместим с моей SQL Server 2014. На моем рабочем компьютере в кач...

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

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

7 альтернатив Air Drop для Android Большинство из нас сегодня воспринимает некоторые технологии, которые еще 10-15 лет назад казались невероятными, как должное. Например, пользователи устройств от компании Apple вполне успешно передают данные при помощи Airdrop. Это быстро, удобно и безопасно. Однако же не в...

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

Новые процессоры для дата-центров — разбираем анонсы последних месяцев Говорим о многоядерных CPU мировых производителей / фото PxHere PD 48 ядер В конце 2018 года Intel анонсировали архитектуру Cascade-AP. Эти процессоры будут поддерживать до 48 ядер, иметь мультичиповую компоновку и 12 каналов DDR4 DRAM. Такой подход обеспечит высокий урове...

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

Миллионер 2019 5.1 Миллионер 2019 – ваша любимая интеллектуальная игра кто хочет стать миллионером теперь в вашем телефоне абсолютно бесплатно и работает без интернета. Вам всегда хотелось поучаствовать в программе «Кто хочет стать миллионером», но у вас не получалось пройти отборочный т...

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

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

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

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

Windows Core OS будет поддерживать Win32-приложения Microsoft разрабатывает Windows Core OS – новую версию операционной системы Windows без использования Win32-кода. Предполагалось, что запуск Win32-программ будет возможен только при помощи эмуляции или облака, но по последней информации стало известно, что Microsoft работает...

Эксперты предупредили о небезопасных роутерах NETGEAR Исследователи Talos Intelligence обнаружили уязвимости в беспроводных роутерах NETGEAR. Из-за некорректной настройки рукопожатия между клиентом и точкой доступа злоумышленник может перехватить закрытые данные сетевых устройств. Баги содержатся в модуле ядра NetUSB одного из ...

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

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

[Из песочницы] PIL на Python от простого к сложному Чтобы дойти до сложных алгоритмов обработки, стоит проанализировать стандартные схемы, с чего я и предлагаю начать. Для примеров обработки будет использоваться изображение с различным наборов цветов: Для старта нам потребуется два модуля библиотеки: from PIL import Imag...

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

W3C и FIDO Alliance завершили разработку веб-стандарта для безопасного входа без пароля Консорциум World Wide Web (W3C) и FIDO Alliance объявили, что спецификация Web Authentication (WebAuthn) теперь является официальным веб-стандартом. Как сказано в совместном пресс-релизе, «это улучшение является важным шагом вперед в деле повышения безопасности и ...

Google не сказала, что Pixel 4 не позволяет входить в приложения по лицу Распознавание лиц — это удобно, но только при условии, что её поддерживают сторонние приложения Мы уже выяснили, что технология распознавания лиц в Pixel 4 далеко не так безопасна, как Face ID. Несмотря на более широкий угол обзора и возможность идентифицировать владел...

Подтверждено: Windows 10X сможет запускать классические Win32-приложения В начале октября этого года Microsoft представила новую операционную систему Windows 10X (ранее была известна под кодовым названием Windows Lite), построенную на базе Windows Core OS, которая предназначена для использования на складных устройствах с одним гибким или двумя о...

Adobe выпустили Photoshop для iPad Adobe запускает долгожданное приложение Photoshop для iPad, через год после того, как впервые объявила о планах выпустить настольную версию Photoshop CC для планшетов Apple. Приложение Photoshop на ‌iPad‌ предназначено для того, чтобы пользователи настольных компьютеров Phot...

Закон Галла: что он гласит и как применяется в IT Рассказываем, в чем суть закономерности, как она себя проявляет и что бывает, когда эту закономерность не учитывают в процессе проектирования и разработки IT-систем. Фото — Spencer — Unsplash В книге «Сам себе MBA. Самообразование на 100%», написанной Джошом Кауфманом (Jo...

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

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

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

Xiaomi Cleaner Lite появился в Google Play Store Интерфейс MIUI от Xiaomi является одной из самых популярных оболочек Android с более чем 300 миллионами пользователей по всему миру. MIUI - это сложная система, которая нацелена на обеспечение богатого пользовательского опыта, и для этого в MIUI имеется множество системных п...

Будущее инфраструктур центров обработки данных Архитектуры центров обработки данных общего назначения (такие ЦОДы сегодня все еще широко применяются) хорошо отрабатывали свои задачи в прошлом, но с недавних пор большинство из них достигли своих границ масштабируемости, производительности и эффективности. В архитектуре та...

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

Moscow Node.js Meetup 10: Архитектура Node.js-приложений, Hot Reload в Node.js и секретный доклад Друзья, это становится доброй традицией. Мы не встречались почти 11 месяцев – прошлая наша встреча была накануне Нового года и у самого Кремля. А в этом году Node.js исполнилось 10 лет, а это значит время провести юбилейный 10-й митап Msocow Node.js Meetup! В то время, как ...

[Из песочницы] JavaScript: Создание простого MEVN-приложения О чем статья Цель этой статьи — показать, как можно создать базовое MEVN-приложение. Акроним MEVN означает — MongoDB + Express.js + Vue.js + Node.js. В качестве примера будет написано одностраничное приложение, которое содержит форму, состоящую из нескольких текстовых полей....

[Перевод] Автоматизация Android. Супер простое руководство по созданию первого Espresso-теста Здравствуйте, друзья. В преддверии старта курса «Mobile QA Engineer», хотим поделиться с вами переводом интересного материала. Что такое Espresso? Нет, это не напиток, который вы пьете каждый день, чтобы взбодриться. Espresso — это тестовый фреймворк с открытым исходным к...

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

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

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

[Перевод] Стратегии деплоя в Kubernetes: rolling, recreate, blue/green, canary, dark (A/B-тестирование) Прим. перев.: Этот обзорный материал от Weaveworks знакомит с наиболее популярными стратегиями выката приложений и рассказывает о возможности реализации наиболее продвинутых из них с помощью Kubernetes-оператора Flagger. Он написан простым языком и содержит наглядные схемы, ...

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

Более 10 млн пользователей установили вирус под видом обновления прошивки Samsung Вирусные приложения — одна из главных проблем операционной системы от Google. Не менее популярна и проблема слабой модерации в магазине приложений Google Play Store. И вот, миллионы пользователей Android-смартфонов столкнулись одновременно сразу с двумя этими недостатками с...

[Перевод] Знакомство с SwiftUI: Создание простого приложения с использованием TableView Во время проведения WWDC 2019, одним из самым больших и захватывающих моментом был анонс релиза SwiftUI. SwiftUI — это совершенно новый фреймворк, который позволяет проектировать и разрабатывать пользовательские интерфейсы с написанием меньшего количества кода, декларативным...

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

[Перевод] Обмен данными между React-компонентами с использованием библиотеки RxJS Перед вами перевод статьи Chidume Nnamdi, опубликованной на blog.bitsrc.io. Перевод публикуется с разрешения автора. Появление библиотеки RxJS открыло массу новых возможностей в мире JS. Цель RxJS — достигать многого, используя небольшое количество кода. Прочитав эту стат...

Как отправлять сообщения на Android-смартфон прямо с компьютера Не так давно в очередном обновлении ОС Android появилась новая функция, или, скорее, возможность, которая дает пользователям операционки от Google обмениваться сообщениями с владельцами компьютеров. Это та самая возможность, которая была у владельцев устройств на macOS и iO...

Apple хотела превратить iPhone в рацию, но не смогла AirPods — самые лучшие беспроводные наушники В арсенале Apple много разных разработок, часть из которых кажется совсем уж невероятной. Взять хотя бы функцию Find My, позволяющую искать даже разряженные устройства путём установки связи с гаджетами проходящих мимо пользо...

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

Доступно для загрузки Windows 10 Build 18363.476 Корпорация Майкрософт начала развертывание накопительных обновлений исправлений во вторник для поддерживаемых версий Windows 10. Также доступны прямые ссылки для загрузки автономных установщиков Windows 10 KB4524570.Обновление KB4524570 содержит исправления только для безопа...

Почти Paint: приложения для рисования на Android Встроенная в инструментарий операционной системы Windows программа Paint — это действительно знаковое приложение. Да, оно не обладает всеми преимуществами того же Photoshop, но зато позволяет вам легко создавать незамысловатые рисунки, скетчи и наброски. К тому же мно...

[Перевод] Используем все возможности индексов в PostgreSQL В мире Postgres индексы крайне важны для эффективной навигации по хранилищу базы данных (его называют «куча», heap). Postgres не поддерживает для него кластеризацию, и архитектура MVCC приводит к тому, что у вас накапливается много версий одного и того же кортежа. Поэтому о...

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

Xiaomi рассказала, как обновить Mi 9 и Mi Mix 3 5G до Android Q Вчера мы писали о том, что только-только анонсированная ОС Android 10 (она же Android Q) в виде третьей бета-версии стала доступна для Google Pixel всех поколений и еще 15 смартфонов, среди которых оказались Xiaomi Mi 9 и Mi Mix 3 5G. А сегодня производитель рассказал, ...

Microsoft Build 2019 — прямая трансляция на русском Не пропустите трансляцию 6 мая в 18:30 из Washington State Convention Center. Build 2019 – главное мероприятие года от Microsoft для ИТ-специалистов. Спикерами конференции каждый год становятся лидеры индустрии, которые делятся своим опытом внедрения инновационных сервисов ...

Миссия «Чанъэ-4» — научное оборудование на посадочном модуле и спутнике-ретрансляторе На фоне данных о путешествии ровера «Юйту-2» по лунной поверхности, интерес к событиям и экспериментам, происходящим на стационарном посадочном модуле «Чанъэ-4», проявляется намного меньше, а ведь там установлено научное оборудование для изучения космической среды, с помощь...

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

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

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

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

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

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

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

[Перевод] Бессерверная архитектура и микросервисы: идеальная пара? Перевод статьи подготовлен для студентов курса «DevOps практики и инструменты» в образовательном проекте OTUS. Когда в 2015 году начали появляться первые туториалы с использованием AWS Lambda и API Gateway, было неудивительно, что они в основном были сосредоточены на копир...

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

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

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

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

Google отложила релиз одного из нововведений Android Q Одним из нововведений Android Q должна была стать функция Scoped Storage. Она создавала индивидуальное пространство на диске для каждого приложения в отдельности, позволяя им использовать доступную память, не посягая на отделы, которые принадлежат другому ПО. Таким образом ...

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

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

Построение микросервисной архитектуры на Golang и gRPC, часть 2 (docker) Пришло время заняться контейнерами Прежде всего, мы используем новейший образ Linux Alpine. Linux Alpine — это легкий дистрибутив Linux, разработанный и оптимизированный для запуска веб-приложений в Docker. Другими словами, Linux Alpine обладает достаточным количеством зави...

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

Исследователи научились шпионить за пользователями Android Исследователи обнаружили возможность следить за владельцами Android-смартфонов и скрытно управлять их устройствами. Под угрозой владельцы как минимум 10 моделей телефонов, включая Google Pixel 2, Huawei Nexus 6P и Samsung Galaxy S8+. Проблема содержится в системном интерфейс...

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

Словарь рекламных метрик.  CTR, CPI, CPM, CPC, CR Для того, чтобы оценить качество рекламных компаний существует большое количество различных метрик. Все они давольно таки простые для понимания, но чтобы было проще ориентироваться, в данном посте будут описаны основные из них. Разберем один из стандартных процессов попа...

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

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

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

Компьютеры Mac перейдут на процессоры ARM в 2020 году Как известно, в будущем Apple откажется от использования процессоров х86 в компьютерах собственного производства. Но примечательно то, что переход на архитектуру ARM не заставит себя ждать — Apple намерена перейти на новые чипы уже в следующем году. Об этом сообщает и...

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

5 признаков того, что вам пора обновить Android Сложно спорить с тем, что обновлять ПО своего смартфона нужно регулярно. Какой бы замечательной не была операционная система, нечистые на руку пользователи будут находить в ней различные «дыры» и уязвимости, а новые функции значительно упростят вашу жизнь. Более т...

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

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

[Перевод] Как была устроена графика NES Выпущенная в 1983 году домашняя консоль Nintendo Entertainment System (NES) была дешёвой, но мощной машиной, достигшей феноменального успеха. При помощи блока обработки изображений (Picture Processing Unit, PPU) система могла создавать достаточно впечатляющую по тем времена...

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

Уменьшение размера docker образа с spring boot приложением Добрый день. Недавно передо мной встала задача запуска spring boot 2 приложения в kubernetes кластере используя docker образ. Эта проблема не является новой, достаточно быстро я нашел примеры в гугле и запаковал свое приложение. Я был очень удивлен не найдя alpine образ для ...

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

Win32-приложения будут работать на Windows 10X 2 октября Microsoft представила Windows 10X (новую версию Windows 10) вместе с Surface Neo и Surface Duo. По словам руководителей Microsoft, ОС специально создана для устройств с двумя экранами, но ожидается, что Windows 10X будет доступна и в конце 2020 года для ноутбуков. ...

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

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

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

[Перевод] Анонс веб-интерфейса Kubernetes Web View (и краткий обзор других web UI для Kubernetes) Прим. перев.: Автор оригинального материала — Henning Jacobs из компании Zalando. Он создал новый веб-интерфейс для работы с Kubernetes, который позиционируется как «kubectl для веба». Почему новый Open Source-проект появился и каким критериям не удовлетворили уже существующ...

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

Firefox защитит пользователей браузера от атак класса Spectre и Meltdown Компания Mozilla перерабатывает браузер Firefox в рамках проекта Project Fission, используя технологию Site Isolation, которая разделяет код Firefox по изолированным процессам ОС. Как утверждается, это поможет защитить пользователей от атак класса Spectre и Meltdown, ко...

[Из песочницы] Зачем нам UML? Или как сохранить себе нервы и время Многие программисты, столкнувшись со сложной задачей, пренебрегают этапом проектирования, ссылаясь на то, что проектирование — это потеря времени, и в данном случае оно будет мне только мешать. Зачастую это утверждение оказывается верным, если задача и правда небольшая и к...

Отладка Angular CLI приложения в VSCode с помощью Browser Preview Привет, Хабр! В Iponweb мы не только творим магию с помощью Kubernetes, но и создаем сложные пользовательские интерфейсы. Основной фреймворк, который мы используем, — Angular (а также AngularJs для legacy частей), поэтому удобство разработки для нас — не пустой звук. Мы реши...

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

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

Токарные работы от 3D GURU Во многих производственных отраслях используются токарные работы. Связанно это с тем, что изделия, обработанные и созданные на токарных станках, имеют точные параметры и необходимую степень шлифовки. Заказать токарные работы в Москве можно в компании 3D GURU. Данное предприя...

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

Мнение: Почему Apple TV+ и Apple News+ не выйдут на Android На этой неделе Apple представила свой новый видеосервис, в рамках которого будет транслировать сериалы и телешоу собственного производства. Чтобы привлечь к площадке побольше зрителей, ее сделали кросс-платформенной, адаптировав для смарт-телевизоров LG, Samsung и Sony, а т...

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

Исчезающие фреймворки Почему мы используем фреймворки? Angular, React и Vue помогают нам строить сложные веб-приложения: структурировать код, управлять состоянием и разрабатывать сложные интерфейсы. За последнее десятилетие фреймворки стали стандартом. Дорогим стандартом. С тех пор как фреймворки...

Screen Share: функция, которая позволяет стримить изображения на другие Android-устройства Функция передачи изображения с одного устройства на другое — крайне удобная штука. Вспомните хотя бы, как круто «перебрасывать» ролики из приложения YouTube со смартфона на смарт-тв под управлением Android. А знали ли вы, что существует масса программ, котор...

[Из песочницы] Переменные окружения для Python проектов Переменные окружения для Python проектов При разработки web-приложения или бота мы часто имеем дело с какой-либо секретной информацией, различными токенами и паролями (API-ключами, секретами веб-форм). "Хардкодить" эту информацию, а тем более сохранять в публично доступной с...

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

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

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

Как использовать PAM-модули для локальной аутентификации в Linux по ключам ГОСТ-2012 на Рутокене Простые пароли не защищают, а сложные невозможно запомнить. Поэтому они так часто оказываются на стикере под клавиатурой или на мониторе. Чтобы пароли оставались в головах “забывчивых” пользователей и надёжность защиты не терялась – есть двухфакторная аутентификация (2ФА)....

Как простая поломка MacBook Pro может привести к дорогостоящему ремонту Высокая цена всегда была неотъемлемым атрибутом компьютеров Mac. Но если раньше стоимость компенсировалась качеством и надежностью, то теперь, похоже, всё это в прошлом. К сожалению, новые модели MacBook Pro вышли на редкость неудачными — проблемы с клавиатурами, дина...

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

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

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

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

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

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

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

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

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

Уникальный калькулятор MyScript Calculator 2 доступен на iOS и Android бесплатно Разработчики приложения MyScript Calculator 2 сделали все для того, чтобы сделать процесс решения примеров и уравнений максимально простым и интуитивным. Вместо того, чтобы выбирать нужные цифры и знаки на виртуальной клавиатуре, вам достаточно просто написать пальцем,...

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

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

Apple выпустила macOS 10.15 Catalina. Что нового macOS 10.15 Catalina Несмотря на то что раньше Apple предпочитала выпускать новые версии всех своих операционных систем в один день, со временем эта традиция начала забываться, пока вовсе не сошла на нет. Видимо, это связано с тем, что каждая платформа требует особенного под...

Ключевой законотворческий комитет ЕС проголосовал против автомобильного стандарта на основе Wi-Fi Ключевой комитет законодателей ЕС на этой неделе отклонил требование Европейской комиссии использовать технологию Wi-Fi в качестве основы для автомобильного стандарта. Таким образом, он поддержал сторонников использования технологии 5G. В ЕС стремятся принять единый ста...

[Из песочницы] Бизнес-логика в базе данных при помощи SchemaKeeper Цель данной статьи — на примере библиотеки schema-keeper показать инструменты, которые позволяют существенно облегчить процесс разработки баз данных в рамках PHP-проектов, использующих СУБД PostgreSQL. Информация из этой статьи, в первую очередь, будет полезна разработ...

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

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

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

Модернизация GHIDRA. Загрузчик для ромов Sega Mega Drive Приветствую вас, товарищи. Не слышал о пока-ещё-не-опенсорсной GHIDRA, наверное, только глухой/слепой/немой/без_интернета реверс-инженер. Её возможности из коробки поражают: декомпиляторы для всех поддерживаемых процессоров, простое добавление новых архитектур (с сразу же а...

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

[Перевод] Аппаратные «характеристики» в .NET Core (теперь не только SIMD) Введение Несколько лет назад, мы решили, что настало время поддержать SIMD код в .NET. Мы представили пространство имен System.Numerics с типами Vector2, Vector3,Vector4 и Vector<T>. Эти типы представляют API общего назначения для создания, доступа и оперирования векто...

[Из песочницы] Создаем монорепозиторий с помощью lerna & yarn workspaces За последние несколько лет концепция монорепозиториев успешно зарекомендовала себя, так как позволяет значительно упростить процесс разработки модульных программных проектов, таких как инфраструктуры на основе микросервисов. Основные преимущества такого архитектурного подх...

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

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

Оптимальная схема для взаимодействия с вендорами, партнёрами и подрядчиками. Анализ вариантов Любой сложный «продукт» — будь то услуга или материальный объект — ориентирован на долгосрочное удовлетворение потребностей и запросов клиента. Соответственно, неотъемлемой частью работы с «продуктом» является получение обратной связи от потребителя и поддержание «продукта» ...

Простой способ отключения Superfetch Многих пользователей интересует вопрос, почему в Диспетчере задач есть такой процесс, как Superfetch, который использует довольно много мощности процессора? По какому принципу он работает и почему его стараются отключить на современных ПК? Скачать бесплатно утилиту superfetc...

TDDx2, BDD, DDD, FDD, MDD и PDD, или все, что вы хотите узнать о Driven Development Просматривая статьи по проектированию ПО, я постоянно встречал тучу невиданных сокращений и вскользь упоминаемых практик разработки. TDD — ну, это все знают, сначала пишем тесты, а потом остальной код. BDD — что-то знакомое, вроде как, тоже тесты, но особенные. TDD — снов...

Хотите получать обновления Android раньше? Избегайте смартфонов с 5G 5G замедляет выход новых версий Android. Доказано Обновления никогда не были коньком Android. Максимум, на что могли рассчитывать пользователи, — это две новых версии операционной системы и пачка ежемесячных обновлений безопасности, которые, однако, совершенно необязат...

Феномен XY: как избежать «неправильных» проблем Задумывались ли вы когда-нибудь о том, как много часов, месяцев и даже жизней было впустую потрачено на решение «неправильных» проблем? Читать дальше →

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

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

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

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

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

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

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

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

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

Второй митап по OpenStack в Mail.ru Group: 22 февраля Привет, друзья. В эту пятницу мы собираем в Mail.ru наш второй @OpenStack Meetup, на котором: Коллеги из Hystax на примере клиентского кейса покажут, какой нелёгкой бывает миграция виртуальных машин между облаками и гипервизорами; Mail.Ru Cloud Solutions поделятся опытом...

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

Приложение «Ваш телефон» теперь поддерживает уведомления Microsoft объявила о том, что она работает над несколькими улучшениями для своего приложения «Ваш телефон» в Windows 10. Ваш телефон – это приложение от Microsoft, которое поставляется с предустановленной ОС Windows 10 October 2018 Update и оно обновляется в последнем обновл...

Figma — простое решение для дизайнера, сложное решение для верстальщика Если вы работаете в области web-разработки, то рано или поздно, вам суждено будет познакомиться с Figma. Смиритесь с этим фактом и начинайте изучать. Я же попробую описать данный продукт, с точки зрения повседневного пользователя. Читать дальше →

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

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

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

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

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

[Перевод] GitLab 11.7 поставляется с Releases, Multi-level Child Epics и реестром NPM Управление релизами стало намного проще GitLab 11.7 выпускает Releases в GitLab Core. Теперь у пользователей есть снэпшоты релиза, включающие не только исходный код, но и все связанные артефакты. Больше не надо вручную собирать исходный код, выходные данные сборки и прочие ...

[Перевод] Что происходит, когда вы отправляете SMS Это третья статья в цикле full-stack dev о секретной жизни данных. Она посвящена сложному и длинному маршруту SMS: набор, сохранение, отправка, получение и отображение. Добавлю немного истории и контекст, чтобы разбавить перечень протоколов. Хотя текст довольно технический, ...

Не забудьте обновиться. Samsung обезопасила флагманские смартфоны Galaxy S10 и Note10 Компания Samsung Electronics выпустила обновление программного обеспечения для смартфонов серий Galaxy S10 и Note10. Оно призвано решить серьёзную брешь в безопасности, благодаря которой смартфоны можно было разблокировать любым отпечатков пальца.  Проблема заключ...

Yoast: Google не должен был единолично менять подход к обработке rel=nofollow Основатель и директор по продукту Yoast Джуст де Волк (Joost de Valk) раскритиковал Google за изменение подхода к обработке ссылочного атрибута rel=“nofollow”, который теперь будет расцениваться поисковой системой как подсказка, а не директива. Своими мыслями он поделился в ...

[Перевод] Пишем Android-приложение на ассемблере Эта рассказ о нестандартном подходе к разработке Android-приложений. Одно дело — установка Android Studio и написание «Hello, World» на Java или Kotlin. Но я покажу, как эту же задачу можно выполнить иначе. Читать дальше →

Hitachi Vantara представила пакет решений Lumada Manufacturing Insights Основанные на обширных знаниях в области производственных технологий решения для промышленного Интернета вещей помогут оптимизировать работу оборудования и улучшить производственные процессы. Lumada Manufacturing Insights по...

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

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

5 декабря, ManyChat Backend MeetUp Всем привет! Меня зовут Михаил Мазеин, я — ментор Backend community ManyChat. 5 декабря в нашем офисе пройдёт первый Backend Meetup. В этот раз мы поговорим не только про разработку на PHP, но и затронем тему использования баз данных. Начнём с истории про выбор инструме...

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

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

Застрахуй ресурсы в Кубе Управление ресурсами кластера всегда сложная тема. Как объяснить необходимость настройки ресурсов пода пользователю, который деплоит свои приложения в кластер? Может проще это автоматизировать? Читать дальше →

SAP пропатчила серьезный баг в Diagnostics Agent Компания SAP выпустила июльский комплект патчей для своих программных продуктов. Набор содержит одиннадцать заплаток, четыре из которых закрывают баги межсайтового скриптинга. Обновления безопасности получила облачная торговая система Commerce Cloud, приложение для анализа и...

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

Google запустила AR-режим в Google Maps для избранных пользователей Режим дополненной реальности для Google Maps, который Google представила в прошлом месяце, стал доступен для тестирования избранным пользователям, выяснил 9To5Google. Первоначально доступ к нововведению получат только активные пользователи, которые имеют статус местных эксп...

Как быстро конвертировать PDF в JPG на Mac Многие пользователи не догадываются, какие обширные возможности предоставляет такой мощный инструмент, как Automator. На первый взгляд программа достаточно сложна в освоении, однако разобравшись, можно увидеть, что управление происходит довольно интуитивно и наглядно. Сегод...

[Из песочницы] Разработка приложений на Elixir/Phoenix с помощью Docker Под катом небольшое и простое руководство, в котором показано, как использовать Docker Compose для настройки и запуска приложения Elixir/Phoenix + PostgreSQL. Читать дальше →

[Из песочницы] Использование Context API в React для создания глобальной темы приложения Привет, это мой первый пост на Хабр. Надеюсь, Вам будет интересно. Итак, я хочу начать серию постов, напрямую или косвенно касающихся создания ui-kit. Задача данного поста: Найти решение контроля темы приложения, компоненты которого выполнены в React.js. Будем использова...

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

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

Work Chat 196.0.0 Work Chat — это приложение для обмена сообщениями между пользователями Facebook at Work. Сейчас Facebook at Work и Work Chat доступны только для некоторых компаний, и для их использования требуется рабочий аккаунт. Work Chat позволяет вам быстро отправлять сообщения люд...

[Перевод] Хороший разработчик мудр, а не гениален Одним из самых важных уроков, которые я постиг в качестве разработчика 15 лет назад, была эта простая мысль: Хороший код выразителен, а не впечатляющ. Я помню, как услышав это спросил «А в чём разница?», и получил ответ. «Выразительный» — понятный, однозначный и конкретный....

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

Files UWP v0.6.2 – UWP Проводник доступен в Microsoft Store Microsoft всячески пытается продвигать универсальную платформу Windows, но многие разработчики по-прежнему в полной мере не используют преимущества платформы UWP, одно из которых – кроссплатформенность.Новое приложение Files UWP, которое заменяет стандартный Проводник, появи...

Adobe выпустила 18 тысяч новых шрифтов для iPhone   Adobe добавила 1300 бесплатных шрифтов в Creative Cloud. Их можно использовать во всех приложениях на iOS 13.1 и iPadOS 13.1, которые поддерживают соответствующую функцию, например, в Pages. Ранее установка нестандартных шрифтов было очень сложным процессом. Нач...

Google: стремитесь к простой URL-архитектуре сайта ​Поисковик может удалять страницы из индекса из-за сложной структуры URL-адресов.

ok.tech: frontend meetup 4 июня в петербургском офисе Одноклассников пройдет ok.tech: frontend meetup. Вместе с коллегами из OK.ru, Яндекса и mail.ru поговорим про тестирование на основе свойств, эволюцию подходов работы с текстами, познакомимся с новой библиотекой от создателя Emmet Сергея Чикуён...

Tarantool Kubernetes Operator Kubernetes в значительной мере упрощает эксплуатацию приложений. Он забирает на себя ответственность за развертывание, масштабирование и отработку отказов, а декларативная природа описания ресурсов упрощает управление сложными приложениями. Тarantool может выполнять роль ...

Как давать и получать обратную связь, если ты воробушек-социофобушек Геннадий — middle-разработчик в большой IT-компании. Он интересуется джавой, кодит с 11 до 20, ездит на работу на самокате, ходит в бар с коллегами по пятницам и скучает на эджайл-митингах. Геннадий участвует в код-ревью и легко даёт советы младшим товарищам, когда дело кас...

Что я узнал, протестировав 200 000 строк инфраструктурного кода Подход IaC (Infrastructure as Code) состоит не только из кода, который хранится в репозитории, но еще людей и процессов, которые этот код окружают. Можно ли переиспользовать подходы из разработки ПО в управление и описание инфраструктуры? Будет не лишним держать в голове эт...

Как установить приложение диктофона с Google Pixel 4 на любой Android-смартфон Частью опций Google Pixel 4 вы можете невозбранно воспользоваться Новый Google Pixel 4 поставляется с несколькими эксклюзивными функциями, недоступными, к сожалению, на других Android-смартфонах. И если такие опции, как Project Soli, о котором мы вам не так давно рассказывал...

F#3: Форматирование текста При работе с любым языком вам, скорее всего, нужно будет отформатировать текст, и F# ничем не отличается. Поскольку F# является языком .NET, мы всегда можем использовать Console.WriteLine (..) и String.Format (..), где мы можем использовать любой из обычных форматеров, кото...

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

Thymeleaf: диалект Layout + Spring Boot 2 Диалект Layout — это диалект Thymeleaf, который позволяет пользователям создавать макеты и шаблоны для повторного использования HTML кода. Он имеет иерархический подход и использует шаблон декоратора для «декорирования» файлов макета. Layout Dialect является отдельным проект...

Безопасность контейнеров в CI/CD На дворе наступила осень, во всю бушует техноутопия. Технологии стремительно рвутся вперед. Мы носим в кармане компьютер, вычислительная мощность которого в сотни миллионов раз больше мощности компьютеров, управляющих полетами на Луну. С помощью Youtube VR мы можем плавать в...

Пишем меньше дублирующего кода, используя биндинг в Laravel Доброго времени, уважаемые господа. Не так давно столкнулся с явлением дублирующегося и повторяющегося кода при код ревью одного проекта на Laravel. Суть в следующем: у системы существует некоторая структура внутреннего API для AJAX запросов, по сути возвращающая коллек...

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

Отправка сообщений peer-to-peer при помощи PeerJS Приветствую вас, уважаемые читатели. В предыдущей статье я рассказал, как сделать простую звонилку в браузере при помощи PeerJS. А сегодня планирую рассмотреть, как обмениваться сообщениями между двумя пользователями напрямую без задержек. Кому это интересно? Если Вы разраб...

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

Apple расширит совместные возможности Mac и Apple Watch в macOS 10.15 Возможность разблокировать Mac, просто поднеся к ним Apple Watch, появилась три года назад и с тех пор приобрела широкую популярность среди пользователей. Часы позволяют не только снимать с компьютера блокировку без необходимости вводить пароль, но и подтверждать онлайн-тра...

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

[Перевод] Храним SSH-ключи безопасно Хочу рассказать как безопасно хранить SSH-ключи на локальной машине, не боясь за то, что какое-то приложение может украсть или расшифровать их. Статья будет полезна тем, кто так и не нашел элегантного решения после паранои в 2018 и продолжает хранить ключи в $HOME/.ssh. Для...

[recovery mode] ReactJS + MobX — опыт использования DI Мне кажется, настало время поделится подходом для написания ReactJS App, я не претендую на уникальность. Первый абзац можно пропустить. Я занимаюсь web разработкой уже давно, но последние четыре года я плотно сижу на ReactJS и меня все устраивает, в моей жизни был redux, но...

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

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

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

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

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

[Перевод] Создание игры «Крестики-нолики» при помощи TypeScript, React и Mocha Представляем вам перевод статьи Josh Kuttler, опубликованной на blog.bitsrc.io. Узнайте, как создать приложение «Крестики-нолики», используя React и TypeScript. Простая игра в крестики-нолики создана по модульному принципу и загружена на сайт Bit. Вы можете изменять компо...

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

[Перевод] 5 распространенных ошибок при использовании архитектурных компонентов Android Даже если вы не делаете этих ошибок, стоит о них помнить, чтобы не столкнуться с некоторыми проблемами в будущем. Читать дальше →

Microsoft выпустила PowerToys 0.12 с функцией массового переименования файлов Компания Microsoft выпустила новую предварительную версию утилиты PowerToys, которая принесла с собой новую функцию под названием Smart Rename. С помощью этой функции вы сможете осуществлять массовое переименование файлов, используя простую технику поиска и замены, использу...

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

Сообщения об ошибках установки Windows 10 скоро станут понятней Обычным пользователям их будет гораздо проще понятьСообщения об ошибках являются нормой для пользователей ПК, но это не делает их менее расстраивающими, когда они всплывают; особенно когда они не предлагают много полезной информации, сообщает ITbukva.com.Плохо объясненные ош...

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

Социальная инженерия с помощью программ Universal Windows Platform (APPX) TL;DR: В APPX-файл Universal Windows Platform можно упаковать обычный exe-файл, который будет запускаться в Windows 10 (сборка 1607 и новее) примерно так же, как обычные exe-файлы. Это можно использовать для атак социальной инженерии, с помощью рассылки через email — почто...

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

Мнение: Почему Google Play по подписке не нужен На прошлой неделе стало известно, что Google тестирует новый сервис под названием Google Play Pass. Он станет составной частью каталога Google Play, но при этом позволит пользователям получать доступ к премиум-версиям сотен приложений и игр без встроенных покупок за 5 долла...

В плагине WP Live Chat Support обнаружили уязвимость Аналитики компании Sucuri нашли в WordPress-плагине WP Live Chat Support опасный баг. Уязвимость позволяет неавторизованному злоумышленнику провести XSS-атаку и внедрить вредоносный код на все страницы сайта, которые используют расширение. После получения информации о недост...

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

VPN99 1.9 VPN99 – простой и безопасный способ обойти блокировку любых ресурсов. Свободный и безопасный доступ к мессенжерам, приложениям видео и мультимедиа, защита соединения Wi-Fi, конфиденциальность пребывания в сети, доступность социальных сетей. Возможности приложения VPN99:...

IBM Cloud Integration Platform: Собиратель данных Мультиоблачная интеграционная платформа поможет заказчикам связать все свои данные независимо от того, где они находятся. Корпорация IBM представила свою новую мультиоблачную интеграционную платформу, которая должна помочь клиентам наладить управление данными, а также обе...

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

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

Как работает децентрализованный мессенджер на блокчейне В начале 2017 мы начали создавать мессенджер на блокчейне [название и ссылка есть в профиле] с обсуждения преимуществ перед классическими P2P-мессенджерами. Прошло 2.5 года, и нам удалось подтвердить свой концепт: сейчас доступны приложения мессенджера для iOS, Web PWA, Win...

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

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

How to get Security Log with non-administrative user Привет Хабр! Читайте под катом как получить доступ к логу безопасности Windows без прав администратора. Эта будет не первая статья на Хабре связанная с логами Windows и наверно не самая оригинальная, но на мой взгляд я потратил слишком много времени на поиск простого решен...

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

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

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

Лучшие игры для тренировки вашего мозга Что наша жизнь? Игра! В данном случае — игра, которая поможет вам натренировать мозг Современный смартфон позволяет вам получить доступ ко множеству самых разных приложений. Вы можете читать в интернете интересные статьи (в том числе и на нашей страничке в Яндекс.Дзен)...

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

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

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

SVG 3D: создание, вращение по оси и анимация Чуть более недели назад, в рамках конкурса от Телеграм, пришлось окунуться в "волшебный мир" svg, математических формул, оптимизации и анимации. Конкурсным заданием было создание достаточно простого чарта на JS, но некоторые нюансы задания и акцент на производительности дел...

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

100 хитрых загадок, которые с лёгкостью отгадывали советские школьники Попробуйте разгадать простые и сложные головоломки из старого журнала «Мурзилка».

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

Как реализуется отказоустойчивая веб-архитектура в платформе Mail.ru Cloud Solutions Привет, Хабр! Я Артем Карамышев, руководитель команды системного администрирования Mail.Ru Cloud Solutions (MCS). За последний год у нас было много запусков новых продуктов. Мы хотели добиться, чтобы API-сервисы легко масштабировались, были отказоустойчивыми и готовыми к б...

[Перевод] Понимание разницы между СI и СD: «если что-то вызывает боль, делайте это почаще» Disclaimer. Костис Капелонис — Developer advocate (человек, защищающий и отстаивающий принципы программной разработки) Codefresh, первой платформы CI/CD для Kubernetes и контейнеров. Миссия Codefresh «Автоматизировать и упрости всё, от кода до облака». Как инженер-программис...

Видео дня: на работающем Samsung Galaxy S10+ показан главный недостаток встроенного под экран дактилоскопического датчика Вслед за видеороликом с официальными чехлами Samsung для смартфонов Galaxy S10, британский интернет-магазин MobileFun опубликовал живое видео работающим аппаратом Galaxy S10+.  Ролик был снят на специальном пресс-брифинге Samsung для партнёров. Он демонстрирует на...

Apple оснастила новые iPhone аппаратной защитой от устаревания iPhone 11 — вид сзади Многие, вероятно, уже не помнят, но всего пару лет назад Apple уличили в занижении производительности iPhone с изношенными батареями. Не то чтобы таких обвинений не было раньше, но в декабре 2017-го эти обвинения получили неоспоримые доказательств...

Software AG и Microsoft предлагают бизнесу возможность быстрой и простой миграции в облако Компания Software AG и корпорация Microsoft представили новое передовое решение, с помощью которого предприятия смогут ускорить и упростить миграцию в Microsoft Azure, сохранив при этом непрерывность бизнес-процессов. Новое решение Cloud Migration Accelerator от Software AG ...

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

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

[Перевод] Новости из мира OpenStreetMap №458 (23.04.2019-29.04.2019) Замки и дворцы Швейцарии, в том числе ближнего зарубежья, Германии, Франции, Италии. Сочетание OpenStreetMap + Wikidata + Wikimedia Commons + Wikipedia 1 | Данные Участники OpenStreetMap, ODbL Карты На конференции «Pacific Visualisation» Йохен Гертлер вместе со своими кол...

Automaton — новая Android-игра для изучения основ программирования В конце прошлого года на iOS вышла 7 Billion Humans, в августе этого — while True: learn(), а сегодня состоялся релиз Automation. Свежий проект не сравнится с предыдущими своим внешним видом, но в своей основе имеет кое-что общее, что важнее графических изысков. Automation ...

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

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

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

Борьба за качество решений на Erlang/Elixir @jcutrer Сегодня мы будем говорить про журналы событий, количественные метрики и наблюдение за всем этим с целью увеличения скорости реакции команды на инциденты и уменьшения времени простоя целевой системы. Erlang/OTP как фреймворк и идеология построения распределенных сис...

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

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

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

Чтобы использовать беспрецедентные возможности для роста и развития бизнеса, компаниям нужно действовать прямо сейчас — отчет Aruba, Hewlett Packard Enterprise о преимуществах технологий границы сети Новый отчет подтверждает, что организациям необходимо фундаментальным образом изменить подход к внедряемым технологиям и бизнес-моделям, чтобы раскрыть экономический потенциал использования технологий на границе сети. В течение ...

[Из песочницы] Подводные камни разработки Google Play Instant Привет, Хабр! Меня зовут Камо Сперцян, я занимаюсь Android-разработкой в PROFI.RU. Недавно я написал приложение с мгновенным запуском для наших клиентов. Если вы ещё не знакомы с технологией, приглашаю вас сначала посетить Android Developers. С презентации Instant Apps (G...

Portmone.com запустил Apple Pay для клиентов e-commerce С 06.06.2019 все интернет-магазины и онлайн-сервисы, использующие платежный сервис Portmone.com, получили возможность подключения приема платежей с помощью Apple Pay. Сервис уже доступен на сайтах таких компаний как Новое Время, Domino’s Pizza, GoodWine и прочих. Таким...

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

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

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

RDMA внутри ЦОД в реализации от Huawei Под катом о том, какой подход предлагает Huawei при организации удаленного прямого доступа к памяти с использованием технологии AI Fabric и чем он отличается от InfiniBand и «чистого» RDMA на базе Ethernet. Читать дальше →

Как мы внедряли SD-Access, и зачем это понадобилось Основная страница мониторинга. SD-Access — это реализация нового подхода к строительству локальных сетей от Cisco. Сетевые устройства объединяются в фабрику, поверх неё строится оверлей, и всем этим управляет центральный компонент — DNA Center. Выросло всё это из систем мо...

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

Стриминг или загрузка видео: что лучше? С развитием технологий просмотр телешоу, фильмов или сериалов становится все проще и доступнее. Вам уже не нужны телевизор и проигрыватели DVD или Blu-Ray дисков для того, чтобы насладиться любимым контентом. Зачастую бывает достаточно лишь подключения к интернету, смартфон...

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

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

[Перевод] KlusterKit KlusterKit: набор инструментов с открытым исходным кодом для упрощения деплоев Kubernetes и работы в физически изолированных локальных средах Сегодня мы с радостью объявляем, что Platform9 открывает исходные коды Klusterkit, набора из трех инструментов, по лицензии Apache v...

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

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

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

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

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

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

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

[Перевод] Chaos Engineering: искусство умышленного разрушения Прим. перев.: Рады поделиться переводом замечательного материала от старшего технологического евангелиста из AWS — Adrian Hornsby. В простых словах он объясняет важность экспериментов, призванных смягчить последствия сбоев в ИТ-системах. Вы, наверное, уже слышали про Chaos M...

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

[Перевод] Разработка приложения на SwiftUI. Часть 1: поток данных и Redux После участия в сессии State of the Union на WWDC 2019 я решил детально изучить SwiftUI. Я потратил много времени на работу с ним и теперь приступил к разработке реального приложения, которое может оказаться полезным широкому кругу пользователей. Его я назвал MovieSwift...

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

Apple запустила веб-версию Apple Music для работы в браузере Как слушать Apple Music в браузере? Легко и просто У Apple Music никогда не было проблем с подписчиками. Ещё на заре сервиса в Купертино знали, что их сервис ждёт успех, а потому предпочли ограничить его работу только фирменными приложениями. В результате всего за 5 лет сумм...

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

В WhatsApp закрыли уязвимость исполнения стороннего кода Независимый ИБ-исследователь под ником Awakened рассказал об уязвимости WhatsApp, угрожающей пользователям выполнением стороннего кода. Баг CVE-2019-11932 позволяет злоумышленникам атаковать Android-устройства с помощью вредоносных GIF-файлов. Как работает критическая уязвим...

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

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

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

Применение DBREPLICATION при свёртке баз данных на Microsoft SQL Server Для корпоративных учетных систем характерно постепенное увеличение объёма баз данных из-за накопления исторической информации. С течением времени размер БД может достигать таких размеров, что это провоцирует ряд проблем с производительностью, сервисным обслуживанием, доступн...

[Перевод] Мы только что распечатали микрофон на 3D-принтере в лаборатории – а дальше вообще будет полная научная фантастика Идея создания физического объекта из цифрового файла кажется захватывающей. Она вызывает в памяти репликаторы из «Звёздного пути», способные сделать всё, от одежды до запчастей для космического корабля и еды. Сегодняшняя 3D-печать совершает впечатляющие шаги в этом направл...

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

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

[Перевод] Intel Comet Lake-U и Comet Lake-Y: до 6 ядер для тонких и легких ноутбуков Подводя итоги нескольких весьма напряженных недель, Intel анонсировала вторую половину своего стека процессоров Core 10-го поколения с низким энергопотреблением. С новым именем Comet Lake, процессоры мощностью до 15 Вт основаны на существующей архитектуре процессора Intel Sk...

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

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

Установка и настройка Nexus Sonatype используя подход infrastructure as code Sonatype Nexus – интегрированная платформа, с помощью которой разработчики могут проксировать, хранить и управлять зависимостями Java (Maven), образами Docker, Python, Ruby, NPM, Bower, RPM-пакетами, gitlfs, Apt, Go, Nuget, а также распространять свое программное обеспечение...

Что из себя представляет Project Catalyst На WWDC 2019 Apple анонсировала Project Catalyst — амбициозный кроссплатформенный проект, который призван увеличить количество новых программ и игр на платформе macOS. Для этого будет использоваться огромная экосистема приложений iOS (пока что только версии для iPad)....

Базы данных на HighLoad++ 2019 Работа с базой данных — это то, что заметно отражается на производительности любого веб-сервиса. Если постараться, то можно устроить хайлоад вообще без всякой нагрузки. А если все сделать по уму, то получится обрабатывать запросы многих тысяч пользователей. Поэтому в распи...

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

[Из песочницы] Основы реактивного программирования с использованием RxJS Часть 1. Реактивность и потоки Данная серия статей посвящена реактивности и ее применению в JS с использованием такой замечательной библиотеки как RxJS. Для кого эта статья: в основном, здесь я буду объяснять основы, поэтому в первую очередь статья рассчитана на новичков в ...

[Из песочницы] Не переусложняйте ваш CI/CD и пользуйтесь Docker'ом осмысленно Я работал в разных компаниях, которые используют микросервисы. И они запускали их в docker контейнерах. Сейчас я работаю с проектом, который хоть и монолит, но его все равно удобнее запустить в контейнере. С одной стороны, Docker очень универсальный инструмент, его можно л...

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

Как использовать режим конфиденциальности в Gmail Еще в прошлом 2018 году (а если быть точнее, то 25 апреля) в Google объявили о том, что пользоваться их почтовым сервисом Gmail в режиме конфиденциальности можно будет всем пользователям «совсем скоро». И большинство людей уже получили доступ к этой функции, хотя ...

Google анонсировал Android Q: Xiaomi Mi 9 среди устройств, получающих бета-версию 3 Ежегодная конференция Google I / O 2019 стартовала вчера в Калифорнии. Как всегда, в ходе данного мероприятия прозвучало и еще прозвучит много информации о новых проектах, над которыми на протяжении последнего года работал Google. Но одним из главных событий, вне всякого сом...

Функции обратного вызова в скриптах Иногда наш COM‐компонент должен отправить клиенту уведомление или вызвать функцию обратного вызова. Схема простая: компонент публикует интерфейс, клиент создаёт унаследованный от интерфейса объект и передаёт его компоненту, компонент в свою очередь вызывает функции интерфейс...

В Греции проведено испытание передачи данных с использованием тестового микроволнового канала Как сообщает ТАСС со ссылкой на издание "Нафтемборики", Cosmote, частично принадлежащая Греческой организации связи (ОТЕ), в сотрудничестве с германской Deutsche Telekom и шведской Ericsson провела испытание передачи данных с использованием тестового микроволнового...

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

Доступно обновление Windows 10 May 2019 Update Обновление Windows 10 May 2019 Update теперь доступно для «искателей» (продвинутых пользователей), и компания сделает майское обновление 2019 года более доступным в ближайшие недели. В сообщении Microsoft говорится, что Windows 10 версии 1903 доступна только для пользователе...

Как выглядит Google Assistant для Android в новом режиме В последнее время Google уделяет даже слишком много внимания своему голосовому ассистенту. Разработчики компании экспериментируют с разными вариантами оформления, новыми возможностями и даже новым режимом под названием Ambient Mode. Он позволит использовать смартфон с Googl...

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

[Перевод] Что раздувает память в Ruby? У нас в Phusion работает простой многопоточный HTTP-прокси на Ruby (раздаёт пакеты DEB и RPM). Я видел на нём потребление памяти 1,3 ГБ. Но это безумие для stateless-процесса… Вопрос: Что это? Ответ: Использование памяти процессом Ruby с течением времени! Оказывается, я н...

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

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

Samsung Pay стремительно разряжает телефоны: как решить проблему [ИНСТРУКЦИЯ] В некоторых случаях приложение для мобильных платежей «сжирало» до 60% заряда аккумулятора. Samsung нравятся проприетарные решения, позволяющие быть независимым от сторонних провайдеров. Однако у такого подхода есть и недостатки. На днях выявлен серьезный

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

Hitachi Vantara представила новинки для управления данными Интернета вещей Решения Lumada Data Services, Data Lake и Edge Intelligence призваны помочь заказчикам преодолеть разрозненность массивов данных и стимулировать инновации, используя методологию DataOps. На конференции NEXT 2019 компания Hitachi Vantara объявила о расширении комплекса реш...

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

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

Google упростила создание Android-приложений на Chromebook Во время проведения прошлогодней конференции для разработчиков компания Google объявила о добавлении поддержки Linux в Chrome OS, что значительно облегчило веб-разработчикам и Android-разработчикам использование Chromebook в качестве рабочего инструмента. Год спустя компания...

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

Как добавить разделитель в док-панель macOS Разделяем элементы в док-панели macOS — несмотря на устоявшее мнение — одна из самых настраиваемых настольных операционных систем. В этом плане ОС от Apple может вполне успешно соперничать с Windows: пользователям стоит лишь изучить возможности «Терминала». Коман...

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

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

Конструирующий XPath? Алгоритмический XPath? Ничего, кроме XPath Здравствуйте, уважаемые читатели. В этой публикации речь пойдет о немного нестандартных применениях такого хорошо известного формализма как XPath. Все знают, что он очень удобен для извлечения информации из XML- или HTML- или еще каких-нибудь *ML-документов (как простых текс...

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

А вы все-все за меня мониторить будете? Ага Обычно Хабр используется как информационное решение — кто-то делится наработанной и структурированной информацией, а кто-то эту информацию впитывает (я хотел написать “потребляет”, но это слово маркетологи уже испоганили). Я же, на правах старожила, и учитывая легкую рассл...

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

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

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

React Hook Router современная альтернатива React Router Вольный перевод публикации How React Hooks can replace React Router. Автор Peter Ekene Eze. С момента появления React Hooks многое изменилось. Возможности, предоставляемые хуками, позволили пересмотреть наш подход к определенным концепциям в React, в том числе и к маршрут...

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

Oracle APEX. Отчеты В этой статье описываются три типа отчетов апекса: Classic Report, Interactive Report (IR) и Interactive Grid (IG). Classic Report — самый простой из них, но в сочетании с другими компонентами позволяет делать достаточно неожиданные вещи. IR и IG обладают намного более широк...

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

Скриншоты рабочей версии браузера Edge на базе Chromium В конце прошлого года Microsoft сообщила всему миру, что ее браузер Edge переходит на движок Chromium. До сегодняшнего дня было очень мало информации по этому браузеру, но теперь и сайту thurrott.com удалось опробовать его перед релизом.Вначале это очень сильно похоже на бра...

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

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

Еще один способ оптимизации docker-образов для Java приложений История по оптимизации образов для java приложений началась с выхода статьи в блоге спринга — Spring Boot in a Container. В ней обсуждались различные аспекты по созданию docker образов для spring boot приложений, в том числе и такой интересный вопрос, как уменьшение размеров...

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

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

Микросервисы. Версионность в системах непрерывной интеграции и развертывания CI/CD на примере использования TFS Проблематика Для больших и технически сложных проектов, над которыми как правило одновременно работают много распределенных команд, существует известная проблема версионности разрабатываемого ПО, которую разные компании решают по-разному. Читать дальше →

Делаем прототип бота для боев в Clash Royale У вас бывало, что вы залипаете в какую-то простенькую игру, думая, что с ней вполне бы мог справиться искусственный интеллект? У меня бывало, и я решил попробовать создать такого бота-игрока. Тем более, сейчас много инструментов для компьютерного зрения и машинного обучения,...

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

Сокращение рисков downtime благодаря архитектуре Shared Nothing Тема отказоустойчивости в системах хранения данных всегда является актуальной, поскольку в наш век повсеместной виртуализации и консолидации ресурсов СХД является тем звеном, отказ которого приведет не просто к заурядной аварии, а к длительным простоям сервисов. Поэтому совр...

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

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

Режим «Картинка в картинке» в Android-версии YouTube становится доступным во всем мире В 2017 году компания Google представила режим «Картинка в картинке» (PiP) для приложения YouTube в Android, однако функциональность была доступна только пользователям платных подписок RED/Premium. В июне 2018 стало известно, что все пользователи приложения Y...

Более 20 тысяч владельцев Oracle EBS под угрозой PayDay Почти половина пользователей набора бизнес-приложений Oracle E-Business Suite все еще не установили патчи для уязвимостей PayDay, закрытых вендором в апреле 2019 года. Эксплуатация этих недостатков позволяет злоумышленнику вывести деньги с расчетного счета компании или сформ...

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

[Перевод] Современное окружение для React Native приложений В этой статье мы рассмотрим настройку React Native окружения с использованием expo-cli, Typescript, и Jest. Typescript поможет нам избежать ошибок при разработке и написать более эффективное мобильное приложение. Современные разработки позволяют интегрировать Typescript в ...

Встраиваем Lua интерпретатор в проект для микроконтроллера (stm32) В достаточно крупных приложениях немалую часть проекта составляет бизнес-логика. Эту часть программы удобно отлаживать на компьютере, после чего встраивать в состав проекта для микроконтроллера, ожидая, что эта часть будет выполняться в точности так, как было задумано без ...

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

Автономная – значит самоадминистрируемая СУБД Oracle 19c была представлена на конференции Oracle Experience Autonomous Day в Москве. Среди новых возможностей - сбор статистики работы базы данных в реальном времени и система карантина для SQL-запросов, например, сильно загружающих CPU или генерирующих слишком много ...

DirectX 12 теперь работает на Windows 7 С выходом Windows 10 состоялся и релиз DirectX 12, который был эксклюзивным дополнением к новой системе от Microsoft. По словам компании, данный API разрабатывался около 5 лет и старые системы попросту не были совместимы с новым API DX12. Многие пользователи чувствовали в эт...

[Из песочницы] JAMstack: Как создать свой блог используя Gatsby + Contentful + Netlify Вы уже слышали о новом подходе JAMstack? Возможность писать веб-приложения на любимом фреймворке, управлять контентом из админ панели, а на выходе получать полностью валидные HTML-страницы построенные согласно с самыми последними рекомендациями SEO, PWA и a11y. Интересно? То...

[Из песочницы] Как Telegram-бот поборол дизайнерскую прокрастинацию и помог увеличить доход digital-агентства­ Основатель digital-агентства Роман Квартальнов делится простым решением, которое помогло сделать производственные процессы прозрачными, дало возможность в любой момент времени оценить себестоимость проекта и компании целиком, а также экономить около 1 000 000 рублей на сбор...

[Перевод] Автоматический перенос приложений iOS (ARM) на macOS (x86) с помощью Bitcode Когда Apple представила технологию Bitcode и сделала её обязательной для watchOS и tvOS, компания словно отмахнулись от вопросов, зачем она вообще нужна. Лишь туманно сказала, что она помогает настраивать двоичные файлы и использует последние улучшения компилятора. С тех по...

[Перевод] Анимация подчёркивания ссылок на чистом CSS Одно из преимуществ создания моего личного сайта с нуля вместо использования готовой темы заключается в том, что я начинаю с настроек браузера по умолчанию и постепенно добавляю собственные расцветки. Я стараюсь удержать сайт от раздувания, но и персонализация — важное дело....

С новым обновлением пользоваться Google Поиском по картинкам стало значительно удобнее Технология ускоренных мобильных страниц (AMP), разрабатываемая независимыми разработчиками и активно продвигаемая Google, впервые запустилась три года назад. С момента запуска она активно распространялась по всему интернету как на десктопе, так и на мобильных устройствах. А...

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

Архитектура Armv8.1-M включает расширенные возможности машинного обучения и обработки сигналов для самых маленьких встраиваемых систем Компания Arm на этой неделе представила архитектуру Armv8.1-M. В ней используется технология Arm Helium, представляющая собой расширение M-Profile Vector Extension (MVE) для процессоров серии Arm Cortex-M. Как утверждается, Helium обеспечивает повышение производительнос...

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

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

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

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

[Перевод] Руководство по React Native для начинающих Android-разработчиков (с примером приложения) Представляем вам перевод статьи Nikhil Sachdeva, опубликованной на hackernoon.com. Автор делится опытом разработки мобильных приложений с помощью React Native и предлагает создать свое приложение, используя этот фреймворк. Я был Android-разработчиком и довольно длительное...

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

Как проверить, сколько памяти занимают определенные приложения на iPhone и iPad Начиная с iOS 11 (обзор) появилась возможность удалять приложения на iPhone, iPad или iPod touch, сохраняя при этом данные программ. Таким образом при повторной инсталляции приложений пользователям не требуется заново устанавливать настройки. Хотя это довольно полезная функц...

Госуслуги стали еще доступнее Помимо оплаты банковской картой, электронными деньгами или средствами с мобильного телефона на портале госуслуг появилась возможность воспользоваться сервисом Google Pay. Штраф, счет, пошлину или задолженность можно оплатить по отдельности или вместе, с помощью мультиоплаты&...

[Из песочницы] Принципы проектирования справочников номенклатуры в 1С Управление Предприятием 2 (ERP 2.4.6) ОглавлениеОсновные принципы работы Справочники и связанные с ними объекты Перечисление «Типы номенклатуры» Справочник «Виды номенклатуры» Справочник «Товарные категории» Справочник «Товарные характеристики» Дополнительные реквизиты и сведения Функционал «Номенклатура, ...

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

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

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

[Перевод] Nintendo чётко даёт понять, что только пиратство может сохранить историю видеоигр Закрывая Wii Store Channel и не давая пользователям скачивать старые игры, компания Nintendo снова демонстрирует, что в современную цифровую эпоху вещи, которые вы покупаете, на самом деле вам не принадлежат Пробыв в онлайне больше десятилетия, Nintendo закрывает Wii Shop ...

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

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

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

Новые голосовые приложения на C# в 3CX v16 3CX v16 уже на подходе, и у нас есть отличные новости о нашем приложении для разработчиков Call Flow Designer. В новом релизе CFD использует новый скриптовый «движок», интегрированный в ядро сервера 3CX. Благодаря выполнению скриптов в ядре АТС, производительность голосовых ...

[Из песочницы] Коротко о главном: Clean Architecture, Robert C. Martin Это будет рассказ о впечатлении о книге, а также будут рассмотрены некоторые понятия и знания, которые, благодаря этой книге, были изучены Архитектура Можете ли вы, читая эту публикацию, дать четкий ответ на вопрос, что такое архитектура? Что такое архитектура в контексте п...

HTTP Request smuggling — новые подходы 7 октября 2019 года директор отдела исследований PortSwigger (производителя BurpSuite) опубликовал исследование о новых подходах к HTTP Request smuggling. С их помощью он заработал на bugbounty около $70000. В этой заметке мы коротко выясним суть атаки, инструментарий, а так...

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

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

Движок Unity получил поддержку DX12 на Xbox One и прибавку в скорости Компания Unity Technologies объявила, что теперь её движок, активно используемый во многих играх (особенно в небольших независимых проектах), поддерживает низкоуровневый графический API Microsoft DirectX 12 на Xbox One. Это позволяет разработчикам игр без особых уси...

[Перевод] Разбираем Async/Await в JavaScript на примерах Автор статьи разбирает на примерах Async/Await в JavaScript. В целом, Async/Await — удобный способ написания асинхронного кода. До появления этой возможности подобный код писали с использованием коллбэков и промисов. Автор оригинальной статьи раскрывает преимущества Async...

Что изменится в законах с октября 2019 года Россиянам станет сложнее получать лишние кредиты и проще оформлять ДТП.

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

Гигабитный линк на 3 километра на лазерных модемах TL;DR В статье описывается наш опыт построения беспроводного соединения на расстоянии 3 километра с помощью лазерных модемов Lantastica TZR без использования радио. Вывод: это действительно работает, реальная ширина канала ~950mbit/s в дуплексе при задержках <1мс. Обы...

Обработка системных вызовов посредством LD_PRELOAD с единой точкой входа Делая пере-реализацию QInst на LLVM, я столкнулся с такой проблемой: QEMU в режиме эмуляции одного процесса естественным образом перехватывает все «гостевые» системные вызовы. В итоге плагин инструментации имеет единую точку входа для их предобработки, где можно по номерам S...

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

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

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

[Перевод] Деплоим ML проект, используя Flask как REST API, и делаем доступным через приложение на Flutter Введение Машинное обучение уже везде и, пожалуй, почти невозможно найти софт, не использующий его прямо или косвенно. Давайте создадим небольшое приложение, способное загружать изображения на сервер для последующего распознавания с помощью ML. А после сделаем их доступными ...

[Перевод] Начинаем работать с Google Analytics: App + Web Google недавно выпустила в публичный доступ новую версию Google Analytics под названием App + Web. Симо Ахава уже написал отличную пошаговую инструкцию о том, как начать работать с инструментом, поэтому я решила перевести ее на русский язык. От себя добавлю, что продукт толь...

В День смеха не до шуток: Роскомнадзор массово блокирует сайты до 1 апреля — Инсайд В настоящее время регистратор доменных имен reg.ru функционирует некорректно. Об этом стало известно по пока неподтвержденным данным инсайдеров. Знакомые с ситуацией говорят, что это происходит, вероятнее всего, из-за Роскомнадзора. Ведомство активно ведет борьбу с мессендж...

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