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

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

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

MATH 42 3.3.24 MATH 42 — это программа для школьников и студентов, которая не только поможет Вам решить примеры по математике, но и подробно объяснит их ход решения. Все заданные Вами примеры решаются в режиме реального времени. MATH 42 предлагает к каждому заданному Вами примеру несколько...

Исследователь Microsoft получил престижную премию по теоретической физике за вклад в развитие квантовых вычислений Доктор Маттиас Тройер, исследователь квантовых вычислений в Microsoft, получил одну из самых престижных наград в области теоретической физики в Германии – Гамбургскую премию – за значительный вклад в развитие квантового метода Монте-Карло. Методы Монте-Карло – группа числ...

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

[Перевод] Must-have алгоритмы машинного обучения Хабр, привет. Этот пост — краткий обзор общих алгоритмов машинного обучения. К каждому прилагается краткое описание, гайды и полезные ссылки. Метод главных компонент (PCA)/SVD Это один из основных алгоритмов машинного обучения. Позволяет уменьшить размерность данных, потер...

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

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

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

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

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

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

Пишем на Rust + CUDA C Всем привет! В данном руководстве хочу рассказать как подружить CUDA C/С++ и Rust. И в качестве примера напишем небольшую программу на Rust для вычисления скалярного произведения векторов, вычисление скалярного произведения будет производиться на GPU с использованием CUDA ...

Ещё немного о тригонометрии в вычислениях На Хабре было уже много статей, посвящённых быстрым вычислениям тригонометрии, когда сильно надо, но я хотел бы дополнить их одной небольшой заметкой с отсылкой к школьной тригонометрии. Читать дальше →

[Перевод] Миллионы бинарников спустя. Как укреплялся Linux TL;DR. В этой статье мы исследуем защитные схемы (hardening schemes), которые из коробки работают в пяти популярных дистрибутивах Linux. Для каждого мы взяли конфигурацию ядра по умолчанию, загрузили все пакеты и проанализировали схемы защиты во вложенных двоичных файлах. Ра...

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

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

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

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

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

[Из песочницы] Дифференциальная геометрия кривых. Часть 1 Предисловие Привет всем читателям. Просто решил написать статью о дифференциальной геометрии кривых. На мой взгляд, тема из «непрерывной» математики будет большинству читателей Хабра полезна, по крайней мере ближайший час =), учитывая что это IT ресурс, а IT это где то ближ...

От «Цветорасширителя для ZX-Spectrum» до ZX-Poly "Цветорасширитель для ZX-Spectrum" — так называлась статья, опубликованная в эхе fido7.zx.spectrum 3 августа 1997 года. Статья описывала идею решения одной из главных проблем платформы ZX-Spectrum — конфликта атрибутов (attribute clash). Публикация вызвала в то время определ...

[Перевод] Применение интегрирования Монте-Карло в рендеринге Все мы изучали в курсе математики численные методы. Это такие методы, как интегрирование, интерполяция, ряды и так далее. Существует два вида числовых методов: детерминированные и рандомизированные. Типичный детерминированный метод интегрирования функции в интервале выгля...

Управление целями в организации: Цели и инженеры (часть 3) Продолжаем цикл публикаций о Pulse Management — Управление проектной организацией (Метод Пульса). Мы уже разобрались с моделью организации, с основными принципами Метода. Теперь время рассказать о Правилах. Правила программируют организацию, а значит они должны быть определ...

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

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

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

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

MU-MIMO: один из алгоритмов реализации Предисловие В качестве дополнения к моей недавней статье хотелось бы также поговорить о теме MU (Multi User) MIMO. Есть у мною уже упомянутого профессора Хаардта одна очень известная статья, где он вместе со своими коллегами предлагает алгоритм разделения пользователей по ни...

Новый мировой рекорд по вычислению числа пи: 31,4 трлн знаков Формула Бэйли — Боруэйна — Плаффа, которая позволяет извлечь любую конкретную шестнадцатеричную или двоичную цифру числа пи без вычисления предыдущих (нынешний рекорд был установлен на алгоритме Чудновского, см. под катом) Вычислительный кластер Google Compute Engine за 1...

[Перевод] Математики обнаружили идеальный способ перемножения чисел Разбивая крупные числа на мелкие, исследователи превысили фундаментальное математическое ограничение скорости Четыре тысячи лет назад жители Вавилонии изобрели умножение. А в марте этого года математики усовершенствовали его. 18 марта 2019 два исследователя описали самый ...

Улучшаем производительность ПО с инструментами Intel для разработчика. Численное моделирование астрофизических объектов Мы начинаем цикл статей, рассказывающих о различных ситуациях, в которых использование инструментов Intel для разработчиков позволило существенно повысить скорость работы программного обеспечения и улучшить его качество. Наша первая история произошла в Новосибирском Универ...

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

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

Фильтр Калмана для минимизации энтропийного значения случайной погрешности с не Гауссовым распределением Введение На Habr математическое описание работы фильтра Калмана и особенности его применения рассматривались в следующих публикациях [1÷10]. В публикации [2] в простой и доходчивой форме рассмотрен алгоритм работы фильтра Калмана (ФК) в модели «пространства состояний», Сл...

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

Radeon VII плохо справляется с вычислениями двойной точности На прошлой неделе компания AMD довольно неожиданно представила новую флагманскую видеокарту Radeon VII на 7-нм графическом процессоре Vega II. И почти сразу после анонса некоторые заинтересованные пользователи задались вопросом, насколько хороша новинка в вычисления...

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

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

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

Наследование в C++: beginner, intermediate, advanced В этой статье наследование описано на трех уровнях: beginner, intermediate и advanced. Expert нет. И ни слова про SOLID. Честно. Beginner Что такое наследование? Наследование является одним из основополагающих принципов ООП. В соответствии с ним, класс может использовать пер...

[Из песочницы] Тестирование настройки sendBeacon для отправки данных При использовании стандартных методов отправки данных в Google Analytics есть вероятность, что система не успеет отправить все события, если процесс был прерван перезагрузкой страницы. В начале этого года вышло несколько публикаций о том, как улучшить целостность собираемых ...

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

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

Планирование проектов в организации (часть 4) Я продолжаю цикл публикаций о Pulse Management — Управление проектной организацией (Метод Пульса). В этой статье я расскажу о самой «вкусной» части: Планирование проектов. Планирование — это самая простая и самая сложная часть любого проекта основанного целью которого являет...

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

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

Defined or Undefined? Нюансы создания массивов в JavaScript Пару месяцев назад я наткнулся на интересный вопрос на stackoverflow, там, если вкратце, человек хотел создать пустую матрицу 5х5, и, используя один способ у него получилось, а используя другой — нет. В развернувшейся дискуссии на этот счёт были приведены интересные мысли. ...

SciPy, оптимизация с условиями SciPy (произносится как сай пай) — это основанный на numpy математический пакет, включающий в себя также библиотеки на C и Fortran. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных, как MATLAB, IDL, Octave, R или SciLab. В это...

[Перевод] Бессерверные вычисления на основе OpenWhisk, часть 1 Это цикл переводных заметок автора Priti Desai. Поскольку сами заметки довольно короткие, то в одной публикации будет собрано сразу несколько. Будут рассмотрены детали развертывания приложений для OpenWhisk с примерами, а в конце цикла — приведена архитектура и код приложен...

Lazarus — пишем компонент для анимации спрайтов Вместо предисловия В одесской школе ученики 8-го класса на уроках информатики используют бесплатную кроссплатформенную среду разработки Lazarus (официальный сайт: www.lazarus-ide.org), внешне и внутренне очень напоминающую любимый многими Delphi, использующую версию Object P...

Вия, Уая, Вая, Вайя – “трудности перевода”, или что скрывается за новой платформой SAS Viya (Вайя)    В сети можно найти огромное количество разнообразных статей о методах использования алгоритмов математической статистики, о нейронных сетях и в целом о пользе машинного обучения. Данные направления способствуют существенному улучшению жизни человека и светлому будущем...

[Перевод] Краткое введение в Kustomize Прим. перев.: Статью написал Scott Lowe — инженер с большим стажем в ИТ, являющийся автором/соавтором семи печатных книг (преимущественно по VMware vSphere). Сейчас он работает в её дочерней организации VMware — Heptio (поглощена в 2016 году), специализируясь на облачных выч...

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

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

Знакомство с Neural ODE Neural Ordinary Differential Equations Значительная доля процессов описывается дифференциальными уравнениями, это могут быть эволюция физической системы во времени, медицинское состояние пациента, фундаментальные характеристики фондового рынка и т.д. Данные о таких процессах...

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

«Начало познания природы вещей»: глава Google пояснил, почему поисковый гигант уделяет особое внимание квантовым вычислениям В сентябре этого года Google отчиталась о достижении так называемого «квантового превосходства». Квантовая машина Sycomore выполнила за 200 секунд расчеты, на которые у самого совершенного классического суперкомпьютера ушло бы 10 000 лет. Сами вычисления не несли н...

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

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

[Перевод] Что же такое GitOps? Прим. перев.: После недавней публикации материала о методах pull и push в GitOps мы увидели интерес к этой модели в целом, однако русскоязычных публикаций на эту тему оказалось совсем мало (на хабре их попросту нет). Посему рады предложить вашему вниманию перевод другой стат...

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

[Перевод] Новый подход может помочь нам избавиться от вычислений с плавающей запятой В 1985 году Институт инженеров электротехники и электроники (IEEE) установил стандарт IEEE 754, отвечающий за форматы чисел с плавающей запятой и арифметики, которому суждено будет стать образцом для всего железа и ПО на следующие 30 лет. И хотя большинство программистов ...

Мошенничество в ИТ — тренд пришел в Россию или о пользе “Печных Труб”(Due Diligence) “Трудно искать кота в черной комнате, особенно если его там нет” Разбирая блоги и релизы знакомых ИТ-компаний для понимания вектора развития современного (в том числе Российского) рынка ИТ споткнулся (да-да, именно споткнулся — это не опечатка) о заметку в блоге компании С...

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

Пишем ITIL 08.08 (жаль, что не 0808 года) в составе ITIL выходит новая публикация, посвященная обзору практики Service Level Management. Я являюсь одним из авторов данного материала, второй, ясное дело, – Роман Журавлев. Поскольку дата официальной публикации уже близко, позволю себе ...

[Перевод] Бессерверные вычисления на основе OpenWhisk, часть 2 Эта статья продолжает цикл переводных заметок об OpenWhisk от автора Priti Desai. Сегодня будут рассмотрены примеры развертывания GitHub webhook, периодических сигналов, а также приведено простейшее приложение для отправки сообщений в Slack. Читать дальше →

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

Deep Learning в вычислении оптического потока С появлением множества различных архитектур нейронных сетей, многие классические Computer Vision методы ушли в прошлое. Все реже люди используют SIFT и HOG для object detection, а MBH для action recognition, а если и используют, то скорее как handcrafted-признаки для соответ...

[Перевод] Posit-арифметика: победа над floating point на его собственном поле. Часть 1 Часть 2 От переводчика: Тема формата Posit уже была на хабре здесь, но без существенных технических подробностей. В этой публикации я предлагаю вашему вниманию перевод статьи Джона Густафсона (автора Posit) и Айзека Йонемото, посвящённой формату Posit. Так как статья имеет ...

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

[Перевод] SMAA: улучшенное субпиксельное морфологическое сглаживание Данная статья основана на журнале Хорхе Хименеса, Хосе Эчеварриа, Тиаго Соуса и Диего Гутьерреса. Их демо реализации SMAA можно посмотреть здесь (файл .exe). На моём GTX 960 2GB оно работает вполне нормально. Старые способы сглаживания (антиалиасинга) Долгие годы стандарт...

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

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

Нахождение объектов без учителя (Unsupervised Object Detection) Одна из важнейших задач в машинном обучении — детектирование объектов (Object Detection). Недавно был опубликован ряд алгоритмов машинного обучения основанных на глубоком обучении (Deep Learning) для детектирования объектов. Эти алгоритмы занимают одно из центральных мест ...

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

[Перевод] Функциональный JavaScript: пять способов нахождения среднего арифметического элементов массива и метод .reduce() Методы итерирования массивов похожи на «стартовые наркотики» (это, конечно, не наркотики; и я не говорю, что наркотики — это хорошо; это — просто фигура речи). Из-за них многие «подсаживаются» на функциональное программирование. Всё дело в том, что они невероятно удобны. Кро...

[recovery mode] Сократить время вычислений от нескольких лет до минут. Разбираемся с квантовым машинным обучением Я давно интересуюсь квантовыми вычислениями и пишу программы для 5-ти и 14-кубитных квантовых компьютеров IBM Q Experience. Сегодня я расскажу о технологиях, которые можно будет применять в машинном обучении после того, как квантовые вычисления завоюют мир. Спойлер для дата ...

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

Перспективы развития облачных технологий: тензорные вычисления Тензорные технологии уже реализованы в таких продуктах, как Intel Movidius и Gyrfalcon Laceli. Они предлагают компактные устройства для нейросетевых вычислений на оборудовании, для которого первоначально не были рассчитаны из-за недостаточного объема вычислительных ресурсов....

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

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

Простейшее профилирование памяти на STM32 и других микроконтроллерах «С опытом приходит стандартный, научный подход к вычислению правильного размера стека: взять случайное число и надеяться на лучшее» — Jack Ganssle, «The Art of Designing Embedded Systems» Привет, Хабр! Как ни странно, но в абсолютном большинстве виденных мной «учебников дл...

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

[Из песочницы] Современные методы описания функциональных требований к системам. Алистер Кобёрн. Отзыв по книге и дополнения В книге описан один метод написания части постановки задачи, а именно метод use case. Что это такое? Это описание сценария взаимодействия пользователя с системой (или с бизнесом). Система при этом выступает как черный ящик (и это дает возможность разделить сложную задачу пр...

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

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

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

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

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

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

Python из C В прошлом году появилась необходимость дополнить старый проект написанный на C функционалом на python3. Не смотря на то, что есть статьи на эту тему я помучился и в том году и сейчас когда писал программы для статьи. Поэтому приведу свои примеры по тому как работать с pytho...

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

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

Принимаем участие в недавнем Telegram Contest, пишем крутое OpenGL ES приложение и выигрываем ничего Забегая вперед, хотелось бы обратить внимание на сумбурную ситуацию с победителем первого этапа конкурса. Победитель забрал 50К американских президентов. НО, был как минимум, еще один разработчик, который написал идентичное приложение и не был никак вознагражден. Он даже по...

Часть 4. Модель вычисления логических функций по графу для асинхронных параллельных процессов Перейдем к вычислению логических функций по графу для более широкого класса поведений. Будем рассматривать циклические автономные поведения, не содержащие кратных сигналов (или по другому: не содержащие индексированных событий). Еще одно ограничение: для удобства не будем ра...

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

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

Создаем несложный шахматный ИИ: 5 простых этапов Перевели для вас статью Лори Хартикка (Lauri Hartikka) о создании простейшего ИИ для шахмат. Она написана еще в 2017 году, но базовые принципы остались теми же. Все файлы, которые использовал Лори, тоже доступны. Простой искусственный интеллект, который умеет играть в ш...

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

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

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

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

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

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

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

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

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

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

[Перевод] Строим собственный serverless на основе Fn Бессерверные вычисления — одна из наиболее заметных тенденций в облачных вычислениях. Основной принцип работы заключается в том, что инфраструктура — забота не DevOps’ов, а поставщика услуг. Масштабирование ресурсов автоматически подстраивается под нагрузку и обладает высок...

Какие подарки к 23 февраля ждут мужчины? Результаты опроса Эта публикация не о том, как мигрировать в облако или укрощать числа с плавающей точкой. Она о том, чего хотят мужчины. Мы опросили 180 парней, работающих в студии Plarium Krasnodar, и узнали, что им обычно дарят их близкие женщины и какие презенты ребята хотят получать на с...

«Технология» получения уравнений динамики ТАУ. И почему System Identification is sucks, а рулит «честная физика» При обсуждении предыдущей статьи про модельно-ориентированное проектирование возник резонный вопрос: если мы используем данные эксперимента, а можно ли поступить еще проще, засунуть данные в System Identification и получить модель объекта, не заморачиваясь с физикой вообще? ...

Система скриптового 3д моделирования ZenCad Та работа, которую я хочу представить вашему вниманию, есть попытка еще раз написать систему скриптового 3д моделирования. Написать так, как я её хотел бы видеть. Рецепт системы ZenCad довольно прост. Концепт скриптового 3д моделирования OpenScad, геометрическое ядро OpenCas...

Проект Salmon: как эффективно противостоять интернет-цензуре с помощью прокси с уровнями доверия пользователям Правительства многих стран так или иначе ограничивают доступ граждан к информации и сервисам в интернете. Борьба с подобной цензурой – важная и непростая задача. Обычно простые решения не могут похвастать высокой надежностью или долговременной эффективностью. Более сложные...

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

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

[Из песочницы] Мультифункциональный фиттинг экспериментальных данных Введение Очень часто, как и в точных науках (физика, химия), так и в прочих областях (экономика, социология, маркетинг и пр.) при работе с разного рода экспериментально полученными зависимостями одной величины (Y) от другой (X) возникает потребность описать полученные данные...

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

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

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

Статистика на службе у бизнеса. Методология расчёта множественных экспериментов Добрый день! Как и было обещано в предыдущей статье, сегодня мы продолжим разговор о методологиях, применяемых в A/B-тестировании и рассмотрим методы оценки результатов множественных экспериментов. Мы увидим, что методологии довольно просты, и математическая статистика не т...

Ученые заставили молекулу ДНК делить и умножать Команда ученых из Калтеха, возглавляемая Эриком Винфри, опубликовала статью о результатах исследования в журнале Nature 21 марта 2019 года. Они смогли разработать самосборные молекулярные системы, выполняющие вычисления путем присоединения новых цепочек ДНК к существующим. В...

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

[Перевод] Распознавание источников освещения на картах окружения В этой статье представлена реализация на Python алгоритма распознавания источников освещения на картах окружения (LDR или HDR) при помощи равнопромежуточной проекции (equirectangular projection). Однако после внесения незначительных изменений её также можно использовать с п...

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

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

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

Несколько подводных камней статической типизации в Python Думаю, мы все потихоньку уже привыкаем, что у Python есть аннотации типов: их завезли два релиза назад (3.5) в аннотации функций и методов (PEP 484), и в прошлом релизе (3.6) к переменным (PEP 526). Так как оба этих PEP были вдохновлены MyPy, расскажу, какие житейские радос...

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

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

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

[Перевод] Работа с ошибками в Go 1.13 В последнее десятилетие мы успешно пользовались тем, что Go обрабатывает ошибки как значения. Хотя в стандартной библиотеке была минимальная поддержка ошибок: лишь функции errors.New и fmt.Errorf, которые генерируют ошибку, содержащую только сообщение — встроенный интерфейс...

Пиксельные отступы в текстурной развертке Представляем четвертую статью нашего цикла о работе с 3D-моделями в Unity. Предшествующие статьи: «Особенности работы с Mesh в Unity», «Unity: процедурное редактирование Mesh», «Импорт 3D-моделей в Unity и подводные камни». В предыдущей статье мы упомянули о проверке тексту...

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

Ты помнишь, как все начиналось. Все было впервые и вновь О том, как пришлось заняться оптимизацией запроса PostgreSQL и что из всего этого получилось. Почему пришлось? Да потому, что предыдущие 4 года все работало тихо, спокойно, как часики тикали. В качестве эпиграфа. Основано на реальных событиях. Все имена изменены, совпад...

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

«Желательно, чтобы у вас был котик» — как стартапу выстрелить на Product Hunt Публикация на агрегаторе стартапов Product Hunt — хороший способ привлечь к себе внимание международных СМИ и инвестиционных фондов. При этом самого факта публикации недостаточно. О том, как подготовиться к выходу на Product Hunt и чего нельзя делать во время гонки, на приме...

[Перевод] 10.3 секунды на хеш: майнинг на бортовом управляющем компьютере КА Аполлон Нам удалось восстановить Бортовой управляющий компьютер КА Аполлон. И теперь, когда у нас на руках имеется единственный в мире работающий экземпляр, мне пришла в голову идея написать для него код. Хотя мысль о добыче биткоинов с помощью компьютера из далеких 60-х казалась бе...

В очередной раз о НОД, алгоритме Евклида и немного об истории алгоритмов вообще. Конечно, с примерами на Swift Алгоритмы – одна из центральных тем в программировании, они повсюду (особенно на собеседованиях, ха-ха). (Разве можно обойтись в таком посте без «баяна»?) Одним из самых известных является так называемый алгоритм Евклида – пожалуй, самый распространенный способ нахождения...

AMD не стала ограничивать Radeon VII в расчетах с двойной точностью Как известно, технические характеристики игровой видеокарты Radeon VII во многом совпадают с профессиональным ускорителем Radeon Instinct MI50. Напомним, последний обладает производительностью при вычислениях с двойной точностью (FP64) до 6,8 Тфлопс (1/2 от FP32),...

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

Что делать, если для постройки робота не хватает кубиков? Моя предыдущая статья была написана, в первую очередь, для менеджеров проектов и руководителей направления RPA. Эту статью я хотел бы адресовать, в первую очередь, программистам и тем, кому приходится с роботизацией сталкиваться face-to-face. Первые несколько процессов, кот...

[Из песочницы] Криптографический алгоритм «Кузнечик»: просто о сложном В данной статье будет подробно рассмотрен алгоритм блочного шифрования, определенный в ГОСТ Р 34.12-2015 как «Кузнечик». На чем он основывается, какова математика блочных криптоалгоритмов, а так же как реализуется данный алгоритм в java. Кто, как, когда и зачем разработал д...

[Из песочницы] Удаленный мониторинг и управление устройств на базе Lunix/OpenWrt/Lede через 80-ый порт… Всем привет, это мой первый опыт на Хабре. Хочу написать о том, как нестандартно управлять сетевым оборудованием во внешней сети. Что значит нестандартно: в большинстве случаев, для управления оборудованием во внешней сети Вам необходимо: Публичный IP-адрес. Ну, или если...

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

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

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

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

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

[Перевод] Angular без zone.js: максимум производительности Angular-разработчики в большом долгу перед библиотекой zone.js. Она, например, помогает достичь в работе с Angular почти волшебной лёгкости. На самом деле, практически всегда, когда нужно просто поменять какое-нибудь свойство, и мы меняем его, ни о чём не задумываясь, Angula...

Лазерная коррекция зрения — так ли эффективен метод Smile на самом деле? Мои исходные данные: небольшая близорукость, -1 диоптрия, но всего лишь 20% остроты — видел только две строчки. Очки или линзы мне были неудобны, поэтому я решил сделать операцию. Выбор сводился всего к двум типам — Femto lasik или Smile. Фемто — проверенный и надежный мет...

Книга «Глубокое обучение с подкреплением на Python. OpenAI Gym и TensorFlow для профи» Привет, Хаброжители! Глубокое обучение с подкреплением (Reinforcement Learning) — самое популярное и перспективное направление искусственного интеллекта. Практическое изучение RL на Python поможет освоить не только базовые, но и передовые алгоритмы глубокого обучения с подк...

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

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

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

По следам калькуляторов: Qalculate Ранее мы делали обзоры кода крупных математических пакетов, например, Scilab и Octave, а калькуляторы оставались в стороне как небольшие утилиты, в которых сложно допустить ошибки из-за их малого объёма кода. Мы ошиблись, не уделив им внимания. Случай с публикацией исходног...

[Перевод] Мысли о современном C++ и игровой разработке Новый год для игровых разработчиков начался с волны критики, обрушившейся в адрес комитета по стандартизации C++ после публикации Араса Пранкевичуса «Жалобы по поводу современного C++». Возник серьезный вопрос: действительно ли комитет стандартов потерял связь с реальностью,...

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

Публикация приложения в Microsoft Store: некоторые изменения за год Вот уже год прошел с момента выхода статьи об особенностях публикации в MS Store. За прошедший год произошло много событий – GDPR, выход VS 2019 и прочие изменения. В сегодняшней небольшой статье мне бы хотелось немного рассказать о том, какие изменения произошли в особенно...

Реализация словаря в Python Всем привет, 30 апреля в ОТУС стартует курс «Алгоритмы для разработчиков», именно к этому приурочена публикация сегодняшнего материала. Начнём. В этой статье вы узнаете, как в Python реализованы словари. Словари индексируются с помощью ключей, и они могут рассматриваться ...

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

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

[Перевод] Понимание алгоритма БПФ Здравствуйте, друзья. Уже завтра стартует курс «Алгоритмы для разработчиков», а у нас остался один неопубликованный перевод. Собственно исправляемся и делимся с вами материалом. Поехали. Быстрое преобразование Фурье (БПФ — англ. FFT) является одним из важнейших алгоритмов о...

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

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

[Из песочницы] Современный метод измерения импульсной характеристики и нелинейных искажений В 2000 году профессор Пармского Университета Анджело Фарина предложил оригинальный метод одновременного измерения импульсной характеристики и нелинейных искажений с помощью гармонического сигнала экспоненциально изменяющейся частоты (далее ESS – exponential sine sweep). Дл...

[recovery mode] О важных “невидимых" вещах — доверии, культуре и ценностях Я — Head of Product в RealtimeBoard. Я люблю дерзкие цели и постоянно думаю о том, где нас ждут новые горизонты, как улучшить результаты, как завтра стать лучше, чем мы были вчера. И ещё я много думаю о том, насколько важна в этом увлекательном путешествии команда. Мы много ...

База данных KDB+: от финансов до «Формулы 1» KDB+, продукт компании KX — это широко известная в узких кругах, исключительно быстрая, колоночная база данных, предназначенная для хранения временных рядов и аналитических вычислений на их основе. Изначально она пользовалась (и пользуется) большой популярностью в индустрии ...

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

[Из песочницы] Микросервисная архитектура = распределенные вычисления Приветствую всех читателей Хабра! Меня зовут Игорь Рыбаков и я технический директор в казахстанской IT-компании DAR. Сегодня я поделюсь с вами пониманием и использованием принципов параллельных вычислений в современных информационных системах. Чтобы глубже разобраться в этом...

Angular: создание и публикация библиотеки Начнем с начала Если мне не изменяет память, то с версии 6 в angular появилась возможность создавать в одном workspace проекты разных типов: application и library. До этого момента люди, которые хотели создать библиотеку компонент, скорее всего, пользовались отличным и поле...

FAQ по HeadHunter API (публикация вакансий) Небольшая история про наш рекрутинговый сервис под заказчика и большая история про проблемы, которые появились при интеграции с HeadHunter с точки зрения публикации вакансий. Почему HeadHunter? Потому что на Superjob всё несколько проще (но это не точно). Читать дальше →

Курс лекций «Основы цифровой обработки сигналов» Всем привет! Часто ко мне обращаются люди с вопросами по задачам из области цифровой обработки сигналов (ЦОС). Я подробно рассказываю нюансы, подсказываю нужные источники информации. Но всем слушателям, как показало время, не хватает практических задач и примеров в процессе...

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

Spring Boot 2 и JDK 8: Вы все еще используете аннотации @Param, @RequestParam и @PathVariable? Тогда статья для Вас Здравствуй, Хаброчитатель! Разрабатывая учебный проект по Spring Boot 2 решил поэкспериментировать с @Param в запросах Spring Data JPA, а точнее c их отсутствием: @Transactional(readOnly = true) public interface UserRepository extends JpaRepository<User, Integer> { ...

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

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

Huawei Atlas 900: самый быстрый в мире кластер для обучения ИИ Китайская Huawei продолжает вкладывать большие средства в разработку технологий искусственного интеллекта. Специалисты компании считают, что в ближайшие пять лет статистические вычисления примут массовый характер, а на ИИ-вычисления будет приходиться 80% всей мировой вычисли...

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

[Из песочницы] Применение формальных методов валидации моделей для UI Привет, Хабр! Представляю вашему вниманию перевод статьи «FORMALLY SPECIFYING UIS» автора Hillel Wayne. От автора Относительно недавно я наткнулся на статью про Инженерные методы в разработке ПО, где vasil-sd рассказал про формальную валидацию спецификаций к создаваемым пр...

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

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

Язык программирования Ü. Введение, мотивация к созданию, цели Введение С 2016-го года (с перерывами) я разрабатываю собственный язык программирования. Название данного языка — «Ü». Почему Ü? Потому, что хотелось однобуквенного названия, а все буквы из набора A-Z уже заняты. Данная статья имеет задачу ознакомить публику с данным языко...

Что особенного в Cloudera и как ее готовить Рынок распределенных вычислений и больших данных, если верить статистике, растет на 18-19% в год. Значит, вопрос выбора софта для этих целей остается актуальным. В этом посте мы начнем с того, зачем нужны распределенные вычисления, подробней остановимся на выборе ПО, расскаж...

[Перевод] Дорожная карта Android-разработчика в 2019 году Всем привет! У нас отличные новости. В этом месяце в Отус стартует базовый курс "Android-разработчик", а также "Специализация Android-разработчик", которая включает в себя целый пакет курсов. В связи с этим делимся с вами полезной статьей, перевод которой приурочен к данным ...

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

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

[Перевод] Для чего нужны «золотые сигналы» мониторинга и SRE? Прим. перев.: То, что сегодня принято называть SRE (Site Reliability Engineering — «обеспечение надежности информационных систем»), включает в себя большой спектр мероприятий по эксплуатации программных продуктов, направленных на достижение ими необходимого уровня надежности...

Vue 3 станет быстрее Одним из самых ярких событий в мире Фронтенда в этому году стала публикация репозитория Vue next — части функционала третьей версии VueJS. В этой в этой статье представлен обзор новых killer features VueJS. На момент публикации статьи репозиторий находился в статусе Pre-Alp...

Работа с датами на языке R (базовые возможности, а также пакеты lubridate и timeperiodsR) Получить текущую дату в любом языке программирования, операция эквивалентная "Hello world!". Язык R не является исключением. В этой статье мы разберёмся с тем, как устроена работа с датами в базовом синтаксисе языка R, а также рассмотрим несколько полезных пакетов, расширяющ...

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

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

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

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

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

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

Продвигаем Ethereum DAPP Сегодня в интернете достаточно информации, как создавать DAPP приложения. Вот вы создали крутое DAPP и теперь появляется вопрос ещё сложнее, как рассказать о нём потенциальным пользователям? Я хочу поделиться собственным опытом продвижения DAPP приложения по каталогам. Ме...

Компания Fujitsu завершила проектирование суперкомпьютера Post-K и приступила к его изготовлению Компания Fujitsu объявила, что совместно с институтом RIKEN (Институт физико-химических исследований — крупный научно-исследовательский институт в Японии, почти полностью финансируется правительством Японии) она завершила проектирование суперкомпьютера Post-K, кот...

Запускаем свой нейросетевой детектор на Paspberry Pi с помощью Neural Compute Stick и OpenVINO С распространением и развитием нейронный сетей все чаще возникает потребность их использования на встроенных и маломощных устройствах, роботах и дронах. Устройство Neural Compute Stick в связке с фреймворком OpenVINO от компании Intel позволяет решить эту задачу, беря тяжелы...

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

Компания Google установила новый рекорд по точности вычисления числа Пи - 31.4 триллиона десятичных знаков В День числа Пи, 14 марта 2019 года (3.14 2019), было объявлено о том, что сервис Google Cloud стал новым мировым рекордсменом по точности вычисления числа Пи. Помимо того, данный случай стал первым разом в истории, когда значение числа Пи было рассчитано при помощи технолог...

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

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

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

[Из песочницы] Арифметика fixed-point на C++ Сегодня расскажу Вам что такое fixed-point, зачем он нужен и как его можно использовать. Существует такая проблема когда производительность приложения может заметно ухудшиться из-за особенностей вычисления на числах с плавающей точкой. Как правило CPU заточен под целочислен...

[Из песочницы] Headless CMS. Почему я пишу свою Всем привет! Написать эту публикацию меня побудила вот эта недавняя статья (вчера увидел). Пересказывать основные признаки Headless/content-first/api-first и т.п. CMS я не буду, материала полно и наверняка уже многие знакомы с этим трендом. А хочу я рассказать почему и ка...

Джулия и параллельные вычисления С момента выхода в августе 2018, язык Julia активно набирает популярность, войдя в топ 10 языков на Github и топ 20 самых популярных профессиональных навыков по версии Upwork. Для начинающих стартуют курсы и выпускаются книги. Julia используется для планирования космических...

[Перевод] Использование Golang для создания микросервисов в The Economist: ретроспектива Всем привет! Уже 28 мая мы запускаем первую группу по крусу «Разработчик Golang». И сегодня делимся с вами первой публикацией приуроченной к запуску этого курсу. Поехали. Ключевые выдержки The Economist требовалось больше гибкости для распространения контента на все бол...

[Перевод] Кеширование в Laravel: основы плюс tips&tricks Техника кеширования позволяет создавать более масштабируемые приложения, запоминания результаты некоторых запросов в быстрое in-memory хранилище. Однако, некорректно реализованное кеширование может сильно ухудшить впечатление пользователя о вашем приложении. Эта статья содер...

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

[Перевод] Исправляя мелкий баг в calc.exe В воскресенье я как обычно бездельничал, просматривая Reddit. Прокручивая игры щенков и плохой юмор программистов, один конкретный пост привлёк мое внимание. Речь шла о баге в calc.exe. Неверный результат вычисления диапазона дат в Калькуляторе Windows «Ну, это похоже на...

В смартфоне LG G8 ThinQ будет использоваться фронтальная 3D-камера Infineon REAL3 с поддержкой технологии Time-of-Flight (ToF) и функцией Face Unlock Компания LG в очередной раз подтвердила, что на предстоящей выставке MWC 2019 представит смартфон LG G8 ThinQ и рассказала, что его фронтальная камера получит поддержку технологий Time-of-Flight (ToF) на основе сенсора Infineon REAL3. Классические 3D-технологии обычно исполь...

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

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

Nvidia выпускает видеокарту Tesla V100s Новый графический процессор разработан для ускорения искусственного интеллекта, высокопроизводительных вычислений (HPC), обработки данных и графики. Nvidia Tesla V100s оборудован графическим процессором Volta GV100, количество ядер CUDA и Tensor (5120 и 640 соответств...

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

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

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

postfix+dovecot+mysql в FreeBSD Введение Почтовый сервер хотел изучить уже давно, но руки дошли только сейчас, да и информации корректной не особо много удавалось найти, поэтому решил написать как можно более подробную публикацию. В данной публикации пойдёт речь не только о postfix, dovecot, mysql, postfix...

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

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

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

Какое главное отличие Dependency Injection от Service Locator? Ха, какая изящная маскировка Service Locator-а под DI. Даже может показаться, что это DI! :-)Это первый коммент к моей предыдущей публикации "Dependency Injection, JavaScript и ES6-модули". Спасибо коллеге symbix 'у за этот коммент, т.к. именно он стало причиной погружения в...

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

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

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

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

Учёные создали новую форму вычислений, использующую свет Аспиранты Университета МакМастер под руководством доцента химии и химической биологии Калайчелви Сараванамутту (Kalaichelvi Saravanamuttu) описали новый вычислительный метод в статье, опубликованной в научном журнале Nature. Для вычислений ученые использовали мягкий полимерн...

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

Must-have плагины и несколько полезностей для С\С++ разработки в VS Code Удивительно, но до сих пор на Хабре нет хорошей подборки плагинов для Visual Studio Code для тех, кто пишет на С/С++. Microsoft в своем блоге опубликовали только статью, совсем базового уровня с инструкцией по настройке. Но большинство читателей Хабра, тем более из разрабо...

C for Metal — драгоценный металл для вычислений на графических картах Intel Сколько процессорных ядер Intel в вашем компьютере? Если вы пользуетесь системой на базе Intel, то в абсолютном большинстве случаев к вашему ответу надо будет прибавить единицу. В состав почти всех процессоров Intel — от Atom и до Xeon E3, естественно, не пропуская Core, уже...

[Из песочницы] Использование SQLite в Unity (Unity + SQLite) Всем привет, данная публикация будет посвящена работе с встраиваемой реляционной базой данных SQLite в Unity. Данная статья написана новичком для новичков с целью показания работы с SQLite, предполагается, что вы знаете основы SQL. Так как в интернете нет ясного тутора для н...

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

Раздельное логгирование методов в Java/logback Задача Допустим, нам захотелось логгировать каждый метод некого Java-класса по разному: Для каждого метода свой лог-файл, … свой формат лога, … свой минимальный уровень логгирования, формат лога расширяем собственными %переменными, возможность обновлять эту конфигурацию на...

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

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

Разворачиваем распределенное хранилище CEPH и подключаем его к Kubernetes Часть 1 Разворачиваем среду для работы с микросервисами. Часть 1 установка Kubernetes HA на bare metal (Debian) Здравствуйте, уважаемые читатели Хабра! В прошлой публикации я рассказал, как развернуть отказоустойчивый кластер Kubernetes. Но дело в том, что в Kubernetes удоб...

[Из песочницы] Будущее за облаками 1.1. Введение Говоря о развитии ИТ в последние несколько лет, нельзя не отметить долю Облачных решений среди прочих. Давайте разберемся, что же такое облачные решения, технологии и т.д. Облачные вычисления (или же облачные сервисы) — это особый набор инструментов и методов ...

ESET раскрывает детали политических кибератак на Ближнем Востоке Группа киберпреступников Stealth Falcon ведет свою деятельность с 2012 года, и её целями являются политические активисты и журналисты на Ближнем Востоке. Некоторые аналитики связывают их деятельность с Project Raven, в котором, по слухам, задействованы бывшие сотрудники АНБ ...

[Из песочницы] IT рекрутинг. В поисках баланса процесс/результат 1. Стратегическое виденье Особенностью и ценностью продуктовой компании, основной ее миссией и задачей, является удовлетворенность клиентов, их вовлеченность, и лояльность к бренду. Естественно, через производимый компанией продукт. Таким образом, глобальную цель компании мо...

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

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

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

[Перевод] Объёмный рендеринг в WebGL Рисунок 1. Пример объёмных рендеров, выполненных описанным в посте рендерером WebGL. Слева: симуляция пространственного распределения вероятностей электронов в высокопотенциальной молекуле белка. Справа: томограмма дерева бонсай. Оба набора данных взяты из репозитория Open ...

Как я познакомился с OpenCV или в поисках ColorChecker Я учусь в CS центре в Новосибирске уже второй год. До поступления у меня уже была работа в IT — я работал аналитиком в Яндексе, но мне хотелось развиваться дальше, узнать что-то за пределами текущих задач и, по совету коллеги, я поступил в CS центр. В этой статье я хочу расс...

AMD Radeon VII не получит полноценную поддержку вычислений с двойной точностью Анонс видеокарты AMD Radeon VII стал одним из ключевых событий завершившейся выставки CES 2019. В основе устройства лежит 7-нм графический процессор Vega 20, а по техническим характеристикам оно во многом повторяет дебютировавший ранее...

[Из песочницы] Вывод модели динамической системы дискретного фильтра Калмана для произвольной линейной системы Фильтр Калмана (ФК) является оптимальным линейным алгоритмом фильтрации параметров динамической линейной системы при наличии неполных и зашумленных наблюдений. Этот фильтр находит широкое применение в технических системах управления до оценок динамики изменения макроэкономич...

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

Криптографический АРМ на базе стандартов с открытым ключом. Конфигурирование токенов PKCS#11 Еще раз просмотрев функционал утилиты cryptoarmpkcs, обратил внимание на то, что она, в основном работая с криптографическими токенами/смаркартами PKCS#11, не имеет встроенного функционала для их конфирурирования. Речь идет об инициализации токенов, установки PIN-кодов и т.п...

Электрички Москвы (и не только): спасибо тем, кто помогал в этом году Электричка слева — Аэроэкспресс — теперь тоже добавлена в приложение. В день расписание у нас просматривают 600 тысяч человек, поэтому каждое маленькое изменение имеет эффект большого масштаба. Я хочу немного отчитаться о том, что мы добавили в приложение электричек по п...

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

WearMouse, аэромышь для часов Wear OS Здравствуй, Хабр! Хочу предложить вашему вниманию немного магии для часов на Wear OS. Некоторое время назад, незадолго до выпуска Android 9.0, был представлен новый публичный API, позволяющий использовать устройства на Android в качестве Bluetooth-устройств ввода (мышь, кл...

Почему так сложно выбрать, какое кино посмотреть (и что можно было бы сделать) Это — ответ на пост на животрепещущую тему «что посмотреть». Автор сам напросился поднял правильный вопрос, но почему-то свел все к странной психологической аналогии «заедания стресса», заявив: «Пока вы сами не знаете, что хотите посмотреть — никто вам не поможет. Будете туп...

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

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

Forrester: 2019-й станет годом периферийных вычислений Искусственный интеллект, машинное обучение и периферийные вычисления (edge computing) у всех на слуху …

Ситуация: виртуальные GPU не уступают по производительности железным решениям В феврале в Стэнфорде прошла конференция, посвящённая высокопроизводительным вычислениям (HPC). Представители VMware рассказали, что при работе с GPU система на базе модифицированного гипервизора ESXi по скорости не уступает bare metal решениям. Рассказываем о технологиях, ...

[Из песочницы] Путь к естественному интеллекту Глава 1. Обработчик сигналов В повседневной жизни мы не задумываемся, почему нам нравится стейк или апельсин. Он жареный, сочный и мясистый, а мы голодные. Благодаря теории Дарвина ученые, к счастью, уже могут нам объяснить, почему же нам нравится стейк. Потому что в процесс...

[Из песочницы] Изучаем трассировку с помощью eBPF: Руководство и примеры Привет, Хабр! Предлагаю вашему вниманию перевод статьи Брендана Грегга, посвящённой изучению eBPF На конференции Linux Plumbers было как минимум 24 выступления по eBPF. Он быстро стал не просто бесценной технологией, но и востребованным навыком. Возможно, вам хотелось бы пос...

[Из песочницы] Практичный гайд по переменным окружения в Go Привет, Хабр! Представляю вашему вниманию перевод статьи A no-nonsense guide to environment variables in Go автора Enda Phelan. Переменные окружения — лучший способ хранения конфигурации приложения, поскольку они могут быть заданы на системном уровне. Это один из принципов ...

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

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

Суперинфекции, антибиотики и модели зомби-апокалипсиса Бактерии, а не рак, террористы и катастрофы унесли жизни огромного количества людей. Одна только Yersiniapestis (чумная палочка) привела к смерти 150 млн человек. Прием антибиотиков является основным методом борьбы с бактериальными инфекциями. Но что если лекарства переста...

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

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

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

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

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

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

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

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

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

В Самаре открыли тайну возникновения планет. Сотрудники Самарского национального исследовательского университета имени академика С.П. Королева при участии коллег из Международного университета Флориды, Гавайского университета и Национальной лаборатории имени Лоуренса (Беркли) опубликовали работу, в которой предложен ме...

[Перевод] Serverless CI/CD на AWS Было бы круто, если бы развертывание в формате копи-пейст осталось в прошлом, но, увы, дела обстоят иначе. Бывает, разработчикам предпочтительней именно такой метод поставки. Хоть сейчас пиши статью о том, почему это не есть гуд, но вы и без меня все знаете. С тенденцией к ...

Что нового в iOS 12.4 и какие устройства ее поддерживают Вчера вечером компания Apple в составе трех других релизов выпустила финальную версию iOS 12.4, которую тестировала на протяжении более трех месяцев. Главным нововведением обновления стала поддержка сервиса Apple Card, однако в Купертино не стали ограничиваться только ей и ...

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

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

ConsenSys и AMD займутся облачными вычислениями на блокчейне Ethereum-стартап ConsenSys заключил партнерство со всемирно известным производителем компьютерных чипов Advanced Micro Devices (AMD) для создания новой инфраструктуры облачных вычислений на базе технологии блокчейн. Today, @ConsenSys and @AMD have announced collaboration on ...

О Структурном Моделировании Организационных Изменений 75% 3 из 4 — так Boston Consulting Group оценивает долю IT проектов, почивших по не-техническим причинам. Уже вот две подряд редакции свода знаний по управлению проектами (PMBOK) выделяют процессы по управлению стейкхолдерами в отдельную область знаний под счастливым ном...

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

Как работает блогспам В последнее время в зарубежном интернете распространилось такое явление, как блогспам. по сути, это обычный SEO-спам, который использует раскрученные онлайн площадки для продвижения. Чаще всего публикация представляет из себя слабосвязанный и бессмысленный текст, либо сге...

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

Специалистами Toshiba разработана технология, позволяющая точно выявлять 13 типов рака по капле крови Компания Toshiba рассказала о разработке, позволяющей выявлять 13 типов рака на основе анализа всего одной капли крови. Точность диагностики достигает 99%. Технология и построенный на ней метод диагностики разработаны совместно с Научно-исследовательским институтом Нац...

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

[Перевод] Цепи Маркова для процедурной генерации зданий Примечание: полный исходный код этого проекта можно найти [здесь]. Так как он является частью более масштабного проекта, я рекомендую смотреть коммит на момент выпуска этой статьи, или файл /source/helpers/arraymath.h, а также /source/world/blueprint.cpp. В этой статье я х...

Безопасность IoT. Выпуск 1. Умные часы, фитнес-трекеры и весы В своей прошлой статье я рассказывал, как съездил на DefCamp. Сегодняшняя статья — первая часть публикации о моих исследованиях в области безопасности интернета вещей, которые легли в основу выступления на конференции. IoT быстро развивается: сейчас насчитывается более 260...

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

«Криптосистемы-протоколы»: Диффи—Хеллмана, Эль-Гамаля, MTI/A(0), STS ПредисловиеДанный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft re...

Есть ли перспектива у «Орлана» или наш «Орлан» против «Ай-Би-Эм» "САИПР — генетический код части" Л.И.Волков, начальник 4 ЦНИИ МО В названии статьи объединены заголовки двух публикаций, появившихся в далеком 1994 году в газетах «Московский воин» и «Красная Звезда». Основой публикаций стало интервью, которое взял у меня военный корреспонде...

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

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

[Перевод] Монады за 15 минут Вступление На конференции YOW! 2013 один из разработчиков языка Haskell, проф. Филип Вадлер, показал, как монады позволяют чистым функциональным языкам осуществлять императивные по сути операции, такие, как ввод-вывод и обработку исключений. Неудивительно, что интерес аудито...

[Из песочницы] Использование let объявлений переменных и особенности образуемых при этом замыканий в JavaScript Написать данную заметку меня сподвигло прочтение статьи на Хабре «Var, let или const? Проблемы областей видимости переменных и ES6» и комментариев к ней, а также соответствующей части книги Закаса Н. «Understanding of ECMAScript 6». Исходя из прочитанного я вынес, что не всё...

3D-принтеры по металлу Concept Laser (General Electric) оснастят системами компьютерного зрения и машинного обучения Еще несколько лет назад инженерам из General Electric (GE) требовалось 800 деталей, чтобы собрать лишь 30% нового турбовинтового двигателя. Сегодня для этого им достаточно всего 10 деталей. В этом и есть сила 3D-принтеров. Разработчики GE Additive используют возможности адди...

Тайна прошивок Авторы: к.ф.-м.н. Чернов А.В. (monsieur_cher) и к.ф.-м.н. Трошина К.Н. Как с помощью самых общих предположений, основанных на знании современных процессорных архитектур, можно восстановить структуру программы из бинарного образа неизвестной архитектуры, и дальше восстановит...

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

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

1С в Elastic Compute Service Alibaba Cloud. Сокровища Алибабы Если ты умеешь что-то делать хорошо, всегда найдется азиат, который сможет лучше (один из самых популярных интернет мемов). Aliexpress уже стал именем нарицательным в всем мире. Но Alibaba Group это не только интернет-молл, но и сервис облачных вычислений №1 в Китае. Интере...

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

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

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

Автоматизация End-2-End тестирования комплексной информационной системы. Часть 2. Техническая Этой статьей мы продолжаем серию публикаций о том, как мы автоматизировали в одном из крупных проектов ЛАНИТ автопроцесс ручного тестирования (далее – автотесты) большой информационной системы (далее – Системы) и что у нас из этого вышло. Вторая часть публикации ориентирова...

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

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

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

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

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

Нахождение объектов на картинках Мы занимаемся закупкой трафика из Adwords (рекламная площадка от Google). Одна из регулярных задач в этой области – создание новых баннеров. Тесты показывают, что баннеры теряют эффективность с течением времени, так как пользователи привыкают к баннеру; меняются сезоны и тре...

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

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

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

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

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

Компактная С++ библиотека для программирования конечно-разностных методов в операторном стиле. Часть 1. Семантика Представлена семантика разработанной библиотеки pde++ для программирования конечно-разностных методов в операторном стиле. Основными объектами библиотеки являются сеточная функция, сеточная ячейка и сеточные операторы, арифметические соотношения между которыми максимально пр...

Началась сертификация поддержки Wi-Fi 6 Организация Wi-Fi Alliance сообщила, что начала работу программа сертификации Wi-Fi CERTIFIED 6. Оборудование Wi-Fi CERTIFIED 6 соответствует спецификации IEEE 802.11ax, в которой закреплены новые возможности, позволяющие «существенно повысить общую производительн...

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

Вариант задействования блокчейна криптовалют как среды передачи команд для элементов бот-сети Хотелось бы развить мысль, упомянутую в статье «Follow the money: как группировка RTM стала прятать адреса C&C серверов в криптокошельке», которая упаковывала их в количество перечисленных за две транзакции сатоши на определенный криптоадрес. Вредонос, запросив у блокчей...

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

[Из песочницы] Снова в школу: как обучить ручных тестировщиков разбираться с автотестами Четыре из пяти соискателей-QA хотят научиться работать с автотестами. Не все компании могут осуществить такие желания ручных тестировщиков в рабочее время. Wrike провёл школу автоматизации для сотрудников и реализовал это желание для многих. Я в этой школе участвовал именно ...

[Из песочницы] Основные заблуждения о SCRUM SCRUM? Какой SCRUM? Впервые подход SCRUM (англ. scrum «схватка вокруг мяча») описали Хиротака Такэути и Икудзиро Нонака, которые заметили, что небольшие команды (5 — 9 человек), укомплектованные разнопрофильными специалистами, дают лучшие результаты. Наиболее полное описание...

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

На что способен PC Speaker Известный теперь как «системный динамик», а то и просто «пищалка», PC Speaker появился на свет в 1981 году вместе с первым персональным компьютером IBM. Наследник нескольких поколений больших компьютеров для серьёзных дел, он с рождения был предназначен лишь для подачи прост...

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

R пакет tidyr и его новые функции pivot_long и pivot_wide Пакет tidyr входит в ядро одной из наиболее популярных библиотек на языке R — tidyverse. Основное назначение пакета — приведение данных к аккуратному виду. На Хабре уже есть публикация посвящённая данному пакету, но датируюется она 2015 годом. А я хочу рассказать, о наиболее...

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

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

Метод мониторинга актуального состояния российских автодорог смартфонами пользователей Целью одной из федеральных программ, направленных на реализацию Указа Президента «О национальных целях и стратегических задачах развития Российской Федерации на период до 2024 года» № 204 от 7 мая 2018 года (kremlin.ru/events/president/news/57425) является улучшение качества...

[Из песочницы] Как я обучал нейросеть для реализации функции оценки положения на Russian AI Cup CodeBall 2018 Имея возможность качественно оценить положение в игре в какой-то момент времени и возможность симулировать игровой мир, при создании бота, для одного из решений, остается лишь стремиться совершать такие действия, которые приводят к улучшению этой оценки в ближайшем будущем. ...

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

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

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

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

Одно- и двухпроцессорные серверные платформы ASUS установили 246 мировых рекордов производительности Конфигурируемые серверные платформы ASUS отличаются превосходной масштабируемостью и высочайшей производительностью в ресурсоемких вычислениях

[Перевод] Метод CASE: гуманный мониторинг Дзииииииинь! На часах 3 утра, вы смотрите чудесный сон, и вдруг — звонок. На этой неделе вы дежурите, и, видимо, что-то случилось. Автоматизированная система зовет разобраться, в чем дело. Это важный момент управления современными компьютерными системами, но давайте посмотр...

[Перевод] Квантовые вычисления могут изменить все, и IBM соревнуется с Microsoft, Intel и Google, с целью овладеть ими Джим Кларк, директор по квантовому оборудованию Intel, с одним из квантовых процессоров компании. Фото; Intel Квантовые компьютеры — чрезвычайно захватывающая технология, подающая надежды на создание мощных вычислительных возможностей для решение ранее неразрешимых пробле...

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

Как работает криптография на основе эллиптических кривых в TLS 1.3 Пара предупреждений читателю: Для того, чтобы (насколько это возможно) упростить процесс объяснения и сжать объем публикации, стоит сразу же сделать ключевую оговорку — все, что мы пишем, касаемо практической стороны рассматриваемой проблематики, корректно для протокола T...

В Slack внедрили управление криптоключами Создатели корпоративного мессенджера Slack добавили возможность управления ключами шифрования в своем продукте. Подсистема Enterprise Key Management (EKM) доступна для владельцев версии Enterprise Grid, предназначенной для использования в больших организациях. Новинка позвол...

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

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

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

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

[Перевод] Простые методы оптимизации программ Go Я всегда забочусь о производительности. Точно не знаю, почему. Но меня просто бесят медленные сервисы и программы. Похоже, я не одинок. В тестах A/B мы попытались замедлять выдачу страниц с шагом 100 миллисекунд и обнаружили, что даже очень небольшие задержки приводят к сущ...

Топологическая оптимизация двигателя Стирлинга. №2. Любой мог додуматься, но не суть.Не суть, идея до смешного проста, но имеет отношение к топологической оптимизации====quote====Если говорить сухим академическим языком, топологическая оптимизация – это процесс изменения конструкции, структуры детали и ее варьирующихся параме...

[Перевод] Конкурс по программированию на Q#: Microsoft Q# Coding Contest Команда Microsoft Quantum рада анонсировать Q# Coding Contest – зима 2019! В этом конкурсе вы можете проверить свои навыки квантового программирования, решая задачи квантовых вычислений на Q#. Победители получат футболку Microsoft Quantum! Квантовые вычисления — это принципи...

Поднимаем сервер 1с с публикацией базы и веб сервисов на Linux Сегодня я бы хотел рассказать, как поднять сервер 1с на linux debian 9 с публикацией web-сервисов. Что такое web-сервисы 1с? Web-сервисы — это один из механизмов платформы, используемых для интеграции с другими информационными системами. Он является средством поддержки...

Несколько соображений по поводу параллельных вычислений в R применительно к «enterprise» задачам Параллельные или распределенные вычисления — вещь сама по себе весьма нетривиальная. И среда разработки должна поддерживать, и DS специалист должен обладать навыками проведения параллельных вычислений, да и задача должна быть приведена к разделяемому на части виду, если тако...

Nvidia: ИИ распространяется на корпоративный сектор, периферийные вычисления и автономные системы Объявляя финансовые результаты компании за 2 квартал, главный управляющий Nvidia Дженсен Хуан (Jensen Huang) подчеркнул, что развитие искусственного интеллекта в периферийных вычислениях и разговорных интерфейсах будет источником роста в ближайшие годы ...

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

[Перевод] Posit-арифметика: победа над floating point на его собственном поле. Часть 2 Часть 1 4. Количественное сравнение числовых систем 4.1. Определение десятичной точности Точность обратна ошибке. Если у нас есть пара чисел x и y (ненулевых и одного знака), расстояние между ними в порядках величин составляет десятичных порядков, это та же самая мера, к...

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

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

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

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

NVIDIA и технологические лидеры создают GPU-ускоренные ARM-серверы для новой эры HPC-вычислений ARM, Ampere, Cray, Fujitsu, HPE, Marvell займутся созданием ускоренных серверов на базе GPU NVIDIA для гипермасштабируемых вычислений в облаке и на периферии, моделирования и ИИ, высокопроизводительных систем хранения и экзафлопсных супервычислений

[Перевод] Стартап, который использовал ИИ, чтобы разработать лекарство за 21 день И снова здравствуйте. В преддверии запуска курса «Нейронные сети на Python», хотим поделиться с вами переводом интересной статьи о вкладе ИИ в развитие медицины. Компания Insilico Medicine из Гонконга опубликовала исследование, показывающее, что их система глубокого обуче...

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

Как ускорить шифрование по ГОСТ 28147-89 на процессоре Байкал-Т1 за счет SIMD-блока В статье на примере описания реализации алгоритма шифрования по ГОСТ 28147–89, построенного на сети Фейстеля, показаны возможности двухъядерного процессора BE-T1000 (aka Байкал-Т1) и проведены сравнительные испытания реализации алгоритма с помощью векторных вычислений с сопр...

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

Android Q будет поддерживать функцию 3D Touch Android Q будет изначально поддерживать функцию, называемую «глубокий пресс» или также известную как Force Touch или 3D Touch на языке iOS. Судя по всему, это будет именно то, чем называют - расширенная функциональность, связанная с чувствительным к давлению экраном. До с...

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

[Перевод] Автор Dwarf Fortress Тарн Адамс рассказывает о разработке игры Одним из лучших способов применения мощных процессоров для развлечений долгое время была Dwarf Fortress — игра, в которой весь мир состоит из символов ASCII, и которая с радостью съест гигабайт памяти и большую долю процессорного времени. Но в отличие от некоторых других и...

Шорты про Scrum Гибкий суррогат Словом «Scrum» называются, как минимум, две сущности: философия и фреймворк. Философия, или подход к работе, описан в книге Джеффа Сазерленда. Фреймворк, т.е. алгоритм действий, описан в документе под названием Scrum Guide. Философия превратилась в фреймворк,...

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

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

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

Emoji в интерфейсе iOS приложения и требования Apple С удивлением не обнаружил в выдаче поиска по Хабру публикаций по проблеме использования emoji в интерфейсе приложений публикуемых в App Store благословенной Apple. Так что заранее извиняюсь если всё-таки повтор. Суть проблемы в том что Apple запрещает использование emoji ...

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

Xilinx называет карту расширения Alveo U50 первым адаптируемым ускорителем «для любого сервера и любого облака» Компания Xilinx добавила в линейку ускорителей для центров обработки данных Alveo модель Alveo U50. Как утверждается, карта расширения Alveo U50 — первый в отрасли низкопрофильный адаптируемый ускоритель с поддержкой PCIe Gen 4, способный обеспечить прирост произв...

[Перевод] Вэнивар Буш: «Как мы можем мыслить» (As We May Think). Часть 2 Речь пойдёт об эссе американского инженера Вэнивара Буша «As We May Think», вышедшем в журнале The Atlantic в 1945 году. В нём Буш предсказал наступление информационной эпохи и появление некоторых её проявлений, например, персональных компьютеров, интернета. В статье описы...

Искусственный интеллект написал картину по композиции группы «Альянс» «На заре» Картина была представлена в рамках перформанса "НейроКандинский" (посмотреть видео вы можете здесь). На нем присутствовал Игорь Журавлев, вокалист группы "Альянс", который подчеркнул, что искусство - это, прежде всего, вдохновение и эмоции создателя. Клав...

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

Обход блокировок РКН используя DNSTap и BGP Тема довольно изъезжена, знаю. К примеру, есть отличная статья, но там рассматривается только IP-часть блоклиста. Мы же добавим еще и домены. В связи с тем, что суды и РКН блокируют всё направо и налево, а провайдеры усиленно пытаются не попасть под штрафы, выписанные "Реви...

Изменения CHANGE Как наверняка знают читатели портала realitsm.ru, в единственной доступной на текущий момент книге новой версии ITIL «ITIL® Foundation. ITIL 4 Edition» была описана практика (practice) Change control. Её назначение увеличивать количество (долю) успешных изменений услуг и про...

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

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

[recovery mode] Добавляем функциональность Razor Pages в стандартный .NET Razor Pages — новая фича, появившаяся в Core.Net 2.0. Razor Page — это страница, состоящая из стандартной разметки (View) и бэкенд класса. В каком то смысле напоминает Web Forms только без поддержки сохранения состояния. Преимущество такого решения очевидно — мы избавляемся ...

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

[Из песочницы] Переименовываем файлы вместе с переменными — Visual Code Мы все избалованы IDE. Хочу больше баловства! Представляю бесплатное расширение Visual Code по переименованию файлов и переменных multi-replace. Читать дальше →

Информационная энтропия хаоса Введение На Habr достаточно много публикаций, в которых рассматривается понятие энтропии, вот только некоторые из них [1÷5]. Публикации были позитивно восприняты читателями и вызвали большой интерес. Достаточно привести определение энтропии, которое дал автор публикации [1...

Google рассказал о роли метода TF-IDF в алгоритме ранжирования Джон Мюллер ответил на вопрос вебмастера

One++ Calculator 1.7.4 Возможно, самый быстрый калькулятор для Android! функции: ★ 243 Пункты меню в общей сложности более 1000+ формулы ★ 5 цвет ассорти категории: день Math Конвертер физика и экономика ★ 5 Материал Темы: темное, светлое, черный, прозрачный, серый ★ 7 Меню представлени...

[Из песочницы] Duality — легкий и быстрый движок для игростроя под Windows (Доп.) Приветствую, читатель. В данной публикации речь пойдет о перспективном и достаточно молодом игровом движке, который незаслуженно остался в тени таких гигантов, как Unity или Unreal Engine. Разработчиками является объединение энтузиастов под руководством Adam's Lair. Как...

OpenSceneGraph: Управление окнами и режимами отображения Введение Мы уже говорили о том, что класс osg::Camera управляет связанным с ним графическим контекстом OpenGL. Графический контекст инкапсулирует информацию о том, как и куда происходит отрисовка объектов и какие атрибуты состояния к ним применяются. Под контекстом понимают...

[Перевод] Простое объяснение алгоритмов поиска пути и A* Часть 1. Общий алгоритм поиска Введение Поиск пути — это одна из тех тем, которые обычно представляют самые большие сложности для разработчиков игр. Особенно плохо люди понимают алгоритм A*, и многим кажется, что это какая-то непостижимая магия. Цель данной статьи — объясн...

Разработка простого музыкального синтезатора на ATMEGA8 Несколько лет назад я изготовил на микроконтроллере ATmega8 часы с будильником, где реализовал однотональный (одноголосный) простейший синтезатор мелодий. В Интернете немало статей для начинающих, посвящённых этой теме. Как правило, для генерации частоты (нот) применяют 16-р...

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

Разработка сайта на WebAssembly с помощью NetCore 3 и Blazor Мое мнение, что WebAssembly будущее интернета. Данная технология на текущий момент уже интегрирована в большинство современных браузерах (а точнее в их движках) на ПК и мобильных устройствах. В таких браузерах как Chrome, Edge, Firefox, и WebKit. В данной статье я опишу как ...

[Из песочницы] Инкапсуляция в Python 3 Определение Значение термина «инкапсуляция» расплывчато и отличается от источника к источнику. Принято считать, что инкапсуляция — один из основополагающих принципов ООП, хотя некоторые научные статьи вовсе упускают инкапсуляцию из списка. К примеру, Джон Митчелл в книге «К...

[Перевод] Гибкие таблицы на CSS Grid Просмотр списка лидов («холодных» контактов) Поскольку мы уже запустились, я, наконец, могу рассказать о секретном проекте, над которым работал последние два года. Одна из интересных функций Teamwork CRM — просмотр списка (list view). Это мощный компонент, который встреч...

Публикации в Instagram теперь можно планировать через Creator Studio Через интерфейс Creator Studio для управления сообществами в Facebook теперь можно планировать публикации в Instagram и сервисе длинных видео IGTV. На это обратил внимание бывший директор по социальным медиа The Next Web Мэтт Наварра.

Уточнение материала по последней публикации - "невозможный" рычаг (физика). Без приветствия, так как это уточнение.   Так, как администрация не внесла поправки, по моей просьбе, в мою последнюю публикацию - уточню материал.Невозможный рычаг...согласно Архимеду.Публикация имела другое название.Всё делается с помощью печати, и опыты были проведен...

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

Редакция 3DNews ищет авторов новостей Редакция 3DNews ищет авторов новостей Hardware и Software. Если вы разбираетесь в мире информационных технологий, умеете грамотно, быстро и интересно писать, у вас есть не менее трёх часов свободного времени в день и вам нравится готовить публикации на тему IT — напишите нам...

Компания Google получила патент на гибридный ноутбук «2-в-1» Компьютеры, трансформируемые из ноутбука в планшет и обратно, давно не новость. Одним из вариантов трансформации является конструкция с отсоединяемой клавиатурой. Компания Microsoft использует такой подход в модели Surface Book, и, похоже, что скоро у нее может появитьс...

[Перевод] Оборачиваем последовательности в Swift Всем привет. Сегодня хотим поделиться переводом подготовленным в преддверии запуска курса «iOS Разработчик. Продвинутый курс». Поехали! Одним из основных преимуществ протокольно-ориентированного дизайна Swift является то, что он позволяет нам писать общий код, который совме...

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

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

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

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

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

Amazon открывает доступ к своему квантовому компьютеру Amazon делает что-то новое! Такие технологические гиганты, как Google и IBM уже давно борются за то, чтобы стать первой компанией, которая создаст по-настоящему доступный квантовый компьютер. Между тем не менее известная компания Джеффа Безоса Amazon не сильно спешит влезать...

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

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

SciPy, оптимизация SciPy (произносится как сай пай) — это пакет прикладных математических процедур, основанный на расширении Numpy Python. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных и прототипирования сложных систем, как MATLAB, IDL, Octave,...

Внедрение LoRaWAN на сельскохозяйственном предприятии. Часть 2. Учет топлива Здравствуйте уважаемые читатели! Со времени публикации первой статьи, мы подросли, наши любимые поставщики-разработчики LoThings, проделали не мало кропотливой работы, и наступил день, когда есть что рассказать и показать! Запустив нашу первую LoRaWaN, мы сразу определили, ...

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

Популярная функция Instagram появится в WhatsApp WhatsApp и Instagram принадлежат Facebook уже довольно давно, однако совсем недавно последняя решила публично заявить об этом на весь мир (чтобы не осталось неосведомлённых), сообщив также, что в скором времени собирается объединить соцсеть, фотосервис и мессенджер в единое...

[Из песочницы] Как отличить хороший SCRUM от плохого, используя подход основоположника квантовых вычислений В 1985 году Дэвид Дойч первым описал квантовую машину Тьюринга. Позже он соединил идеи Поппера, Докинза, Эверетта и того же Тьюринга в теорию разумных объяснений. А недавно я обнаружил, что улучшаю процессы разработки банковских продуктов на основе его подхода к методологии ...

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

Как перестать делать одно и то же Вы любите из раза в раз повторять рутинные операции? Вот и я нет. Но каждый раз в SQL-клиенте при работе с хранилищем Ростелекома приходилось прописывать все джойны между таблицами ручками. И это притом, что в 90% случаев поля и условия соединения таблиц совпадали от запроса...

Nvidia добавляет поддержку CUDA для ARM-процессоров Компания Nvidia объявила о поддержке CPU на архитектуре ARM. Это позволит производителям создавать еще более экономичные суперкомпьютеры для экзафлопсных вычислений с поддержкой алгоритмов искусственного интеллекта. Подробнее об этом читайте на THG.ru.

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

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

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

Как определить лучшее время для покупки биткоина с помощью «Ленты сложности» Как известно, майнеры — важнейшие участники сетей криптовалют на основе алгоритма Proof-of-Work. Осуществляя сложные вычисления и сжигая огромное количество энергии, они подтверждают транзакции и защищают сеть от разного вида атак. Однако не стоит забывать, что майнеры также...

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

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

[Из песочницы] Методы сжатия/хранения медиа данных в форматах WAVE и JPEG, часть 1 Здравствуйте! Моя первая серия статей будет направлена на изучение методов сжатия и хранения изображений/звука, таких как JPEG (изобр.) и WAVE (звук), также в них будут примеры программ с использованием этих форматов (.jpg, .wav) на практике. В этой части мы рассмотрим именн...

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

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

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

[Из песочницы] Изоморфизм спешит на помощь «Изоморфизм» — одно из базовых понятий современной математики. На конкретных примерах на Haskell и C# я не только растолкую теорию для нематематиков (не используя при этом никаких непонятных математических символов и терминов), но и покажу как этим можно пользоваться в повсе...

Tic Tac Toe, часть 6: Flask и Celery/RabbitMQ Tic Tac Toe: содержание цикла статейПопробуем подключить Celery/RabbitMQ к нашему проекту. В качестве основы возьмем проект с Flask'ом. Celery займется вычислением случайного числа. Читать дальше →

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

[Перевод] Фаззинг в стиле 2000 года на современных приложениях Windows 10 Рис. 1. Ушиблен, но не сломлен. Калькулятор Windows, чей код недавно опубликован на Github, оказался одним из двух протестированных приложений, которые не зависли и не упали в противостоянии с фаззером оконных сообщений разработки 2000 года. Размер окна специально увеличен,...

Представлены умные часы Amazfit Smart Sports Watch 3: два процессора, автономность до 14 дней, NFC и датчик ЧСС за $180 Вместе с умными часами Amazfit GTS компания Huami сегодня представила и модель, стоящую на ступень выше - Amazfit Smart Sports Watch 3. Эти часы в базовом исполнении стоят $180, топовая версия часов оценена в $240. Эти варианты различаются только материалами. К примеру,...

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

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

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

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

Посты в Instagram теперь можно планировать через Facebook Creator Studio На конференции International Broadcasting Convention компания Facebook объявила о добавлении возможности планировать публикации в ленте Instagram и IGTV через Creator Studio. Пользователи сервиса смогут запланировать публикацию максимум за 6 месяцев до выхода. В ближайшие ме...

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

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

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

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

Видео: Руководство по первому запуску 3D принтера ZENIT. Заметки Инженера от 3Dtool. Всем привет, с Вами 3DTool!Сегодня мы подготовили для Вас новое видео в формате "Заметки Инженера" в котором, подробно покажем как запускать 3Д принтер ZENIT в первый раз и как происходит печать из коробки. Максим расскажет о том, на что нужно обратить внимание при распаковк...

Совет Федерации принял законы о неуважении к власти и фейковых новостях Сегодня 149 сенаторов Совета Федерации проголосовали за принятие закона о публикации фейковых новостей. Против проголосовало только 3 человека, 4 сенатора воздержались, о чем сообщает «Коммерсант». Согласно новым правилам, за публикацию неправдивой информации физические лица...

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

Учёные создали электрооптическое наноустройство для быстрой памяти и процессоров Первое в мире интегрированное наноразмерное устройство, программируемое с помощью фотонов или электронов, было разработано учёными исследовательской группы профессора Хариша Бхаскарана (Harish Bhaskaran) из Оксфордского университета в сотрудничестве с исследователями из Мюнс...

6 советов по измерению удовлетворенности пользователей Часто проводится много дискуссий о том, что измерять при оценке  службы поддержки ИТ и управления ИТ-услугами. В книгах ITIL предлагают множество всевозможных параметров: ключевые показатели эффективности (KPIs), критические факторы успеха (CSF) — так много, что л...

От Норильска до Эр-Рияда: реальный кейс применения карт памяти Kingston Industrial Temperature microSD UHS-I Когда три года назад мы сделали обзор карт памяти для промышленного применения, в комментариях были пожелания не рассказывать про дроны и фотоаппараты, — мол, это не типичная область применения для таких карт памяти. ОК, сказали мы себе и записали в контент-план — сделать пу...

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

«Фабричный метод» и «Абстрактная фабрика» во вселенной «Swift» и «iOS» Слово «фабрика» – безусловно одно из самых часто употребляемых программистами при обсуждении своих (или чужих) программ. Но смысл в него вкладываемый бывает очень разным: это может быть и класс, порождающий объекты (полиморфно или нет); и метод, создающий экземпляры какого-л...

Разработан первый суперкомпьютер на базе процессоров «Эльбрус» Как было объявлено в рамках IV конференции "Цифровая индустрия промышленной России", суперкомпьютерное решение состоит из стоек, содержащих компактные четырехпроцессорные блейд-серверы с жидкостным охлаждением. Такой способ теплоотведения позволил снизить габариты...

Pixel 4 получит Face ID и управление воздушными жестами Что-то действительно странное происходит прямо у нас на газах. Компания Google почему-то решила начать раскрывать основные фишки своего предстоящего флагмана за несколько месяцев до официального анонса. Так, в июне Google удивила нас тем, что запостила рендер с дизайном Pix...

Децентрализованный интернет-провайдер «Medium» — три месяца спустя 1 мая 2019 года действующий президент Российской Федерации подписал Федеральный закон № 90-ФЗ «О внесении изменений в Федеральный закон «О связи» и Федеральный закон «Об информации, информационных технологиях и о защите информации», также известный как законопроект «О сувере...

Концепции программирования в Scratch Многим знаком Scratch – детская среда программирования, обучение в которой обычно сводится к созданию творческих проектов по принципу «от простого к сложному». При этом «классический подход» к изучению программирования (переменные → ветвления → циклы → функции → структуры ...

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

Тестирование процессора Intel Core i9-9820X в играх Мы продолжаем рассматривать вопрос игровой производительности обновленных процессоров Intel Skylake-X. Напомним, что Core i9-9820X – это решение с 10 ядрами и 20 потоками. Уже сразу можно говорить об эмоциях использования многоядерных процессоров в играх и далеко не радужных...

Безграничные технологии XR в эпоху распределённых вычислений Как трансформация Wireless Edge поможет в разработке фотореалистичных мобильных систем расширенной реальности. Читать дальше →

Intel инвестирует в чип ИИ, который будет передавать данные в 1000 раз быстрее Intel инвестирует 13 миллионов долларов в Untether AI, стартап, который работает над новым типом чипа для искусственного интеллекта, который обещает выполнять нейронно-сетевые вычисления с повышенной скоростью. Untether — родом из Торонто, Канада — уже разработала прототип ...

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

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

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

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

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

Гэри Илш призвал SEO-специалистов «вернуться к основам» Отвечая на вопросы в рамках AMA-сессии в Reddit, сотрудник Google Гэри Илш посоветовал SEO-специалистам обратить внимание на базовые вопросы поисковой оптимизации. В частности, заняться тем, чтобы сделать сайты более доступными для сканирования. Вопрос к Илшу касался его мыс...

Ситуация: новая волна атак с перехватом DNS-запросов — разбираем базовые методы защиты Специалисты по ИБ зафиксировали рост числа атак DNS hijacking на сайты частных и правительственных компаний. Рассказываем, кто пострадал и как защититься. Читать дальше →

Сергей и научный метод Все совпадения случайны. Кто не спрятался, я не виноват. — Проходи, что стоишь как не родной? Сергей огляделся — в квартире своего учителя-профессора он еще не бывал. Обыкновенная московская, в старом доме — видимо, еще с тех времен, когда их выдавали… или не выдавали, чер...

Swift under the hood: Generic implementation Generic code enables you to write flexible, reusable functions and types that can work with any type, subject to requirements that you define. You can write code that avoids duplication and expresses its intent in a clear, abstracted manner. — Swift docsКаждый, кто писал на ...

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

Laravel: разбираем основные понятия. Часть третья: «Заключительная» Считанные дни остаются до старта нового курса от OTUS — «Framework Laravel». В преддверии старта курса делимся заключительной частью авторской публикации о основных понятиях в Laravel. Важно: данная серия публикаций не имеет отношения к образовательной программе курса и явля...

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

SC19: Intel представила Ponte Vecchio — первый 7-нм GPU на архитектуре Xe, заточенный под HPC и ИИ Как и ожидалось, в рамках конференции SC19 компания Intel представила свой первый графический процессор на архитектуре Intel Xe HPC, который получил кодовое название Ponte Vecchio, в часть средневекового моста Понте-Веккьо в итальянской Флоренции. Компания Intel называет нов...

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

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

[Перевод] Бесстрашная защита. Безопасность памяти в Rust В прошлом году Mozilla выпустила Quantum CSS для Firefox, который стал кульминацией восьми лет разработки Rust — безопасного для памяти языка системного программирования. Потребовалось более года, чтобы переписать основной компонент браузера на Rust. До сих пор все основны...

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

[Перевод] Ищем утечки памяти в приложениях на Python Ola! мы продолжаем серию публикаций приуроченных к запуску курса «Web-разработчик на Python» и прямо сейчас делимся с вами переводом еще одной интересной статьи. В Zendesk мы используем Python для создания продуктов с машинным обучением. В приложениях с использованием машин...

[Из песочницы] Под капотом у React. Пишем свою реализацию с нуля 


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

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

Maven-путь построения Go проектов Сначала небольшая предыстория. В начале 2010-х, я сделал небольшую утилиту-конвертер для BIN файлов эмулятора БК-0010 в WAV файлы. Утилита была написана на Python с целью максимальной переносимости, работала без проблем и я на какое то время забыл о ней. Но в 2016м появился ...

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

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

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

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

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

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

Управление конфликтами в команде – эквилибристика или жизненная необходимость? Эпиграф: Встретились как-то в лесу Ёжик и Медвежонок. — Здравствуй, Ёжик! — Здравствуй, Медвежонок! Так, слово за слово, шутка за шуткой, и получил Ёжик от Медвежонка по морде … Под катом рассуждения нашего тимлида, а также директора по развитию продукта RAS — Игоря Марна...

Построение отказоустойчивого решения на базе Oracle RAC и архитектуры AccelStor Shared-Nothing Немалое число Enterprise приложений и систем виртуализации имеют собственные механизмы для построения отказоустойчивых решений. В частности, Oracle RAC (Oracle Real Application Cluster) представляет собой кластер из двух или более серверов баз данных Oracle, работающих совме...

[Из песочницы] Немного о стандартах космической связи Спутник Метеор М1 Источник: vladtime.ru Введение Эксплуатация космической техники невозможна без радиосвязи, и в этой статье я постараюсь объяснить основные идеи, которые легли в фундамент стандартов, разработанных Международным Консультативным Комитетом по космическим сис...

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

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

[] 5 простых правил удобного для восприятия кода Ускользает понимание своего или чужого кода? Не можете вникнуть в алгоритм? Проводите кучу время в отладке, но найти место неверной инициализации не получается, а хочется получать удовольствие от кодирования? Вспомните о приведенных ниже правилах и примените их! В статье...

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

[Перевод] Дробное броуновское движение Введение fBM расшифровывается как Fractional Brownian Motion (дробное броуновское движение). Но прежде чем начать говорить о природе, фракталах и процедурных рельефах, давайте на минуту углубимся в теорию. Броуновское движение (Brownian Motion, BM), просто, без «дробности» ...

Быть фулстеком и не быть им Я именно тот 40+ летний синглстек, который упоминался в нашумевшей статье. Когда я вижу таск, где бэкендер упоминает dTo, к которому нужно написать обвязку на фронте… Я запланировано выхожу из себя. Во-первых, я хорошо работаю, когда злой. А тут такой случай. А во-вторых (и ...

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

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

Германия инвестирует 650 млн евро в квантовые вычисления В рамках данной инициативы IBM и одна из ведущих европейских организаций по прикладным исследованиям Fraunhofer-Gesellschaft объявили о партнерском соглашении в области квантовых вычислений с целью развития исследований в Германии. Целью сотрудничества является создание ново...

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

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

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

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

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

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

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

Python и FPGA. Тестирование В продолжение к первой статье, хочу на примере показать вариант работы с FPGA (ПЛИС) на python. В данной статье затрону подробнее аспект тестирования. Если фреймворк MyHDL позволяет людям, работающим на python, используя знакомый синтаксис и экосистему, заглянуть в мир FPGA,...

CSS переменные и цветовая тема для сайта в несколько строк Один из способов использовать CSS переменные уже сегодня Создадим сайт который динамически поддерживает светлую, тёмную и цветовые темы. Интерактивное демо Создаём базовый цвет который будет меняться. Привязываем его к data-theme на html. html[data-theme='green'] { --...

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