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

Опасность использования multi-character-констант Во время анализа кода, PVS-Studio выполняет анализ потока данных и оперирует значениями переменных. Значения берутся из констант или выводятся из условных выражений. Мы называем их виртуальными значениями. Недавно мы улучшали их для работы с multi-character-константами и эт...

Используем статические ссылки на свойства объектов при помощи лямбд Так уж исторически сложилось, что в Java для свойств объектов (properties) не предусмотрено никакой физической сущности. Свойства в Java — это некоторые соглашения в именовании полей и методов доступа к ним (аксессоров). И, хотя наличие физических свойств в языке упростило б...

[Из песочницы] ES6 Простым языком Шаблонные литералы Шаблонные литералы заключены в обратные кавычки (` `) вместо двойных или одинарных. Они могут содержать подстановки, обозначаемые знаком доллара и фигурными скобками (${выражение}). Пример: var name = "bill"; console.log(`Hello ${name}`); // He...

defi.js — реактивная библиотека, основанная на Object.defineProperty defi.js — это библиотека, включающая в себя дюжину функций, которые добавляют интересные фичи любым JavaScript объектам с помощью геттеров и сеттеров. Гифка для привлечения внимания (3.5МБ) Репозиторий В качестве Hello World создадим небольшой виджет, состоящий из поля имен...

[Из песочницы] Анонсирован Dart 2.2: более оптимальный машинный код, поддержка Set литералов Источник [Announcing Dart 2.2: Faster native code, support for set literals] Сегодня (26 февраля 2019) мы объявляем о выпуске Dart 2.2 SDK — обновления для Dart 2, которое предлагает улучшенную производительность ahead-of-time (AOT) кода и поддержку Set литералов. Читать...

Удалённое управление эмулятором Fceux с помощью Python В статье я опишу, как сделать эмулятор NES управляемым удалённо, и сервер для удалённой отправки команд на него. Зачем это нужно? Некоторые эмуляторы различных игровых консолей, в том числе и Fceux, позволяют писать и запускать пользовательские скрипты на Lua. Но Lua – пл...

[Перевод] Gap — светлое будущее для отступов в Flexbox (как в Grid) Одна из моих любимых частей спецификации CSS Grid — это grid-gap. Они позволяют легко создавать отступы между элементами внутри сетки. Margins и приёмы, к которым мы прибегаем, чтобы реализовать их в разных ситуациях, долгое время были одним из главных моментов, раздражаю...

Подводные камни пользовательских CSS-свойств Автор курса Нетологии «HTML-верстка» Стас Мельников рассказал о нюансах, которые могут усложнить работу с пользовательскими CSS-свойствами. Правила синтаксиса названий пользовательских свойств Мы привыкли, что встроенные CSS-свойства нечувствительны к регистру. Поэтому сл...

[Перевод] Опасности конструкторов Привет, Хабр! Представляю вашему вниманию перевод статьи "Perils of Constructors" автора Aleksey Kladov. Один из моих любимых постов из блогов о Rust — Things Rust Shipped Without авторства Graydon Hoare. Для меня отсутствие в языке любой фичи, способной выстрелить в ногу, о...

[Из песочницы] CSS-переход свойства height от 0px до auto Здравствуй, Хабр! Хочу поделиться ещё одним способом создания css-перехода (transition) свойства height от 0px до auto. Столкнулся с данной проблемой при разработке веб-компонентов TreeView и DataGrid. В TreeView решил сделать плавное развёртывание/свёртывание узлов, а в ...

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

[Перевод] C# Regex в примерах Перевод статьи подготовлен специально для студентов курса «Разработчик С#». Класс Regex реализует регулярные выражения в C#. В этой статье вы узнаете, как использовать C# Regex для проверки различных пользовательских входных данных. Regex в C# реализует регулярные выра...

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

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

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

[Перевод] Понимаем Property Wrappers в SwiftUI Перевод статьи подготовлен специально для студентов курса «iOS Разработчик. Продвинутый курс v 2.0.» На прошлой неделе мы начали новую серию постов о фреймворке SwiftUI. Сегодня я хочу продолжить эту тему, рассказав о Property Wrappers в SwiftUI. SwiftUI предоставляет нам...

[Перевод] Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 1: не создавайте конфликтующие пропсы Пишем API для React компонентов, часть 2: давайте названия поведению, а не способам взаимодействия Пишем API для React компонентов, часть 3: порядок пропсов важенЭтот пост — перевод первой статьи ...

Основы шаблонов С++: шаблоны функций Дисклаймер: статья была начата еще в феврале, но, по зависящим от меня причинам, закончена не была. Тема очень обширна, поэтому публикуется в урезаном виде. Что не поместилось, будет рассмотренно позже. Невозможно разбираться в современном С++, не зная, что такое шаблоны п...

[Перевод] Упражнения в эмуляции: инструкция FMA консоли Xbox 360 Много лет назад я работал в отделе Xbox 360 компании Microsoft. Мы думали над выпуском новой консоли, и решили, что было бы здорово, если эта консоль сможет запускать игры с консоли предыдущего поколения. Эмуляция — это всегда сложно, но она оказывается ещё труднее, если т...

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

Много свойств или свойство-объект: критерии выбора Много свойств или свойство-объект: критерии выбора Мы используя Vue, разрабатываем компоненты различного рода и условий применения. Одной из ключевых частей любых компонентов — это их интерфейс. Во Vue, передаваемые свойства — являются очень важной, если не самой важной, ч...

[Из песочницы] Назад в будущее с WebAssembly Привет, Хабр! Представляю вашему вниманию перевод статьи «Back To The Future With WebAssembly» автора Attila Vágó. Данный пост является переводом статьи, в которой рассказывается о свойствах WebAssemly и Emscripten. Оригинал статьи на английском языке. Автор статьи Аттила ...

[Из песочницы] Длинные имена слишком длинные Привет, Хабр! Представляю вашему вниманию перевод статьи "Long Names Are Long" автора Bob Nystrom. Одно из умных вещей которые делает Google это строгие code review. Каждое изменение, прежде чем вам разрешат его внести в основную ветку, рассматривается как минимум ...

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

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

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

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

Белый шум рисует черный квадрат. Часть 2. Решение В первой публикации рассказывалось о том, что есть подзабытая теорема Эрдёша-Реньи, из которой следует, что в случайном ряде, длины N, с вероятностью близкой к 1 существует подряд из одинаковых значений длиной \log_2{N}. Указанное свойство случайной величины можно использова...

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

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

CLion 2019.1: ClangFormat, подсветка кода через Clangd, memory view, начальная поддержка микроконтроллеров Привет, Хабр! У команды CLion множество отличных новостей — питерская часть команды вместе с другими коллегами успешно перебралась в новый офис, к нам присоединились новые классные разработчики, а главное, мы буквально на днях выпустили первое большое обновление в этом году...

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

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

[Перевод] Всё, что вам нужно знать про CSS Margin Одним из первых, что многие из нас усвоили, когда изучали CSS, были особенности разных составляющих блока в CSS, описываемые как «Блочная Модель CSS». Один из элементов в блочной модели — margin (внешний отступ), прозрачная область вокруг блока, которая отталкивает другие эл...

ООП в языке R (часть 1): S3 классы R это объектно ориентированный язык. В нём, абсолютно всё является объектом, начиная от функций и заканчивая таблицами. В свою очередь каждый объект в R должен относится к какому либо классу. На самом деле в окружающем нас мире ситуация примерно такая же. Мы окружены объекта...

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

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

[Из песочницы] Почему нельзя установить размер шрифта у посещенной ссылки Привет, Хабр! Представляю Вашему вниманию перевод статьи «Why can’t I set the font size of a visited link?» автора Jim Fisher. Посещенные ссылки отображаются фиолетовым; не посещенные — голубым. Это различие пришло к нам с времен появления веба. Но CSS позволяет нам перен...

Microsoft добавит на устройства Windows on ARM эмуляцию x86-64, это позволит запускать 64-битные программы на ARM-чипах По данным осведомлённых источников, корпорация намерена добавить всем устройствам платформы Windows on ARM (WoA) поддержку эмуляции x86-64. Как ожидается, эта функция станет доступной всем пользователям Windows 10 в первой половине 2021 года, а участники программы Windows In...

Обеспечение безопасности в беспроводных протоколах на примере LoRaWAN Привет, Хабр. Мне хотелось бы в очередной раз поговорить о том, как обеспечивается базовый (читай: минимально необходимый) уровень безопасности данных в беспроводных сетях, используемых в IoT-устройствах, на примере LoRaWAN. Почему именно LoRaWAN? Во-первых, потому, что эт...

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

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

Универсальный способ настройки внешнего вида WinForms приложения (на примере FAQ.Net) Введение После размещения первой статьи о своем приложении FAQ.Net (программа заметок под Windows), появились первые пользователи, для которых хочется дальше развивать свою программу для заметок. Чтобы повысить интерес у пользователей, возникла идея повысить его привлекател...

[Перевод] Про «Open» Distros, Open Source, и создание компании Elastic В контексте событий про Open Distro, открытие исходников X-Pack, а также статьи «The Cloud and Open Source Powder Keg» — перевод поста Шейя Бэнона (основатель и CEO Elastic). Читать дальше →

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

Как ускорить работу с API на языке R с помощью параллельных вычислений, на примере API Яндекс.Директ (Часть 2) В прошлой статье я рассказал о том, что такое многопоточность, и привёл примеры её реализации на языке R при работе с API Яндекс.Директ с помощью пакетов doSNOW, doParallel и конструкции foreach. Данная статья является продолжением, но может быть рассмотрена как автономное р...

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

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

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

Интерактивная игра на XSLT Когда-то давным-давно придумали люди язык XML и увидели, что это хорошо. И стали использовать его везде, где можно, и даже там, где не следует. Форматы хранения и передачи данных, конфиги, веб-сервисы, базы данных… Казалось, оглянись вокруг — XML, XML повсюду. Время прошло...

Робот с “языком” хамелеона: полезные свойства природы Компания Festo регулярно заимствует у природы идеи для своих роботов: захваты по принципу щупалец осьминога или механику передвижения робота как у кенгуру. Этот подход основан на бионике — науке о применении свойств живых существ в технических системах, например, при создани...

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

Microsoft работает над эмуляцией x64-приложений на ARM-процессорах Как сообщает ресурс Neowin со ссылкой на собственные источники в Microsoft, софтверный гигант планирует внедрить эмуляцию приложений x86-64 на ARM-процессорах в операционной системе Windows 10. Участники программы тестирования Windows Insiders смогут опробовать нововведения....

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

Бредогенератор: создаем тексты на любом языке с помощью нейронной сети Привет Хабр. Эта статья будет в немного «пятничном» формате, сегодня мы займемся NLP. Не тем NLP, про который продают книжки в подземных переходах, а тем, который Natural Language Processing — обработка естественных языков. В качестве примера такой обработки будет использов...

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

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

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

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

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

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

#Universal_Audio OX Amp Top Box – гитарный предусилитель с набором эмуляций Universal Audio выпустили систему OX Amp Top Box, которая сочетает в себе ламповый гитарный предусилитель и набор эмуляций кабинетов, усилителей, микрофонов и эффектов.Устройство позволяет полностью смоделировать тон гитары и точно имитирует особенности различного оборудован...

Работа с форматом конфигураций 1С: Предприятие Решил опубликовать исходный код C# для работы с форматом конфигураций 1С: Предприятие. https://github.com/elisy/MdInternals MdInternals понимает формат cf, cfu, epf, erf, распаковывает содержимое в удобочитаемые Xml и текстовые файлы и загружает обратно. Позволяет програм...

Крокодилы летают, но низко-низко (об экранопланах без эмоций, зато с отступлениями) Скажу сразу: ничего про «не имеющее аналогов», «бездумно разрушенное» и т.п. – не будет. Что будет: — Немного истории; — Разъяснение того, что такое эффект экрана, его свойства и последствия; — Преимущества и недостатки; — Практические реализации у нас и за рубежом, ра...

[Из песочницы] Краткое введение в рекурсию. JavaScript Перевод: Привет, Хабр! Представляю вашему вниманию перевод статьи "A Quick Intro to Recursion in Javascript" Yazeed Bzadough. Примечание. Рекурсия не единожды обсуждалась на хабре, но данная статья даёт базовое понимание рекурсии. Это будет полезно начинающим разр...

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

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

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

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

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

[Из песочницы] Путь от хирургии к геймдеву или первый опыт мобильной разработки на Unity Зачем, кому и от кого Всем привет! Меня зовут Анатолий. Я хочу рассказать историю о наших первых шагах в геймдеве, чтобы поделиться пусть и небольшим, но всё же опытом. Зачем? Потому что всего 6 месяцев назад сам искал подобные публикации, перечитывал и выписывал советы. Над...

Microsoft работает над эмуляцией x64-приложений в Windows 10 on ARM Устройства под управлением Windows 10 on ARM по-прежнему занимают небольшую долю рынка, а главным барьером на пути их использования является невозможность запуска 64-битные (x64) приложений. Но, по всей видимости, компания Microsoft занимается решением этого вопроса. Как со...

[Перевод] Замена EAV на JSONB в PostgreSQL TL; DR: JSONB может значительно упростить разработку схемы БД без ущерба производительности в запросах. Введение Приведем классический пример, наверное, одного из старейших вариантов использования в мире реляционных БД (база данных): у нас есть сущность, и необходимо сохрани...

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

Знакомство с Python для камрадов переросших «язык A vs. язык B» и другие предрассудки Для всех хабравчан, у которых возникло ощущение дежа-вю: Написать этот пост меня побудили статья "Введение в Python" и комментарии к ней. К сожалению, качество этого "введения" кхм… не будем о грустном. Но ещё грустнее было наблюдать склоки в комментариях, из разряда "C++ бы...

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

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

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

[Из песочницы] Arduino и Processing. Как управлять микроконтроллером по COM порту. Двустороннее общение Всем привет! В интернете бытует заблуждение, что для управления компьютером при помощи самодельной электроники нужны только специальные платы, которые могут распознаваться как USB HID устройства. А касаемо Arduino все только и говорят о Arduino Leanardo. Такие популярные биб...

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

Эмуляция Internet Explorer теперь доступна в браузере Edge 76.0.176.1 Долго ходили слухи насчет интеграции Internet Explorer в новый браузер Edge на базе Chromium. Похоже, что пользователи этого дождались, так как новая версия Edge канала тестирования Dev позволяет в настройках включить эмуляцию Internet Explorer.Включить интеграцию можно во ф...

Как мы в QIWI пришли к единому стилю взаимодействия между View и ViewModel в рамках MVVM Изначально весь проект был написан на Objective-C и использовал ReactiveCocoa версии 2.0 Взаимодействие между View и ViewModel осуществлялось посредствам биндингов свойств вью модели, и все бы ничего, за исключением того, что отладкой такого кода заниматься было очень сложно...

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

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

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

[Из песочницы] Ant-карусель на CSS и Javascript С появлением CSS3 появилась возможность совершать анимацию без использования JS-библиотек, таких, например, как jQuery. CSS3 свойство transition позволяет плавно изменять другие свойства элемента (width, height, margin, opacity и пр.), задав в качестве параметров время и зак...

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

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

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

[Перевод] “IoT omnichannel evolution” или как интернет вещей может повлиять на омниканальность Мир ecom разделен на две половины: одни знают про омниканальность все вдоль и поперек; другие еще задаются вопросами, чем эта технология может быть полезна бизнесу. Первые рассуждают о том, как интернет вещей (IoT) может сформировать новый подход к омниканальности. Мы пере...

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

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

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

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

0, 0, 1, 0, 2, 0, 2, 2, 1, 6, 0, 5, 0, 2, 6, 5, 4, 0, 5, 3, 0, 3, 2, 9, 0, 4, 9, 3, 6, 14, 0, 6, 3, 5, 15, 0, 5, 3, 5… Есть два мужика с именами «Van Eck». Первый, в 1985 году показал всему миру как за 15 долларов перехватывать данные с монитора (Van Eck phreaking), второй, в 2010 придумал хитрую последовательность (Van Eck's sequence). Круче простоты задания этой последовательности могут бы...

[Перевод] Эмуляция микропроцессора 8008 на ESP8266 На EP8266 можно эмулировать «Радио-86РК», но до микропроцессора 8080 был 8008, о котором сегодня ретрокомпьютерщики вспоминают реже. Его тоже удалось эмулировать на этой платформе и запустить интерпретатор Бейсика SCELBAL. Читать дальше →

[Перевод] Обработка 40 ТБ кода из 10 млн проектов на выделенном сервере с Go за $100 Написанной мной инструмент командной строки Sloc Cloc and Code (scc), который теперь доработан и поддерживается многими отличными людьми, подсчитывает строки кода, комментарии и оценивает сложность файлов внутри каталога. Здесь нужна хорошая выборка. Инструмент подсчитывает ...

[Перевод] Почему мы предпочитаем CSS(--variable) переменным SASS($variable)? С момента релиза CodyHouse Framework, пару месяцев назад, многие пользователи спрашивали нас, почему мы выбрали переменные CSS вместо переменных SASS, хотя мы используем SASS в этой среде. В этой статье я расскажу о преимуществах использования пользовательских свойств и о то...

Проверка обёртки OpenCvSharp над OpenCV с помощью PVS-Studio OpenCV — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом, знакомая многим разработчикам на C++. Помимо C++, OpenCV также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков. Так как ...

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

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

Основы формата GLTF и GLB, часть 2 Данная статья является продолжением рассмотра основ GLTF и GLB форматов. Вы можете найти первую часть статьи здесь. В первой части мы рассмотрели с вами зачем изначально планировался формат, а также такие артефакты и их атрибуты GLTF формата как Scene, Node, Buffer, BufferVi...

[Перевод] Делаем приложение доступным, используя библиотеку тестирования доступности aXe Представляем вам перевод статьи Indrek Lasn, опубликованной на Medium.com. Под катом вы узнаете, как сделать приложение или сайт более доступными при помощи aXe — средства тестирования доступности веб-сайтов и других пользовательских интерфейсов. react-axe показывает резул...

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

Что такое гейзенбаг: история термина и примеры Это — справочный материал о гейзенбагах. Говорим о том, как они выглядят и какое отношение имеют к мейнфреймам — прародителям облака. / фото Lars Zimmermann CC BY Heisenbug (гейзенбаг или хайзенбаг) — термин, описывающий ошибки, которые меняют свойства во время отладки код...

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

Липидам холод нипочем: предотвращение кристаллизации воды при -263 °С Чего больше всего на планете? Что находится на вершине наших потребностей наряду с воздухом и едой? Что по мнению одного бородатого анекдота роднит человека с огурцом? Ответ прост — вода. Это химическое соединение играет центральную роль во многих макро- и микропроцессах: ...

[Из песочницы] Создание REST API с Node.js и базой данных Oracle Привет, Хабр! представляю вашему вниманию перевод статьи «Creating a REST API: Web Server Basics». Часть 1. Создание REST API: основы веб-сервера Веб-сервер является одним из наиболее важных компонентов REST API. В этом посте вы начнете свой проект API REST, создав нескольк...

[Перевод] Как я создал более 100 приложений с открытым кодом, используя инструменты автоматизации Представляем вам перевод статьи Sm0ke, опубликованной на сайте dev.to. Автор рассказывает о своем опыте генерации веб-приложений и способе автоматизации процесса их создания. Привет, кодеры! Я — разработчик-фрилансер, и я сгенерировал более 100 приложений на различных язык...

[Перевод] Погружение в Move — язык программирования блокчейна Libra от Facebook Далее мы рассмотрим в деталях основные характеристики языка Move и в чем его ключевые различия с другим, уже популярным языком для смарт-контрактов — Solidity (на платформе Ethereum). Материал основан на изучении доступного он-лайн 26-страничного whitepaper-а. Введение Move...

[Перевод] Визуализация работы PEG парсера В прошлый раз получился простой генератор парсера PEG. Сейчас же я покажу, что на самом деле делает сгенерированный парсер при разборе программы. Я погрузился в ретро-мир ASCII-арта, в частности, библиотеку с именем «curses», которая доступна в стандартной поставке Python дл...

[Перевод] Топ-65 вопросов по SQL с собеседований, к которым вы должны подготовиться в 2019 году. Часть I Перевод статьи подготовлен для студентов курса «MS SQL Server разработчик» Реляционные базы данных являются одними из наиболее часто используемых баз данных по сей день, и поэтому навыки работы с SQL для большинства должностей являются обязательными. В этой статье с вопрос...

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

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

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

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

Беспроводные наушники Аnker Soundcore Liberty Air Компания Anker выпустила беспроводные наушники Аnker Soundcore Liberty Air. Наушники имеют материал корпуса с высокими абсорбирующими свойствами по своим физическим свойствам, слой графена уменьшает количество микроскопических искаженных вибраций, возникающих в наушниках...

[Перевод] Внутренности JVM, Часть 1 — Загрузчик классов Перевод статьи подготовлен специально для студентов курса «Разработчик Java». В этой серии статей я расскажу о том, как работает Java Virtual Machine. Сегодня мы рассмотрим механизм загрузки классов в JVM. Читать дальше →

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

Приложение на ТСД и связь с 1С: Предприятие 8.3 через HTTP-Сервис. Часть 4 (OnKeyUp. Сканер ШК с эмуляцией клавиатуры) 1. Выбор способа обмена. Описание API. 2. Реализация API на стороне 1С. 3. BroadcastReceiver. Получаем данные 4. OnKeyUp. Сканер ШК с эмуляцией клавиатуры Эта статья должна была стать самой короткой. Но дьявол в деталях. Вот несколько фактов. Факт 1. Если у нас на форме...

[Из песочницы] Как сделать поддержку PCRE2 для Apache 2.4 Хочу поделится своим опытом перевода Apache 2.4 на PCRE2, так как даже PHP 7 уже давно поддерживает библиотеку PCRE2, а open source Apache Software Foundation все еще нет. Конечно я сейчас наверно опережаю релиз Apache с поддержкой PCRE2, так как я использую исходники с гита...

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

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

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

Делаем ретро-игру из 80-х или как готовить макеты для лазерной резки Хабр, привет! Так получилось, что меня давно просили сделать старую настольную игру из СССР — «Сражение». Вот пришло время выполнять обещание, заодно решила показать как создавать макеты для лазерной резки и что получается в итоге. Большой сложности в этом нет, но есть неко...

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

DJI Mavic Mini и закон Новый беспилотник от компании DJI наделал много шума, о нем написано много статей. Большинство из них расхваливают вес квадрокоптера, который позволит не ставить его на учет (что в тех же статьях часто выставляется существенной проблемой). И это действительно так, по недавн...

[Перевод] Особенности использования типа данных Symbol в JavaScript Символьные примитивы — это одно из новшеств стандарта ES6, которое принесло в JavaScript некоторые ценные возможности. Символы, представленные типом данных Symbol, особенно полезны при использовании их в качестве идентификаторов свойств объектов. В связи с таким сценарием их...

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

Как упростить исследование БД Oracle: «джентльменский набор» скриптов Добрый день! Мы команда системных аналитиков одного из подразделений управления данными «Ростелекома». В нашей компании насчитывается более 300 неоднородных источников данных — такое многообразие необходимо для поддержки работы Ростелекома по всем многочисленным направлениям...

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

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

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

[Из песочницы] Автоматический вход в Lync конференции в Linux Привет, Хабр! Для меня эта фраза сродни hello world, так как я добрался наконец до своей первой публикации. Долго откладывал этот замечательный момент, так как и писать было не о чем, а обсасывать то, что уже по куче раз обсосано, тоже не хотелось. Вообще для своей первой п...

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

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

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

[Перевод] Основы движков JavaScript: оптимизация прототипов. Часть 2 Добрый день, друзья! Курс «Безопасность информационных систем» запущен, в связи с этим делимся с вами завершающей частью статьи «Основы движков JavaScript: оптимизация прототипов», первую часть которой можно прочитать тут. Также напоминаем о том, что нынешняя публикация явл...

[Перевод] Добавление Quartz в Spring Boot И снова здравствуйте. Специально для студентов курса «Разработчик на Spring Framework» подготовили перевод интересной статьи. В моей статье «Specifications to the Rescue» я показал как можно использовать JPA Specification в Spring Boot для реализации фильтрации в RESTful ...

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

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

MPS 2019.2: перечисляемые типы данных, настройка сообщений об ошибках, переход на JDK 11 и многое другое В MPS 2019.2 мы подготовили для вас много новых функций в различных подсистемах и исправили ряд ошибок. Скачать MPS 2019.2 Перечисляемые типы данных Новый способ объявления перечисляемых типов данных позволяет определить список вариантов в компактной форме, указав для к...

[Перевод] 10 самых влиятельных языков программирования последних 50 лет и их создатели В IT-вселенной существует множество языков программирования. С каждым годом их становится всё больше и больше. Например, сравнительно недавно появились языки Scala, Kotlin, Go и Closure. Но история говорит нам о том, что выживут лишь немногие из них. Языки, о которых пойдёт...

[Из песочницы] Эффективные и не эффективные методы кодинга на Python Привет, Хабр! Предлагаю Вашему вниманию перевод статьи Good and Bad Practices of Coding in Python автора Duomly. Python – высокоуровневый язык программирования, акцентирующий внимание на удобочитаемости. Он разрабатывается, поддерживается и часто используется в соответствии...

[Перевод] Почему сумма трёх кубов – это такая сложная математическая задача Тяжело искать ответы в бесконечном пространстве. Математика уровня старших классов может помочь вам сузить область поисков. Учитывая, что люди изучают свойства чисел тысячи лет, можно было бы решить, что нам известно всё о числе 3. Однако недавно математики обнаружили нечт...

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

Как использовать Steam-контроллер без Steam. Небольшая статья-инструкция по настройке работы Steam-контроллера в отвязке от клиента Steam, а именно эмуляция XInput с помощью утилиты SС Controller и ViGEm Bus Driver.

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

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

Как дебажить фронтенд и бекенд: пошаговая инструкция Привет, Хабр! Представляю вам перевод статьи "How to debug javascript in Chrome quick and easy ". В этом посте мы научимся дебажить JavaScript на фронт- и бекенде с помощью Chrome DevTools и VS Code. Читать дальше →

PyDERASN: как я написал ASN.1 библиотеку с slots and blobs ASN.1 это стандарт (ISO, ITU-T, ГОСТ) языка описывающего структурированную информацию, а также правил кодирования этой информации. Для меня как программиста это просто ещё один формат сериализации и представления данных, наравне с JSON, XML, XDR и другими. Он крайне распрост...

Unity Package Manager Unity — платформа, которая существует довольно давно и постоянно развивается. Однако, работая в ней с несколькими проектами одновременно, все еще можно столкнуться со сложностями в использовании общих исходников (.cs), библиотек (.dll) и остальных ассетов (изображения, звуки...

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

[Перевод] Лучшие продукты отталкиваются от настоящих проблем: Intercom про Jobs-to-be-Done. Часть 1 Jobs-to-be-Done — это подход к созданию продукта на основе анализа работы, которую стремится выполнить клиент с помощью продукта. Появился в 90-х годах и был адаптирован Intercom для IT-продуктов. Подход состоит из теории, почему «вечные» работы, для выполнения которых «на...

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

[Из песочницы] Разработка многозадачной микроядерной ОС — Планировщик После того, как вы прочитали базовые шаги по написанию Hello World ядра из цикла имеющихся на Хабре статей, самое время приступить к серьезной разработке самых базовых инструментов: аллокатора кучи и планировщика. Честно говоря я долго думал стоит ли начинать писать статьи ...

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

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

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

Отправка статистики из DataFrame в BigQuery на примере статистики Яндекс Директ В этой статье расскажу о том, как я свел статистику по всему контексту в одном месте с помощью BigQuery и Data Studio У меня появилась необходимость визуализировать данные по всем источникам трафика. Для данной задачи я использую Data Studio. Google Ads туда подтягивается ...

[Из песочницы] Способы создания гистограмм с помощью Python За последний год я сталкивалась с необходимостью рисования гистограмм и столбчатых диаграмм достаточно часто для того, чтобы появилось желание и возможность об этом написать. Кроме того, мне самой довольно сильно не хватало подобной информации. В этой статье приведен обзор 3...

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

Криптографический АРМ на базе токенов PKCS#11. Получение сертификатов для ЕГАИС. Часть 4 И вот, когда я уже практически добавил в криптографический АРМ на базе токенов PKCS#11 cryptoarmpkcs генерацию самоподписанных сертификатов и готов был приступить к написанию статьи, мне пришло такое письмо:Мы являемся УЦ «Имярек», у нас возникло затруднение с выпуском ЭП в...

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

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

Как мы поженили две банковские CRM-системы Всем привет! Я – Николай Аксенов, начальник отдела поддержки и развития CRM-систем «Росбанк Дом» (ипотечный филиал Росбанка). Исторически так сложилось, что у нас в ипотечном банке «ДельтаКредит» (летом мы присоединились к Росбанку и теперь называемся «Росбанк Дом») было дв...

[Перевод] Грокаем DLR Предисловие переводчика Это скорее вольный пересказ, а не перевод. Я включил в эту статью только те части оригинала, которые имеют непосредственное отношение к внутренним механизмам работы DLR или объясняют важные идеи. Примечания будут заключены в квадратные скобки Многие...

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

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

Злая картинка. Разбираем уязвимость в GhostScript, чтобы эксплуатировать Pillow и ImageMagick Для подписчиковСпециалисты из Google Project Zero нашли несколько опасных уязвимостей в Ghostscript — популярной реализации PostScript. Правильно сформированный файл может позволить исполнять произвольный код в целевой системе. Уязвимости подвержена и библиотека Pillow, кото...

Julia. Генераторы отчётов и документации Одной из актуальных проблем во все времена, является проблема подготовки отчётов. Поскольку Julia — язык, пользователи которого непосредственно связаны с задачами анализа данных, подготовки статей и красивых презентаций с результатами расчётов и отчётов, то эту тему просто ...

Байт-машина для форта (и не только) по-индейски (часть 4) И снова я несколько переоценил объем статьи! Планировал, что это будет заключительная статья, где сделаем компилятор и выполним тестирование. Но объем оказался велик, и я решил разбить статью на две. В этой статье мы сделаем практически все основные функции компилятора. ...

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

[Перевод] Python 3.8: Что нового и как этим пользоваться? Следующий перевод подготовлен специально для «питонистов», которым интересно наверняка интересно почитать о новых функциях Python 3.8. В преддверии запуска нового потока по курсу «Разработчик Python» мы не смогли пройти мимо этой темы. В этой статье мы поговорим про новые ф...

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

Сколькими способами можно записать факториал на Scheme? Злые языки утверждают, что функциональные языки программирования — «языки для написания факториалов». Чаще всего так определяют язык Haskell, мы же начнем с того функционального языка, который сильно повлиял и на Haskell, и на подмножество средств для функционального програм...

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

Еще один вариант среды для разработки WordPress (docker, wp-cli) Есть официальные образы для развертывания WordPress и использования wp-cli. Но при их совместном использовании мне приходилось расшаривать всю папку WordPress и хотелось, чтобы было больше возможностей для кастомизации установки. Очень хотелось после запуска контейнера видет...

Вышел PHP 7.4! Как Badoo переходит на новую версию Сегодня, наконец, опубликован релиз PHP 7.4! Его новые фичи уже были многократно описаны, в том числе и на Хабре. Это стрелочные функции, типизированные свойства классов и ещё много всякого синтаксического сахара. Но больше всего мы ждали новый релиз из-за производительност...

JS. Proxy. Подводный камень, о котором нужно знать Эта статья будет интересна тем кто использует Proxy, для реактивности или рефлексии. Поведение JS методов, нам хорошо знакома если мы просто используем их в рамках объекта. Если метод передается через свойство другому объект, то он работает с тем this, который определен в р...

[Из песочницы] Ломаем паттерн проектирования — Singleton в PHP Одним прекрасным рабочим днём я писал unit-тесты для бизнес-логики на проекте, в котором работаю. Передо мною стояла задача инициализировать некоторые приватные свойства класса определёнными значениями. Читать дальше →

Вейвлет – анализ. Основы Введение Английское слово wavelet (от французского «ondelette») дословно переводится как «короткая (маленькая) волна». В различных переводах зарубежных статей на русский язык встречаются еще термины: «всплеск», «всплесковая функция», «маловолновая функция», «волночка» и др. ...

[Перевод] Самодельный сборщик мусора для OpenJDK Это перевод статьи Алексея Шипилёва «Do It Yourself (OpenJDK) Garbage Collector», публикуется с согласия автора. О любых опечатках и других багах сообщайте в личку — мы их поправим.Процесс создания чего-нибудь в рантайме языка — весёлое упражнение. По крайней мере, создание ...

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

Компания Noctua представила новое поколение своего высококачественного термоинтерфейса Улучшенные теплофизические свойства позволили добиться снижения температуры до 2 °C.

[Из песочницы] Основные проблемы разработки современных интерфейсов Привет, Хабр! Представляю вашему вниманию перевод поста Дэна Абрамова «The Elements of UI Engineering» о современных проблемах и задачах, которые должны быть решены в хорошем интерфейсе. Автор разбирает фундаментальные проблемы при разработке интерфейсов, осмысление и решени...

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

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

Ящик Пандоры: разбираем эксплуатацию уязвимости WinRAR на примере задания NeoQUEST-2019 Как часто нам на помощь приходит старый добрый WinRAR! Из раза в раз он заботливо и бескорыстно распаковывает наши архивы, и запаковывает их обратно. Но мы стали старше, и теперь хочется попробовать что-то поинтереснее, правда? А тут как раз нашли 19-летнюю уязвимость, позв...

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

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

Arend – язык с зависимыми типами, основанный на HoTT (часть 1) В данном посте мы поговорим о только что выпущенном JetBrains языке с зависимыми типами Arend. Этот язык разрабатывался JetBrains Research на протяжении последних нескольких лет. И хотя репозитории уже год назад были выложены в открытый доступ на github.com/JetBrains, полноц...

[Из песочницы] Создание Android приложения с использованием Anko Layouts и Anko Coroutines Примерно год назад я начал использовать Kotlin в своих Android проектах. Мне хотелось попробовать что-то новое, что было бы интересно изучать. Тогда я и наткнулся на Anko. К тому времени писать UI на xml порядком осточертело. Мне всегда нравилось писать интерфейс руками, не...

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

Empire ERP. Занимательная бухгалтерия: главная книга, счета, баланс В данной статье мы осуществим попытку проникновения в самое сердце "кровавого энтерпрайза" — в бухгалтерию. Вначале мы проведем исследование главной книги, счетов и баланса, выявим присущие им свойства и алгоритмы. Используем Python и технологию Test Driven Development. Здес...

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

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

[Из песочницы] Что происходит с интернетом «ТЕЛЕ-2» Привет всем, хабровчане! Собственно, к написанию этой статьи меня подтолкнули часто срабатывающие триггеры системы мониторинга Zabbix на падение скорости в сети «ТЕЛЕ-2». На удаленных объектах, к которым невозможно провести оптику, организован проброс портов регистратора че...

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

[Перевод - recovery mode ] Как правильно обрабатывать ошибки: тишина — не всегда хорошо У меня никогда не было какого-то особого мнения относительно обработки ошибок. Если я начинала работать с существующим кодом, я продолжала выполнять задачу, над которой трудился автор исходника; если писала код с нуля — делала то, что казалось мне правильным. Но недавно...

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

[Перевод] Полное руководство по Flexbox Полное руководство по CSS flexbox. Это полное руководство объясняет все о flexbox, сосредотачиваясь на всех возможных свойствах для родительского элемента (контейнер flex) и дочерних элементов (элементы flex). Оно также включает в себя историю, демонстрации, шаблоны и таблиц...

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

LuaVela: реализация Lua 5.1, основанная на LuaJIT 2.0 Некоторое время назад мы анонсировали публичный релиз и открыли под лицензией MIT исходный код LuaVela – реализации Lua 5.1, основанной на LuaJIT 2.0. Мы начали работать над ним в 2015 году, и к началу 2017 года его использовали в более чем 95% проектов компании. Сейчас хоче...

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

Основные понятия стандартной библиотеки С++ Данная статья определяет основные понятия стандартной библиотеки С++. Она приводится для того чтобы на неё ссылаться в дальнейшем. Наибольшей частью стандартной библиотеки С++ является библиотека STL (Standard Template Library – Стандартная Библиотека Шаблонов). Библиотека S...

Запускаем OpenVPN в Докере за 2 секунды Привет, хабровчане! Сталкивались ли вы когда-либо с ситуацией, когда очень хотелось бы виртуально перенестись в другой город, страну или на другой континет? У меня такая необходимость возникает достаточно часто, поэтому возможность иметь свой VPN сервер, который можно запуст...

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

[Перевод] WolframClientForPython | Новая клиентская библиотека Wolfram Language для Python Оригинал перевода в моём блоге Получение полного доступа к языку Wolfram Language из языка Python Язык Wolfram (Wolfram Language) дает программистам в руки уникальный язык с огромным множеством сложных алгоритмов, а также встроенных знаний об окружающем мире. На протяжении...

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

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

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

[Перевод] Программная реализация усилителя класса D Best-404-Error интересуется, можно ли получить результат компиляции длиной менее 512 байт, если исходник написан на языке высокого уровня. Можно, если упростить возлагаемую на прошивку задачу. Программная реализация усилителя класса D позволяет менять его параметры (часто...

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

Xcode 11 и XCFrameworks: новый формат упаковки фреймворков В жизни многих компаний, которые имеют и развивают свой стек библиотек и компонентов, наступает момент, когда объёмы этого стека становится сложно поддерживать. В случае разработки под платформу iOS, да и в целом, экосистему Apple, есть два варианта подключать библиотеки в ...

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

[Перевод] Краткое введение в цепи Маркова В 1998 году Лоуренс Пейдж, Сергей Брин, Раджив Мотвани и Терри Виноград опубликовали статью «The PageRank Citation Ranking: Bringing Order to the Web», в которой описали знаменитый теперь алгоритм PageRank, ставший фундаментом Google. Спустя чуть менее два десятка лет Googl...

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

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

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

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

Госдума уточнит определения "шпионских" технических средств Как говорится в пояснительной записке к первой инициативе, результаты анализа правоприменительной практики в указанной сфере свидетельствуют о том, что в законодательстве Российской Федерации значение термина "специальные технические средства, предназначенные для неглас...

FFI: пишем на Rust в PHP-программе В PHP 7.4 появится FFI, т.е. можно подключать библиотеки на языке C (или, например, Rust) напрямую, без необходимости писать целый extension и разбираться в его многочисленных нюансах. Давайте попробуем написать код на Rust, и используем его PHP-программе Читать дальше →

Как реализовать язык программирования на JavaScript. Часть 1: Парсер Здравствуйте! Представляю вам любительский перевод руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достаточно мн...

[Из песочницы] Переносим проект с Swift 4.2 на Swift 5.0 Привет, Хабр! Представляю вашему вниманию перевод статьи «Swift 5.0: How to migrate your project and frameworks» автора Antoine Van Der Lee. Swift 5.0 был выпущен в марте 2019 года и является первым стабильным выпуском ABI Swift. Несмотря на то, что многие ресурсы освещают ...

Язык и органы чувств Привет, Хабр! Представляю вашему вниманию перевод статьи "How your language reflects the senses you use" автора Sophie Hardach. Что вам проще описать: цвет травы или ее запах? Ответ может зависеть от того, откуда вы родом, и, в частности, от того, на каком языке вы с детств...

Субпиксельный рендеринг произвольных векторных изображений (Haarmony LCD) Субпиксельный рендеринг (вики)— способ увеличить видимое разрешение LCD или OLED дисплея путем рендеринга пикселей с учетом свойств экрана. Используется тот факт, что каждый пиксель экрана фактически состоит из отдельных красных, зеленых и синих субпикселей. В посте я хочу р...

[Из песочницы] Как научиться учиться Привет, Хабр! Представляю вашему вниманию перевод статьи «HOW TO LEARN HOW TO LEARN». Заметки и наблюдения о том, как лучше организовать свой учебный процесс. Мы, IT-шники, обречены на постоянное обучение до конца жизни. Еще 10-15 лет назад знания Java и JSP-серверлетов б...

Передача двумерных списков из python в DLL Всем привет. Решил несколько дополнить статью C/C++ из Python. Передача стандартных типов, таких как int, bool, float и так далее довольно проста, но мало необходима. С такими данными быстро справится и сам python, и врядли у кого-то возникнет необходимость вынесения части т...

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

Число, лежащее в основе современной музыки Почему двенадцать? Если вы посмотрите на клавиатуру, то увидите, что в каждой октаве содержится 12 полутонов. В случае фортепиано это всего лишь значит, что между, например, "до" первой октавы и "до" второй октавы расположено 11 клавиш. Вместе с одним из "до" (например, до ...

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

[Перевод] Что нового в Spring Boot 2.2? Перевод статьи подготовлен специально для студентов курса «Разработчик на Spring Framework». 16 октября 2019 года был выпущен Spring Boot 2.2 ! В этом посте вы узнаете о многих новых плюшках, которые предлагает вам версия 2.2. Читать дальше →

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

Память на цилиндрических магнитных доменах. Часть 1. Принцип работы Фото из коллекции автора 1. История Пузырьковая память, или память на цилиндрических магнитных доменах является энергонезависимой памятью, разработанной в Bell Labs в 1967 году Эндрю Бобеком (Andrew Bobeck). Исследования показали, что маленькие цилиндрические магнитные дом...

[Из песочницы] Почему Swift может стать большим событием в глубинном обучении Здравствуй, Хабр! Представляю вашему вниманию перевод заинтересовавшей меня статьи «Why Swift May Be the Next Big Thing in Deep Learning» автора Max Pechyonkin, в которой автор рассуждает о языке на котором будет осуществляться глубокое обучение в ближайшие годы. Читать дал...

[Перевод] Как реализовать язык программирования на JavaScript. Часть 3: CPS-интерпретатор Здравствуйте! Представляю вам третью часть моего перевода руководства реализации своего языка программирования на JavaScript — PL Tutorial. От переводчика Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достат...

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

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

Изучение английского — непопулярное мнение Всем привет. Очередная статья от «курсов изучения английского» сподвигла меня написать свои заметки. Этой статьёй я надеюсь ответить на некоторые вопросы изучающих язык и отговорить от глупых советов «запомнить вот эти 10/15/20 слов/конструкций», которые подаются как некие ...

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

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

[Из песочницы] Анализ скроллинга страниц в Google Data Studio Добрый день, меня зовут Чакканбаев Ильхом я автор блога SeoPulses, хотел бы поделиться переводом и реализацией на практике статьи michaelhoweely.com. Для того чтобы создать полноценный и понятный отчет для блога или статейного сайта в Google Data Studio потребуется использов...

Взгляд со стороны EcmaScript на общую теорию ООП Привет, Хабр! До сего дня я занимался лишь переводами интересных, на мой взгляд, статей англоязычных авторов. И вот настала пора самому что-то написать. Для первой статьи я выбрал тему, которая, я уверен, будет полезна junior-разработчикам, стремящимся дорасти до «мидлов»,...

Концепты: упрощаем реализацию классов STD Utility Появляющиеся в C++20 концепты — давно и широко обсуждаемая тема. Несмотря на избыток материала, накопившегося за годы (в т.ч. выступления экспертов мирового уровня), среди прикладных программистов (не засыпающих ежедневно в обнимку со стандартом) все еще остается неразберих...

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

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

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

[Из песочницы] Объектно-ориентированное программирование в Java и Python: сходства и отличия Привет, Хабр! Представляю вашему вниманию перевод статьи “Object-Oriented Programming in Python vs Java” автора Джона Финчера. Реализация объектно-ориентированного программирования (ООП) в языках Java и Python отличается. Принцип работы с объектами, типами переменных и прочи...

Как мы сделали PHP 7 в два раза быстрее PHP 5. Часть 2: оптимизация байт-кода в PHP 7.1 В первой части рассказа по мотивам выступления Дмитрия Стогова из Zend Technologies на HighLoad++ мы разбирались во внутреннем устройстве PHP. Детально и из первых уст узнали, какие изменениях в базовых структурах данных позволили ускорить PHP 7 более чем в два раза. На этом...

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

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

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

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

[Перевод] Зашёл ли похититель ROM аркадного автомата слишком далеко в сохранении наследия Atari? В начале этого месяца команда The Dumping Union, занимающаяся сохранением цифрового наследия, сделала важное для мира эмуляции аркадных автоматов заявление. В руки этому коллективу попал ROM-образ Akka Arrh — чрезвычайно редкого прототипа игры Atari для аркадных автоматов, ...

Spring Annotations: магия AOP Сакральное знание о том, как работают аннотации, доступно далеко не каждому. Кажется, что это какая-то магия: поставил над методом/полем/классом заклинание с собачкой — и элемент начинает менять свои свойства и получать новые. Сегодня мы научимся волшебству аннотаций на п...

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

Пять перспективных языков программирования со светлым будущим (3 года спустя) В 2016-м году я опубликовал перевод статьи про 5 перспективных языков программирования, в которой прогнозировался их рост в ближайшие 2-3 года. Зачастую прогнозы так и остаются прогнозами, без последующего анализа. Но я решил, что это непорядок. И посколько 3 года уже проле...

[Перевод] Тесты или типы Привет, Хабр. На днях я искал, как сделать что-то в Idris, и наткнулся на неплохой пост, вольный перевод которого выглядит вполне уместным. Вольности и отсебятину, где необходимо, я буду обозначать ⟦вот такими закорючками в начале и в конце⟧. Когда стоит использовать тесты, ...

Идиоматичное программирование GPU на Rust: Библиотека Emu Введение Emu — это высокоуровневый язык программирования видеокарт, способный встраиваться в обычный код на системном языке программирования Rust. В данной статье речь пойдёт о синтаксисе Emu, его особенностях, а также будут показаны несколько наглядных примеров его использ...

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

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

[Перевод] JDK 9/JEP 280: конкатенация строк никогда больше не будет прежней И снова здравствуйте. Как мы уже писали, на следующей неделе стартует новая группа обучения по курсу «Разработчик Java», по устоявшейся традиции делимся с вами переводом интересного материала по теме. Начиная с JDK 9 конкатенация строк претерпела значительные изменения. JE...

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

[Из песочницы] Транзакции и механизмы их контроля Транзакции Транзакцией называется последовательность операций над данными имеющая начало и конец Транзакция это последовательное выполнение операций чтения и записи. Окончанием транзакции может быть либо сохранение изменений (фиксация, commit) либо отмена изменений (откат, r...

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

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

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

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

[Перевод] Можно ли использовать Redux на сервере? Redux — это отличное средство для управления состоянием сложных фронтенд-приложений. Автор материала, перевод которого мы сегодня публикуем, собирается найти ответ на вопрос о том, можно ли воспользоваться возможностями Redux в серверной среде. Читать дальше →

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

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

Как мы спасали код-ревью Я ведущий Java-разработчик в Яндекс.Деньгах. Каждое рабочее утро в 2018 году меня встречали около 30 пулл-реквестов, ожидающих ревью, а у меня не хватало времени разобрать их все за день. В конце лета я ушел в отпуск, а когда вернулся, обнаружил очередь из 50 PR, назначенн...

[Перевод] Революция или эволюция Page Object Model? Всем привет! Меня зовут Артём Соковец. Хочу поделиться переводом своей статьи об Atlas: реинкарнации фреймворка HTML Elements, где представлен совершенно иной подход работы с Page Object. Перед тем, как перейти к деталям, хочу спросить: сколько обёрток для Page Object вы зн...

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

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

[Перевод] Изюминка Zircon: vDSO (virtual Dynamic Shared Object) Zircon? Что это? В августе 2016 года, без каких-либо официальных объявлений со стороны Google, были обнаружены исходники новой операционной системы Fuchsia. Эта ОС основана на микроядре под названием Zircon, которое в свою очередь основано на LK (Little Kernel). Fuchsia is ...

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

Изучая Dependency Injection Несмотря на то, что паттерну уже более десятка лет и есть немало статей (и переводов), тем не менее споров, комментариев, вопросов и разных реализаций становится все больше и больше. ПредысторияВ 2004 Мартин Фаулер написал известную статью “Inversion of Control Containers ...

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

[Из песочницы] Классификация покрова земли при помощи eo-learn. Часть 1 Привет, Хабр! Представляю вашему вниманию перевод статьи "Land Cover Classification with eo-learn: Part 1" автора Matic Lubej. Предисловие Примерно полгода назад был сделан первый коммит в репозиторий eo-learn на GitHub. Сегодня, eo-learn превратился в замечательную библиоте...

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

#Antelope Audio Edge Go – моделирующий USB микрофон Производитель студийного оборудования Antelope Audio анонсировал выпуск моделирующего USB микрофона Go, расширяющего серию Edge. Модель поставляется с набором эмуляций популярных студийных микрофонов, которые можно использовать в режиме реального времени. Моделирование звука...

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

[Перевод] Улучшенные четыре правила проектирования ПО Привет, Хабр! Представляю вашему вниманию статью "Four Better Rules for Software Design" автора David Bryant Copeland. David Bryant Copeland — архитектор ПО и технический директор Stitch Fix. Он ведет свой блог и является автором нескольких книг. Мартин Фаулер недавно создал...

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

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

Представляем Tartiflette: реализацию GraphQL с открытым исходным кодом для Python 3.6+ Друзья, в преддверии майских праздников мы решили не заваливать вас сложными техническими статьями, поэтому нашли довольно интересный, а главное, легкий в прочтении материал, переводом которого с радостью делимся с вами. Данный материал мы хотим приурочить к запуску курса «W...

Видеообзор Polaris PIR 2696AA 3m: утюг с функцией парового удара Polaris PIR 2696AA 3m — утюг с технологией Smart Heat, то есть с равномерным распределением тепла по подошве. У него есть функция интенсивной подачи пара (парового удара) для вертикального отпаривания. С помощью этого утюга можно успешно и без деформации разглаживать любые д...

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

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

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

Рисуем звук Пять лет назад на Хабре была опубликована статья «Печать и воспроизведение звука на бумаге» — о системе создания и проигрывания спектрограмм. Затем, полтора года назад Meklon опубликовал квест, в котором такая чёрно-белая логарифмическая спектрограмма стала одним из этапов. ...

[Перевод] Почему для открытия меню Windows читает один файл сто тысяч раз? «Проводник тратит 700 мс на то, чтобы открыть контекстное меню панели задач. 75% этого времени он выполняет 114 801 операцию считывания из одного файла, средний объём считываемых данных 68 байт. Мне стоит написать пост об этом, или достаточно саркастичного твита?» За комп...

Что позволено Jupyter? Наша история началась с, казалось бы, несложной задачи. Нужно было настроить аналитические инструменты для для data science специалистов и просто аналитиков данных. С таким заданием к нам обратились коллеги из подразделений розничных рисков и CRM, где исторически высока конц...

[Перевод] Основы движков JavaScript: общие формы и Inline кэширование. Часть 2 Всем привет! Курс «Безопасность информационных систем» стартует уже через 2 недели, поэтому сегодня мы хотим опубликовать вторую часть статьи, публикация которой приурочена к его запуску. Прочитать первую часть можно тут. Итак, начнем. Inline Caches (ICs) Основной идеей, к...

Server Side Rendering для React App на Express.js На написание этой статьи меня сподвигло отсутствие какого-либо более-менее полного мануала, как же сделать Server Side Rendering для React приложения. Когда я столкнулся с этой проблемой, у меня было 2 варианта это сделать, либо Next.js фреймворк, либо используя Express.js....

[Из песочницы] Как разработать ещё один платформер с помощью Unity. Ещё один туториал Привет, Хабр! Под катом вас ждёт ещё одна статья, которая расскажет о том, как я поставил себе цель запрограммировать игру, основываясь на переводе статьи на Хабр под названием Паттерны дизайна уровней для 2D-игр. Статья имеет много текста (как обычного, так и исходного) и м...

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

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

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

[Перевод] Авария Boeing 737 Max глазами разработчика ПО Представляю вашему вниманию перевод статьи «How the Boeing 737 Max Disaster Looks to a Software Developer» Грега Трэвиса. Речь пойдет о том, как желание Боинга сэкономить и «срезать углы» для коммерческой выгоды, а также культура «некомпетентности и неэтичности» в сообществе...

Разработка hexapod с нуля (часть 5) — электроника Всем привет! Разработка гексапода близится к завершению первой боевой версии и вот настало время для описания всей его электронной начинки. На данном этапе разработки я наконец-то покажу все исходники проекта на github (ссылки как всегда будут в конце). Так же я добавил HC-...

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

Не только смс и токен: многофакторная аутентификация на базе SafeNet Authentication Service Обычно при фразе “многофакторная аутентификация” люди в первую очередь вспоминают про смс-коды, которые приходят, когда оплачиваешь картой онлайн-покупки. Чуть реже на ум приходит флешка с цифрами, токен. Сегодня я расскажу про другие способы многофакторной аутентификации и...

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

Делаем крутой sticky-эффект для слайдера на React Есть много разных библиотек для реализации слайдера со всеми возможными эффектами. Для React одни из лучших это: ReactSlick и Swiper. Но когда для моего проекта потребовался горизонтальный sticky-эффект, то ничего подходящего не нашлось. В этой статье мы попробуем поэтапно...

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

Нужен ли вашей команде Data Engineer? Мы часто находим классные англоязычные статьи, которые кажутся полезными нашей команде, и решили, что было бы здорово делиться с читателями Хабры их переводом. Сегодня мы подготовили перевод статьи Тристана Хэнди, основателя компании Fishtown Analytics. Читать дальше →

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

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

DIY тепловизор на Raspberry PI или «Кажется теперь я знаю, чем займусь этим летом» Всем привет! Пришла зима, а с ней и задача проверить теплоизолирующие свойства построек загородной резиденции дачи. А тут ещё оказалось, что на известном китайском сайте появились вполне доступные тепловизионные модули. Не собрать ли себе экзотическую и, возможно, даже по...

Junior-разработчики — почему мы их нанимаем и как мы с ними работаем Всем привет! Меня зовут Катя Юдина, и я IT-рекрутмент менеджер в Авито. В этой статье расскажу, почему мы не боимся нанимать джуниоров, как мы к этому пришли и какую пользу мы с ними приносим друг другу. Статья будет полезна компаниям, которые хотят нанимать джуниоров, но по...

[Перевод] Механизмы расширяемых расширений в JavaScript Здравствуйте, коллеги! Напоминаем, что не так давно у нас вышло 3-е издание легендарной книги «Выразительный JavaScript» (Eloquent JavaScript) — на русском языке напечатано впервые, хотя качественные переводы предыдущих изданий встречались в Интернете. Тем не менее, ни J...

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

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

Бэкап для Linux не пишет писем Всем привет! Сегодня хочу поведать о том, как управлять Veeam Agent for Linux с помощью командной строки, и о том, какие возможности она открывает в умелых руках программиста. На написание статьи меня подтолкнул комментарий к предыдущей статье. Перефразирую удивление поль...

Windows 10 теперь работает на OnePlus 6T Windows 10 on ARM позволила разработчикам устанавливать неподдерживаемую настольную операционную систему на смартфоны. В прошлом году мы видели Lumia 950 XL с Windows 10 на ARM, и некоторым разработчикам удалось перенести проект на Google Pixel 3 XL, который также использует...

[Перевод] Порождение событий, CQRS и Laravel Перевод статьи подготовлен для студентов профессионального курса «Framework Laravel» ________________________ Введение Эта статья посвящена основам создания событийных CQRS-систем на языке PHP и в фреймворке Laravel. Предполагается, что вы знакомы со схемой разработки с ...

[Перевод] 10 советов и приемов, которые помогут вам стать лучшим разработчиком на VueJS Перед вами вольный перевод статьи 10 Tips & Tricks to make you a better VueJS Developer с сайта Dev.to. Автор расскажет нам об интересных и полезных вариантах применения привычных нам средств VueJS. Введение Мне действительно нравится работать с VueJS и каждый раз, когда...

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

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

Замыкание обобщенного типа в Rust В этой короткой статье я расскажу о паттерне в Rust, который позволяет "сохранять" для последующего использования тип, переданный через обобщенный метод. Этот паттерн встречается в исходниках Rust-библиотек и я тоже иногда его использую в своих проектах. Мне не удалось найт...

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

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

Плагины vue-cli, работа со «сложными» данными и тестирование на основе свойств — анонс Panda-Meetup Frontend Привет! 6 июля, в следующую субботу, у нас в офисе пройдёт Panda Meetup #22, посвящённый фронтенд-разработке. Мы обсудим, зачем создавать свои плагины и как с ними работать, как обращаться с объектами с большой вложенностью и хитрой структурой и как тестировать не на примера...

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

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

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

[Перевод] Извлечение данных при машинном обучении Хотите узнать о трех методах получения данных для своего следующего проекта по ML? Тогда читайте перевод статьи Rebecca Vickery, опубликованной в блоге Towards Data Science на сайте Medium! Она будет интересна начинающим специалистам. Получение качественных данных — это пе...

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

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

Он вам не дRook В связи с набирающей популярностью Rook хочется поговорить о его подводных камнях и проблемах, которые ждут вас на пути. О себе: Опыт администрирования ceph с версии hammer, основатель комьюнити t.me/ceph_ru в телеграм. Дабы не быть голословным я буду ссылаться на принятые...

PVS-Studio для Visual Studio Многие наши статьи посвящаются чему угодно, но только не самому инструменту PVS-Studio. А ведь мы очень много делаем, чтобы разработчикам было удобно пользоваться нашим инструментом. Но как раз это часто оказывается за кадром. Решил исправить эту ситуацию и рассказать об пл...

[Перевод] Я ненавижу почти всё ПО Прим. переводчика: Недавно создатель NodeJS Райн Дал открывал конференцию HolyJS в питере. И я вспомнил, что у меня есть неопубликованный перевод с его блога и решил его опубликовать. Местами перевод довольно откровенный. Надеюсь, вам будет интересно. Дата выхода статьи — Ок...

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

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

ThingJS v1.0-alpha Последние два года я разрабатывал собственную IoT платформу и сегодня готов показать ее альфа версию. Вместе с партнером мы создаем и поддерживаем IoT устройства. Мы разобрали не один сарай с граблями в процессе этой деятельности. ThingJS родилась не столько из желания, ско...

Как технический перевод превращается в минидетектив Представлюсь Я ИТ-переводчик, эпизодически — преподаватель перевода. Занимаюсь переводами я с 2006 года, читаю Habr.com регулярно, но публикуюсь здесь впервые. На проектах, вытягивая из слов технический смысл, я иногда забредаю туда, куда обычно переводчики не заглядываю...

[Из песочницы] SpaceVIL — кроссплатфоремнный GUI фреймворк для разработки на .Net Core, .Net Standard и JVM В данной статье я постараюсь рассказать о фреймворке SpaceVIL (Space of Visual Items Layout), который служит для построения пользовательских графических интерфейсов на платформах .Net / .Net Core и JVM. SpaceVIL является кроссплатформенным и мультиязычным фреймворком, в его ...

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

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

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

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

Блокчейн: что нам стоит PoC построить? Глаза боятся, а руки чешутся! В прошлых статьях мы разобрались с технологиями, на которых строятся блокчейны (Что нам стоит блокчейн построить?) и кейсами, которые можно с их помощью реализовать (Что нам стоит кейс построить?). Настало время поработать руками! Для реализаци...

Анатомия акустических систем: правда и вымыслы об NXT-излучателях Рад приветствовать всех вновь. Мы возобновляем активность в этом блоге после непродолжительного перерыва. И начну я с поста о сравнительно необычной разновидности звуковых излучателей, которые последние 20 лет применяются для создания акустических систем. Многим также знаком...

Microsoft хочет принести эмуляцию x86-64 приложений в Windows на ARM Microsoft собирается добавить эмуляцию x86-64 приложений в Windows на ARM

[Из песочницы] Изучить отзывчивый веб-дизайн за 5 минут Привет, Хабр! Представляю вашему вниманию перевод статьи «Learn responsive web design in 5 minutes» автора Per. В этой статье я научу вас многим приёмам отзывчивого дизайна за 5 минут. Этого, очевидно, недостаточно для правильного изучения, но здесь вы найдёте обзор на след...

Ученые сумели создать точный аналог сливочного масла — но без жира Ученые из Корнельского университета (США) разработали замену для традиционного сливочного масла из молочного жира. Главным критерием проекта было снижение количества жира и калорий при сохранении вкуса, внешнего вида и свойств масла.

[Перевод] Что я узнал про оптимизацию в Python Всем привет. Сегодня хотим поделиться еще одним переводом подготовленным в преддверии запуска курса «Разработчик Python». Поехали! Я использовал Python чаще, чем любой другой язык программирования в последние 4-5 лет. Python – преобладающий язык для билдов под Firefox, те...

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

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

Смотрим фильмы с комфортом С развитием интернета необходимость в загрузке фильмов просто пропала — зачем тратить на это время и место на устройстве, если можно зайти на HD-VIDEOBOX и посмотреть необходимый фильм в онлайне? Это гораздо удобнее, чем загружать фильм из интернета или смотреть контент чере...

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

Podlodka #115: Digital nomads Есть люди, для которых отпуск – это не только повод поехать понежиться две недели на лазурном берегу океана, а еще и возможность попутешествовать, побывать в каком-то новом месте. И большинство из них сталкиваются с одним "но": отпуск имеет свойство быстро заканчиваться, а с...

[Из песочницы] Сказ о том, как чайник Autoplay Media Studio 8.5.3.0 ломал Как не трудно догадаться, то чайник — это я. Захотелось мне на днях в исходник одной утилитки заглянуть, очевидно сделанной средствами AMS (.cdd файл рядом с .exe и пара lua*.dll). Пару лет назад разбирал детально одну программу сделанную аналогичными средствами и предста...

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

Nginx VTS Stats, Mockify — mock API, сравнение Wiremock и Mockify В этом посте я хотел сделать демо Nginx VTS + Prometheus + Grafana. Для демо необходимо было чтобы upstream могли выдавать разные http коды. Это могли сделать следующие проекты: Mockify, написанный на Golang, и WireMock, написанный на Java. Небольшое оглавление установка и...

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

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

[Из песочницы] Имплементация кэша на Verilog В данной статье разбор простейшей реализации RAM на языке Verilog. Перед тем, как перейти к разбору кода, рекомендуется изучить базовый синтаксис языка Verilog. Здесь вы можете найти обучающие материалы. Читать дальше →

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

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

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

Вести со дна: IT-гиганты начали активно строить собственные подводные магистральные сети Мы уже давно привыкли, что крупные IT-компании занимаются не только выпуском продуктов и оказанием услуг, но и активно участвуют в развитии интернет-инфраструктуры. DNS от Google, облачные хранилища и хостинг Amazon, дата-центры Facebook по всему миру — пятнадцать лет назад ...

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

Распознавание объектов в режиме реального времени на iOS с помощью YOLOv3 Всем привет! В данной статье мы напишем небольшую программу для решения задачи детектирования и распознавания объектов (object detection) в режиме реального времени. Программа будет написана на языке программирования Swift под платформу iOS. Для детектирования объектов буд...

[Из песочницы] Крибле Карбле Gradle: магия автоматической сборки Разработчики облегчают жизнь людям, а Gradle — разработчикам. Если вы пишете на Android, эта статья для вас. Читайте о том, что за зверь этот Gradle (спойлер: он слон), а также — как с ним работать. Gradle — система автоматической сборки, которую используют для упрощения раб...

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

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

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

Устанавливаем Vmware ESXi на Mac Pro 1,1 В статье описываю свой опыт установки VMware ESXi на старинный Apple Mac Pro 1,1. От заказчика поставлена задача – расширить файловый сервер. Как создавался файловый сервер компании на PowerMac G5 в 2016, и какого было обслуживать созданное legacy достойно отдельной стать...

Не очередной язык программирования В последнее время на рынке появилось огромное количество новых языков программирования: Go, Swift, Rust, Dart, Julia, Kotlin, Hack, Bosque – и это только из числа тех, которые на слуху. Ценность того, что эти языки привносят в мир программирования, тяжело переоценить, но,...

[Из песочницы] Что ты такое, замыкания в JavaScript? В этой статье я постараюсь разобрать механизм реализации замыканий в JavaScript. Для этого я буду использовать браузер Chrome. Начнем с определения: Замыкания  - это функции, ссылающиеся на независимые (свободные) переменные. Другими словами, функция, определённая в замыка...

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

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

Немного технической лирики о C++ Tools от JetBrains, и при чем тут единороги Начну не с моего типичного “Привет, Хабр! У нас тут очередной крутой релиз”, а с “Привет, меня зовут Настя, я ПММ в JetBrains и я отвечаю за наши инструменты для C++”. Или нет, попробую еще раз, вот так: “Привет, пишет вам C++ разработчик с 8-летним стажем, который 5 лет наз...

[Перевод] Как логировать в NodeJS, чтобы пацаны во дворе уважали Что вас бесит сильнее всего, когда вы пытаетесь организовать читаемые логи в вашем NodeJS приложении? Лично меня чрезвычайно напрягает отсутствие каких-либо вменяемых зрелых стандартов по созданию trace ID. В этой статье мы поговорим о том, какие есть варианты создания trac...

[Перевод] Визуализируем и разбираемся с Hash Match Join Этот пост является третьей частью серии, посвященной операторам соединения (обязательно прочитайте часть 1 — nested loops joins, и часть 2 — merge joins). Перевод статьи подготовлен специально для студентов курса «MS SQL Server разработчик». Hash Match Joins — это надежные ...

Элементарный Canvas Если вы изучаете веб совсем недавно, но уже успели увидеть различные красивые эффекты на сайте, по типу системы частиц или какие либо игры разработанные на canvas'e и вас это заинтриговало, но изучать что-то новое очень страшно, то я вам готов продемонстрировать, как за 50 с...

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

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

РНР-безопасность: где и как хранить пароли. Часть 2 Всем привет! На прошлой неделе мы опубликовали первую часть данной статьи, чем вызвали нешуточный холивар. Одной из главных претензий было отсутствие в статье упоминания password_hash, как мы и обещали, вторую часть данного материала начнем как раз таки с хеширования парол...

OpenCV на STM32F7-Discovery Я один из разработчиков операционной системы Embox, и в этой статье я расскажу про то, как у меня получилось запустить OpenCV на плате STM32746G. Если вбить в поисковик что-то вроде "OpenCV on STM32 board", можно найти довольно много тех, кто интересуется использованием это...

[Перевод] Процедурные дороги в Houdini и Unity Для моей постапокалиптической игры Frameshift мне нужно было заполнить очень большой открытый мир разнообразными городами. В нашей команде всего 3 человека, поэтому я, разумеется, воспользовался процедурной мощью Houdini! Раньше, когда не знал о Houdini, я писал на C# соб...

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

[Перевод] Приёмы в проектировании пользовательского интерфейса, которые сэкономят время В переводе этой статьи автор приводят ряд советов и приёмов, которые упростят жизнь при проектировании дизайна пользовательского интерфейса. В статье даны сведения о полезных и экономящих время возможностях работы таких программ как Sketch, Adobe Illustrator, Figma, Adobe XD...

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

[Из песочницы] Xamarin.Forms — удобное использование иконочных шрифтов в приложении Постановка задачи Для отображения иконок в приложении Xamarin.Forms можно использовать изображения в различных форматах, например png, svg или шрифты ttf. Чаще всего для добавления стандартных иконок удобен шрифт с иконками, например google material icons. Шрифт с иконками ...

[Из песочницы] 2 минуты с Webpack tree-shaking и re-export Вступление Позвольте мне начать. У нас был монолитный фронтэнд с большим наследием. Сервисы жили в одних файлах с компонентами. Всё было вперемешку и с лозунгом на фасаде: “Пусть всё будет под рукой – так легче найти, что надо". И не важно, что длина файла 200+, 300+, 5...

Microsoft хочет исправить главную проблему Windows 10 на ARM к 2021 году Ведётся работа над эмуляцией 64-разрядных приложений.

Как попасть в топ Google в ЕС/США в нише разработки и найти клиентов с большими бюджетами Пост лучше всего подойдет разработчикам «one-man-company» или командам. Я расскажу, как достаточно легко и просто (при отсутствии или минимальном бюджете) попасть в топ поисковой выдачи в развитых странах в нише разработки и перестать бороться за клиентов в СНГ, которые хотя...

Edition-Based Redefinition: можно ли в production? Привет! Меня зовут Антонина, я Oracle-разработчик IT-подразделения «Sportmaster Lab». Работаю тут всего два года, но благодаря дружной команде, сплоченному коллективу, системе наставничества, корпоративному обучению, накопилась та самая критическая масса, когда хочется не пр...

[Из песочницы] Что значит unsafe в Rust? Привет, Хабр! Представляю вашему вниманию перевод статьи "What Is Rust's unsafe?" автора Nora Codes. Мне доводилось видеть много недопониманий относительно того, что значит ключевое слово unsafe для полезности и правильности языка Rust и его продвижения как "б...

[Из песочницы] Забота о себе во время написания кода Привет, Хабр! Представляю Вашему вниманию перевод статьи «Developer health — taking care of yourself as you code» автора Christopher Kad. Недавно мне поставили диагноз «тендинит», и, конечно, в этом нет ничего особенного, и его можно вылечить, но я понял, что не слишком хор...

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

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

Cura 3.6 и Anycubic I3 Mega - невозможность выбора материала. Проблема решается правкой профиля настроек принтера. Открываем файл ..\Ultimaker Cura 3.6\resources\definitions\anycubic_i3_mega.def.json и правим свойство "has_materials" на true и перезапускаем.Подробнее...

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

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

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

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

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

[Перевод] Слишком чисто? Привет, Хабр! Предлагаю вашему вниманию перевод статьи "Too Clean?" автора Robert C. Martin (Uncle Bob). Я только что посмотрел выступление Сары Мэй: Жизнеспособный код. Это было очень хорошо. Я полностью согласен с основными моментами ее выступления. С другой стороны, темо...

[Перевод] Генерация подземелий в Diablo 1 Diablo 1 — это классический roguelike 1996 года в жанре hack and slash. Это была одна из первых успешных попыток познакомить широкие массы с roguelike, которые до этого имели нишевую графику в виде ASCII-арта. Игра породила несколько сиквелов и множество имитаций. Она извес...

Марвин Мински «The Emotion Machine» (хабраперевод, раунд второй) Привет, Хабр! Год назад мы проделали отличную работу. Корявенько, наполовину, но всё же отличную. Ноосфера послала мне сигнал, что пришла пора доделать её до конца. Я думал, что эта работа оказалось никому не нужна, но неделю назад известный писатель-фантаст-киберпанкер с...

Проверка корректности адресов в памяти на Cortex-M0/M3/M4/M7 Привет, Хабр! По поводу случившегося на днях послабления режима, возмущения в комментариях одного соседнего поста о том, что статьи про микроконтроллеры — сплошь мигание светодиодом, а также безвременной гибели моего стандалон-блога, восстанавливать который мне пока лень, п...

Использование Spring state machine на практическом примере Использование Spring state machine на примере протокола РОСЭУ. В статье описано использование Spring state machine на примере установки соединения согласно технологии РОСЭУ. Соединение устанавливается между двумя операторами ЭДО в режиме точка-точка или через роуминговый це...

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

[Из песочницы] DDS Синтезатор на Verilog В этом посте я поделюсь тем, как разбирался с написанием DDS синтезатора на Verilog. Он будет использован для генерации синусоидального колебания, частоту и начальную фазу которого можно регулировать и рассчитан для использования с 8-битным однополярным ЦАП. О том, как рабо...

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

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

Расчёт каннибализации на основе классического A/B-теста и метод bootstrap’а В данной статье рассмотрен метод расчёта каннибализации для мобильного приложения на основе классического A/B-теста. В данном случае рассматриваются и оцениваются целевые действия в рамках процесса реаттрибуции с рекламного источника (Direct, Criteo, AdWords UAC и прочих) по...

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

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

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

Прогнозируем свойства процессоров AMD Zen 3 по характеристикам 7-нм техпроцесса второго поколения Пока слишком рано делать окончательные выводы.

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

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

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

[Перевод] Что нужно знать о массивах JavaScript Представляем вам перевод статьи автора Thomas Lombart, которая была опубликована на сайте medium.freecodecamp.org. Перевод публикуется с разрешения автора. Пример использования метода reduce для сокращения массива Позвольте мне сделать смелое заявление: циклы часто бывают...

[Перевод] Зачем использовать python -m pip И снова здравствуйте. В преддверии старта нового потока по курсу «Machine Learning», хотим поделиться переводом статьи, которая имеет довольно косвенное отношение к ML, но наверняка будет полезна подписчикам нашего блога. Мариатта — разработчик из Канады, спросила в Тви...

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

[Перевод] Реализация анимации в React Native Перевод статьи подготовлен специально для студентов курса «ReactJS/React Native-разработчик». Трудно себе представить мобильное приложение, в котором нет анимации. В вебе анимации обычно простые, если они есть вообще (максимум – одна страница сменяет другую). Анимации же...

[Перевод] Оттенки значений в английском языке: как использовать глаголы Advise, Recommend, Suggest Английский язык часто воспринимается как нечто не столь сложное, как некоторые другие языки – взять тот же немецкий. Но на самом деле в нем есть достаточное количество трудностей и тонких моментов («Пишется Ливерпуль, а читается Манчестер» ). Один из них, вызывающий личн...

Бэкап файловых и SQL баз 1С средствами Effector Saver (в облако и с шифрованием) В этой статье я хочу поделиться опытом резервного копирования файловых и SQL баз 1С в локальное, сетевое и облачное (на примере Google Drive) хранилище с помощью Effector Saver. Писал инструкцию для друга, но думаю она пригодиться и кому-то из вас. И как всегда, в комментар...

[Из песочницы] Простой вариант реализации многопоточности на PHP Многопоточность в PHP отсутствует «из коробки», поэтому вариантов её реализации было придумано великое множество, включая расширения pthreads, AzaThread (CThread), и даже несколько собственных наработок PHP программистов. Основным минусом для меня стало слишком больше колич...

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

Yii 2.0.16 Команда PHP-фреймворка Yii выпустила версию 2.0.16, содержащую более сотни исправлений и немного улучшений. Исправлены несколько проблем с безопасностью. Ветка Yii 2.0 достигла заморозки более чем год назад, что означает что в неё принимаются главным образом исправления. Сд...

[Из песочницы] Восстановление когнитивных способностей 100 пациентов (перевод статьи Дейла Бредесена) Привет, Хабр! Представляю вашему вниманию перевод оригинальной статьи Дейла Бредесена, директора отдела нейродегенеративных заболеваний медицинского факультета Калифорнийского университета в Лос-Анджелесе (UCLA), автора «The End of Alzheimer's: The First Program to Prevent...

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

[Перевод] Сила дженериков в Swift. Часть 2 Добрый день, друзья. Специально для студентов курса «iOS Разработчик. Продвинутый курс» мы подготовили перевод второй части статьи «Сила дженериков в Swift». Связанные типы, условия where, сабскрипты и прочее… В статье «Сила дженериков в Swift. Часть 1» описывались gene...

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

Что делать, если кнопки на Android-смартфоне перестали работать Даже если кнопки перестали работать, всегда есть алтернатива Сегодня физические кнопки на смартфонах становятся все более редкими «гостями». Практически все основные элементы управления заменены сенсорными аналогами. Однако совсем отказаться от старых-добрых кнопок...

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

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

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

Ведущий разработчик Cyberpunk 2077 ушёл в Blizzard Себастьян Стемпень (Sebastian Stepien), креативный директор проекта The Witcher 3, покинул компанию CD Projekt RED для работы в Blizzard. Стоит отметить, что помимо должности креативного директора он занимал ещё и пост директора по повествованию и сеттингу игры Cyberpunk 207...

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

Make Your Database Dream of Electric Sheep: Designing for Autonomous Operation Как вы думаете, кто лучше настроит PostgreSQL — DBA или ML алгоритм? И если второй, то пора ли нам задуматься, чем заняться, когда нас заменят машины. Или до этого не дойдет, и важные решения все-таки должен принимать человек. Наверное, уровень изоляции и требования к устойч...

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

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

Jaxb (XJC) генерация классов из XML Schema (XSD) с описаниями классов и полей в виде аннотаций. XJC плагин Думаю многие Java-разработчики которые хоть раз сталкивались с Web-сервисами, использовали генерацию Java DTO классов по описанию XML Schema (XSD). Jaxb с этим справляется на ура, не важно как его использовать, через xjc или wsimport вызов из командной строки, maven или grad...

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

[Перевод] Ускорение разведочного анализа данных с использованием библиотеки pandas-profiling Первым делом, приступая к работе с новым набором данных, нужно понять его. Для того чтобы это сделать, нужно, например, выяснить диапазоны значений, принимаемых переменными, их типы, а также узнать о количестве пропущенных значений. Библиотека pandas предоставляет нам множе...

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

[Из песочницы] System.Console, Mono и NCurses Всем привет, в своей работе (а ранее и в учебе) я часто использую C# и этот язык стал мне, что называется, привычным. Решив немного потренироваться в программировании, я написал консольный текстовый редактор для Linux. Вкратце опишу полученный опыт. В Mono класс System.C...

Трансляция проектов и библиотек из Altium Designer в PADS Professional Часто у инженеров возникает необходимость транслировать проекты из одной САПР в другую. На предприятиях не редко бывает такая ситуация, когда разные отделы проектируют в разных САПРах. Также трансляция проектов может потребоваться, когда ваша система проектирования уже не с...

[Из песочницы] Всё что вам нужно знать о Node.js Привет, Хабр! Представляю вашему вниманию перевод статьи "Everything you need to know about Node.js" автора Jorge Ramón. В наши дни платформа Node.js является одной из самых популярных платформ для построения эффективных и масштабируемых REST API's. Она так же под...

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

RTOS или не RTOS вот в чем вопрос На написание данной статьи меня побудила длинная ветка комментариев (дискуссией это я назвать, к сожалению, не могу) к моей недавней статье “Многообразный мир embedded systems и место Embox в нем”. Меня в нескольких местах упрекнули в том, что я путаю RTOS и Embedded OS, чт...

Как выбрать СХД, не выстрелив себе в ногу Введение Пришла пора покупать СХД. Какую взять, кого слушать? Вендор А рассказывает про вендора B, а еще есть интегратор C, который рассказывает обратное и советует вендора D. В такой ситуации и у опытного архитектора по системам хранения голова пойдет кругом, особенно со в...

[Из песочницы] Изучая go: пишем p2p мессенджер со сквозным шифрованием Yet another P2P Messenger Читать отзывы и документацию о языке не достаточно, чтобы научиться на нем писать более менее полезные приложения. Обязательно для закрепления нужно создать что-то интересное, чтобы наработки можно было бы использовать в других своих задачах. Стать...

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

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

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

Носорог внутри кота — запускаем прошивку в эмуляторе Kopycat В рамках встречи 0x0A DC7831 DEF CON Нижний Новгород 16 февраля мы представили доклад о базовых принципах эмуляции бинарного кода и собственной разработке — эмуляторе аппаратных платформ Kopycat. В статье мы приведём описание запуска прошивки устройства в эмуляторе, продемо...

Алгоритм мышления и сознания, часть 2 Данный текст содержит пояснения к алгоритму из моей первой статьи “Алгоритм мышления и сознания”. Тезисы первой статьи: Феномен субъективного мышления можно алгоритмизовать. Предъявленный в статье алгоритм мыслит и этим можно воспользоваться практически. С помощью алгорит...

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

Выпуск Rust 1.37.0: Profile-Guided Optimization, неименованные константы и cargo vendor Представляем вашему вниманию перевод публикации о новой версии всеми любимого языка программирования Rust. Введение Команда разработчиков Rust рада сообщить о выпуске новой версии, 1.37.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное...

[Перевод] Полезные инструменты Python Друзья, добрый вечер! У нас отличные новости, открыт набор в новую группу по курсу «Разработчик Python». Группа стартует уже в начале июля, а прямо сейчас, по устоявшейся традиции, мы делимся полезным переводом подготовленным для студентов данного курса. Когда вы только н...

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

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

Обзор cPanel — веб-консоли для управления сайтами и хостингом Продолжаем серию постов о панелях управления хостингом и сайтами (веб-консолях), которые RUVDS предлагает своим клиентам. Сегодня мы рассмотрим одну из самых популярных панелей cPanel, лицензию на которую можно получить бесплатно на 2 недели, при покупке виртуального сервера...

«МегаФон» и «МТС» запустили бесплатный обмен старых смартфонов на новые Электроника имеет свойство быстро устаревать, а поделать с этим что-либо нельзя. Постоянно тратить деньги на покупку нового смартфона могут позволить себе далеко не все, но теперь в этом нет никакой необходимости, потому что компании «МегаФон» Сообщение «МегаФон» и «МТС» за...

Определение кодировки текста в PHP вместо mb_detect_encoding Существует несколько кодировок символов кириллицы. При создании сайтов в Интернете обычно используют: utf-8 windows-1251 koi8-r Еще популярные кодировки: iso-8859-5 ibm866 mac-cyrillic Вероятно это не весь список, это те кодировки с которыми я часто сталкиваюсь. Иног...

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

[Перевод] В двух словах о привилегиях Linux (capabilities) Перевод статьи подготовлен специально для студентов курса «Администратор Linux». Привилегии (capabilities) используются всё больше и больше во многом благодаря SystemD, Docker и оркестраторам, таким как Kubernetes. Но, как мне кажется, документация немного сложна для понима...

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

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

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

Физики считают, что в жизнь может существовать в 2D-мире Почему мы живем во Вселенной с тремя пространственными и одним временным измерением — 3 + 1, как сказали бы космологи? Почему именно такая комбинация, а не 4 + 2 или 2 + 1? За последнее десятилетие физики много раз исследовали этот вопрос, задумывая другие вселенные с други...

[Перевод] Работа над PEG на Core Developer Sprint В этой статье я не буду рассказывать о новых фичах генератора парсера — я достаточно описал его в предыдущих частях. Вместо этого хочу рассказать что я делал на Core Developer Sprint на прошлой неделе, прежде чем всё сотрётся из моей памяти. Хотя большая часть материала так ...

Член правления ЕЦБ: криптовалюты от центробанков обеспечат финансовую стабильность Глава Банка Литвы и член правления Европейского центрального банка (ЕЦБ) Витас Василяускас рассказал о перспективах развития и преимуществах государственных цифровых валют, выпущенных центробанками (central bank digital currency, CBDC). Об этом сообщает Cointelegraph В частн...

AERODISK Engine: Катастрофоустойчивость. Часть 1 Привет, читатели хабра! Темой этой статьи будет реализация средств катастрофоустойчивости в системах хранения AERODISK Engine. Изначально мы хотели написать в одной статье про оба средства: репликацию и метрокластер, но, к сожалению, статья получилась слишком большой, поэто...

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

[Из песочницы] Замена Punto Switcher, раскладки Бирмана с помощью скрипта на autohotkey В данной статье я не предлагаю полностью заменить Punto Switcher (Спасибо Сергею Москалёву за данную программу), а только в очень ограниченном функционале. Довольно давно пользуюсь программой Punto Switcher, но не в целях автопереключения, а как переключатель по левому и пра...

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

[Перевод] Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен Вашему вниманию предлагается перевод поста Гергелия Ороса, занимающего должность Engineering Manager в Uber. В нем он делится своим взглядом на проектирование крупномасштабных систем, основанном на собственном практическом опыте работы в Uber и Microsoft. В сочетании с ком...

[Перевод] Новости из мира OpenStreetMap № 477 (03.09.2019-09.09.2019) Компания «Development Seed» объявила о запуске сервиса mapping.team, с помощью которого можно координировать действия картографов и создавать сообщества 1 | kamicut, Development Seed Уточнение В предыдущем выпуске новостей была информация о том, что в Совете OSMF в скором ...

[Из песочницы] Лучшие практики React и советы, которые каждый разработчик должен знать. Часть 1 Привет, Хабр! Представляю вашему вниманию перевод статьи «React Best Practices & Tips Every React Developer Should Know Pt.1» автора Alex Devero. React — одна из самых популярных библиотек для построения интерактивных пользовательских интерфейсов. В этой статье я пока...

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

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

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

У цветового треугольника не два, а один угол Как увидеть цвет, которого в природе не бывает? Четыре года назад на Хабое был пост с интересным и полезным видео «Как устроен цвет». Лектор — Дмитрий Николаев, заведующий сектором зрительных систем ИППИ РАН. Я сделал расшифровку (в меру своего понимания материала), пото...

Мужчина, pause on caught exceptions Поговорим о практическом применении одной очень интересной темы — системного мышления. Принципов и методов в системном мышлении много, очень рекомендую почитать соответствующую литературу. Например, простую и интересную книгу. Сегодня мы затронем только один принцип — эмерд...

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

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

Патенты в дизайне: часть вторая (примеры от Microsoft, Snapchat, Samsung, Netflix, Airbnb, Tinder) Под катом — вторая часть перевода статьи о том, как крупные, известные компании защищают свои дизайн-решения (и какие именно). Примерное представление о том, как происходит процесс оформления прав на тот или иной интерфейс, можно получить в первой части. Читать дальше →

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

Copper3D предлагает филаменты с антибактериальными и противогрибковыми свойствами Чилийская компания Copper3D выводит на европейский рынок филаменты для 3D-принтеров с антибактериальными и противогрибковыми свойствами, предназначенные для 3D-печати ортезов, протезов и медицинских инструментов.Подробнее...

Введение в контекстно-ориентированное программирование на Kotlin Это перевод статьи An introduction to context-oriented programming in Kotlin В этой статье я постараюсь описать новое явление, которое возникло как побочный результат стремительного развития языка Kotlin. Речь идет о новом подходе к проектированию архитектуры приложений и б...

Умный сервис кэша на базе ZeroMQ и Tarantool Руслан Ароматов, главный разработчик, МКБ Привет, Хабр! Я работаю бэкенд-разработчиком в Московском кредитном банке, и за время работы у меня накопился некоторый опыт, которым я хотел бы поделиться с сообществом. Сегодня я расскажу, как мы писали свой собственный сервис к...

Руководство по реализации авто-возобновляемых подписок в iOS-приложениях Всем привет! Меня зовут Денис, я разрабатываю Apphud – сервис по аналитике авто-возобновляемых подписок в iOS-приложениях. В данной статье я расскажу как настроить, реализовать и валидировать авто-возобновляемые подписки в iOS 12 и iOS 13. Бонусом расскажу о тонких моментах...

[Из песочницы] Создание своего jsfiddle, часть 1 Привет всем читателем habr. В данной статье мы напишем свой онлайн редактор кода. Зачем я писал свой онлайн редактор кода В один день мне стало интересно насколько сложно создать свой онлайн редактор по типу jsfiddle, из-за чего я решил написать свой редактор. Написание сво...

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

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

[Перевод] Как работает Zig? От переводчика: этот пост был опубликован в блоге автора 15 марта 2018 года. Так как язык развивается, в настоящее время его синтаксис может отличаться. Всё описанное относится к Zig 0.2.0, текущая версия языка — Zig 0.3.0. Я связался с автором поста, и он любезно предостави...

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

[Перевод] Программный поиск общего кода с помощью oEmbed Всем доброго времени суток! Хочу поделиться переводом статьи ""Programmatically Discovering Sharing Code With oEmbed" автора Drew McLellan. Введение На многих сайтах размещены мультимедиа и контент, которыми можно поделиться в другой платформе с помощью некоторого HTML-кода...

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