Как стать автором
Обновить
1
0
Денис @Saturnych

Живой бот

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

Что будет дальше

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


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

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

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

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

Читать далее
Всего голосов 383: ↑235 и ↓148+87
Комментарии859

9 лет в монолите на Node.JS

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

монолит от https://reneaigner.deviantart.com


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


Рассказать я решил про набившую оскомину тему — жизнь в монолите. Об этом на хабре уже есть сотни статей, тысячи копий сломаны в комментах, истина давно погибла в спорах, но… Дело в том, что у нас в OneTwoTrip есть весьма специфический опыт, в отличие от многих людей, которые пишут про некие архитектурные паттерны в вакууме:


  • Во-первых, нашему монолиту уже 9 лет.
  • Во-вторых, всю жизнь он провёл под хайлоадом (сейчас это 23 млн запросов в час).
  • А в NaN-ых, мы пишем наш монолит на Node.JS, который за эти 9 лет изменился до неузнаваемости. Да, мы начинали писать на ноде в 2010, безумству храбрых поём мы песню!

Так что всякой специфики и реального опыта у нас довольно много. Интересно? Поехали!

Читать дальше →
Всего голосов 88: ↑86 и ↓2+84
Комментарии44

Chrome Headless против cloudflare JS challenge

Уровень сложностиСредний
Время на прочтение41 мин
Количество просмотров21K

Автоматизация сбора информации с различных ресурсов - обычная задача для людей разных сфер деятельности. Жаль, что не всегда бывает достаточно сделать простой GET запрос и разобрать полученный html. Веб-сайты, с которых собираются данные, принимают защитные меры для предотвращения автоматизированных запросов. Одной из таких мер является использование cloudflare. Сегодня мы посмотрим, как cloudflare выявляет ботов через javascript и коснёмся темы деобфускации скриптов.

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

Flipper Zero — вымученная сертификация, открытие исходников и новые приколдесы

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


Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12].

Мы изо всех сил готовимся к старту массового производства, но на пути возникают шероховатости. Нам посчастливилось, что наше производство приходится на один из самых крупных кризисов в поставке электронных компонентов за последние пару десятков лет. Вы можете наблюдать это, например, по ситуации с видеокартами. Также нам пришлось переделать Sub-1 GHz тракт, чтобы он соответствовал требованиям регулятора, и антенна не отваливалась от ударов. В посте я расскажу, что мы делаем сейчас, как движется разработка, как выглядит подготовка к доставке, и покажу пару новых классных фич.
Всего голосов 150: ↑148 и ↓2+146
Комментарии121

Raspberry Pi Zero 2 W: обзор возможностей новой «малинки»

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

Несколько дней назад Raspberry Pi Foundation запустила продажи новой модели, которую ждали многие — Raspberry Pi Zero 2 W. Эта плата является логическим продолжением «малинового эволюционного древа» и предлагает расширенные, по сравнению с предыдущей версией, возможности.

В общем-то, и Raspberry Pi Zero W является неплохой системой, которую можно использовать для широкого спектра проектов. Но вторая версия еще лучше, так что и проектов может быть больше. О том, на что способна новинка — под катом.
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии29

Заметка о Mastodon — аналоге Twitter из вселенной децентрализованных соцсетей Fediverse

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

Заметка о Mastodon — аналоге Twitter из вселенной децентрализованных соцсетей Fediverse

На фоне текущих событий, когда уже привычным становится, что владельцы соцсетей своими собственными решениями блокируют отдельных пользователей (по их мнению, являющихся нехорошими), заинтересовался возможностью использования децентрализованных p2p-соцсетей. Дабы посмотреть, как функционирует экосистема Fediverse, зарегистрировался в соцсети Mastodon (микроблоггинг, аналог Twitter), и поизучал ее аккаунты.

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

Входит в объединение децентрализованных интернет-сервисов Fediverse, в составе которого имеются также сервисы фото- (PixelFed), видео- (Peertube), файлового хостингов и многое другое, являющихся аналогами Facebook, Youtube, Twitter, Spotify и т.д. В настоящее время в Mastodon зарегистрированы более 4,4 млн. пользователей.

Кстати, Д.Трампа его новая социальная сеть Truth Social использует код Mastodona (аккаунты Дональда практически все соцсети блокировали год назад, на фоне протеста против результатов президентских выборов 2020 года, и он учел это)

В ходе изучения блуждания по аккаунтам Mastodon и дойдя до Южной Америки обнаружил, что политики Венесуэлы, наряду с использованием Twitter, Facebook, Instagram, Youtube и Telegram, присутствуют и там.

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

Лучшие практики безопасности Node.js

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

Назначение

Этот документ призван расширить текущую модель угроз и предоставить подробные рекомендации по обеспечению безопасности приложения Node.js.

Читать далее
Всего голосов 16: ↑13 и ↓3+10
Комментарии1

Как концептуально работает Tornado Cash, который «забанили» власти США

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

8 августа 2022 года Управление по контролю за иностранными активами Министерства финансов США (OFAC) наложило санкции на Tornado Cash, миксер криптовалюты, что вызвало шквал обсуждений в криптосреде. В этой статье разберем как концептуально работает криптомиксер Tornado Cash, что было понять, что есть в этой технологии, что против нее вводят санкции.

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

Яндекс выложил в опенсорс YDB

Время на прочтение16 мин
Количество просмотров141K
Сегодня мы выложили в опенсорс систему управления базами данных YDB — плод многолетнего опыта Яндекса в разработке систем хранения и обработки данных. Исходный код, документация, SDK и все инструменты для работы с базой опубликованы на GitHub под лицензией Apache 2.0. Развернуть базу можно как на собственных, так и на сторонних серверах — в том числе в любых облачных сервисах.



YDB решает задачи в одной из самых критичных областей — позволяет создавать интерактивные приложения, которые можно быстро масштабировать по нагрузке и по объёму данных. Мы разрабатывали её, исходя из ключевых требований к сервисам Яндекса. Во-первых, это катастрофоустойчивость, то есть возможность продолжить работу без деградации при отключении одного из дата-центров. Во-вторых, это масштабируемость на десятки тысяч серверов на чтение и на запись. В-третьих, это строгая консистентность данных.

В посте я расскажу об истории развития технологий баз данных, о том, зачем использовать YDB, как её применяют текущие пользователи и какие плюсы для всех несёт выход в опенсорс. А во второй половине поста поговорим о разных вариантах развёртывания.
Читать дальше →
Всего голосов 335: ↑332 и ↓3+329
Комментарии135

Знакомимся с микросервисным фреймворком Moleculer

Время на прочтение7 мин
Количество просмотров17K
Привет, %habrauser%!

Сегодня я хочу рассказать тебе об одном отличном, на мой взгляд, микросервисном фреймворке Moleculer.



Изначально этот фреймворк был написан на Node.js, но в последствии у него появились порты и на других языках таких как Java, Go, Python и .NET и, скорее всего, в ближайшем будущем, появятся и другие имплементации. Мы используем его в продакшене в нескольких продуктах уже около года и словами сложно описать, каким благословением он нам показался после использования Seneca и своих_велосипедов. Мы получили всё что нам нужно из коробки: сбор метрик, кэширование, балансировка, fault-tolerance, транспорты на выбор, валидация параметров, логирование, лаконичное объявление методов, несколько способов межсервисного взаимодействия, миксины и многое другое. А теперь по порядку.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии9

Server-Sent Events: пример использования

Время на прочтение8 мин
Количество просмотров30K
Доброго времени суток, друзья!

В этом туториале мы рассмотрим Server Sent Events: встроенный класс EventSource, который позволяет поддерживать соединение с сервером и получать от него события.

О том, что такое SSE и для чего он используется можно почитать здесь.

Что конкретно мы будем делать?

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

Сервер будет реализован на Node.js, клиент — на JavaScript. Для стилизации будет использоваться Bootstrap, в качестве API — Random User Generator.

Код проекта находится здесь.

Если вам это интересно, прошу следовать за мной.
Читать дальше →
Всего голосов 6: ↑4 и ↓2+2
Комментарии6

Websocket или REST? А зачем выбирать?

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

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

Узнать больше
Всего голосов 6: ↑3 и ↓30
Комментарии20

Для чего хакерам Микротик и как я спрятал 100 тыс. RouterOS от ботнета

Время на прочтение9 мин
Количество просмотров319K
RouterOS очень мощный инструмент в руках профессионалов и ответственных специалистов. Но в руках новичков или тех, кто делает всё на «и так сойдёт» Mikrotik начинает жить своей жизнью и превращается в ноду ботнета.

Ещё в мае 2018 я писал статью с рекомендациями как защитить свой Микротик.

Как ни странно, но в сети до сих пор тысячи «открытых» роутеров Mikrotik и армия ботнета пополняется.

Я в свободное от работы и отдыха время искал уязвимые устройства по всей сети и делал настройки в соответствии со своими рекомендациями, то есть добавлял правила фаервола, которые закрывали доступ к роутеру не из локальной сети. В комментариях писал информацию об уязвимости и оставлял адрес телеграм-канала @router_os, где можно было мне задать интересующие вопросы (у нормального админа они должны были появиться).



С мая по сегодняшний день я «вырвал» из лап ботнета более 100 тысяч устройств Mikrotik.

Учитывая то, что я не могу выступить на MUM 2018 в Москве, то свой доклад я решил опубликовать на habr.com
Читать дальше →
Всего голосов 81: ↑80 и ↓1+79
Комментарии115

Бесплатные Oracle Cloud серверы и Mikrotik — Site-to-Site VPN

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

Предоставление бесплатных серверов от малопопулярного облачного провайдера - это не новость. А новость в том, что теперь Oracle, вдобавок к двум едва живым бесплатным x86_64 серверам, открывает доступ к мощностям на ARM64 - для всех, даром, и пусть никто не уйдет обиженным!© Предложение по ARM значительно более производительное, чем на традиционных процессорах. Добавляя к этому отсальные бесплатные "плюшки", я задаюсь вопросом: а зачем я до сих пор плачу за VPS и держу собственный серверок в подвале?! Все это можно выкинуть если удастся надежно и безопасно связать дата центр с домашней сетью.

Читать далее
Всего голосов 23: ↑20 и ↓3+17
Комментарии104

Тестирование RESTful API на NodeJS с Mocha и Chai

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


Перевод руководства Samuele Zaza. Текст оригинальной статьи можно найти здесь.


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


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

Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии19

Введение в алгоритм A*

Время на прочтение10 мин
Количество просмотров179K
При разработке игр нам часто нужно находить пути из одной точки в другую. Мы не просто стремимся найти кратчайшее расстояние, нам также нужно учесть и длительность движения. Передвигайте звёздочку (начальную точку) и крестик (конечную точку), чтобы увидеть кратчайший путь. [Прим. пер.: в статьях этого автора всегда много интерактивных вставок, рекомендую сходить в оригинал статьи.]


Для поиска этого пути можно использовать алгоритм поиска по графу, который применим, если карта представляет собой граф. A* часто используется в качестве алгоритма поиска по графу. Поиск в ширину — это простейший из алгоритмов поиска по графу, поэтому давайте начнём с него и постепенно перейдём к A*.
Всего голосов 70: ↑69 и ↓1+68
Комментарии20

Чему я научился, написав библиотеку компонентов на Svelte

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


Попробовав Svelte в личных проектах, мне захотелось двигаться дальше, и взять фреймворк в проект побольше. Для этого написал библиотеку компонентов svelte-atoms. За основу я взял UI кит на React, который используем на работе.


Каким приемам Svelte я научился, читайте под катом.

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

Дистанционная работа из-за границы, Проблемы с налогами

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

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

Статья для всех кто прожил или планирует прожить за пределами РФ более 183 дней в течение календарного года.

Читать далее
Всего голосов 26: ↑19 и ↓7+12
Комментарии66

Как ускорить код на Python в тысячу раз

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


Обычно говорят, что Python очень медленный


В любых соревнованиях по скорости выполнения программ Python обычно занимает последние места. Кто-то говорит, что это из-за того, что Python является интерпретируемым языком. Все интерпретируемые языки медленные. Но мы знаем, что Java тоже язык такого типа, её байткод интерпретируется JVM. Как показано, в этом бенчмарке, Java намного быстрее, чем Python.
Читать дальше →
Всего голосов 77: ↑46 и ↓31+15
Комментарии70

Игра по правилам Event loop в Node.js

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

Я пришел в компанию Lineate работать именно на Node.js. В процессе выполнения проектов мне приходилось обращаться к более опытным коллегам и выяснять ответы на возникающие у меня вопросы, но, как оказалось, никто не был уверен в своих ответах на 100%. C Event loop разобраться сложно и не всегда понятно, зачем это нужно на практике. Поэтому даже у опытных коллег знания по этой технологии часто только теоретические — в рабочих условиях ее применяют редко. Опрос, созданный мной в Google Form, прошли около 25 человек, вопросы были совершенно стандартные, из тех, что обычно задают на собеседованиях. Правильных ответов было очень мало, около 23-24%. 

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

Результаты публикуем на Хабре. Если мы хотим добиться производительности, нам нужно отойти от стандартных идей и играть по правилам Node.js. 

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии31

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность