Search
Write a publication
Pull to refresh
37
0
barkalov @barkalov

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

Send message

«Когда часы двенадцать бьют». Или гирлянда в браузере

Reading time12 min
Views9.5K
Предположим, у нас есть несколько мониторов. И нам захотелось использовать эти мониторы в качестве гирлянды. Например, заставить их моргать одновременно. Или, может быть, синхронно менять цвет согласно какому-то умному алгоритму. И что, если сделать это в браузере – ведь тогда можно будет подключить к этому и смартфоны, и планшеты. Всё что есть под рукой.



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


С чем можно столкнуться при синхронизации Web Audio и геймплейных часов внутри javascript-приложения; сколько вообще разных «часов» есть в javasctipt (три!) и зачем все они нужны, а также готовое приложение для node.js – под катом.
Читать дальше →

Управляем дюймовыми жалюзи дешево

Reading time8 min
Views31K

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



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

Читать дальше →

Погружение в свёрточные нейронные сети. Часть 5 / 1 — 9

Reading time19 min
Views34K

Полный курс на русском языке можно найти по этой ссылке.
Оригинальный курс на английском доступен по этой ссылке.



Выход новых лекций запланирован каждые 2-3 дня.

Читать дальше →

Как создать QR код для оплаты в платежной системе

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

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


Читать дальше →

Как сделать из сайта приложение и выложить его в Google Play за несколько часов. Часть 2/2: Trusted Web Activity

Reading time5 min
Views60K
image

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

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

Что не так с обучением с подкреплением (Reinforcement Learning)?

Reading time21 min
Views56K


Еще в начале 2018 года вышла статья Deep Reinforcement Learning Doesn't Work Yet ("Обучение с подкреплением пока не работает"). Основная претензия которой сводилась к тому, что современные алгоритмы обучения с подкреплением требуют для решения задачи примерно столько же времени, как и обычный случайный поиск.


Изменилось ли что-то с того времени? Нет.


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

Читать дальше →

Умный дом, я всё-таки тебя сделал

Reading time4 min
Views88K


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

Домашняя электросеть

Reading time12 min
Views43K
Здесь часто возникает тема защиты оборудования в домашней электросети, но очень часть при описании базовых параметров устройств защиты информация не соответствует действительности или же, в лучшем случае, основана на отдельных примерах. Потому далее будет своеобразный ликбез о том, как правильно сделать вводный электрощиток.

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

Защищаем веб-сервер на Linux

Reading time8 min
Views35K
Привет, Хабр!

У нас давно не выходило новых книг по Linux для начинающих — и вот мы беремся за перевод новинки именно такого плана. Книга "Linux in Action" Дэвида Клинтона вышла в издательстве Manning и рассказывает не только о внутреннем устройстве Linux, но и о наиболее распространенных проблемах, и о способах их устранения.


Автор опубликовал на сайте Hackernoon отрывок из 9-й главы, который мы и предлагаем вам оценить.
Читать дальше →

Математика на пальцах: методы наименьших квадратов

Reading time8 min
Views236K

Введение




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

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

Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 1 — 14

Reading time24 min
Views63K

Некоторое время назад в моей ленте в фейсбуке всплыла ссылка на книгу Эндрю Ына (Andrew Ng) "Machine Learning Yearning", которую можно перевести, как "Страсть к машинному обучению" или "Жажда машинного обучения".


image<img src="<img src="https://habrastorage.org/webt/ds/rc/ct/dsrcctfottkedkf7o1hxbqsoamq.png" />" alt="image"/>


Людям, интересующимся машинным обучением или работающим в этой сфере представлять Эндрю не нужно. Для непосвященных достаточно сказать, что он является звездой мировой величины в области искусственного интеллекта. Ученый, инженер, предприниматель, один из основателей Coursera. Автор отличного курса по введению в машинное обучение и курсов, составляющих специализацию "Глубокое обучение" (Deep Learning).

Читать дальше →

Символы, генераторы, async/await и асинхронные итераторы в JavaScript: их сущность, взаимосвязь и варианты использования

Reading time23 min
Views34K
Сущность и предназначение множества возможностей JavaScript вполне очевидны. А вот некоторые, вроде генераторов, могут, на первый взгляд, показаться странными. Такое же впечатление способны вызвать и, скажем, символы, которые похожи и на значения примитивных типов, и на объекты. Однако, язык программирования — это целостная система, одни возможности которой полагаются на другие. Поэтому обычно нельзя в полной мере понять что-то одно, не разобравшись со всем тем, с чем это связано, от чего зависит, и на что влияет.

image

Материал, перевод которого мы сегодня публикуем, направлен на разъяснение таких механизмов и конструкций JavaScript, как символы, известные символы, итераторы, итерируемые объекты, генераторы, механизм async/await, и асинхронные итераторы. В частности, речь здесь пойдёт о том, почему они появились в языке, и о том, как ими пользоваться. Надо отметить, что темы, которые будут здесь подняты, рассчитаны на тех, кто уже имеет некоторое представление о JavaScript.
Читать дальше →

Поиск и устранение неисправностей Node.js-приложений под капотом

Reading time14 min
Views13K
С момента появления Node.js диагностика совершенствовалась в несколько этапов, от отладки приложений до глубокого анализа производительности. В этот раз речь пойдет о стратегиях использования таких инструментов, как core dump debuggers, flame graphs, ошибках в production и утечке памяти.


Мы расшифровали для Хабра доклад Николая Матвиенко из Grid Dynamics с нашей конференции HolyJS. Далее повествование идёт от лица спикера.
Читать дальше →

Квест по устранению аритмии сердца

Reading time7 min
Views14K
image

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

Пользовательские агрегатные и оконные функции в PostgreSQL и Oracle

Reading time17 min
Views48K

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

Надо признать, что собственные агрегатные и оконные функции встречается довольно редко. Оконные функции вообще по каким-то причинам традиционно относят к разряду «продвинутого» SQL и считают сложными для понимания и освоения. Тут бы разобраться с теми функциями, которые уже имеются в СУБД!

Зачем тогда вообще вникать в этот вопрос? Могу назвать несколько причин:

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

Пример, на котором будем тренироваться — подсчет среднего, аналог стандартной функции avg для типа numeric (number в Oracle). Мы напишем такую функцию и посмотрим, как она работает в агрегатном и оконном режимах и может ли она вычисляться несколькими параллельными процессами. А в заключение поглядим на пример из реальной жизни.
Читать дальше →

Learn OpenGL. Урок 4.9 — Геометрический шейдер

Reading time15 min
Views29K
OGL3

Геометрический Шейдер


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

Lightning Network In Depth, part 2: HTLC And Payment Routing

Reading time9 min
Views5.2K

В прошлой статье мы с вами подробно разобрали работу платежных каналов, а также несколько различных методов по обеспечению безопасности платежей, проходящих через них, однако этого все еще недостаточно для построения рабочей сети каналов: даже если мы уверены в том, что внутри каждого канала все играют честно, мы не можем гарантировать доставку средств по цепочке через ряд каналов. И здесь нам на помощь приходят смарт-контракты, называемые HTLC (hash-time-lock-contracts). В этой статье мы разберем принцип их работы, и продемнострируем как проходит платеж в сети Lightning network.


Lightning network

Читать дальше →

Обзор нового алгоритма уменьшения размерности UMAP. Действительно ли он лучше и быстрее, чем t-SNE?

Reading time6 min
Views28K
Привет, Хабр! Задача снижения размерности является одной из важнейших в анализе данных и может возникнуть в двух следующих случаях. Во-первых, в целях визуализации: перед тем, как работать с многомерными данными, исследователю может быть полезно посмотреть на их структуру, уменьшив размерность и спроецировав их на двумерную или трехмерную плоскость. Во-вторых, понижение размерности полезно для предобработки признаков в моделях машинного обучения, поскольку зачастую неудобно обучать алгоритмы на сотне признаков, среди которых может быть множество зашумленных и/или линейно зависимых, от них нам, конечно, хотелось бы избавиться. Наконец, уменьшение размерности пространства значительно ускоряет обучение моделей, а все мы знаем, что время — это наш самый ценный ресурс.

UMAP (Uniform Manifold Approximation and Projection) — это новый алгоритм уменьшения размерности, библиотека с реализацией которого вышла совсем недавно. Авторы алгоритма считают, что UMAP способен бросить вызов современным моделям снижения размерности, в частности, t-SNE, который на сегодняшний день является наиболее популярным. По результатам их исследований, у UMAP нет ограничений на размерность исходного пространства признаков, которое необходимо уменьшить, он намного быстрее и более вычислительно эффективен, чем t-SNE, а также лучше справляется с задачей переноса глобальной структуры данных в новое, уменьшенное пространство.

В данной статье мы постараемся разобрать, что из себя представляет UMAP, как настраивать алгоритм, и, наконец, проверим, действительно ли он имеет преимущества перед t-SNE.


Читать дальше →

Lightning network in depth, part 1: payment channels

Reading time9 min
Views6.4K

Lightning network это децентрализованная оф-чейн технология, позволяющая проводить десятки тысяч транзакий в секунду, как это позволяет делать, к примеру, Visa. На данный момент Биткоин — самая популярная в мире криптовалюта, не приспособлена для отправки более чем ~7 транзакций в секунду, а высокие комисси и долгое время подтверждения сводят на нет возможность отправки микротранзакций. Lightning network решает обе эти проблемы.


Lightning network

Читать дальше →

Элегантные паттерны современного JavaScript: RORO

Reading time9 min
Views22K
Автор материала, перевод которого мы публикуем сегодня, Билл Соро, говорит, что написал первые строки кода на JavaScript вскоре после появления этого языка. По его словам, если тогда ему сказали бы, что однажды он выпустит серию статей об элегантных шаблонах проектирования в JavaScript, он умер бы со смеху. Тогда он воспринимал JS как странный маленький язык, писанину на котором можно было с большой натяжкой называть «программированием».

Но за 20 лет многое изменилось. Теперь Билл воспринимает JavaScript таким, каким видел его Дуглас Крокфорд, когда работал над книгой «JavaScript. Сильные стороны»: красивым, элегантным и выразительным динамическим языком программирования.



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

Information

Rating
Does not participate
Location
Красноярск, Красноярский край, Россия
Date of birth
Registered
Activity