Pull to refresh
0
0
Send message

Пишем протоколы счетчиков Меркурий 230 и Меркурий 200 для OpenSCADA

Reading time5 min
Views50K
Для кого
— Для тех кто использует OpenSCADA, но не может реализовать больше чем решения «из коробки»
— Для тех кто ищет СКАДу для себя, но так и не может определится
— Для тех кто забросил этот проект, так и не разобравшись как он работает

Зачем
— Данное решение позволяет считывать показания счетчиков меркурий 230 и меркурий 200 без каких либо лимитов
— Это бесплатно


Проекту openscada (oscada.org) уделяют не заслужено мало внимания, о нем написана всего одна статья на хабре. Большинство инженеров боятся трогать и трехметровой палкой этот продукт, черт его знает какой этот ваш линукс. Разрабатывает его уже не первый десяток лет фактически один человек, Роман Савоченко.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments37

Двусторонний binding данных с ECMAScript-2015 без Proxy

Reading time8 min
Views9.1K
Привет, уважаемые читатели Хабра. Эта статья некое противопоставление недавно прочитанной мной статье «Односторонний binding данных с ECMAScript-2015 Proxy». Если вам интересно узнать, как же сделать двусторонний асинхронный биндинг без лишних структур в виде Proxy, то прошу под кат.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments14

23 бесплатных инструмента расследования инцидентов для специалиста по информационной безопасности

Reading time5 min
Views80K


Утечки данных происходят почти каждый день. Согласно индексу утечки данных, с 2013 года более 4,762,376,960 записей было утеряно или украдено.
Читать дальше →
Total votes 47: ↑41 and ↓6+35
Comments21

Автоматика из ДНК и белков: что у нее общего с электроникой?

Reading time7 min
Views19K
(ответ биолога на статью «Вы неправильно пишете животных»)

image

В каждой клетке есть тысячи генов. Никогда не бывает так, чтобы они все работали одновременно. Клетки мышц, печени и мозга несут одинаковый набор генов. Они такие разные, потому что в них работают разные гены. Все клетки умеют включать и выключать отдельные гены в ответ на разные внешние воздействия. То есть система, которая управляет активностью генов — это такая система автоматического управления. Ученые хотят понимать, как такая автоматика работает, чтобы уметь ее чинить и взламывать. Например, в клетках человека есть система из примерно трехсот генов и белков, которая управляет делением клетки. Когда она ломается и клетка начинает все время делиться, возникает рак.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments31

Login или Log in?

Reading time2 min
Views86K


‘Login’ или ‘log in’? Одно слово или два? Это достаточно распространенный вопрос среди тех, кто пишет на английском языке. Давайте разберемся, как же правильно.

Читать дальше →
Total votes 147: ↑134 and ↓13+121
Comments72

Log in или Log on? Front-end или Frontend? Продолжаем разбираться

Reading time2 min
Views28K


В прошлый раз мы говорили о разнице между login и log in. В продолжение темы — ещё несколько нюансов, о которых вы просили рассказать в комментариях.

Читать дальше →
Total votes 61: ↑56 and ↓5+51
Comments33

Реализация классификации текста свёрточной сетью на keras

Reading time9 min
Views23K
Речь, как ни странно, пойдёт о использующем свёрточную сеть классификаторе текстов (векторизация отдельных слов — это уже другой вопрос). Код, тестовые данные и примеры их применения — на bitbucket (уперся в ограничения размера от github и предложение применить Git Large File Storage (LFS), пока не осилил предлагаемое решение).

Наборы данных


Использованы конвертированные наборы: reuters — 22000 записей, watson-й — 530 записей, и ещё 1 watson-й — 50 записей. Кстати, не отказался бы от подкинутого в комменты/ЛС (но лучше таки в комменты) набора текстов на русском.

Устройство сети


За основу взята одна реализация описанной тут сети. Код использованной реализации на github.

В моём случае — на входе сети находятся векторы слов (использована gensim-я реализация word2vec). Структура сети изображена ниже:


Вкратце:

  • Текст представляется как матрица вида word_count x word_vector_size. Векторы отдельных слов — от word2vec, о котором можно почитать, например, в этом посте. Так как заранее мне неизвестно, какой текст подсунет пользователь — беру длину 2 * N, где N — число векторов в длиннейшем тексте обучающей выборки. Да, ткнул пальцев в небо.
  • Матрица обрабатывается свёрточными участками сети (на выходе получаем преобразованные признаки слова)
  • Выделенные признаки обрабатываются полносвязным участком сети

Стоп слова отфильтровываю предварительно (на reuter-м dataset-е это не сказывалось, но в меньших по объему наборах — оказало влияние). Об этом ниже.
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments12

Хакаем CAN шину авто для голосового управления

Reading time8 min
Views119K


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

Мой автомобиль Skoda Octavia 2011 г. в. не предлагает возможностей управления с телефона, поэтому я решил исправить этот недостаток, а заодно и добавить функцию голосового управления. В качестве шлюза между CAN шиной и телефоном я использую Raspberry Pi с шилдом CAN BUS и WiFi роутер TP-Link. Протокол общения агрегатов авто закрытый, и на все мои письма предоставить документацию протокола Volkswagen отвечал отказом. Поэтому единственный способ узнать, как общаются устройства в авто и научиться ими управлять является реверс-инжиниринг протокола CAN шины VW.

Я действовал поэтапно:

  1. Разработка CAN шилда для Raspberry Pi
  2. Установка ПО для работы с CAN шиной
  3. Подключение к CAN шине авто
  4. Разработка сниффера и изучение протокола CAN шины
  5. Разработка приложения для телефона
  6. Голосовое управление с помощью Homekit и Siri

В конце видео голосового управления стеклоподъемником.
Читать дальше →
Total votes 81: ↑81 and ↓0+81
Comments110

Проектирование большого проекта на примере аналога Alibaba.com

Reading time9 min
Views23K
Многие рассказываю о проектировании: как пользоваться Axure или Sketch, какие функции должен содержать сайт, как правильно спроектировать страницу товара. Это все, безусловно, очень полезно, но не показывает полную картину происходящего в проектировании. В интернете даже нет ни одного полного примера технического задания на проекты такого уровня. На самом деле, чтобы спроектировать большой сайт, нужно потратить сотни часов на исследования, прототипирование и разработку подробного ТЗ. В этой статье я впервые в рунете покажу все этапы проектирования и результаты по ним, полный динамический прототип (более 150 прототипов) и большое ТЗ (более 200 страниц описания). Все это мы будем делать на примере проектирования аналога крупнейшей в мире E-commerce площадки «Alibaba.com».
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments41

Рекомендации на основе изображений товаров

Reading time5 min
Views11K
image

В данной статье я хотел бы рассмотреть на практике вариант построения простейшей рекомендательной системы основанной на схожести изображений товаров. Этот материал предназначен для тех, кто хотел бы попробовать применить Deep Learning, а именно свёрточные нейронные сети, в простом, интересном и практически применимом проекте, но не знает с чего начать.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments11

Настройка UEFI-загрузчика. Самое краткое руководство в мире

Reading time6 min
Views551K

Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?


Я обещал "самое краткое руководство". Вот оно:


  1. Создаём на диске таблицу разделов GPT
  2. Создаём FAT32-раздел на пару сотен мегабайт
  3. Скачиваем из интернета любой UEFI-загрузчик
    (нам нужен сам загрузчик, это один бинарный файл!)
  4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
  5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
    (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)
  6. После перезагрузки видим меню загрузчика
    (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному "пути по-умолчанию", где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается

Читать дальше →
Total votes 52: ↑46 and ↓6+40
Comments99

Мониторинг докер-хостов, контейнеров и контейнерных служб

Reading time7 min
Views59K

Я искал self-hosted мониторинговое решение с открытым кодом, которое может предоставить хранилище метрик, визуализацию и оповещение для физических серверов, виртуальных машин, контейнеров и сервисов, действующих внутри контейнеров. Опробовав Elastic Beats, Graphite и Prometheus, я остановился на Prometheus. В первую очередь меня привлекли поддержка многомерных метрик и несложный в овладении язык запросов. Возможность использования одного и того же языка для графических изображений и уведомления сильно упрощает задачу мониторинга. Prometheus осуществляет тестирование по методу как черного, так и белого ящика, это означает, что вы можете тестировать инфраструктуру, а также контролировать внутреннее состояние своих приложений.


Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments17

Интересное в закладках UX/UI-дизайнера

Reading time3 min
Views29K
Какие мысли вас посещают, когда вы видите выдающиеся работы других людей? Наверняка, вы восхищаетесь ими, как и мы. Но что более важно, возможно, вам интересно, как люди этого добились, как пришли к успеху. Откуда они черпали свое вдохновение? Что они искали и просматривали в интернете? Давайте посмотрим, что интересного может быть в закладках у UI/UX-дизайнера.
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments4

Опасность и безопасность — гонка виртуальных вооружений

Reading time8 min
Views11K

Что с нами не так



Месторасположение найденных заражённых устройств, участвовавших в Mirai. Иллюстрация Imperva Incapsula.

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

Создание угроз и опасности для информации, против безопасности данных и нормального функционирования сети. Последний пример — произошедшая атака на сайт Dyn, которая задела не только саму компанию-провайдера, но и всех её клиентов. Среди них самые популярные во всей сети платформы и сервисы: Amazon, Twitter, GitHub, Heroku, Netflix, Spotify, Airbnb, Reddit, Etsy, SoundCloud, The New York Times, Starbucks, HBO, CNN, Basecamp, PayPal, Etsy. Этот список далеко не полный. В него попало более чем 75 участников: интернет-платформы новостных ресурсов, финансовых организаций, продавцов услуг, социальных сетей, сайты компаний-разработчиков. Примерные потери приравниваются к $110 000 000 — за одни сутки. Причины атаки никто, пока, достоверно назвать не может, а к расследованию уже присоединились представители ФБР (США). Событие вышло за рамки администрирования, на «федеральный» уровень. Все, кто пострадал, будут восстанавливать репутацию. Стало понятно, что никто не надежен настолько, насколько это казалось ещё недавно.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments8

[ В закладки ] Зоопарк архитектур нейронных сетей. Часть 1

Reading time10 min
Views92K


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

Поэтому я решил составить шпаргалку по таким архитектурам. Большинство из них — нейронные сети, но некоторые — звери иной породы. Хотя все эти архитектуры подаются как новейшие и уникальные, когда я изобразил их структуру, внутренние связи стали намного понятнее.
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments14

Пол Грэм: Иная сторона «шедевров в срок»

Reading time6 min
Views12K
«Хорошие художники создают, великие художники крадут, а настоящие художники – выполняют заказ вовремя.»

The Other Half of «Artists Ship»

Пол Грэм, Ноябрь 2008

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

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



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

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

Каждая проверка имеет свою стоимость. Для примера возьмем требование о подтверждении поставщиками своей платежеспособности. Уверены, что это благоразумно? Ведь на самом деле оно ведет к существенным издержкам. Очевидны прямые потери времени людей с обеих сторон, как со стороны поставщиков, так и со стороны рассматривающих их доказательства. Но настоящие издержки именно те, о которых вам никто не скажет: компания, которая могла бы стать лучшим поставщиком, не стала участвовать в тендере из-за нежелания тратить ресурсы с учетом возможной неудачи прохождения проверки. Или которая не пройдет пороговое значение проверки на платежеспособность, которое, конечно же, будет сильно завышено, ведь реальная стоимость этой проверки так не очевидна.
Total votes 26: ↑25 and ↓1+24
Comments11

«Правда, чистая правда и статистика» или «15 распределений вероятности на все случаи жизни»

Reading time15 min
Views246K
Статистика приходит к нам на помощь при решении многих задач, например: когда нет возможности построить детерминированную модель, когда слишком много факторов или когда нам необходимо оценить правдоподобие построенной модели с учётом имеющихся данных. Отношение к статистике неоднозначное. Есть мнение, что существует три вида лжи: ложь, наглая ложь и статистика. С другой стороны, многие «пользователи» статистики слишком ей верят, не понимая до конца, как она работает: применяя, например, тест Стьюдента к любым данным без проверки их нормальности. Такая небрежность способна порождать серьёзные ошибки и превращать «поклонников» теста Стьюдента в ненавистников статистики. Попробуем поставить точки над i и разобраться, какие модели случайных величин должны использоваться для описания тех или иных явлений и какая между ними существует генетическая связь.
Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments29

Устранение беспорядка маршрутизации сервисов при помощи Docker

Reading time17 min
Views17K

Устранение беспорядка маршрутизации сервисов при помощи Docker


“Не трудности “ломают” вас, а то, как вы их переносите” —  Lou Holtz

В соавторстве с Emmet O’Grady (основателем NimbleCI и Docker Ninja)


В книге Франца Кафки “Превращение” (“Метаморфозы”) человек просыпается однажды утром и обнаруживает, что он превратился в гигантское насекомоподобное существо. Как у инженеров DevOps, у нас есть такие же сюрреалистические моменты в жизни. Мы находим экзотические ошибки “под ковриком” (скрытые в самых труднодоступных местах) или бываем атакованы червями либо другими опасными сущностями. Если вы занимаетесь этим достаточно долго, у вас рано или поздно появится ужасная история, или даже две (поделитесь ими с нами!). В такой момент мы не можем сидеть и ждать, когда наступит кризис, мы должны действовать быстро. Торопясь исправить это как можно раньше, мы должны развернуть (deploy) новую сущность и выпустить новую версию нашего сервиса, устраняя проблему.

Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments10

Учим английский дешево и эффективно

Reading time9 min
Views160K
Английский можно выучить дешево, иногда даже бесплатно. В этой статье я расскажу про личный опыт: какой софт и ресурсы в Интернет оказались максимально эффективными для меня, и как ими правильно пользоваться.

Если вы не готовы тратить на английский хотя бы 2 часа в день, то дальше можно не читать.
Читать дальше →
Total votes 45: ↑40 and ↓5+35
Comments135

learnopengl. Урок 1.1 — OpenGL

Reading time7 min
Views326K
Здравствуйте. Несколько недель назад я начинал серию переводов статей по изучению OpenGL. Но на 4 статье один хабровчанин заметил, что мои переводы могут нарушать лицензию, по которой распространяются учебные материалы, предоставленные в исходной статье. И действительно, мои переводы нарушали лицензию. Для разрешения этой проблемы я обратился к авторам того набора уроков, но так и не смог добиться нормального ответа. По этой причине я связался с автором другого, не менее (а возможно даже и более) крутого, набора уроков по OpenGL: Joey de Vries. И он дал полное разрешение на перевод его набора уроков. Его уроки гораздо более обширные, чем прошлый набор, поэтому эти переводы растянутся на долго. И я обещаю, будет интересно. Заинтересовавшихся прошу под кат.

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

На счет уроков по Vulkan: к сожалению мне тяжело сейчас написать уроки по данному API по причине скудной видеокарты на данный момент, которая просто не поддерживает Vulkan API, поэтому уроки по данному API будут только после обновления видеокарты.
Читать дальше →
Total votes 45: ↑42 and ↓3+39
Comments9

Information

Rating
Does not participate
Registered
Activity

Specialization

Fullstack Developer, Software Architect
Lead
From 150,000 €