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

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

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

Структура DNS пакета Предисловие Решил как то написать снифер DNS, так сказать just for fun. Просто посмотреть какие адреса в моей системе резолвятся. Протокол старый, документации должно быть много. Много. Но все статьи очень не полные и заканчиваются, на самом интересном моменте. Да, есть rf...

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

Управление параметрами в бизнес-приложениях по аналогии с системой контроля версий В различных приложениях регулярно возникает задача по поддержке логики изменения во времени некоторого атрибута объекта относительно некоторого субъекта (или субъектов). Например, это может быть изменение розничной цены товара в магазинах или показателей KPI для сотруднико...

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

Не очередной язык программирования. Часть 2: Логика представлений Вторая часть трилогии о языке и платформе lsFusion. Первую часть можно найти тут. В ней речь пойдет о логике представлений, а именно обо всем том, что связано с объединением данных и отображением их пользователю или другим информационным системам. Читать дальше →

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

[Перевод] Какой здесь this? Внутренняя работа объектов JavaScript Фотография: "Любопытный" Liliana Saeb (CC BY 2.0) JavaScript – это мультипарадигмальный язык, который поддерживает объектно-ориентированное программирование и динамическое связывание. Динамическое связывание — это мощная концепция, которая позволяет изменять структуру JavaS...

[Перевод] Полное руководство по массивам и срезам в Golang Перевод статьи подготовлен специально для студентов курса «Разработчик Golang», занятия по которому начинаются уже сегодня! Поначалу легко воспринимать массивы и срезы как одно и то же, но с разными названиями: и то и другое является структурой данных для представления ко...

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

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

[Перевод] Консенсус на репутации ноды. Нужен ли? Знаю-знаю. Криптопроектов тьма, есть куча консенсусов: на основе труда и владения, золота, нефти, выпеченных пирожков (есть и такой, да-да). Что нам ещё от одного? Это и предлагаю обсудить после прочтения перевода "облегченной" технической документации проекта *Созвездие (Co...

[Из песочницы] Выбор между XML и SQL для накатывания скриптов LiquiBase на примере Java/Spring/H2 В процессе работы над очередным проектом в команде возникли споры по поводу использования формата XML или SQL в Liquibase. Естественно про Liquibase уже написано много статей, но как всегда хочется добавить свои наблюдения. В статье будет представлен маленький туториал по со...

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

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

[Перевод] ИИ и 2048. Часть 1: Метод Монте-Карло «2048» через несколько недель исполняется 5 лет, а значит, пора написать что-нибудь, посвящённое этой замечательной игре. Особенно познавательна тема самостоятельной игры искусственного интеллекта в головоломку. Способы реализации есть самые разные и сегодня разберём отно...

Второй чемпионат по программированию: разбираем задачи ML-трека В октябре состоялся второй чемпионат по программированию. Мы получили 12 500 заявок, более 6000 человек попробовали свои силы в соревнованиях. В этот раз участники могли выбрать один из следующих треков: бэкенд, фронтенд, мобильную разработку и машинное обучение. В каждом тр...

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

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

[Из песочницы] Сложности работы с Redux и их решение Redux среди нас Это один из самых популярных state-manager`ов. Он прост в использовании, прозрачен и предсказуем. С его помощью можно организовать хранение и изменение данных. А если считать, что action`ы и reducer`ы являются частью redux`а, то можно без преувеличения утве...

[Перевод] Документация по API Xamarin теперь в открытом доступе Мы рады объявить о выпуске всей документации по API Xamarin в формате Open-Source! Документация по API помогает улучшить взаимодействие с IntelliSense и является одним из лучших способов помочь разработчикам достичь своих целей. Документация по API Xamarin Кроме того, мы та...

Introscope: ну очень ленивое unit-тестирование Мы на работе пишем много часто меняющейся бизнес-логики на JS (стартап же). Даже слишком много. И всё это хочется по старой привычке тестировать, но как-нибудь побыстрее, чтобы тесты особо не мешали говнокодить, когда это нужно, и не подгонять под тесты особенно сильно струк...

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

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

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

Шпаргалка по структурам данных в Go Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею. Но курсы по алгоритмам и структурам данных да...

[Из песочницы] Метод создания DRAG and DROP эффекта Придя впервые к технологии DRAG and DROP столкнулся с очень тяжелым её описанием (Это мое субъективное мнение. Прошу с ним не соглашаться, а перечитать все что только можно и посмотреть на этот вопрос с многих сторон). И решил написать пару статей, нацеленных на начинающих р...

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

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

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

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

OS1: примитивное ядро на Rust для x86. Часть 3. Карта памяти, Page fault exception, куча и аллокации Первая часть Вторая часть Тема сегодняшнего разговора — работа с памятью. Я расскажу про инициализацию директории страниц, маппинг физической памяти, управление виртуальной и мою организацию кучи для аллокатора. Как я уже говорил в первой статье, я решил использовать страниц...

iOS Responder Chain или Что спрашивают на интервью Какая разница между первым и вторым примером? За что отвечает таргет? В каком случае вызывается метод при нажатие кнопки? TL;DR При нажатии на кнопку наш метод вызывается в обоих случаях. Только в первом примере UIKit попытается вызвать метод в назначенном таргете(у нас э...

Реализация целого типа в CPython На Хабре уже были статьи о подробностях реализации менеджера памяти CPython, Pandas, я написал статью про реализацию словаря. Казалось бы, что можно написать про обычный целочисленный тип? Однако тут не всё так просто и целочисленный тип не такой уж и очевидный. Если вам и...

[Перевод] Учебный курс по React, часть 11: динамическое формирование разметки и метод массивов map В сегодняшней части перевода учебного курса по React мы поговорим об использовании стандартного метода массивов map() для организации динамического формирования JSX-разметки, описывающей наборы однотипных элементов. → Часть 1: обзор курса, причины популярности React, Reac...

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

[Из песочницы] Идея, как можно предоставлять сотрудникам временный доступ к ресурсам клиента, не светя лишний раз пароли Небольшая предыстория После лекции на HighLoad++ 2017. Я посмотрел этот доклад, “Как мы админа увольняли”, в записи. Докладчик сказал, что все web компании испытывает проблемы с паролями, и у меня появилась идея как это решить. Скорее всего кто-то уже сделал, но, если честно...

Полный привод в матрицах 4×4 Само умножение нехитрое, элементы строк умножаются на столбцы поэлементно и складываются. Как корректно умножать можно посмотреть здесь Языковая часть написана на Delphi, а для оптимизации код выполнен с применением встроенного 64-х битного ассемблера. Рассматриваются 4 прак...

[Из песочницы] Как зеленый джуниор свой hot-reloader писал Предыстория Пару строк обо мне для общего понимания уровня автора и решаемой проблемы. Меня зовут Евгений и я веб-разработчик зеленый junior frontend developer. Еще какой-то год назад я работал в совершенно другой сфере и только в теории задумывался о смене профессии, но при...

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

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

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

[Перевод] Учебный курс по React, часть 21: второе занятие и практикум по условному рендерингу Сегодня, в переводе следующей части учебного курса по React, мы предлагаем вашему вниманию второе занятие по условному рендерингу и практикум по этой теме. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: ф...

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

CLRium #6: Concurrency & Parallelism. Два дня: от процессора до async/await Совсем скоро, 29-30 ноября в Санкт-Петербурге и 06-07 декабря — в Москве мы запустим шестой семинар по .NET. В рамках семинара мы полным ходом изучаем вопросы многопоточности, которые на самом деле очень и очень сложны. Программа немного меняется, но получается очень хардко...

Декларативная схема и что с ней не так в Magento 2 Всем привет. Данная публикация не претендует на звание истины в первой инстанции, а лишь является моим личным мнением, если вы его разделяете отлично, если нет — прошу в комментарии для обсуждения. Так вот, ближе к делу. В версии Magento 2.3 и выше появилась такая «плюшка» ...

[Из песочницы] Редактирование видео в MPC с помощью шейдеров Есть задача: Изменить видео “на лету” при воспроизведении — поменять местами правую и левую часть. Не отразить, а именно поменять, т.е. разрезать картинку на две части и поменять их местами. Можно, конечно, сделать с помощью фреймсервера типа AviSynth'a, но это уже не совсем...

[Перевод] Измените свой образ мышления, работая с SwiftUI На прошлой неделе я увидел, что сообщество пытается перенести наработаные шаблоны разработки c UIKit в SwiftUI. Но я уверен, что лучший способ написать эффективный код используя SwiftUI — это забыть все об UIKit и полностью изменить свое мышление с точки зрения разработки ...

Управляем android устройством Это уже третья попытка подружить умный дом с android, напомню, что первая попытка контролировать android устройства посредством HTTP, была с помощью приложения Paw Server. Данное приложение позволяло с помощью языка BeanShell встраивать свой код в xhtml страницу и взаимоде...

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

Docker: вредные советы Когда я учился водить машину, на первом же занятии инструктор выехал на перекресток задним ходом, а потом сказал, что делать так нельзя — вообще никогда. Это правило я запомнил сразу и на всю жизнь. Читаешь детям «Вредные советы» Григория Остера, и видишь, как легко и непри...

Мой первый опыт восстановления базы данных Postgres после сбоя (invalid page in block 4123007 of relatton base/16490) Хочу поделиться с вами моим первым успешным опытом восстановления полной работоспособности базы данных Postgres. С СУБД Postgres я познакомился пол года назад, до этого опыта администрирования баз данных у меня не было совсем. Я работаю полу-DevOps инженером в крупной IT-к...

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

Как быстро открыть конкретный раздел в настройках iOS Это стало возможным с приложением «Команды» для iOS Пару недель назад на Reddit было обнаружено сообщение, в котором утверждалось, что Apple восстановила возможность запуска определенных разделов приложения «Настройки» с помощью приложения «Команды» в iOS и iPadOS ...

Как организовать 120 000 фоток и чтобы не было трындеца, с различными уровнями доступа, для команды Решил я поискать работы Sci-Fi-художников прошлого и настоящего, которые рисовали реактивные ранцы. Нашел группу в ВК «Музей будущего», а там — 16 000 фотографий. Пришлось пересмотреть все вручную, навыбирал несколько десятков с джетпакоподбными аппаратами (см. подборку по...

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

[Перевод] Деревья квадрантов и распознавание коллизий Эта неделя была короткой, в понедельник и вторник я продолжал работать над системой 2D-освещения. Остальное время я потратил на реализацию деревьев квадрантов (quadtree). В этой статье я поделюсь своей реализацией и мыслями, возникшими в процессе её проектирования. Во-пер...

[Перевод] Учебный курс по React, часть 25: практикум по работе с формами В сегодняшней части перевода учебного курса по React вам предлагается выполнить практическое задание по работе с формами. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы компонентов, структура проект...

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

[Перевод] Учебный курс по React, часть 27: курсовой проект В этой части перевода учебного курса по React вам предлагается создать генератор мемов. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы компонентов, структура проектов → Часть 4: родительские и дочер...

[Перевод] Учебный курс по React, часть 23: первое занятие по работе с формами В этой части перевода учебного курса по React мы поговорим о работе с формами. В частности, сегодняшнее занятие посвящено организации взаимодействия компонентов и текстовых полей. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные...

[Перевод] Учебный курс по React, часть 26: архитектура приложений, паттерн Container/Component В этой части перевода учебного курса по React мы поговорим об архитектуре React-приложений. В частности, обсудим популярный паттерн Container/Component. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: фай...

26 июля, Deworkacy — DocOps от Ростелекома Привет! Мы тут решили провести митап по DocOps — это почти как DevOps, только про документацию и всё, что с ней связано. Таких мероприятий обычно не так много, оно и понятно — документация не такая хайповая штука, как React, к примеру. Да и не только React, прямо скажем. Зл...

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

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

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

[Перевод] Disposable ref structs в C# 8.0 Давайте посмотрим, что об этом сказано в блоге о предстоящих изменениях в С# 8.0 (версия Visual Studio 2019 Preview 2): «stack-only структуры появились в С# 7.2. Они чрезвычайно полезны, но при этом их использование тесно связано с ограничениями, например невозможностью реа...

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

Приглашаем разработчиков участвовать в хакатоне на PHDays 9 Впервые на Positive Hack Days в рамках кибербитвы The Standoff пройдет хакатон для разработчиков. Действие развернется в мегаполисе, в котором массово внедрены самые современные цифровые технологии. Условия максимально приближены к реальности. У атакующих полная свобода де...

[Перевод] Учебный курс по React, часть 24: второе занятие по работе с формами Сегодня мы продолжим разговор об использовании форм в React. В прошлый раз мы рассматривали особенности взаимодействия компонентов и текстовых полей. Здесь же мы обсудим работу с другими элементами форм. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX →...

Инструменты Метода управления проектной организацией (часть 2) Продолжаю серию публикаций об управлении проектной организацией в условиях когда много нужно выполнять все обязательства в срок и в полном объеме и есть ограничение по ресурсам. В прошлый раз я рассказал о концепции Pulse Management (Метода Пульса, далее «Метод»), а сейчас з...

[Перевод] Visual Studio for Mac: 5 новых крутых функций За прошедший год команда Visual Studio for Mac обновила редакторы в среде IDE, чтобы они стали быстрее, плавнее и продуктивнее. Мы сделали это, создав нативный интерфейс редактора macOS на основе того же самого бэкенда редактора, что и Visual Studio в Windows. В версии 8.1 м...

Предлагаемые изменения в Chromium нарушат работу uBlock Origin Разработчик uBlock Origin заявил, что его расширение для блокировки рекламы не сможет работать, если будут приняты изменения в Chromium. Речь идёт о внедрении declarativeNetRequest API, которые лишают возможности использовать webRequest API. Google считает, что изменения нео...

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

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

В API Директа появится поддержка турбо-страниц Яндекс анонсировал предстоящие изменения в  API Директа, связанные с поддержкой турбо-страниц.  В сервисе Ads появится новое поле — TurboPageId. В структуре TextAd достаточно будет указать одно из полей Href, VCardId и TurboPageId. В структурах ...

В macOS 10.15 более не поддерживаются 32-битные приложения. Что вы можете сделать? 7 октября 2019 года Apple выпустила в свет новую версию своей операционной системы для Mac, macOS Catalina. Версия 10.15 содержит множество изменений и улучшений. Одно из значимых – полный отказ от 32-битных приложений. Будучи разработчиком таких приложений для macOS, что в...

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

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

[Из песочницы] Как я свой первый ИИ писал Привет, Хабр. История моя берёт начало в январе 2019 года. Мы с моей тимой геймдевелоперов решили взяться за самый большой проект в нашей истории- 2Д платформер. Нет, мы не делали до этого какие-нибудь FlappyBird'ы или змейки, но объём работы в этом проекте просто сносил на...

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

[Из песочницы] Редактор блок схем — о дружбе Vue.js и MxGraph С чего все началось? Я фронтенд разработчик, но стремлюсь к развитию, решил написать fullstack приложение и стать миллионером получить бесценный опыт. Так вот, начал планировать бэкенд, выбрал MongoDB для хранения данных, и был готов планировать структуру и связи полей. Н...

Plasma Cash Chain как решение трилеммы масштабируемости в блокчейн Добрый день, уважаемые читатели! Данная статья посвящена Plasma Cash Chain и проливает свет на следующие темы: трилемма масштабируемости и способы ее решения; структуры данных чайлд чейна и их отображение в рутчейне; реализация ввода в рутчейн; реализация вывода из рутче...

[Из песочницы] Неявные (implicit) параметры и преобразования в Scala Пробежавшись по предыдущим статьям на Хабре, тыц и тыц так и не удалось в быстром режиме понять, что делает неявность (implicit) в Scala. Попробуем разобраться вместе. Итак, implicit в Scala позволяют избежать вызывания методов или явных ссылок на переменные, и взамен это...

[Из песочницы] Продвинутый Debug Debug Area — полезная функция в работе iOS разработчика в Xcode. Как только мы начинаем осваивать разработку под iOS, и пытаемся отойти от привычного и любимого print метода, и найти более быстрые и удобные методы понимания состояния системы в определенный период мы начинаем...

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

MIRO — открытая платформа indoor-робота. Часть 4 — Программная составляющая: ARDUINO (AVR) Продолжаем разбирать программную составляющую платформы MIRO. Хочется более подробно рассмотреть именно программное обеспечение под AVR. Поэтому вопросу посвятим две части. В первой опишем общую структуру библиотеки, а во второй — реализацию некоторых ключевых методов клас...

Ещё раз об ImmutableList в Java В своей предыдущей статье "Рукоблудие вокруг ImmutableList в Java" я предложил вариант решения поднятой в статье "Неизменяемых коллекций в Java не будет – ни сейчас, ни когда-либо" проблемы отсутствия в Java неизменяемых списков. Решение тогда было проработано только на уров...

Использование Liquibase для управления структурой БД в Spring Boot приложении. Часть 1 В этой статье я разберу использование утилиты Liquibase в Spring Boot приложениях для версионирования структуры реляционной БД и миграции этой структуры с одной версии на другую. В первой части разберем базовый пример, а во второй поговорим об использовании liquibase-mave-pl...

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

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

Ускоряем PHP-коннекторы для Tarantool с помощью Async, Swoole и Parallel В экосистеме PHP на данный момент существует два коннектора для работы с сервером Tarantool ― это официальное расширение PECL tarantool/tarantool-php, написанное на С, и tarantool-php/client, написанный на PHP. Я являюсь автором последнего. В этой статье я хотел бы подели...

EFORTH для МК-161: Структуры данных Эта статья — окончание цикла статей про eForth на программируемом калькуляторе. Начало здесь: habr.com/ru/post/452398 Команды входного языка «Электроники МК-161» занимают только половину файла eForth0.mkl. Вторую половину занимают таблицы, разработать которые был не меньший...

[Перевод] Учебный курс по React, часть 28: современные возможности React, идеи проектов, заключение Сегодня, в заключительной части перевода курса по React, мы поговорим о современных возможностях React и обсудим идеи React-приложений, создавая которые, вы можете повторить то, чему научились, проходя этот курс, и узнать много нового. → Часть 1: обзор курса, причины попу...

[recovery mode] Agilean — убийца Lean и Agile Гибридная методология управления на основе ценностей В этой статье мы расскажем вам об Agilean («Эджайлин») как методе создания гибридных инструментов на базе Lean и Agile и шире об Agilean как о философии управления бизнесом с плацдарма ценностей. Немного поговорим о нюан...

[Перевод] Учебный курс по React, часть 13: компоненты, основанные на классах Сегодня мы публикуем перевод очередного занятия учебного курса по React. Оно посвящено компонентам, основанным на классах. Такие компоненты создают с использованием ключевого слова class. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функци...

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

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

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

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

[Перевод] Теория вместо эвристики: становимся лучше как frontend-разработчики Перевод Becoming a better front-end developer using fundamentals instead of heuristics Наш опыт показывает, что не имеющие технического образования разработчики и самоучки чаще полагаются не на теоретические принципы, а на эвристические методы. Эвристика — шаблоны и пров...

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

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

[Перевод] Q2VKPT: полностью переписанный Quake II с реалистичным освещением Q2VKPT — это первая играбельная игра с полным рейтрейсингом, эффективно симулирующая полностью динамическое освещение в реальном времени с помощью тех же современных технологий, которые используются в киноиндустрии (см. Disney's practical guide to path tracing). Недавний в...

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

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

LQR оптимизация систем управления Введение На Habr были опубликованы несколько статей [1,2,3], прямо или косвенно касающиеся указанной темы. В связи с этим, нельзя не отметить публикацию [1] с названием “Математика на пальцах: линейно-квадратичный регулятор”, которая популярно поясняет принцип работы оптимал...

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

[Перевод] Big O Примечание. Сокращенный перевод, скорее пересказ своими словами. UPD: как отметили в комментариях, примеры не идеальны. Автор не ищет лучшее решение задачи, его цель объяснить сложность алгоритмов «на пальцах». Big O нотация нужна для описания сложности алгоритмов. Для этог...

Как я имплантировала RFID себе в руку, а потом еще NFC. Часть 2 Прошло более четырех лет с момента публикации первой части про EM4100 и я решила все же написать вторую часть — про имплантируемый NFC. Преимущества первой 125 кГц метки были ощутимы сразу — ключ к домофонам и внутренним замкам, но хотелось большего — разблокировать телефо...

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

[Из песочницы] Кросспостинг постов из Instagram в паблик VK на Python Предисловие Решил выйти на новый рынок сбыта, тем более, целевая аудитория моего интернет-магазина, не имеющая аккаунтов в Instagram, давно интересовалась появлением дубликата в VK. Идея хорошая, но постов на странице сотни, соответственно вручную работать ctrl+c ctrl+v не...

Сбалансированные двоичные деревья поиска: реализация на Julia Иллюстрация из работы Г.М. Адельсон-Вельского и Е.М. Ландиса 1962 года Деревья поиска — это структуры данных для упорядоченного хранения и простого поиска элементов. Широко применяются двоичные деревья поиска, в которых у каждого узла есть только два потомка. В этой статье ...

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

200 тысяч Redmi Note 7 за несколько минут. Xiaomi как обычно Цифры, которыми оперирует Xiaomi, когда речь заходит о распродажах уже мало кого удивляют. Но мы всё же в очередной раз напишем об этом, ведь аппарат Redmi Note 7 вышел не так давно, а до Индии, где прошла на днях очередная распродажа, добрался буквально только что. И выде...

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

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

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

[Перевод] Учебный курс по React, часть 19: методы жизненного цикла компонентов В сегодняшней части перевода учебного курса по React вашему вниманию будет представлен обзор методов жизненного цикла компонентов. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы компонентов, структу...

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

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

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

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

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

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

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

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

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

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

Разработчики рассказали об особенностях игры Metro Exodus: смена времени суток и времён года, различные стили прохождения, кастомизация вооружения За две недели до официального релиза игры Metro Exodus разработчики решили очередной раз привлечь внимание общественности к своему проекту (хотя после недавней новости об эксклюзивности игры для Epic Games Store страсти ещё не улеглись) и рассказали об основных особенностях ...

[Из песочницы] О целесообразности Selenium WebDriverWait Чем ближе я знакомлюсь с Selenium WebDriver, тем больше у меня возникает вопросов, почему тот или иной функционал выполнен так, а не иначе. В своем выступлении «Заморочки в Selenium WebDriver» Алексей Баранцев проливает свет на тонкости реализации этого инструмента автоматиз...

Уничтожить монополию Америки в EDA. Иннополис делает первый шаг Еще с 1990-х годов меня поражало, что проектирование всей мировой цифровой микроэлектроники контролируется двумя конторами в Калифорнии, которые находятся в 10 минутах езды друг от друга — Synopsys и Cadence. В те времена четверть мирового проектирования делалось в Японии ...

Когда почта доставляет: боремся с потерями push-уведомлений в iOS Со стороны пользователя почтовый клиент — приложение нехитрое. Разработчики Яндекс.Почты даже шутят, что в приложении всего три экрана: список писем; отправка письма; экран about. Но очень много интересного происходит под капотом. Как многие мобильные приложения, Почта испо...

[Перевод] Учебный курс по React, часть 20: первое занятие по условному рендерингу Сегодня, в переводе следующей части учебного курса по React, мы поговорим об условном рендеринге. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы компонентов, структура проектов → Часть 4: родительск...

[Из песочницы] Замечательная аннотация Version в JPA Введение Итак, начнем! Что же означает аннотация Version в JPA? Если коротко, то она отвечает за блокировки в JPA. Данная аннотация решает одну из проблем, которые могут возникнуть в результате параллельного выполнения транзакций. Какие же могут возникнуть проблемы? Пот...

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

[Перевод] Учебный курс по React, часть 17: пятый этап работы над TODO-приложением, модификация состояния компонентов В сегодняшней части перевода курса по React мы предлагаем вам выполнить очередное практическое задание и представляем вашему вниманию рассказ о том, как модифицировать состояние компонентов React. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть ...

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

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

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

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

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

Криптографический АРМ на базе стандартов с открытым ключом. Функции разбора и просмотра ASN1-структуры Основной работой при создании утилиты cryptoarmpkcs было не разработка кода или графического интерфейса, а работа с ASN1-структурами. Именно в этих структурах хранятся сертификаты x509v3, электронные подписи документов (PKCS#7, CMS), запросы на сертификаты (PKCS#10, CSR), от...

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

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

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

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

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

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

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

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

Как организовывать Knowledge Sharing внутрь и наружу Какой путь видит неподготовленный тимлид, когда возникает необходимость чему-то научить своих коллег, будь то команда разработчиков или люди, которые сопровождают, поддерживают или продают его продукт? Правильно — слепить презентацию на 100500 слайдов, забронировать перегово...

Julia, Градиентный спуск и симплекс метод Продолжаем знакомство с методами многомерной оптимизации. Далее предложена реализация метода наискорейшего спуска с анализом скорости выполнения, а также имплементация метода Нелдера-Мида средствами языка Julia и C++. Читать дальше →

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

Методы оптимизации кода для Redd. Часть 2: некэшируемая память и параллельная работа шин В прошлой статье мы выяснили, что кэш — это безусловно полезная штука, но применительно к контроллерной логике он иногда создаёт трудности. В частности, он вносит непредсказуемость длительности импульсов либо иных задержек при программном формировании временных диаграмм. Ну,...

[Перевод] Лучшая приоритизация HTTP/2 для ускорения веба HTTP/2 обещал заметно ускорить веб, и Cloudflare давным-давно развернула доступ по HTTP/2 для всех клиентов. Но одна особенность HTTP/2, приоритизация, не соответствовала ожиданиям. Не потому, что она принципиально сломана, а из-за реализации в браузерах. Сегодня Cloudflar...

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

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

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

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

Разработка Unix подобной OS — Драйверы символьных устройств (8) В предыдущей статье мы ввели многозадачность. Сегодня пришло время рассмотреть тему драйверов символьных устройств. Конкретно сегодня мы напишем драйвер терминала, механизм отложенной обработки прерываний, рассмотрим тему обработчиков верхних и нижних половин прерываний. ...

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

Поиск по документам и другие обновления AppMetrica Документация AppMetrica переехала с https://tech.yandex.ru на собственный домен. Кроме того, была переработана структура раздела, стала проще и логичней.  На новой платформе заработал поиск по документам. Теперь легче искать не только ключевые слова, но и конкретные ста...

22 октября начинается рассылка глобальной версии MIUI 11 В сентябре в Китае компания Xiaomi представила MIUI 11 — следующее крупное обновление платформы MIUI. Сегодня на примере смартфона Redmi Note 8 она продемонстрировала новые возможности, которые приходят с новой оболочкой, а также предоставила полный список устройств, которые...

[Перевод] Руководство по логированию в Node.js Первая задача, с которой чаще всего сталкиваются разработчики, начинающие программировать на JavaScript, – как регистрировать события в журнале консоли с помощью метода console.log. В поисках информации по отладке кода на JavaScript вы найдёте сотни статей в блогах, а также...

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

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

В Индии 22 октября начинается рассылка MIUI 11 для смартфонов Xiaomi В сентябре в Китае компания Xiaomi представила MIUI 11 — следующее крупное обновление платформы MIUI. Сегодня на примере смартфона Redmi Note 8 она продемонстрировала новые возможности, которые приходят с новой оболочкой, а также предоставила полный список устройств, которые...

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

[Перевод] Fortnite — это будущее, но по довольно неожиданным причинам Уже многое сказано о Fortnite, о её доходах, пользователях, бизнес-модели, истоках и многоплатформенности. Но вокруг всех этих историй слишком много ажиотажа. Самое главное то, как все эти достижения, дополненные остальной частью Epic Games, навечно сохранятся в индустрии р...

PDDM — Новый Model-Based Reinforcement Learning алгоритм с улучшенным планировщиком Обучение с подкреплением (Reinforcement Learning) делится на два больших класса: Model-Free и Model-Based. В первом случае действия оптимизируются напрямую по сигналу награды, а во втором нейросеть является только моделью реальности, а оптимальные действия выбираются с помо...

Гранд Экспресс: первый частный поезд в России Привет! Вы просили меня рассказать про особенные поезда. Ближе всего было добраться до №5 по рейтингу (по нашим отзывам) — «Гранд Экспресс» Москва — Петербург. Выше него ничего в Москву не заезжает. Собственно, мы попросились в отстойник, где состав обслуживается между рей...

Падает зрение после лазерной коррекции зрения — что делать? Или, доктор, сделай мне «enhancement» Традиционно это самый частый вопрос для тех, кто уже сделал коррекцию и для тех, кто только планирует ее. Договоримся, что под словом «падает» будем подразумевать изменение оптики глаза – то есть увеличение «минуса», астигматизма или появление «плюса». Короче, когда опять ну...

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

5 нововведений iOS 13, о которых Apple не сказала на презентации iOS 13 можно смело считать одним из самых богатых на нововведения апдейтов мобильной ОС от Apple. Новых функций оказалось так много, что компании даже пришлось раньше срока отказаться от поддержки iPhone 6 и 6 Plus, обновление которых по логике должно было прекратиться толь...

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

Яндекс решил изменить структуру управления компанией Совет директоров Яндекса предложил внести изменения в структуру корпоративного управления компании. Чтобы вступить в силу, эти изменения должны быть одобрены на специальном собрании акционеров, которое состоится 20 декабря 2019 года. В структуре управления Яндекса появится с...

[Перевод] АЛУ на 12 транзисторах (на самом деле нет) Что можно сделать на 12 транзисторах? Если схема аналоговая, это может быть, например, радиоприёмник или усилитель с достойными характеристиками. Для цифровой же схемы это катастрофически мало. Даже в такой простой микросхеме, как АЛУ К155ИП3 (74181), их значительно больше...

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

[Перевод] Что происходило с SSD в 2018 году Прошлый год в истории SSD оказался самым интересным с тех пор, когда эти устройста пошли в массовое потребление. Увеличилась конкуренция и уменьшились цены. Существующие технологии, типа 3D NAND и NVMe, выдали своё полный потенциал, а новые технологи, типа QLC NAND, взяли ...

Вы слышали про 3д принтер Picaso X pro? Часть 2 А вот и продолжение обзора на мой кредитный (шутка) пикасо. Давайте для начала рассотрим стоимость принтера: около 300 000р. За такие деньги можно купить около 3-ёх Desiner 3D. Как оказалось, принтер в полной мере не окупает себя, но всё же его приобретение не было ошибкой. ...

[Перевод] AlphaFold: Использование ИИ для научных открытий И снова здравствуйте! Делимся публикацией, перевод которой подготовлен специально для студентов курса «Нейронные сети на Python». Сегодня мы расскажем о первом важном событии в истории развития DeepMind, чтобы показать, как исследования с помощью искусственного интеллекта м...

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

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

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

Facebook представила полностью новое приложение Messenger, которое станет быстрее и удобнее Приложение Facebook Messenger всегда отличалось повышенным «аппетитом», так что разработчики постоянно пытаются его улучшить и ускорить. Сегодня компания Facebook представила очередное крупное обновление, которое призвано сделать мессенджер более удобным и б...

[Перевод] Настройка PHP-FPM: используем pm static для максимальной производительности Я в двух словах расскажу, как лучше всего настроить PHP-FPM, чтобы увеличить пропускную способность, снизить задержку и более стабильно использовать процессорные ресурсы и память. По умолчанию строка PM (process manager, менеджер процессов) в PHP-FPM имеет значение dynamic,...

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

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

Julia и метод покоординатного спуска Метод покоординатного спуска является одним из простейших методов многомерной оптимизации и неплохо справляется с поиском локального минимума функций с относительно гладким рельефом, поэтому знакомство с методами оптимизации лучше начинать именно с него. Поиск экстремума ве...

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

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

Flutter: локализация приложений средствами Android Studio Про локализацию (интернационализацию) приложений Flutter написано уже достаточно много. Официальная документация довольно подробно останавливается на этом вопросе, кроме этого ряд энтузиастов описывает самые различные подходы. Эта статья не претендует на полноту охвата вопр...

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

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

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

[Из песочницы] Синтез как один из методов улучшения производительности PostgreSQL Философское вступление Как известно, существует всего два метода для решения задач: Метод анализа или метод дедукции, или от общего к частному. Метод синтеза или метод индукции, или от частного к общему. Для решения проблемы “улучшить производительность базы данных” это...

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

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

Патриот Зимбабве потратил $5000, чтобы оцифровать родную страну на Google Street View Подготовка к работе панорамной камеры Insta360 Pro 2. Фото: Таванда Канхема Зимбабве — крайне бедная африканская страна. Хотя до обретения независимости в 1980 году она считалась одной из самых экономических развитых на континенте, несмотря на добычу золота и алмазов, сей...

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

[Из песочницы] Бэкэнд в однофайловых компонентах VueJS Однажды, читая документацию по Vue Loader, наткнулся на интересное нововведение в 15 версии. Речь идет о кастомных блоках, которые можно внедрить в однофайловые компоненты Vue. В примере показано, как можно получить доступ к содержанию этого блока непосредственно в компонент...

Прикручиваем ngx-translate в Angular приложение. Практическое пошаговое руководство Практическая пошаговая инструкция как прикрутить динамическую локализацию (возможность выбора языков) в веб приложении на Angular 4+ используя @ngx-translate/core. В принципе можно найти публикации на подобную тему, может быть достаточно самой документации этой библиотеки, н...

[Из песочницы] Чипы Intel Myriad X и их масштабируемость в инференсе нейронных сетей Нейростики Intel NCS2, чипы Myriad X, решения сторонних производителей — компания Intel продвигает решения на базе Myriad X в самых различных вариантах. Чем же так хороши эти ускорители? Во-первых, стоимостью одного FPS. Во-вторых, полной совместимостью с OpenVINO, где можно...

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

[Из песочницы] Whitespace Обфускатор для PHP Прочитав статью про обфускацию в JavaScript (а именно 3-ю часть статьи), я заинтересовался подобным обфускатором для PHP. Обфускатор, о котором шла речь в статье превращал JavaScript-код в невидимый (на первый взгляд), состоящий из табуляций и пробелов код. Суть заключаетс...

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

Разработка монолитной Unix подобной OS — Куча (4) В предыдущей статье мы с вами реализовали системный журнал ядра. Теперь пришло время реализовать менеджер динамической памяти. Читать дальше →

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

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

Какие функции iOS 13 Apple отложила до выхода iOS 13.1 Что нового в iOS 13.1 До выхода iOS 13 остаётся всего два дня. Несмотря на то что некоторые нововведения доступны в Golden Master-версии обновления, испытать их все в день релиза обновления будет нельзя. Как оказалось, часть новых функций iOS, представленных на WWDC’2019 эти...

Google Pixel Watch. Все, что известно на данный момент Какими будут Google Pixel Watch? В последнее время Google вплотную занялась улучшением своей операционной системы для мобильной электроники Wear OS. Значит ли это, что поисковый гигант работает над долгожданными смарт-часами, которым пророчат название Google Pixel Watch? Впо...

Redux. Простой как грабли Мне уже доводилось заглядывать в репозиторий библиотеки redux, но откуда-то появилась мысль углубиться в его реализацию. Своим в некотором роде шокирующим или даже разочаровывающим открытием я хотел бы поделиться с сообществом. TL;DR: базовая логика redux помещается в 7 ст...

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

Лицемерие google. PageSpeed Insights Google Page Speed Insights — это сервис от гугла, который позволяет определить производительность сайта и дает рекомендации по его оптимизации. Очень важно понимать, что это всего лишь рекомендации! Некоторые воспринимают эти рекомендации настолько серьезно, что готовы реали...

С сожалением об отсутствии в C++ полноценного static if или… … как наполнить шаблонный класс разным содержимым в зависимости от значений параметров шаблона? Когда-то, уже довольно давно, язык D начали делать как "правильный C++" с учетом накопившегося в C++ опыта. Со временем D стал не менее сложным и более выразительным языком, чем C...

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

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

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

Государственный Интернет: рассказ удалёнщика о VPN в Китае Цензура тесно связана с политикой. Ежегодный мировой рейтинг свободы в Интернете наглядно иллюстрирует эту зависимость: государства, в которых нарушаются права человека, блокируют «неугодные» ресурсы или перекрывают доступ к глобальной сети.     Только 13 из 65 стран, ана...

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

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

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

10. Check Point Getting Started R80.20. Identity Awareness Добро пожаловать на юбилейный — 10-й урок. И сегодня мы поговорим о еще одном блейде Check Point — Identity Awareness. Еще в самом начале, при описании NGFW, мы определили, что для него обязательна возможность регулирования доступа на основе учетных записей, а не IP-адресо...

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

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

Сборка Android-приложения. Задачка со звёздочкой Привет, Хабр! Летом я выступал на Summer Droid Meetup с докладом про сборку Android-приложения. Видеоверсию можно найти здесь: habr.com/ru/company/funcorp/blog/462825. А для тех, кто больше любит читать, я как раз и написал эту статью. Речь пойдёт о том, что же это такое ...

Делаем облачное видеонаблюдение своими руками: новые возможности Web SDK Ivideon У нас есть несколько интеграционных компонентов, позволяющих любому партнеру создавать собственные продукты: Open API для разработки любой альтернативы личного кабинета пользователя Ivideon, Mobile SDK, с помощью которого можно разработать полноценное решение, эквивалентно...

Несем IoT в массы: результаты первого IoT-хакатона от GeekBrains и Ростелекома Интернет вещей — восходящий тренд, технология используется везде и всюду: в промышленности, бизнесе, быту (привет умным лампочкам и холодильникам, которые сами заказывают еду). Но это только начало — задач, которые можно решать при помощи IoT, великое множество. Для того...

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

[Перевод] Как работают методы persist, merge из JPA и методы save, update, saveOrUpdate из Hibernate Добрый день, друзья. Перевод статьи подготовлен специально для студентов курса "Разработчик Java". Введение В этой статье я собираюсь показать вам, как работают методы persist, merge из JPA и сравнить их с методами save, update, saveOrUpdate из Hibernate. Хотя лучше испол...

[Перевод] Что записано в this? Закулисье JavaScript-объектов JavaScript — это мультипарадигменный язык, поддерживающий объектно-ориентированное программирование и динамическую привязку методов — мощную концепцию, которая позволяет структуре JavaScript-кода меняться во время выполнения программы. Это даёт разработчикам серьёзные возмож...

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

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

Обзор изменений в 17-м приказе ФСТЭК Привет, Хабр! 13 сентября Минюст утвердил документ, вносящий изменения в 17 приказ. Это тот самый, который про защиту информации в государственных информационных системах (далее – ГИС). На самом деле изменений много и некоторые из них существенные. Есть как минимум одно оч...

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

Как нанимать, увольнять и понижать в должности: видео с Badoo Techleads Meetup #5 На последней встрече сообщества IT-руководителей мы поставили перед спикерами непростую задачу — говорить не только про успехи, но и про проблемы руководителей в IT. В итоге получился честный разговор про ситуации, с которыми однажды столкнется каждый: подбор сотрудников, ув...

PHP: изменение стуктуры БД в командной разработке В мире PHP хорошо известны инструменты миграций структуры БД — Doctrine, Phinx от CakePHP, от Laravel, от Yii — это то первое, что пришло в голову. Наверняка, есть еще с десяток. И большинство из них работают с миграциями — командами для внесения инкрементных изменений в с...

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

20 продакт-менеджеров и самая многомерно-матричная структура из всех. Разговор со Skyeng Последнее время продуктовая команда «Хабра» стала активно посещать конференции. И мы заметили одну интересную вещь — почти на каждой конференции есть спикеры от Skyeng, и почти всегда их доклады оказываются самыми интересными. Оказалось, у этого две причины. Первая — внут...

Microsoft Azure Developer Camp Россия 23 мая | 9:30 – 19:00 Офис Microsoft, БП Крылатские Холмы, ул. Крылатская 17к1, Переговорные комнаты Уран, Юпитер, Сатурн Москва, Россия Распространение облачных технологий постепенно изменяет методы разработки приложений, и перед программистами возникают новые сложные зад...

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

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

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

Установка ReactOS с USB-флешки Привет, Хабр! Эцново мы! В новости о выходе релиза 0.4.11 мы рассказали, что благодаря обновленному драйверу RAM-диска ReactOS можно не только запустить, но установить по сети при помощи протокола PXE. Однако, волонтер проекта под ником Illen выяснил, что используя тот же ...

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

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

Динамическая генерация DAG в Airflow Всем привет! Меня зовут Антон, в Ростелекоме я занимаюсь разработкой центрального хранилища данных. Наше хранилище состоит из модулей, в качестве оркестратора которых используются несколько инстансов Informatica, часть из которых мы хотим перевести на Airflow в рамках перехо...

[Перевод] Исследование глубин аннотаций типов в Python. Часть 1 C 2014 года, когда в Python появилась поддержка аннотаций типов, программисты работают над их внедрением в свой код. Автор материала, первую часть перевода которого мы публикуем сегодня, говорит, что по её оценке, довольно смелой, сейчас аннотации типов (иногда их называют «...

BlueKeep-2 — теперь уязвимы все новые версии Windows Ещё не успела отшуметь уязвимость BlueKeep (CVE-2019-0708) для старых версий ОС Windows, нацеленная на реализацию протокола RDP, как снова пора ставить патчи. Теперь в зону поражения попали всё новые версии Windows. Если оценивать потенциальную угрозу от эксплуатации уязвимо...

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

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

Универсальный пул У нас есть ArrayPool для переиспользования массивов. Работает это так: взяли массив определенной длинны что то с ним поделали и положили обратно. Нужно это для больших объектов которые по логике программы долго не должны храниться. В предыдущей статье описана эта проблема. ...

Шпаргалка по аббревиатурам C++ и не только. Часть 2: «и не только» Это вторая и последняя часть моей шпаргалки по аббревиатурам, которые стоит знать C++ разработчику. С++ здесь упомянут только потому, что шпаргалку я составил в первую очередь для себя, а я как раз-таки C++ разработчик. На самом деле в этой части собраны понятия, область пр...

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

Как изменить мелодию звонка, будильника и уведомлений Приобрели новый смартфон и не знаете, как изменить мелодию уведомления или звонка? Не проблема! В данном материале мы поможем вам разобраться с настройками звука Android и подскажем сторонние решения, позволяющие быстро выбрать любимую мелодию. Zedge Обзор на данное прило...

[Перевод] Дизайн уровней и геймплея roguelike на примере Cogmind Многие годы я использовал довольно стандартизированный подход к дизайну каждой новой карты Cogmind, и хотя сейчас их счёт уже идёт на десятки, в своём блоге я его никогда не рассматривал. В основном это вызвано тем, что подробный анализ всего процесса потребует раскрытия ку...

Retentioneering: как мы open-source инструменты для продуктовой аналитики на Python и Pandas написали Привет, Хабр. Эта статья посвящена итогам четырехлетней разработки набора методов и инструментов обработки траекторий движения пользователей в приложении или на сайте. Автор разработки — Максим Годзи, который стоит во главе команды создателей продукта, он же — автор статьи. ...

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

Что мне не нравится в Windows 10 Встретил тут очередной список «10 причин, которые сподвигли перейти с Windows 10 на Linux» и решил составить свой список того, что мне не нравится в Windows 10 — ОС, которой я пользуюсь сегодня. Переходить на Linux я не собираюсь в обозримом будущем, но это совсем не значит,...

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

Волшебная фея для юнит-тестов: DSL в C# Как часто бывало так, что написав рабочий юнит-тест, ты смотришь на его код, а он… плохой? И ты такой думаешь: «Это же тест, оставлю так…». Нет, %username%, так оставлять не надо. Тесты — это значимая часть системы, которая обеспечивает поддерживаемость кода, и очень важно, ...

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

Xamarin.Forms — декоративное отображение QRCode с помощью SkiaSharp Для вывода/чтения штрихкодов есть популярная библиотека ZXing. Она умеет выводить и считывать много разных форматов: QRCode, Aztec и другие, более 2 десятков. Для считывания кодов в ней есть готовый контрол ZXingScannerView. Требуется минимум кода, чтобы добавить этот функ...

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

Redux — пересмотр логики reducer'a и actions На днях ковыряясь в множестве файлов redux'a, где по логике файлы вынесены в reducers, actions, константы типов actions. Bсе это оказалось весьма не простая задача держа все эти типы файлов у себя в голове и прослеживать логику. И… эврика, появилась идея упрощения написания...

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

Kubernetes 1.15: обзор основных новшеств В понедельник должен был официально состояться (но пока этого не случилось) очередной релиз Kubernetes — 1.15. По сложившейся для нашего блога традиции, рассказываем о наиболее значимых изменениях в новой версии. Информация, использованная для подготовки этого материала, ...

Акции «Яндекса» выросли на 10% на новостях об изменении структуры Помимо этого депутат Госдумы решил отозвать на доработку законопроект о значимых сайтах.

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

[Перевод] Настройка кластера HA Kubernetes на «голом железе» с GlusterFS & MetalLB. Часть 2/3 Часть 1/3 тут Привет и с возвращением! Это вторая часть статьи о настройке кластера Kubernetes на «голом железе». Ранее мы настраивали НА-кластер Kubernetes с помощью внешнего etcd, схемы «ведущий-ведущий» и балансировки нагрузки. Ну а теперь пришло время настроить дополнит...

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

[Перевод] Монада «Reader» через async/await в C# В моей предыдущей статье я описал, как реализовать паттерн "Монада Maybe" с помощью операторов async / await. В этот раз я расскажу, как реализовать другой популярный шаблон проектирования "Монада Reader", используя те же приемы. Этот шаблон позволяет неявно передать некий ...

ICANN убрала ценовой порог для домена .org — почему ИТ-сообщество против, и что будет дальше Также «под раздачу» попали .info и .biz. / фото David Goehring CC BY ICANN меняет правила игры ICANN изменили условия договора с регистратором доменных имен Public Interest Registry (PIR), ответственным за .org. Ранее ему запрещалось назначать базовую цену за домен выше 8,...

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

Электробайк, который почти не нужно заряжать. Как он работает? Выражение «не надо изобретать велосипед» не стоит воспринимать слишком уж буквально. Дело в том, что, несмотря на весьма простое устройство (руль, педали, цепь да пара колес), многие разработчики постоянно вносят особенности в ставшую классической конструкцию и, м...

Как мы в IntelliJ IDEA ищем лямбда-выражения Важной возможностью любой IDE является поиск и навигация по коду. Один из часто используемых вариантов поиска на языке Java — поиск всех реализаций данного интерфейса. Часто такая функция называется иерархией типов (Type Hierarchy) и выглядит как на картинке справа. Перебира...

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

Automator: Просмотр буфера обмена Automator можно по праву назвать одним из самых недооцененных приложений на macOS. Увы, но многие пользователи не догадываются о скрытых возможностях данной утилиты. Тем не менее потенциал заложенный в программу действительно огромен. Сегодня мы создадим службу, которая поз...

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

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

9 лучших опенсорс находок за октябрь 2019 Доброго ноября, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за октябрь 2019. За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывае...

Результаты розыгрыша поездки на 3Dtoday Fest перенесены на 23.09.19 СРОЧНЫЕ НОВОСТИ!!!Дорогие друзья, по просьбе Сергея Пушкина было принято решение перенести подведение итогов розыгрыша поездки на 3Dtoday Fest в Москву ровно на одну неделю!Это значит, что 23 сентября в 17-00 по МСК мы узнаем имя победителя нашего замечательного розыгрыша!Оп...

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

Метод Pomodoro не так крут, как мог бы быть У метода pomodoro есть не совсем очевидные нюансы. И эти нюансы, если переформулировать Кличко, понимают не только лишь все, мало кто может это делать. Поэтому давайте разберемся, что это за метод, и что можно было бы улучшить. Читать дальше →

[Перевод] Современные возможности C++, о которых надо знать всем программистам Автор материала, перевод которого мы сегодня публикуем, говорит, что C++, в его современном виде, если сравнивать его с тем, чем был этот язык несколько лет назад, значительно изменился в лучшую сторону. Конечно, эти изменения произошли далеко не сразу. Например, в былые вре...

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

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

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

[Перевод] Реализация шаблона проектирования Command в Unity Вы задавались когда-нибудь вопросом, как в играх наподобие Super Meat Boy реализована функция реплея? Один из способов её реализации — выполнять ввод точно так же, как это делал игрок, что, в свою очередь, означает, что ввод нужно как-то хранить. Для этого и многого другого...

Напиши свою песню за 10 минут (модуль textgenrnn Python3) Сегодня попробуем обучить свою собственную нейронную сеть, чтобы писала текст для песен. Обучающей выборкой будут тексты группы "Руки Вверх". Ничто не мешает чтобы поменять данные на тексты своих любимых групп. Для извлечения данных с веб-сайтов используем Python3 (модуль B...

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

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

[Перевод] Разрабатывать приложения под Android — словно быть (демонетизированным) ютубером Как известно, некоторые авторы на YouTube крайне недовольны условиями, которые предлагает эта платформа. Аналогичное сражение сейчас ведут разработчики Android-приложений на платформе Google Play. Попытаюсь за 20 минут объяснить, что не так с Android. Когда-то Android счита...

Как я написал и издал книгу об МГУ: 10 критических ошибок Три года назад я решил сделать книгу о высотке МГУ на Ленинских горах — большую, иллюстрированную, с привлечением выпускников и т.п. История этой работы — настоящее кино (местами фарс, местами хоррор) с кучей драматических поворотов. Сверхудачный краудфандинг, широкая аудито...

[Перевод] К CI/CD и Kubernetes GitLab шел необычным путем Как наша команда Delivery, используя только собственные ресурсы, переделала нашу систему под CI/CD. Команды инженеров постоянно испытывают давление: нужно выдавать новые функции в виде достойного продукта и при этом постоянно минимизировать время цикла. Зачастую специалисты...

[Перевод] Руководство по Discovery.js: быстрое начало Это и последующие руководства проведут вас через процесс создания решения на основе проекта Discovery.js. Наша цель — создать инспектор NPM-зависимостей, то есть интерфейс для исследования структуры node_modules. Примечание: Discovery.js находится на ранней стадии разработки...

[Перевод] Учебный курс по React, часть 18: шестой этап работы над TODO-приложением В сегодняшней части перевода учебного курса по React вам предлагается продолжить работу над Todo-приложением и сделать так, чтобы щелчки по флажкам воздействовали бы на состояние компонента. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: фун...

[Из песочницы] Как изменить стоимость созданной подписки в вашем приложении. App Store Connect и Google Play Console Введение Данная статья — это руководство по изменению цены на подписку в вашем приложении, которое опубликовано в App Store и Google Play. Почему важно периодически изменять цену подписки в вашем приложении? Когда вы устанавливаете цену на подписку в вашем приложении, вы ...

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

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

Опыт работы в Netflix: Netflix изнутри Недавно мы поделились с Вами материалом о том, как работает Netflix, теперь пришло время рассказать о том, как работается в одной из крупнейших IT-компаний мира. Для этих целей мы расшифровали интервью одного из сотрудников Netflix, который рассказал много интересного о комп...

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

Глава Qualcomm рассказал, какие устройства будут после смартфонов Умные очки не заменят смартфоны полностью, но будут выполнять часть их функций Прямо сейчас рынок смартфонов претерпевает серьёзные изменения. Большинство пользователей больше не интересуют флагманские аппараты, и они покупают устройства среднего ценового сегмента, которые в...

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

Архитектурные решения для мобильной игры. Часть 2: Command и их очереди В первой части статьи мы рассмотрели как должна быть устроена модель, чтобы пользоваться ей было легко, а отлаживать её и прикручивать к ней интерфейсы просто. В этой части мы рассмотрим отдачу команд на изменения в модели, во всей её красоте и разнообразии. Как и раньше, ...

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

Failover: нас губит перфекционизм и… лень Летом традиционно снижается и покупательская активность, и интенсивность изменения инфраструктуры веб-проектов, говорит нам Капитан Очевидность. Просто потому что даже айтишники, случается, ходят в отпуск. И CТО тоже. Тем тяжелее тем, кто остаётся на посту, но сейчас не об э...

AppCode 2019.1: Swift 5, улучшенная работа подсветки, навигации и автодополнения, перемещение выражений и многое другое Всем привет! Неделю назад мы выпустили AppCode 2019.1 — поговорим об изменениях в нем. Под катом куча нового, полезного, исправленного и дополненного. Читать дальше →

Когда выйдет watchOS 6 на Apple Watch Series 1 и Apple Watch Series 2 Apple решила обновлять Apple Watch по очереди. Видимо, поддерживать часы больше трёх лет подряд становится сложно Этой осенью Apple многое сделала не так, как обычно. Например, компания запустила бета-тестирование iOS 13.1 ещё до релиза iOS 13, отложила чуть ли не половину ф...

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

4G-роутер в роли универсального сервера для IoT Роутеры серии ICR-3200 призваны заменить классическую связку: одноплатный компьютер + модем + роутер. Теперь можно запускать всю необходимую логику прямо на роутере. Благодаря мощному ARM-процессору, 512 МБ оперативной памяти и ~2ГБ встроенной флеш-памяти, на роутере можно ...

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

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

Что такое логическое программирование и зачем оно нам нужно У того, кто в детстве не писал на Прологе — нет сердца, а у того, кто пишет на нём сегодня — нет мозгов. (оригинал) Если вас всегда терзали мучительные сомнения — что за фигня это Логическое Программирование (ЛП) и вообще зачем оно нужно? То это статья для вас. Можно по-раз...

Пишем собственный CLI для React Если вы делаете Ctrl+C каждый раз при создании нового компонента в реакте, то эта статья точно для вас! У реакта нет своего CLI, и понятно почему. Не существует определенных правил, как именно должна выглядеть структура компонента, есть только общие рекомендации в документа...

Edition-Based Redefinition. Часть 2 Привет! Как и обещала в предыдущем посте про Edition-Based Redefinition — вот вторая часть. Итак, с чем мы работаем? Наш основной production сервер — это Oracle 12С, Enterprise Edition. И, что важно отметить, на нем работает несколько десятков приложений одновременно. Поч...

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

Шифруемся по ГОСТу: памятка по настройке динамической маршрутизации трафика Если ваша компания передаёт или получает по сети персданные и другую конфиденциальную информацию, подлежащую защите в соответствии с законодательством, требуется применять шифрование по ГОСТу. Сегодня мы расскажем, как внедрили такое шифрование на базе криптошлюза (КШ) S-Te...

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

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

Tic Tac Toe, часть 1 В статье "Сравнение: Svelte и React" я попробовал повторить разработку игры Tic Tac Toe. Там я выполнил только первую часть исходного туториала для React'а без поддержки истории ходов. В этой статье мы начнем разработку этой игры с применением фреймворка Svelte с поддержкой ...

[Перевод] Создание динамических PDF-файлов с использованием React и Node.js Материал, перевод которого мы сегодня публикуем, посвящён созданию динамических PDF-файлов с использованием HTML-кода в качестве шаблона. А именно, речь пойдёт о том, как сформировать простой счёт на оплату неких товаров или услуг, динамические данные, включённые в который, ...

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

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

Губы дьявола: что за новая мода у девушек? В социальной сети Instagram обнаружили новый тренд косметологии. На что только не пойдут современные дамы, чтобы завоевать внимание мужчин. Даже на очередное изменение контура губ. Если раньше в моде были губы-уточки, то теперь всё стало значительно брутальнее. Предпочтени...

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

[Перевод] Учебный курс по React, часть 12: практикум, третий этап работы над TODO-приложением В сегодняшней части перевода курса по React мы предлагаем вам выполнить практическое задание по формированию наборов компонентов средствами JavaScript и продолжить работу над TODO-приложением. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: ф...

[Перевод] 39 новых фич, которые будут доступны в Java 12 Из замечательного интервью на Хабре: «Саймон Риттер — человек, который работал над Java с самого начала и продолжает делать это в роли заместителя технического директора Azul — компании, работающей над виртуальной машиной Zing JVM и одним из лучших сборщиков мусора, C4 (Cont...

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

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

Windows 10 Build 18865 доступна для загрузки Microsoft выпустила очередную инсайдерскую сборку Windows 10 Build 18865. В данной сборке лишь исправление ошибок, а именно: куча изменений в Экранном дикторе (ListView, Aria-label, Брайль), исправлена функция по шифрованию жестких дисков используя BitLocker, в «Специальных ...

[Перевод] SVG фильтры 101 Это первая статья в серии об SVG фильтрах. Это руководство поможет понять, что это такое, и покажет, как использовать их для создания собственных визуальных эффектов. CSS в настоящее время предоставляет нам способ применения цветовых эффектов к изображениям, таких как насыщ...

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

Утечка данных покупателей магазинов re:Store, Samsung, Sony Centre, Nike, LEGO и Street Beat На прошлой неделе издание Коммерсантъ сообщило, что «базы клиентов Street Beat и Sony Centre оказались в открытом доступе», но на самом деле все гораздо хуже, чем написано в статье. Подробный технический разбор данной утечки я уже делал у себя в Telegram-канале, поэтому ту...

ИИ Huawei Mate 20 Pro дописал неоконченную «Симфонию №8» Шуберта Huawei воспользовалась своим флагманским смартфоном Mate 20 Pro для завершения «Симфонию №8», написанной австрийским композитором Францом Шубертом два столетия назад. Завершенными является только первая и вторая части симфонии, тогда как третья и четвертая так и остались в…

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

Почему Math.Round открывает окно печати из браузера в Try .NET Сегодня внимание общественности привлек забавный нелогичный баг, обнаруженный в Try .NET – инструменте, предназначенном для встраивания в документацию интерактивных примеров на C#. Посмотреть открытый issue можно на Github по ссылке. Приведенный код при выполнении (при вызо...

Samsung Galaxy Tab S6 — первый планшет с поддержкой HDR10+ Представив в конце июля планшет Galaxy Tab S6, компания Samsung Electronics оставила без внимания одну особенность этого устройства, к которой сочла необходимым вернуться вчера. В пресс-релизе, опубликованном южнокорейским производителем, сказано, что пользователи  ...

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

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

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

Разработка монолитной Unix подобной OS — Библиотека С В предыдущей статье мы научились запускать Hello World ядро и написали пару функций для работы со строками. Теперь пришло время расширить библиотеку С чтобы можно было реализовать kprintf и другие необходимые функции. Поехали! Читать дальше →

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

[Перевод] Компьютер на базе вентилей NOR: внутри бортового управляющего компьютера «Аполлона» Недавно мы занимались восстановлением бортового управляющего компьютера «Аполлона» – компьютера, занимавшегося управлением, навигацией и контролем на борту миссий «Аполлон», летавших к Луне. Этот исторический компьютер одним из первых начал использовать интегральные схемы (И...

Мнение: Почему я купил AirPods 2 20 марта, в третий день, когда Apple в очередной раз обновила свой онлайн-магазин, чтобы добавить новые устройства, я сразу заказал себе AirPods второго поколения. На самом деле это впервые, когда желание купить гаджет появилось сразу после того, как он был «представлен» Ap...

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

[Перевод] Прекратите использовать Else в ваших программах Когда я только начинал программировать, хотел бы я, чтобы тогда нашёлся кто-то, кто мог бы рассказать об основных подводных камнях, с которыми я столкнусь при создании моего первого сайта. Тогда одной из проблем было чрезмерное использование else при написании условных выраж...

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

[Из песочницы] Typescript и react Разработка на javascript иногда становится похожа на работу детектива. Как понять чужой код? Хорошо, если разработчик обладает тонким искусством называть переменные так, чтобы другие поняли суть. А как быть, если члены команды все таки не всегда способны понять замысел своег...

Microsoft переименовала приложение Xbox для Windows 10 в «Компаньон консоли Xbox» Microsoft выпустила обновление приложения Xbox для Windows 10, переименовав его в «Компаньон консоли Xbox». Это связано с тем, что компания приняла решение изменить предназначение приложения. Если ранее это был основной способ доступа к спискам друзей, сообщениям и групповы...

[Перевод] Дженерики в TypeScript: разбираемся вместе Всем привет! Команда TestMace публикует очередной перевод статьи из мира web-разработки. На этот раз для новичков! Приятного чтения. Развеем пелену таинственности и недопонимания над синтаксисом <T> и наконец подружимся с ним Наверное, только матёрые разработчики Java...

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

iOS 13 запретит WhatsApp и Facebook прослушивать пользователей Спрятаться от слежки в интернете невозможно. Что бы вы ни пытались сделать, скрыть свою активность от тех, кто заинтересован в том, чтобы проследить за вами, полностью все равно не удастся. Даже в iOS, такой защищенной и безопасной, нет-нет да и обнаруживаются механизмы, по...

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

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

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

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

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

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

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

[Перевод] Пространственные манипуляции в 2D с помощью Signed Distance Fields При работе с полигональными ассетами можно отрисовывать только по одному объекту за раз (если не учитывать такие приёмы, как batching и instancing), но если использовать поля расстояний со знаком (signed distance fields, SDF), то мы не этим не ограничены. Если две позиции им...

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

[Из песочницы] На одной асимптотике далеко не уедешь… Любители посоревноваться в алгоритмах часто говорят об асимптотике того или иного решения задачи. При этом нередко можно встретить высказывания, что, мол, «вот этот» алгоритм работает за O(n), а «вон тот»  – за O(n·log(n)), значит первый однозначно быстрее и, следовательно,...

[Перевод] Процедурные паттерны, которые можно использовать с тайловыми картами Процедурная генерация используется для повышения вариабельности игр. Среди известных проектов можно упомянуть Minecraft, Enter the Gungeon и Descenders. В этом посте я объясню некоторые из алгоритмов, которые можно применять при работе с системой Tilemap, появившейся как 2D-...

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

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

[recovery mode] Инкрементальный бекап в дюжину строк Что самое важное для бекапов? Правильно, воспроизводимость. Поэтому давайте сделаем велосипед на коленке и на опции --link-dest у rsync. У нашего велосипеда не будет сложной структуры данных в стиле git как у restic, ни кучи бекендов как у duplicity. Но мы сможем восстановит...

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

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

Ослабляем гайки, часть 2: срок голосования за публикации и другие изменения В начале недели мы рассказали о важных изменениях для пользователей и, кажется, они всем понравились: рейтинг публикации перевалил за 300, написано более 800 комментариев (и они активно продолжают появляться). Там же мы посеяли зерно интриги и пообещали ещё кое-какие изменен...

[Перевод] CSS Subgrid новости Несколько недель назад, я выступала на Frontend NE в Ньюкасле и большую часть выступления объясняла, что за особенности будут в CSS Grid Subgrid из Grid Level 2. Не имея реализации данного свойства(в браузерах), я смоделировала кучу демок, используя DevTools, для того выступ...

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

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

Схема метро Минска В конце июля у моего города появилась красивая схема метро, которую мы старательно рисовали вечерами 8 месяцев. Задача от арт-директора звучала так: нужно спроектировать такую схему метро, чтобы другие города завидовали. Центр Читать дальше →

Приложение Wi-Fi Commander 1.5 для камер Ricoh и Pentax позволяет планировать снимки Источник обновил приложение Wi-Fi Commander, позволяющее удаленно управлять камерами Ricoh и Pentax, поддерживающими беспроводной интерфейс Wi-Fi. Основным новшеством версии 1.5 является планировщик снимков. С его помощью можно задать параметры каждого снимка. По словам...

Как на самом деле надо сравнивать цены Apple в США и РФ. Личный опыт Сначала хотел написать комментарий к неоднозначным сравнениям цены на продукцию Apple в статье, но текста получилось слишком уж много. Pochtoycom (на самом деле не только они) лукавят, сравнивая цены Apple в РФ и в США. Действительно, в США возможно купить iPhone дешевле,...

[Перевод] Сравнение одинакового проекта в Rust, Haskell, C++, Python, Scala и OCaml В последнем семестре университета я выбрал курс компиляторов CS444. Там каждая группа из 1-3 человек должна была написать компилятор из существенного подмножества Java в x86. Язык на выбор группы. Это была редкая возможность сравнить реализации больших программ одинаковой фу...

[Из песочницы] Domain Driven Design: Value Objects и Entity Framework Core на практике На Хабре и не только написано приличное количество статей про Domain Driven Design — как в общем про архитектуру, так и с примерами на .Net. Но при этом зачастую слабо упоминается такая важнейшая часть этой архитектуры, как Value Objects. В этой статье я постараюсь раскрыт...

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

Ловим кота с TLA+ Формальные методы считаются эффективным, но неоправданно сложным способом обеспечения надежности программного обеспечения. Используемые при этом инструменты существенно отличаются от привычных программисту. Эта статья написана с целью снизить порог вхождения в этот инструме...

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

А цикл где? Многие из тех, кто знаком с ITIL® v3, воспаряя/погружаясь в дивный новый мир ITIL 4, почти сразу задают вопрос: «А где же здесь жизненный цикл услуги?» И, действительно, где? Куда дели? Коротко напомню, жизненный цикл [ЖЦ] услуги – модель, которая описывает весь путь услуги ...

«Парадокс процветания»: необычные методы, с помощью которых можно ликвидировать нищету в самых бедных и отсталых странах Ключевые идеи книги.

Обзор EMUI 10 - оболочки Huawei для смартфонов на основе Android 10 Может показаться, что обзор EMUI 10 я начинаю издалека, но "кто знает, тот поймет". Смартфонный бизнес компании Huawei сейчас находится в непростой ситуации. В связи с санкциями со стороны США, китайский производитель не может сертифицировать сервисы Google для своих новых с...

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

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

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

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

[Из песочницы] Библиотека генератора ассеблерного кода для микроконтроллеров AVR. Часть 1 Библиотека генератора ассеблерного кода для микроконтроллеров AVR Часть 1. Первое знакомство Добрый день, уважаемые хабаровчане. Хочу предложить Вашему вниманию очередной (из имеющегося великого множества) проект, для программирования популярных микроконтроллеров серии AVR. ...

Вышла Opera 60 (Reborn 3) — первый десктопный браузер c поддержкой «интернета будущего» Web 3, криптокошельком и бесплатным VPN Сегодня вышла новая версия Opera 60 под кодовым названием Reborn 3, которая по заверениям разработчиков является первым десктопным браузером c поддержкой технологий «интернета будущего» Web 3. Обновление призвано улучшить качество цифровой жизни людей с помощью усо...

YouTube может принять необходимые меры и перенести весь детский контент в отдельное приложение Кардинальные изменения в структуре показа видео на YouTube. Возможно в скором времени.

Двигаемые мышкой виджеты. Drag and drop в пределах окна Обычное понимание Drag and Drop(D&D) предполагает, что берётся, например, ссылка на файл из одного виджета и перемещается мышкой в другое окно или виджет. Далее пойдёт речь не о библиотечных функциях D&D, а о собственной реализации перемещения виджета в пределах окна...

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

[Из песочницы] Fish Redux — новая Redux библиотека для Flutter В конце 2018 года Google, не без помощи Open-Source сообщества, сделал большой подарок для мобильных разработчиков, выпустив первую стабильную версию кросс-платформенного фреймворка для мобильной разработки Flutter. Однако, при разработке крупных приложений, немного больших,...

Apple выпустила iOS 13.3 beta 1 для всех iOS 13.3 уже вышла, а нововведения, которые она содержит, ещё нет Вчера Apple сделала то, чего – вы не поверите – не делала уже целую неделю – она выпустила очередную бета-версию обновления для iOS. На этот раз этим обновлением стала iOS за номером 13.3, которая сначала стал...

Просто Android 10: Google отказалась от Android Q Логотип Android Q Google постоянно сталкивается с какими-то неприятностями, которые вынуждают её в срочном порядке принимать непопулярные решения. Причём в большинстве случаев их виновником компания становится сама, вгоняя себя в те или иные рамки. Ярчайший тому пример – ней...

Принципы свободного рынка в понимании США Сей пост есть дубль записей из моего Телеграм канала. Посчитал нужным поделиться обнаруженными фактами c хабраобществом. Однажды я вам рассказывал про случай, когда служба CFIUS при Министерстве внутренней безопасности США заставила китайцев продать ЛГБТ соцсеть, ибо негоже...

«Киевcтар» включил связь 4G ещё в 133 населенных пунктах 6 областей Украины Оператор сотовой связи «Киевcтар» заявил об очередном расширении сети покрытия связи 4G в 6 областях Украины. С 24 апреля еще 263 тысячи человек в 133 населенных пунктах смогут воспользоваться высокоскоростной мобильной связью 4G. В частности, в Винницкой области доступ к 4G...

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

Как разработать концепцию по смене платформы ИС? Инструкция к применению В середине 2000-х при выборе платформы ИС большинство производителей продуктов питания остановились на 1С УПП. И за последние 10-15 лет построили и, можно сказать, «вросли в нее корнями» (будь то чистое 1С УПП или отраслевое решение на его основе). Кто-то старался активно ...

[Из песочницы] Свой mapper или немного про ExpressionTrees Сегодня мы поговорим про то, как написать свой AutoMapper. Да, мне бы очень хотелось рассказать вам об этом, но я не смогу. Дело в том, что подобные решения очень большие, имеют историю проб и ошибок, а также прошли долгий путь применения. Я лишь могу дать понимание того, ...

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

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

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

Что там такого интересного в Транссибирской магистрали? Есть у нас в России одна достопримечательность, которая дичайше привлекает иностранцев. Но при этом почти каждый из нас сочтёт её пыткой. Это Транссибирская магистраль: шесть дней на поезде от Москвы до Владивостока. Первый день вы будете спать, на второй ещё как-то выдерж...

[Перевод] Воссоздание старой DOS-игры на C++ 17 В 2016 году я начал работу над хобби-проектом по реверс-инжинирингу игры Duke Nukem II и воссозданию с нуля его движка. Проект имеет название Rigel Engine и выложен в open source (его страница на GitHub). Сегодня, более чем два с половиной года спустя на моём движке уже можн...

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

Катаемся на Xiaomi Vacuum Cleaner Вот и пришли новогодние праздники, а с ними и куча свободного времени, да еще и умный пылесос угодил ко мне в руки. Как только я увидел в приложении MiHome ручное управление, я сразу понял, что хочу сделать: будем управлять пылесосом с помощью геймпада Dualshock v4! Читать д...

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

В Android Q может появится кастомизация экрана блокировки и Always-On Display Некоторые варианты кастомизации уже можно опробовать в бета-версии Android Q. Разработчики с XDA-Developers обнаружили возможность […]

[Перевод] Обновление Windows Terminal: Preview 1910 Привет, Хабр! Рады объявить, что вышло очередное обновление для Windows Terminal! Среди новинок: динамические профили, каскадные настройки, обновленный UI, новые параметры запуска и другое. Подробнее под катом! Как и всегда, Терминал доступен для загрузки в Microsoft Store,...

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

СПО для СДО: как free soft помогает администрировать критичные бизнес-системы в ВТБ Система документационного обеспечения в нашем банке постоянно развивается и масштабируется, а требования к скорости и отказоустойчивости при этом только возрастают. В какой-то момент обслуживать СДО без эффективного централизованного мониторинга стало слишком рискованно. Что...

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

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

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

[Перевод] Как работает FaceID в iPhone X: алгоритм на Python Одна из самых крутых фишек iPhone X – это метод разблокировки: FaceID. В этой статье разобран принцип работы данной технологии. Изображение лица пользователя снимается с помощью инфракрасной камеры, которая более устойчива к изменениям света и цвета окружающей среды. Исп...

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

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

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

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

Отображение текста в Android Отображение текстовой информации — наверное, самая базовая и важная часть многих Android-приложений. В данной статье пойдет речь о TextView. Каждый разработчик, начиная с «Hello World», постоянно сталкивается с этим элементом пользовательского интерфейса. Периодически в раб...

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

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

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

[recovery mode] Нейросеть научили моментально предсказывать третичную структуру белка Решение проблемы прогноза структуры белка откроет новую эпоху управляемой биологии. Американский исследователь создал нейронную сеть ProteinNet, которая способна предсказывать структуру белка за миллисекунды. Ученый опубликовал статью о разработке на страницах Cell Syste...

QuietOn — наушники, которые убивают… Шум. Вот так насмотришься страстей в интернете: А потом думаешь: зря, конечно, авторы статей не учитывают рекомендации seo-экспертов относительно того, сколько текста влезает в Title. А если серьезно, «странные наушники» — это наша любимая тема: то у нас костная пров...

[Из песочницы] Фундаментальная проблема тестирования Введение Добрый день, хабровчане. Решал я тут давеча тестовое задание на вакансию QA Lead для одной финтех компании. Первая задача, составить тест-план с полным чек-листом и примерами тест-кейсов для проверки электрического чайника, решается тривиально: ГОСТ 7400-81. Электр...

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

Как сделать скриншот на Galaxy S10 Процесс создания скриншотов довольно прост, а причины для их создания бывают самые разные. Так, например, чтобы сохранить какую-нибудь публикацию из Instagram или Twitter для последующей ее публикации в Facebook, нужно сделать скриншот. Полезным это может оказаться и тогда,...

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

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

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

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

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

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

4A Games выпустит сюжетные DLC для Metro Exodus Шутер Metro Exodus обзаведется двумя сюжетными дополнениями, и первую добавку геймеры получат уже этим летом. В первом DLC под названием «Два полковника» игрокам расскажут историю полковника Хлебникова, который едет домой, чтобы встретить Новый год со своим сыном, Кирилло...

Уточняем описание функций системы с помощью диаграммы Sequence Уточняем описание функций системы с помощью диаграммы Sequence (продолжение "Белки") В данной статье рассмотрим, как можно детализировать (уточнить) описание автоматизируемой функции с помощью UML Sequence Diagram — диаграммы последовательности. В данном примере я использую ...

Как мы пересадили всю команду на другой язык за один день (на самом деле — нет) func main() { envs.UpdateDotenv() ctx := context_os.Context(context.Background()) res := resources.Get(ctx) ready := readiness.New() ready.AddProbe(func() { //add some initialization }) h := handlers.New(res) s := server.NewServer(ready) s.HandleFunc("/test", h.Tes...

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

Telegram. Безлимитный сетевой диск. Бесплатный Привет, Хабр. Наверняка многие об этом задумывались, возможно у кого то эта идея лежит в TODO. У меня она пролежала примерно год, но таки удалось ее реализовать в виде работающего прототипа. TgCloud: Виртуальная файловая система с открытым исходным г****кодом. На локальном...

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

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

Pointer и Value семантика в определении получателя метода Создание новых типов данных — важная часть работы каждого программиста. В большинстве языков определение типа состоит из описания его полей и методов. В Golang помимо этого нужно решить, какую семантику получателя для методов нового типа использовать: значение (value) или ук...

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

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

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

Функция ЭКГ в Apple Watch Series 4 добралась до Европы До недавних пор функция ЭКГ была доступна только американским пользователям "умных" часов Apple Watch Series 4. Но последнее обновление watchOS 5.2 изменило эту ситуацию, и теперь одна из самых интересных функций этого гаджета стала активной более чем в 20 странах по всему м...

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

Объектное хранилище в подсобке, или Как стать самому себе сервис-провайдером Первый прототип объектных хранилищ мир увидел в 1996 году. Через 10 лет Amazon Web Services запустит Amazon S3, и мир начнёт планомерно сходить с ума от плоского адресного пространства. Благодаря работе с метаданными и своей возможности масштабироваться, не проседая под нагр...

Год за рулём электромобиля На самом деле я соврал. Не год, а всего 11 месяцев. Писать статью «11 месяцев за рулём электромобиля»? Дикость, конечно. Подождать и написать через месяц? За месяц могу вообще передумать писать, или поменяются обстоятельства и на статью не будет времени. Итак. Поехали (под ...

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

[Перевод] Учебный курс по React, часть 16: четвёртый этап работы над TODO-приложением, обработка событий В сегодняшней части перевода учебного курса по React мы продолжим работу над Todo-приложением и поговорим о том, как в React обрабатывают события. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы комп...

Создание таблиц в дизайн системе Figma и реализация в Storybook (React) В предыдущей статье на тему дизайна таблиц в Фигме мы выяснили, что базовый элемент создания любого data grid — это компонент ячейки, внутри которого спрятано все необходимое для того, чтобы оставаться в одном экземпляре и строить таблицы ячейка-за-ячейкой. Теперь поговори...

[Перевод] Чтобы вести разработку быстрее, необходимо замедлиться Примечание переводчика: Начало года — отличное время, чтобы вдумчиво оценить прошедший год. Окинуть широким взглядом происходящее и понять, как сделать 2019 год лучше, спокойнее и продуктивнее. В этом деле нам показалась полезной статья How To Slow Down to Go Faster Than E...

«Гори, гори ясно, пока не погасло», или Чем чревато эмоциональное выгорание ваших сотрудников Как я хотела прикинуть, что дешевле – уволить выгоревшего сотрудника, «вылечить» или вовсе стараться не допускать выгорания, и что из этого получилось. Сейчас небольшое вступление, откуда родилась эта тема. Я почти что разучилась писать. Сначала нет времени; потом кажется...

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

Как изменения в Google Play повлияют на ASO В середине марта прошла конференция Game Developers Conference (GDC 2019), на которой Google представила обновления своего Google Play Store. Обновление нацелено на совершенствование процесса разработки приложений и игр под Android и поддержку общего роста рынка мобильных иг...

[Перевод] Как я пишу конспекты по математике на LaTeX в Vim Некоторое время назад на Quora я отвечал на вопрос: как успевать записывать за лектором конспект по математике на LaTeX. Там я объяснил свой рабочий процесс по конспектированию в LaTeX с помощью Vim и Inkscape (для рисунков). Но с тех пор многое изменилось, так что я хочу оп...

[Из песочницы] Современные тренды и рекомендации по аджайлизации крупных финансовых институтов 12-15 Мая 2019 в Дублине состоялся PMI EMEA Congress 2019, который был организован одним из лидеров отрасли в области разработки методологии управления проектами – Project Management Institute (PMI). Конгресс собрал более 700 делегатов из 70 стран и 450 организаций и стал ми...

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

Подробности о космической MMO EVE Echoes от разработчиков  Авторам портала Droid Games удалось побывать на EVE Vegas — ежегодном мероприятии, которое организовывает компания CCP Games. В первую очередь на ивенте всегда обсуждается направление развития основной игры, но Droid Games взяли короткое интервью у ответственных за грядущую ...

Как детально настроить функцию Always On Display на Galaxy S10 Функция Always On Display, без сомнений, является одной из самых простых, но в то же время очень полезных возможностей некоторых современных смартфонов, без которой свою жизнь уже сложно представить. Функция Always On Display выводит полезную информацию на экран и пользоват...

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

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

[Перевод] PostgreSQL 11: Эволюция секционирования от Postgres 9.6 до Postgres 11 Отличной всем пятницы! Все меньше времени остается до запуска курса «Реляционные СУБД», поэтому сегодня делимся переводом еще одного полезного материала по теме. В процессе разработки PostgreSQL 11 была проделана впечатляющая работа по улучшению секционирования таблиц. Секц...

К вопросу о преобразованиях и прочих операциях Синяя Гусеница: А ну нас-то не собьешь. Мы себе сидим, знаем: ждут нас превращения. А что? А ничего! Сидим, курим, ждем… Алиса- кукла: Чего? Синяя Гусеница: Чего, чего! Превращений. Дом — в дым, дым- в даму, а дама — в маму. Вот так-то. Не мешайте, не заскакивайте вперед, а ...

Комментарии к изменениям в ФЗ №149-ФЗ «Об информации, информационных технологиях и о защите информации» Добрый день, коллеги! Сегодня хочу высказаться о новом законопроекте порожденном Минкомсвязи России. Заранее прошу прощения за огромные объемы законодательного текста, поскольку приведу интересные отрывки в виде цитат. Чтобы уважаемые читатели не затрудняли себя поиском зак...

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

[Перевод] Данные по-прежнему важнее Вот цитата из Линуса Торвальдса за 2006 год: Я огромный сторонник разработки кода вокруг данных, а не наоборот, и я думаю, что это одна из причин, по которой git был довольно успешным… По сути, я утверждаю, что разница между плохим программистом и хорошим заключается в том,...

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

Путинград на Святой земле: Президент РФ заслужил не меньше Трампа увековечивания в Израиле — Сеть Решение Нетаньяху отблагодарить Трампа породило мнение, что есть не менее значимый кандидат. Премьер-министр Израиля сдержал своё слово и назовёт новое поселение на Голанских высотах в честь президента США. Нетаньяху полагает, что историческое решение Трампа помогло, наконе...

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

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

Некоторые задачи школьной математики. Часть II Часть I. Дроби Часть II. Модули В данной статье рассматривается метод оценок диапазона принимаемых значений и связь этого метода с задачами, содержащими модуль. При решении некоторых задач необходимо рассматривать диапазон, в пределах которого может находиться искомая вел...

[Из песочницы] Рендеринг 3D графики с помощью OpenGL Введение Рендеринг 3D графики — непростое занятие, но крайне интересное и захватывающее. Эта статья для тех, кто только начинает знакомство с OpenGL или для тех кому интересно, как работают графические конвейеры, и что они из себя представляют. В этой статье не будет точных ...

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

Все лавры царю: Путин «увел» у Жириновского закон о декриминализации статьи за «лайки» Госдума отказала ЛДПР и КПРФ в изменении статьи 282 УК РФ, но быстро передумала, когда идентичный проект предложил президент. Летом прошлого года Владимир Путин серьезно подорвал свой рейтинг, поддержав Госдуму и правительство в принятии «пенсионной реформы». Однако народна...

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

Как изменить карьеру, стать frontend-разработчиком в 30 лет и работать в свое удовольствие На фото — мобильное рабочее место фрилансера. Это паром, который курсирует между Мальтой и Гозо. Оставив свою машину на нижнем уровне парома, можно подняться наверх и выпить чашечку кофе, открыть ноутбук и поработать Сегодня публикуем историю студента GeekBrains Александра...

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

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

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

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

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

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

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

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

Эволюция развития автомобильных двигателей с начала 90-х годов Основой современного автомобиля является его двигатель внутреннего сгорания(ДВС), и несмотря на развитие альтернативных источников энергии, традиционный ДВС сохраняет свое превосходство из-за культурных, экономических и социальных причин. За период с 1994 по 2008 года автомо...

[Конспект админа] Как подружиться с DHCP и не бояться APIPA Сервис, выдающий IP-адреса устройствам в локальной сети, кажется одним из самых простых и всем знакомых. Тем не менее у моих младших коллег до сих пор временами всплывают вопросы вроде «компьютер что-то получает какой-то странный адрес», а появление второго DHCP-сервера в о...

«Яндекс» назвал «разрушительные» последствия закона о значимых сайтах Гендиректор «Яндекса» в России Елена Бунина в интервью РБК сообщила, что изменения в акционерной структуре компании из-за законодательных инициатив приведут к тому, что «Яндекс» перестанет развивать «новые классные сервисы».

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

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

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

«Информационная архитектура»: митап в OZON Отмечаем Всемирный день информационной архитектуры первым митапом о том, как выстроить информацию и документацию внутри цифрового продукта, чтобы команде и пользователям не было мучительно и непонятно. Встречаемся 26 февраля у нас. Читать дальше →

ZENLIX 3.5 — спустя 2 год Начав разработку системы заявок, с 2013 года, история которой описана в предыдущих публикациях: Как мы написали helpdesk Как мы написали helpdesk (часть 2) Как мы написали helpdesk (часть 3) мы остановили выпуск новых версий в 2017 году. Это не значит, что мы переста...

[Из песочницы] Как в yEd Graph Editor построить красивую схему базы данных Хочу показать вам как с помощью нынче популярного приложения yEd, которое предназначено для построения различных диаграмм и схем, можно сделать полноценную(со всеми обозначениями) схему базы данных. Читать дальше →

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

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