Как стать автором
Обновить
2
0

Пользователь

Отправить сообщение

Пеленгатор на дополненной реальности

Время на прочтение5 мин
Количество просмотров27K

image(скриншот или фото)


Когда я только начинал инженерную деятельность разработкой пеленгаторов, в головах опытных товарищей, называемых нами, молодыми, за глаза "дедами", бродила мечта о “пеленгаторе на пупке”. “Это — говорили они — такой маленький пеленгатор, который можно носить с собой и пеленговать украдкой. Вот, дескать, нам приходится таскать на себе такие тяжести на крышу и обратно (хотя таскала, конечно, молодежь), а они, молодежь, никак не разработают такую вещь”. Смотря на стоящие на столе огромные железяки, мы считали их немного не в себе.


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


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


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

Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии87

Concurrency паттерны в Rust из Java

Время на прочтение11 мин
Количество просмотров13K

Под катом находятся заметки, в которых расписано, как реализовать в Rust хитрые concurrency паттерны, которые я с легкостью пишу в Java, и в чем различие в подходах к concurrency у этих языков. Статья будет полезна и тем, кто переходит на Rust из C#, ведь у него аналогичная модель памяти.

Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии22

Офис компании Boomburum

Время на прочтение19 мин
Количество просмотров411K
image

Осторожно, трафик! Но можно хотя бы посмотреть картинки )

   Идея создать дома свой «рабочий кабинет» у меня зрела давно – как-то сам дошел до осознания его необходимости, хотя немалый вклад в начинания сделал этот давний пост на Хабре. У меня было своё рабочее место – большой удобный стол, где помещалось практически всё и даже больше… но, по сути, он был проходным двором – все время кто-то ходил, был рядом, отвлекал… такое очень часто мешает сосредоточиться и начать работать. Иногда, бывает, сидишь весь вечер за компом и понимаешь, что абсолютно ничего не сделал, хотя родным заявил «так, мне надо поработать».
Читать дальше →
Всего голосов 738: ↑625 и ↓113+512
Комментарии438

Краткий курс машинного обучения или как создать нейронную сеть для решения скоринг задачи

Время на прочтение28 мин
Количество просмотров216K
image

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

Если тебе интересно машинное обучение, то приглашаю в «Мишин Лернинг» — мой субъективный телеграм-канал об искусстве глубокого обучения, нейронных сетях и новостях из мира искусственного интеллекта.

Вопросы, которые разобраны в статье:

• Как собрать и подготовить данные для построения модели?
• Что такое нейронная сеть и как она устроена?
• Как написать свою нейронную сеть с нуля?
• Как правильно обучить нейронную сеть на имеющихся данных?
• Как интерпретировать модель и ее результаты?
• Как корректно оценить качество модели?
Поехали!
Всего голосов 51: ↑42 и ↓9+33
Комментарии43

Вероятностное программирование на Scala

Время на прочтение7 мин
Количество просмотров10K
Здравствуйте, дорогие читатели. Сегодня мы публикуем внеочередной перевод — это будет обзорная статья блистательного Ноэля Уэлша о принципах вероятностного программирования. Статья публикуется по заявкам читателей, которые задают нашему блогу все более высокую планку — и это, безусловно, здорово!
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии4

Объяснение SNARKs. Знание о принятом коэффициенте и достоверное слепое вычисление полиномов (перевод)

Время на прочтение6 мин
Количество просмотров3.4K
Привет, Хабр! Представляю вашему вниманию перевод статей блога ZCash, в которых рассказывается о механизме работы системы доказательств с нулевым разглашением SNARKs, применяемых в криптовалюте ZCash (и не только).

Предыдущая статья: Объяснение SNARKs. Гомоморфное скрытие и слепое вычисление полиномов (перевод)

В этой статье мы рассмотрим тест на принятый коэффициент и слепое вычисление полиномов, поддающихся проверке. Поехали…
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии3

Обзор зарубежных и российских регистраторов доменных имён. Сравнение маркетинговых уловок у нас и у них

Время на прочтение5 мин
Количество просмотров95K
В последнее время появилось много интересных доменных зон, некоторые из них были и раньше. У большинства регистраторов на такие зоны большие скидки и на какой-то момент можно поверить, чтобы были созданы дешёвые и доступные зоны для всех пользователей для любых нужд, но на самом деле это и близко не так. Далее речь пойдёт о классических зонах .ru / .com и не совсем обычных .xyz, .club, .today, .life, .world, .online, .tech, .store, а также о регистраторах, которые заманивают низкими ценами и в результате пользователи попадают на большие деньги на продлении этих зон.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии88

Аудио и видео в мессенджере Tox

Время на прочтение10 мин
Количество просмотров17K
Пока одни люди думают о регулировании мессенджеров, другие люди разрабатывают распределенные мессенджеры. В предыдущей публикации рассматривалось использование API ядра мессенджера Tox на примере создания простого echo-бота. Разработка Tox не стоит на месте и 3-го ноября ядро Tox обогатилось новой подсистемой аудио и видео вызовов — ToxAV о которой я и хотел бы рассказать в данной публикации.

image

Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии23

Isotoxin: свободный мультипротокольный мессенджер с поддержкой Tox

Время на прочтение7 мин
Количество просмотров30K
Вы наверняка слышали о Tox. Напомню: это свободный защищенный p2p протокол для передачи сообщений, аудио и видео потоков между участниками Tox-сети. По сути — это альтернатива скайпу. Когда я впервые услышал о Tox, мой градус неприязни к скайпу был еще не слишком высок, но я уже начал поиск альтернатив. Мне очень понравилась идея, лежащая в основе Tox: мы пишем протокол со всеми нужными плюшками, а вы пишете к нему клиенты. Когда появились первые клиенты для сети Tox, я подумал: «черт возьми, я смогу сделать это не хуже!». Вобщем, подталкиваемый неприязнью к скайпу, я взялся за проект мессенджера своей мечты. Сейчас, когда в моем локальном hg-репозитории первому комиту исполнилось 19 месяцев и был сделан 414-й комит, я наконец то созрел до того, чтобы рассказать об этом клиенте широкой аудитории Хабра.


Читать дальше →
Всего голосов 60: ↑57 и ↓3+54
Комментарии55

Моноколесо: два сезона опыта

Время на прочтение10 мин
Количество просмотров43K
2300 пройденных километров, один серьезный ремонт, зимовка, четыре достойных упоминания падения — таковы численные результаты двух моих сезонов на моноколесе. А еще это опыт, которым я бы хотел поделиться. Может быть, несколько не вовремя рассказывать о нем в первый день зимы. Действительно, я хотел подготовить материал к годовщине знакомства, но, увы, постоянно находились более важные дела. Впрочем, есть своя логика в том, чтобы готовить сани летом, а моноколесо — зимой.


Всего голосов 35: ↑34 и ↓1+33
Комментарии85

Современный CMake: 10 советов по улучшению скриптов сборки

Время на прочтение8 мин
Количество просмотров82K

CMake — это система сборки для C/C++, которая с каждым годом становится всё популярнее. Он практически стал решением по умолчанию для новых проектов. Однако, множество примеров выполнения какой-либо задачи на CMake содержат архаичные, ненадёжные, раздутые действия. Мы выясним, как писать скрипты сборки на CMake лаконичнее.

Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии29

Готовим к публикации пост с формулами

Время на прочтение2 мин
Количество просмотров27K

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


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


Скриншот редактора


Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии32

Методы оптимизации нейронных сетей

Время на прочтение17 мин
Количество просмотров219K

В подавляющем большинстве источников информации о нейронных сетях под «а теперь давайте обучим нашу сеть» понимается «скормим целевую функцию оптимизатору» лишь с минимальной настройкой скорости обучения. Иногда говорится, что обновлять веса сети можно не только стохастическим градиентным спуском, но безо всякого объяснения, чем же примечательны другие алгоритмы и что означают загадочные \inline \beta и \inline \gamma в их параметрах. Даже преподаватели на курсах машинного обучения зачастую не заостряют на этом внимание. Я бы хотел исправить недостаток информации в рунете о различных оптимизаторах, которые могут встретиться вам в современных пакетах машинного обучения. Надеюсь, моя статья будет полезна людям, которые хотят углубить своё понимание машинного обучения или даже изобрести что-то своё.


image


Под катом много картинок, в том числе анимированных gif.

Читать дальше →
Всего голосов 78: ↑78 и ↓0+78
Комментарии74

Путеводитель по исходникам LLVM

Время на прочтение6 мин
Количество просмотров8.1K
В моём углубленном курсе компиляторов прошлой осенью мы провели некоторое время, изучая дерево исходников LLVM. Миллион строк кода на C++ выглядят пугающе, но я нахожу это интересным упражнением, и, по крайней мере, некоторые студенты с этим согласны, и я подумал, что я попытаюсь написать что-то подобное. Мы будем использовать LLVM 3.9, но предыдущие (и, возможно, будущие) релизы не сильно отличаются.

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

«Магическая константа» 0x5f3759df

Время на прочтение9 мин
Количество просмотров124K
В этой статье мы поговорим о «магической» константе 0x5f3759df, лежащей в основе элегантного алгоритмического трюка для быстрого вычисления обратного квадратного корня.

Вот полная реализация этого алгоритма:

float FastInvSqrt(float x) {
  float xhalf = 0.5f * x;
  int i = *(int*)&x;  // представим биты float в виде целого числа
  i = 0x5f3759df - (i >> 1);  // какого черта здесь происходит ?
  x = *(float*)&i;
  x = x*(1.5f-(xhalf*x*x));
  return x;
}

Этот код вычисляет некоторое (достаточно неплохое) приближение для формулы

image

Сегодня данная реализация уже хорошо известна, и стала она такой после появления в коде игры Quake III Arena в 2005 году. Её создание когда-то приписывали Джону Кармаку, но выяснилось, что корни уходят намного дальше – к Ardent Computer, где в середине 80-ых её написал Грег Уолш. Конкретно та версия кода, которая показана выше (с забавными комментариями), действительно из кода Quake.
В этой статье мы попробуем разобраться с данным хаком, математически вывести эту самую константу и попробовать обобщить данный метод для вычисления произвольных степеней от -1 до 1.

Да, понадобится немного математики, но школьного курса будет более, чем достаточно.
Читать дальше →
Всего голосов 212: ↑210 и ↓2+208
Комментарии188

Физически неклонируемые функции: защита электроники от нелегального копирования

Время на прочтение8 мин
Количество просмотров19K
За последние 10 лет количество товаров-подделок в мире увеличилось в 2 раза. Это данные отчета министерства внутренней безопасности США. Большая часть контрафакта приходится на Китай (56 %), Гонконг (36%) и Сингапур (2%).

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



Эту проблему помогают решить различные методы защиты цифровой электроники от нелегального копирования, модификации и обратного проектирования: аппаратное шифрование (AES, RSA и др.), хеширование (например, SHA-256, MD-5), внедрение цифровых водяных знаков и отпечатков пальцев в проектное описание, лексическая и функциональная обфускация, формальная верификация и другие.

В этой статье мы расскажем об одном из самых экономичных методов защиты с точки зрения аппаратных затрат — физически неклонируемых функциях.
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии64

Немного о ARM Security Extensions (aka ARM TrustZone)

Время на прочтение7 мин
Количество просмотров24K

О чем эта статья


На Хабре уже несколько раз упоминали о SMM — режиме процессора x86/64 который имеет больше привилегий чем даже режим гипервизора. Нечто подобное есть и в процессорах архитектуры ARMv7 и ARMv8. Вычислительные ядра этих архитектур могут иметь опциональное расширение под названием ARM Security Extensions, которое позволит разделить исполняемый код, память и периферию на два домена — доверенный и недоверенный. Официальное маркетинговое название этой технологии — ARM TrustZone. Но технари чаще предпочитают говорить о security extensions.


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

Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии21

Программирование под ARM TrustZone. Secure Monitor

Время на прочтение12 мин
Количество просмотров13K
Продолжаем наш цикл статей, посвященный столетию Великой Октябрьской… ARM TrustZone.

Сегодня мы разберемся, что такое Secure World, Normal World, как на программном уровне взаимодействуют две ОС – доверенная (TEE) и гостевая. Узнаем, для чего нужен и как работает Secure Monitor, как обрабатываются прерывания от устройств.

Если готовы – добро пожаловать под кат.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии9

Визуализация процесса обучения нейронной сети средствами TensorFlowKit

Время на прочтение5 мин
Количество просмотров23K
Hint
Перед прочтением этой статьи советую ознакомиться с предыдущей статьей о TensorFlowKit и поставить star репозиторию.

Я не люблю читать статьи, сразу иду на GitHub
GitHub: TensorFlowKit
GitHub: Example
GitHub: Другое
TensorFlowKit API
Посeтив репозиторий, добавьте его в «Stars» это поможет мне написать больше статей на эту тему.

image

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

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

Существуют целые сообщества, решающие такого рода задачи, например Distill, Welch Labs, 3Blue1Brown.

Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии14

Криптографические токены PKCS#11: управление и доступ к объектам токена (Продолжение )

Время на прочтение3 мин
Количество просмотров13K
image Криптографические токены/смарткарты сегодня стали довольно обыденным делом. Все больше людей идут на Удостоверяющие Центры (УЦ) и просят выдать ключик и электронную подпись для доступа к различным сайтам для получения тех или иных услуг. Попытка объяснить, что им выдадут сертификат по аналогии с паспортом, а электронную подпись они будут ставить сами, используя свой закрытый ключ, мало кого и в чем убеждает.

Есть магическое слово – ключик, а на нем есть что-то, что позволит отправить данные в налоговую, участвовать в торгах и т.п. И УЦ выдают гражданам и организациям «ключики» с сертификатами и закрытыми ключами. Сегодня в абсолютном большинстве этими ключиками являются токены. Так и хочется сказать -криптографические токены с поддержкой российской криптографией и интерфейсом PKCS#11. К сожалению это далеко не так. Несмотря на то, что и производителей и объем токенов растет, используются все же они в большинстве случаев как обыкновенная флэшка, но с доступом к ней по PIN-коду.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии17

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность