Pull to refresh
9
0

программист Python, C++

Send message

Удалённое управление UART'ом через Web

Reading time5 min
Views11K

Начнём с железа


image Работал я как-то на одном заводе, где лепили всякую электронику, не шибко сложную, и иногда подпадавшую под определение «Интернет вещей». По большей части, всякие датчики для охранных систем: датчики дыма, шума, проникновения, огня и всякое другое. Ассортимент изделий был широчайший, партии иногда были меньше 500 штук, и едва ли не под каждое изделие приходилось делать отдельный Test Fixture — по сути, просто жестяная коробка, в которую изделие на тестах ставилось, прижималось крышкой, и снизу контактные иглы прижимались к контактным точкам на печатной плате, как-то так:
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments31

Запуск идеи стоит 5 млн, и это дорого. Как сэкономить на проекте? Спойлер: откажитесь от React

Level of difficultyEasy
Reading time4 min
Views20K

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

Рендеринг — это преобразование кода в визуализированную страницу. Самые распространённые типы — на сервере (server side rendering, или SSR) и в браузере клиента (client side rendering, или CSR). В последнее время мы чаще используем серверный рендеринг с помощью технологии HTMX и советуем его заказчикам. В статье расскажем, почему.

Читать далее
Total votes 37: ↑20 and ↓17+3
Comments135

Маржинальный торговый робот на криптовалютной бирже BitMEX

Reading time5 min
Views30K

Всем доброго времени суток!


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

Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments39

Как искать паттерны в биржевых данных и использовать их в торговле?

Reading time13 min
Views38K
Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли.

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

В статье есть несколько приятных бонусов в виде кода на Python — Вы сможете сами проанализировать любые (почти) биржевые данные (или значения индикаторов), запустить собственного торгового робота и проверить любую торговую стратегию.

Все условия и определения паттернов в статье приведены для примера, вы можете использовать любые критерии.
Читать дальше →
Total votes 38: ↑31 and ↓7+24
Comments44

Делаем контроллер для умного дома

Reading time11 min
Views20K
Делаем контроллер для умного дома и не только.

В предыдущей статье я описывал разработку системы в целом. В этой я опишу разработку контроллера, который отвечает за опрос датчиков и модулей ввода-вывода. «Зачем изобретать велосипед?» — спросите вы. Во-первых, это интересно, во вторых, как ни странно, нет OpenSource решения для подобного контроллера, покрывающего как программную так и аппаратную часть. Статья ориентирована на людей немного разбирающихся как в электронике так и в embedded linux development.

Сделать контроллер, скажете вы, это же так сложно — нужно делать плату, писать софт, печатать корпус. Но в реалии всё чуть-чуть ещё сложнее, вот во что это вылилось для меня, но вы в принципе правы:
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments5

Подборка рабочих примеров обработки данных

Reading time4 min
Views13K
Привет, читатель.

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

Схема работы с текущим постом унаследуется от моего поста про лучшие блокноты по ML и DS, а именно — сохранил в закладки → передал коллеге.

+ бонус в конце статьи — крутой курс от ФПМИ МФТИ.

image

Итак, давайте приступим.

Подборка датасетов с рабочими примерами обработки данных:


Suicide Rates Overview 1985 to 2016 — сравнение социально-экономической информации с показателями самоубийств по годам и странам.

Примеры обработки:

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments0

Собираем бандл мечты с помощью Webpack

Reading time18 min
Views68K
JS-приложения, сайты и другие ресурсы становятся сложнее и инструменты сборки — это реальность веб-разработки. Бандлеры помогают упаковывать, компилировать и организовывать библиотеки. Один из мощных и гибких инструментов с открытым исходным кодом, который можно идеально настроить для сборки клиентского приложения — Webpack.

Максим Соснов (crazymax11) — Frontend Lead в N1.RU внедрил Webpack в несколько больших проектов, на которых до этого была своя кастомная сборка, и контрибьютил с ним несколько проектов. Максим знает, как с Webpack собрать бандл мечты, сделать это быстро и конфигурировать так, чтобы конфиг оставался чистым, поддерживаемым и модульным.


Расшифровка отличается от доклада — это сильно усовершенствованная пруфлинками версия. По всей расшифровке рассыпаны пасхалочки на статьи, плагины, минификаторы, опции, транспайлеры и пруфы слов докладчика, ссылки на которые просто не поставить в выступление. Если собрать все, то откроется бонусный уровень в Webpack :-)
Total votes 61: ↑58 and ↓3+55
Comments17

Storage Class Memory в СХД — если вам нужно еще побыстрее

Reading time5 min
Views7.6K
Картинка не выражает позицию компании и является личным видением автора, не обязательно связанным с темой данного текста, аминьКак вы наверное помните, НРЕ давно вкладывается в тему новых типов хранилищ данных (конечно, The Machine) и в оптимизацию доступа к хранилищам (наше членство в консорциуме Gen-Z).

Цель этого движения — ускорить работу приложений наших заказчиков. Причем движение это многоуровневое: пока куется совершенно новая архитектура вычислительных систем The Machine (т.н. памяте-центричная архитектура), мы понимаем, что ускоряться нужно уже сейчас. Давайте посмотрим что можно сделать сегодня, и что появится у HPE завтра. Подсказка — речь пойдет о сильном ускорении наших СХД 3PAR и Nimble с помощью умного и относительно бюджетного кэширования на Storage Class Memory (SCM) в форме Intel Optane.
Если вам интересно а что же еще тут можно добавить, то пройдемте
Total votes 9: ↑9 and ↓0+9
Comments6

Работаем в консоли быстро и эффективно

Reading time9 min
Views123K

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

Читать дальше →
Total votes 88: ↑85 and ↓3+82
Comments117

WiX.Py: cобираем MSI пакет «в три строчки»

Reading time3 min
Views12K

Нет времени и желания изучать километровые файлы WiX, чтобы собрать MSI инсталлер для своего проекта, погружаясь при этом в бездны MSDN? Хотите собирать инсталлер, описывая его простыми и понятными терминами, в несколько строк? Есть клиническая склонность к кроссплатформенности и сборкам под Linux & Docker? Ну тогда вам под кат!

Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments18

Whiskey Lake и Amber Lake — Intel Core для самых маленьких. И эффективных

Reading time2 min
Views13K


Вы еще не заплутались в хитросплетениях поколений и модельных линеек процессоров Intel Core? Тогда вот вам еще два семейства: Whiskey Lake и Amber Lake. От своих ранее представленных собратьев по восьмому поколению новинки отличаются низким энергопотреблением (15 и 5 Вт соответственно) и встроенным чипсетом с продвинутыми коммуникационными функциями.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments8

Новый BeagleBone Black доступен для заказа, всего за 45$

Reading time1 min
Views74K
BeagleBone Black
С сегодняшнего дня доступен для покупки новый BeagleBone Black, всего за 45$. BeagleBone Black — это поддерживаемая сообществом платформа для разработчиков. Позволяющая загрузить GNU/Linux за 10 секунд и начать разработку в течение 5 минут, при помощи одного USB кабеля. Кому стали интересны характеристики, прошу под хабракат.
Узнать
Total votes 76: ↑71 and ↓5+66
Comments57

Турнир юных физиков

Reading time5 min
Views5.3K
Физика — интересная и увлекательная наука. Сколько необычных явлений с её помощью можно объяснить. Обычно исследованиями сложных явлений занимаются учёные, профессора, короче говоря, люди с высшем образованием. Но турнир юных физиков (далее ТЮФ) — это возможность старшеклассников и не только почувствовать себя настоящими учёными и исследователями.


Total votes 14: ↑14 and ↓0+14
Comments3

Прибор для измерения СО2

Reading time3 min
Views19K
Однажды, сидя на работе и чувствуя некомфортность в дыхании, решил собрать измеритель СО2.
Изучив несколько статей на эту тему сформулировал требования к прибору.

  1. Прибор должен быть с экраном, так как это должен быть переносной девайс.
  2. Прибор не должен зависеть от интернета по той же причине.
  3. Прибор должен уметь логировать значения во времени, которые удобно в любой момент просматривать. А это означает, что он должен иметь собственный веб сервер и свою вайфай точку.

Последний пункт неоднозначно привел к вводу, что прибор будет на ESP. Так как большой производительности мне не нужно, то выбираю дешевый вариант — ESP8266, 07 которая. Дома как раз завалялся экземпляр с 1 мб памятью.

Заказал недостающие запчасти на алиэкспресс, а ими были:

  1. Oled display 96x64 SSD1331.
  2. MH-Z19B CO2 sensor.
  3. DS1307 RTC module.
Читать дальше →
Total votes 49: ↑42 and ↓7+35
Comments89

Почему работать в IT не так уж и классно

Reading time8 min
Views121K


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

Я проработал в индустрии IT более десяти лет и скажу вам, это была сумасшедшая гонка, наполненная множеством взлетов и падений. Больше вниз, чем вверх, если я буду действительно честен с вами.
Читать дальше →
Total votes 96: ↑66 and ↓30+36
Comments311

WebSocket RPC или как написать живое WEB приложение для браузера

Reading time4 min
Views62K


В статье речь пойдет о технологии WebSocket. Точнее не о самой технологии, а о том, как ее можно использовать. Я давно слежу за ней. Еще когда в 2011 году один мой коллега прислал мне ссылку на стандарт, пробежав глазами, я как-то расстроился. Выглядело настолько круто, и я думал, что в момент, когда это появится в популярных браузерах, я уже буду планировать, на что потратить свою пенсию. Но все оказалось не так, и как гласит caniuse.com WebSocket не поддерживается только в Opera Mini (надо бы провести голосование, как давно кто-либо видел Opera Mini).

Кто трогал WebSocketы руками, тот наверняка знает, что работать с API тяжело. В Javascript API достаточно низкоуровневый (принять сообщение — отправить сообщение), и придется разрабатывать алгоритм, как этими сообщениями обмениваться. Поэтому и была предпринята попытка упростить работу с вебсокетами.

Так и появился WSRPC. Для нетерпеливых вот простое демо.
Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments64

Аналоги в Python и JavaScript. Часть четвертая

Reading time4 min
Views8.6K

Четвертая часть серии статей про аналоги в Python и JavaScript.


В этой части: аргументы функций, создание и работа с классами, наследование, геттеры-сеттеры и свойства класса.


Краткое содержание предыдущих частей:


  1. Часть первая: приведение к типу, тернарный оператор, доступ к свойству по имени свойства, словари, списки, строки, конкатенация строк.
  2. Часть вторая: JSON, регулярки, ошибки-исключения
  3. Часть третья: современные Python и JS: строковые шаблоны (f-строки), распаковка списков, лямбда-функции, итерации по спискам, генераторы, множества.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments7

Около 500 млн IoT-устройств подвержены атаке через подмену DNS

Reading time3 min
Views7.5K

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

Если кратко, сама атака происходит по следующему сценарию:

  1. Атакующий настраивает собственный DNS-сервер для вредоносного домена.
  2. Атакующий предоставляет жертве ссылку на вредоносный домен (на этом этапе используется фишинг, IM-спам, XSS или маскировка вредоносной ссылки в рекламных объявлениях на популярных и полностью «белых» сайтах).
  3. Пользовательский браузер делает запрос на получение DNS-параметров запрашиваемого домена.
  4. Вредоносный DNS-сервер отвечает, браузер кэширует адрес.
  5. Согласно параметру TTL внутри первичного ответа DNS-сервера в одну секунду, браузер пользователя выполняет повторный DNS-запрос для получения IP-адреса.
  6. DNS злоумышленника отвечает целевым IP-адресом.
  7. Атакующий неоднократно использует вредоносный DNS-сервер для доступа ко всем интересующим IP-адресам в атакуемой сети для достижения своих целей (сбор данных, выполнение вредоносного кода и так далее).
Total votes 30: ↑28 and ↓2+26
Comments11

Apple финансирует сериал по циклу Айзека Азимова «Основание»

Reading time3 min
Views11K


«Основание» Айзека Азимова — легендарное научно-фантастическое произведение, которое в значительной степени стало фундаментом для известных и популярных фильмов «Звёздные войны», «Стартрек» и многих других НФ фильмов и сериалов. Долгое время «Основание» не поддавалось прямой киноадаптации, также как не поддавалась адаптации серия фэнтези-романов 90-х годов «Песнь Льда и Пламени» Джорджа Мартина (позже по ним всё-таки удалось снять сериал «Игра престолов»).

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

Но сейчас подтвердились слухи, что очередная попытка экранизации пошла в продакшн. В июне 2017 года голливудское издание Deadline написало, что Skydance Television выкупило права на экранизацию трилогии «Основание» — и собирается выпустить длительный телесериал на основе этого произведения. Сейчас стало известно, что к проекту присоединилась компания Apple, которая недавно занялась продвижением собственного видеоконтента.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments72

Быстрое знакомство с Docker-контейнерами для Django-разработчика

Reading time5 min
Views65K


Разработка такого проекта как кешбек-сервис подразумевает использование различных сервисов, нетипичных для обычного ноутбука, даже если это ноутбук разработчика. Postgresql, Redis, Celery и так далее. Желание создать комфортную среду разработки и тестирования привело нас к необходимости использование какой-то системы виртуализации/изоляции. Как вариант — некоторое время использовался Vagrant, но это всё-таки ovrerhead и наши поиски оптимального способа привели, на данный момент, к Docker.

Docker — платформа для запуска приложений в изолированных контейнерах. Использование контейнеров в Linux позволяет программному обеспечение быть изолированным от базовой системы. В отличии от Virtualbox, исключаются системные издержки (overhead), необходимые для виртуализации оборудования. Docker может помочь в разработке и развертывании веб-приложений и сервисов. Давайте посмотрим, как это происходит.
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments19
1

Information

Rating
Does not participate
Location
Иерусалим, Иерусалим, Израиль
Date of birth
Registered
Activity