Pull to refresh
0
Сергей Петрухин @zobretatelread⁠-⁠only

инженер

Send message

Кто сканирует Интернет. Время ковать железо

Reading time6 min
Views11K
Не хочу отказываться от заголовка. Ведь он выполняет свою задачу – привлекает внимание. Искренне прошу не сердиться, если содержание статьи не оправдало ваших ожиданий. Время теперь такое. «Такие материалы», — говорили они «нужно размещать на форумах для любителей, а на Хабре только высокоинтеллектуальная IT публика рассказывает о том, чего вам и не понять никогда да и пытаться понимать не нужно». Однако, Слава Хабру! Он достаточно демократичен.

Что-то зацепила меня тема сетевой безопасности в части анализа сетевого трафика и обнаружения Несанкционированной Сетевой Активности (далее по тексту НСА).
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments11

Возможности PostgreSQL, которых нет в MySQL, и наоборот

Reading time7 min
Views101K


Многие боятся переходить с «мускуля» на «посгрес» из-за того, что лишь смутно понимают, что это даст. Некоторых останавливает мысль, что наверно Postgres — это слишком сложная база и требует обучения. А также, что возможно чего-то придется лишиться в связи с переходом. Попробую немного прояснить ситуацию.
Читать дальше →
Total votes 141: ↑132 and ↓9+123
Comments313

Визуальный генератор регулярных выражений

Reading time6 min
Views231K
Все разработчики рано или поздно сталкиваются с регулярными выражениями. Практически в 100% случаев нам совершенно не нравится их составлять, считая это побочной работой, не связанной с программированием.

Большинство из нас, впервые столкнувшись с данной проблемой, начинают забивать в поисковых системах что-то типа: «regexp online generator» и к своему великому сожалению осознают что гугл сломался все результаты в поиске являются сервисами для проверки корректности уже составленного регулярного выражения (или я плохо гуглил).

А как же составить это самое регулярное выражение?


image

До недавнего времени существовало 2 ответа на этот вопрос:

  1. Изучить документацию по регулярным выражениям и составить регулярку самому
  2. Попросить кого-то более опытного сделать это за вас

Теперь, после нескольких месяцев разработки, рад представить и 3-й ответ:

» Генератор регулярных выражений

История


Давным давно, в одном проекте пришел довольно интересный и сложный запрос от внутренних пользователей. Персоналу технической поддержки нужно было самим задавать правила валидации для определенных полей, разным пользователям. Правила должны были часто и очень оперативно изменяться.
Читать дальше →
Total votes 70: ↑63 and ↓7+56
Comments66

Использование Intel Movidius для нейронных сетей

Reading time6 min
Views23K

Введение


Мы занимаемся разработкой глубоких нейронных сетей для анализа фото, видео и текстов. В прошлом месяце мы купили для одного из проектов очень интересную штуковину:
Intel Movidius Neural Compute Stick.
Intel MNCS

Это специализированное устройство для нейросетевых вычислений. По сути, внешняя видеокарточка, заточенная под нейронные сети, очень компактная и недорогая (~$83). Первыми впечатлениями от работы с Movidius’ом мы и хотим поделиться. Всех заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments14

Как вернуть украденный домен через арбитраж WIPO. Пошаговая инструкция

Reading time6 min
Views14K
Итак, у вас украли домен. Вы обнаружили это или утром, когда проверяли почту на смартфоне, или вечером, когда увидели на своем сайте чужую рекламу, потом зашли в админку, решив, что сайт взломали, но рекламного кода там не оказалось, и вы поняли, что DNS переписаны на другой сервер…

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


Вы сразу пишите в техпродержку регистратора и получаете ответ, что жалоба получена и будет рассмотрена в установленные сроки.
Читать дальше →
Total votes 56: ↑56 and ↓0+56
Comments52

Децентрализованное хранилище данных Ethereum Swarm

Reading time9 min
Views18K


Блокчейн Ethereum интересен своими смарт-контрактами, а также возможностью создания децентрализованных приложений DApp (Decentralized Application). Однако такому приложению необходимо децентрализованное хранилище данных.

Хранение данных большого объема в блокчейне может стоить немалых денег. На помощь приходят такие децентрализованные хранилища, как Ethereum Swarm («swarm» переводится как «рой», «куча»). Если кратко, то Ethereum Swarm представляет собой программный код, работающий на пиринговой сети Ethereum. Он обеспечивает децентрализованное хранение данных на дисках узлов, владельцы которых отдают свои ресурсы в общее пользование.

В этой статье мы расскажем о том, как установить локальный узел Ethereum Swarm для приватной сети Ethereum с целью тестирования технологии и разработки децентрализованных приложений, хранящих данные в Ethereum Swarm.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments10

Безлимитное распознавание речи. Или как я перевожу в боте голосовые сообщения в текст

Reading time5 min
Views45K
Привет, Хабр. Обычно я пишу программы для неговорящих людей, но решил удариться в крайности и сделать продукт для говорящих людей. Я хочу рассказать о разработке бота для VK, который переводит пересланные ему голосовые сообщения в текст. Сначала я использовал Yandex SpeechKit, но потом уперся в дневной лимит распознаваемых единиц и перешел на wit.ai, об этом и хочу рассказать, а также о фреймворке для создания ботов vk с помощью node.js, болтовне гугловского dialogflow.

Обложка статьи на которой показан скришот сайта wit.ai
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments7

Модуль Net::Ethereum для работы с контрактами Solidity

Reading time11 min
Views5.4K


Обычно когда мне нужно использовать какой-то новый сервис или технологию из скриптов Perl, я захожу на CPAN, и там уже есть один или несколько подходящих модулей. Однако в случае фреймворков для работы с узлами блокчейна Ethereum и контрактами Solidity, к сожалению, мне не удалось найти нужного модуля.

Мы планируем в ближайшее время использовать смарт-контракты Solidity сети Ethereum в нашем SAAS-сервисе интернет-магазинов, написанном на Perl. Поэтому мне ничего не оставалось, как написать свой модуль Net::Ethereum (этот модуль уже доступен на CPAN, хотя и в виде альфа-версии).

Надеюсь, что модуль Net::Ethereum будет полезен тем, кто хочет интегрировать свои Perl-системы с контрактами блокчейна Ethereum. Буду очень благодарен тем, кто воспользуется этим модулем и пришлет мне свои соображения по его доработке, а также информацию о найденных ошибках.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments15

Готовим рабочее окружение для Erlang проекта

Reading time8 min
Views8.2K

Введение


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

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

Вот — новый поворот? От педагогики к андрагогике, от андрагогики к хьютагогике

Reading time7 min
Views16K
Тем, кто работает с информационными технологиями, приходится учиться непрерывно. Но взрослые не могут учиться по тем же принципам, что и школьники: наша способность воспринимать информацию меняется на протяжении жизни. Исследования в этой области привели к появлению новой образовательной концепции, а информационный бум, распространение мобильных интернет-устройств и развитие социальных сетей предопределили очередную смену образовательной парадигмы.

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


Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments15

CRM системы: что это? Простыми словами

Reading time9 min
Views160K
Где вы храните клиентов? На бумажке, в телефоне, в ежедневнике, в экселе? Или вам в который раз предлагают CRM систему, но у вас нет полного понимания, что это такое и как это работает.

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



Поэтому давайте разберем CRM систему на части. К чему CRM система относится в бизнесе? Продажи. Что нам нужно для продаж? Клиенты. Поэтому первые две самые важные вещи которые должны у нас быть, и они есть в любой CRM системе, это клиенты и продажи.
Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments5

Введение в Seneca.JS

Reading time6 min
Views6.5K

Seneca — microservices toolkit для Node.JS. Он предоставляет плагины, которые заботятся об основах вашего приложения. Это позволяет сосредоточиться на реальной бизнес-логике. Нет необходимости беспокоиться о том, какую базу данных использовать, как структурировать компоненты или как управлять зависимостями. Просто начните писать код.


Вы описываете всё как действия. Действия вызываются всякий раз, когда они соответствуют набору свойств. Ваш вызывающий код не знает и не заботится, какое действие выполняет работу. Один объект JavaScript входит, а другой выходит, асинхронно.


Чем Seneca.js не является


Я люблю конкретные сравнения, и увы я быстро делаю поспешные обобщения, которые могут в конечном итоге причинить мне боль. Чтобы этого избежать, вот список того, что нет у Seneca:


  • Seneca — это не “строгий” фреймворк. Seneca не навязывает вам ни архитектуру приложения ни каких-либо подходов. Хотите разместить все свое приложение в одном действии? Вы можете. Хотите сделать каждое действие всего в 5 строк кода? Вы тоже можете это сделать. Seneca невероятно надежен и будет работать практически со всеми архитектурными решениями, которые вы принимаете.
Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments8

PouchDB или что делать когда «интернет стабильный»

Reading time4 min
Views8.8K
В наше время скорость работы WEB-приложения сильно влияет на лояльность пользователей. Зачастую приходится переносить некоторую бизнес-логику в клиентский код, работающий в браузере пользователя.

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

Знакомство


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

image

Версии браузеров, в которых работает PouchDB:

  • Firefox 29+ (включая Firefox OS и Firefox для Android)
  • Chrome 30+
  • Safari 5+
  • Internet Explorer 10+
  • Opera 21+
  • Android 4.0+
  • iOS 7.1+
  • Windows Phone 8+

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

image

Total votes 4: ↑4 and ↓0+4
Comments5

Как следить за трендами на GitHub

Reading time2 min
Views13K
Logo


В разделе trending на GitHub отображается список проектов, активно набирающих звезды в течение дня, недели или месяца. Все самое интересное, что появляется в open source для каждого языка программирования, всегда оказывается в этом списке. Сегодня хочу поделиться способом, как с помощью GitHub уведомлений подписаться на появление новых «звездных» проектов и не пропустить что-нибудь полезное для себя.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments10

Немного о VPN: протоколы для удаленного доступа

Reading time5 min
Views52K
Первого ноября в России начал действовать запрет на обход блокировок с помощью VPN. И многие компании, в том числе иностранные, задались вопросом, как быть организациям, использующим технологию для создания корпоративных сетей.

Как рассказали представители Госдумы, в законе имеется оговорка, согласно которой шифрование сетей можно использовать в корпоративных целях. Это означает, что компаниям не придётся тратить значительные суммы и прокладывать частные сети между своими офисами, так как установка VPN-соединения практически (а в некоторых случаях так и есть) бесплатна. Поэтому сегодня мы решили рассмотреть два способа организации VPN-соединения в корпоративной сети и несколько применяемых для этого протоколов: PPTP, L2TP/IPsec, SSTP и OpenVPN.

Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments21

Десять вопросов о Node.js, на которые вы не сможете ответить

Reading time6 min
Views61K
В этом году, на конференции Forward.js, посвящённой JavaScript, я выступал с докладом «You don’t know Node». Во время выступления я задал аудитории несколько вопросов о Node, и большинство присутствующих не смогли ответить на многие из них. А ведь мой доклад слушали технические специалисты. Никаких подсчётов я не производил, но выглядело всё именно так, да и несколько слушателей, которые подошли ко мне после выступления, это подтвердили.


Проблема, которая заставила меня сделать то выступление, заключается в том, что, по-моему, система обучения Node выстроена неправильно. Большинство учебных материалов сосредоточено на пакетах Node, но не на самой платформе. Часто этих пакеты служат обёртками для модулей Node (вроде http или stream). Как результат, тот, кто не знает Node и сталкивается с проблемой, источником которой может оказаться не некий пакет, а платформа, оказывается в крайне невыгодном положении.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments52

Почему визуальное программирование и D3NE могут быть Вам полезны

Reading time8 min
Views30K

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



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

Читать дальше →
Total votes 30: ↑25 and ↓5+20
Comments79

Создаём собственный физический 2D-движок: части 2-4

Reading time32 min
Views38K
image


Оглавление


Часть 2: ядро движка

  • Интегрирование
  • Метки времени
  • Модульная архитектура
    • Тела
    • Формы
    • Силы
    • Материалы
  • Широкая фаза
    • Отсечение дубликатов контактных пар
    • Система слоёв
  • Проверка пересечения полупространств

Часть 3: трение, сцена и таблица переходов

  • Трение
  • Сцена
  • Таблица переходов коллизий

Часть 4: ориентированные твёрдые тела

  • Математика вращения
  • Ориентированные формы
  • Распознавание коллизий
  • Разрешение коллизий

Total votes 52: ↑51 and ↓1+50
Comments8

Объясняем современный JavaScript динозавру

Reading time15 min
Views264K


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

Total votes 174: ↑171 and ↓3+168
Comments505

Как объяснить дизайн четырехлетним?

Reading time5 min
Views20K
image

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

Я планировал пообщаться со старшими ребятами, рассказать то, что считал действительно крутым в своей работе, поделиться каким-то интересным опытом, но в итоге меня попросили провести урок с учениками подготовительной группы (примерно 4-5 лет). Несмотря на то что сначала я был скорее разочарован, это оказалось очень интересной задачей!

Главная особенность работы с детьми такого возраста в том, что ты не можешь ничего рассказать о брендах с которыми работал. Четырехлетние дети не будут восторженно реагировать на истории о работе на Channel 4, BBC и Disel. «Я получал награды BRIT, и даже разработал веб-сайт, на котором получил запись imdb!» — дети не поймут, о чем я вообще говорю. Поэтому нужно было в самых простых выражениях объяснить то, что я сделал, и почему это так важно. Я подумал: было бы здорово показать детям дизайн во всех его формах.

Что я сделал?

Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments20
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity