Как стать автором
Обновить
0
0

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

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

Кунг-фу стиля Linux: глобальный поиск и замена строк с помощью ripgrep

Время на прочтение6 мин
Количество просмотров12K
Даже те, кто пользуется Linux лишь от случая к случаю, вероятно, знают о том, как работать с grep. При этом не нужно быть экспертом в сфере регулярных выражений для того чтобы без особых сложностей пользоваться grep для поиска в файлах строк, соответствующих простым последовательностям символов или сложным шаблонам. Конечно, grep — это отличный инструмент для поиска информации. Но что если нужно что-то найти, а потом — заменить это на что-то другое? Например, может быть, нужно изменить все найденные слова HackADay на Hackaday. Тут можно применить sed, но этой утилитой пользоваться довольно сложно. Для решения этой задачи можно было бы воспользоваться awk. Но, учитывая то, что речь идёт о языке программирования, использовать его для решения столь простой и распространённой задачи — это, пожалуй, чересчур. Именно идея, заключающаяся в простом решении вышеописанной задачи, и лежит в основе утилиты ripgrep (соответствующая ей команда выглядит как rg). С помощью rg можно решать те же задачи, что решает grep, но при этом — пользоваться более современными регулярными выражениями и, кроме того, не только искать строки, но и выполнять их замену.


Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии7

Пишем движок полнотекстового поиска на Go

Время на прочтение8 мин
Количество просмотров18K
Полнотекстовый поиск — один из тех инструментов, которые мы используем практически каждый день, когда ищем какую-то информацию в интернете. Full-Text Search (FTS) — это метод поиска текста в коллекции документов. Документ может ссылаться на веб-страницу, газетную статью, сообщение электронной почты или любой структурированный текст.

Сегодня мы собираемся написать собственный движок FTS. К концу этой статьи он сможет выполнять поиск по миллионам документов менее чем за миллисекунду. Начнём с простых поисковых запросов, таких как «Выдать все документы со словом cat», а потом расширим движок для поддержки более сложных логических запросов.

Примечание: самым известным движком полнотекстового поиска является Lucene (а также Elasticsearch и Solr, построенные на его основе).
Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии23

Новое применение Captive Portal для проведения MiTM атак

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

Тема проведения Man in the Middle атаки в контексте Captive Portal стара как мир. Как правило ведется речь о поднятии фейковой беспроводной точки доступа с собственным Captive порталом. Сегодня я покажу совершенно другой вектор атаки, выходящий за грани WiFi и применимый в том числе и в проводных Ethernet сетях.
Всего голосов 15: ↑15 и ↓0+15
Комментарии6

Тесты или типы? — Rust version

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

Пару дней назад 0xd34df00d опубликовал здесь перевод статьи, описывающей, что можно узнать о функции в разных языках, если рассматривать её как "чёрный ящик", не используя информацию о её реализации (но, разумеется, не мешая ей пользоваться компилятору). Разумеется, получаемая информация очень сильно зависит от языка — в исходной статье рассматривались четыре примера:


  • Python — динамически типизированный, информации минимум, какие-то подсказки дают только тесты;
  • C — слабо статически типизированный, информации ненамного больше;
  • Haskell — сильно статически типизированный, с чистыми функциями, информации существенно больше;
  • Idris — язык с зависимыми типами, информации достаточно, чтобы во время компиляции доказать корректность функции.

"Есть C, есть Haskell, а где же Rust?!" — немедленно прозвучал вопрос. Ответ — под катом.

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

Распространённые заблуждения о временах жизни в Rust

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

(прим. переводчика: времена жизни (lifetimes) — это одна из самых запутанных вещей в Rust, которая часто вызывает затруднение у новичков, даже несмотря на официальную документацию. Разъяснения по отдельным аспектам времён жизни есть, но они все разбросаны по разным источникам и ответам на Stack Overflow. Автор статьи собрал в одном месте и разъяснил множество связанных с временами жизни вопросов, что и делает эту статью столь ценной (я и сам почерпнул новое для себя отсюда). Я решил перевести её, чтобы дать возможность прочитать её тем, кто не владеет английским в достаточной степени, чтобы свободно читать оригинал, а также для того, чтобы повысить известность этой статьи среди русскоязычного Rust-сообщества)


19 мая 2020 г. · 37 минут · #rust · # lifetimes

Читать дальше →
Всего голосов 53: ↑51 и ↓2+49
Комментарии5

Google Dorking или используем Гугл на максимум

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

Вступление


Google Dorks или Google Hacking — техника, используемая СМИ, следственными органами, инженерами по безопасности и любыми пользователями для создания запросов в различных поисковых системах для обнаружения скрытой информации и уязвимостях, которые можно обнаружить на общедоступных серверах. Это метод, в котором обычные запросы на поиск веб-сайтов используются в полную меру для определения информации, скрытой на поверхности.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии7

Прописываем процедуру экстренного доступа к хостам SSH с аппаратными ключами

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


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

Зачем всё это? Ну, это вариант на крайний случай. Это бэкдор, который позволит вам получить доступ к своему серверу в том случае, когда по какой-то причине больше ничего не помогает.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии6

Работаем в IntelliJ IDEA на слабом железе

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

Обнаружил секретный репозиторий на гитхабе JetBrains под названием Projector. Благодаря нему написал кусок кода в IntelliJ IDEA, запущенной на Android-планшете. Рассказываю, как это повторить.


Читать дальше →
Всего голосов 94: ↑93 и ↓1+92
Комментарии147

Использование методов анализа графов для поиска аномалий

Время на прочтение17 мин
Количество просмотров9.2K
Несмотря на то, что описание данных с помощью графов практикуется еще с позапрошлого столетия, использование их в решении повседневных задач по анализу данных лишь набирает обороты. Хотя основное внимание уделяется, как водится, графовым эмбеддингам и сверточным сетям, маленькие шаги предпринимаются и в алгоритмах по поиску аномалий или антифроде. Основная обзорная статья, на которую ссылается большинство специалистов в своих в докладах и публикациях, — Graph based anomaly detection and description: a survey от авторов Leman Akoglu, Hanghang Tong, Danai Koutra (Akoglu, 2015). Мы в CleverDATA решили рассказать Хабру об этом практически единственном материале по теме и предлагаем вашему вниманию его саммари.

Первый граф Российского царства Борис Петрович Шереметев. Аномалий не обнаружено.
Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии2

О нет! Моя Data Science ржавеет

Время на прочтение9 мин
Количество просмотров8.8K
Привет, Хабр!

Предлагаем вашему вниманию перевод интереснейшего исследования от компании Crowdstrike. Материал посвящен использованию языка Rust в области Data Science (применительно к malware analysis) и демонстрирует, в чем Rust на таком поле может посоперничать даже с NumPy и SciPy, не говоря уж о чистом Python.


Приятного чтения!
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии9

Как найти удаленную работу в США и Европе: списки ~1000 компаний, полезные инструменты для поиска + личный опыт инженера

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


Изображение: Unsplash

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

Я решил разобраться в том, что для этого нужно сделать инженеру с постсоветского пространства. Для этого я изучил компании, которые предлагают remote-позиции для ИТ-специалистов, нашел несколько полезных сервисов и поговорил с Никитой Львовым, инженером, который как раз недавно нашел такую работу и согласился поделиться опытом. Надеюсь, получилось полезно. Поехали!
Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии20

Как клеить по 13 девушек в час, используя машинное обучение и Tinder

Время на прочтение7 мин
Количество просмотров151K
*Исключительно ради изучения Machine Learning, разумеется. Под немного недовольным взглядом любимой жены.

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

Я решил, что это неплохой способ немного пощупать машинное обучение на новой видеокарте. Останется только объяснить жене, что мне не нужна новая женщина потолще, а я просто тренирую нейросети.


Читать дальше →
Всего голосов 152: ↑144 и ↓8+136
Комментарии139

Bhunter — взламываем узлы бот-сетей

Время на прочтение4 мин
Количество просмотров6.9K
Вирусные аналитики и исследователи компьютерной безопасности стремятся собрать как можно больше образцов новых ботнетов. В своих целях они используют honeypot'ы.… Но что если хочется понаблюдать за зловредом в реальных условиях? Подставить под удар свой сервер, маршрутизатор? А что если подходящего устройства нет? Именно эти вопросы натолкнули меня на создание bhunter — инструмента для получения доступа к узлам бот-сетей.

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

Radarr, Jackett и бот в телеге. Качаем торренты по-новому

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

В итоге, конечно, стриминг таки добьёт торренты. И если в 720/1080p мире это, по сути, уже свершилось, то Blue-ray/4k/8k контент пока ещё держится за счёт торрентов (у нас и в Европе) и юзнетов (штаты).

Сегодня стриминг выигрывает, в основном, за счёт удобства. Открыл апп, зашёл в раздел «новинки» и выбирай на любой вкус. Я прокачал свой процесс с торрентами, и теперь он смотрится, как минимум, не хуже.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии52

Динамический email :: безопасность

Время на прочтение9 мин
Количество просмотров3.2K
Здравствуйте!

В предыдущих публикациях мы поговорили о возможностях системы противодействовать спаму. Сегодня хочу затронуть вопросы безопасности, а также рассказать о том, что нового появилось в системе за прошедшее время.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Шпаргалка по визуализации данных в Python с помощью Plotly

Время на прочтение62 мин
Количество просмотров278K
Plotly — библиотека для визуализации данных, состоящая из нескольких частей:

  • Front-End на JS
  • Back-End на Python (за основу взята библиотека Seaborn)
  • Back-End на R

В этой простыне все примеры разобраны от совсем простых к более сложным, так что разработчикам с опытом будет скучно. Так же эта «шпаргалка» не заменит на 100% примеры из документации.



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

Как правильно мониторить UPS ippon с NUT и Zabbix

Время на прочтение1 мин
Количество просмотров18K
Длинный комментарий к посту, в котором автор рассказал как мониторить ippon smart winner с помощью apcupsd. На мой взгляд это не правильное решение. В комментариях всплывал вопрос про NUT и я был удивлен, что никто не рассказал про работающее решение. Будем исправлять.

Часть первая: NUT


На самом деле NUT очень даже работает с представителями семейства smart winner от Ippon. И с InnovaRT тоже работает.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии3

Правила компоновки во Flutter, которые должен знать каждый

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


Когда новичок во Flutter спрашивает, почему какой-то виджет с width: 100 не ширины 100 пикселей, обычно ему отвечают, что надо обернуть этот виджет в Center, верно?


Не надо так делать


Если так отвечать, то к вам будут возвращаться снова и снова, спрашивая, почему какой-то FittedBox не работает, почему этот Column переполнен или как работает IntrinsicWidth.


Сначала объясните, что Flutter компоновка очень отличается от HTML компоновки (особенно, если говорите с веб-разработчиком), а затем скажите, что необходимо запомнить следующее правило:


Ограничения для виджетов объявляются в родителях. Размеры (желаемые) задаются в самом виджете. Позиция виджета на экране устанавливается родителем

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

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

Активация discard (TRIM) на Linux для SSD

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

Современные накопители данных такие как SSD нуждаются в команде TRIM интерфейса ATA и для этого в ОС построенных на базе ядра Linux предусмотрено два метода управления на уровне файловых систем:


  • discard — устанавливается как опция монтировании файловой системы. Позволяет ядру Linux сразу отправлять команду TRIM на устройство, как только об этом сообщит файловая система.
  • fstrim — утилита которая запускается вручную или по расписанию как сервис ОС, отправляет список удаленных блоков с ФС для зачистки их на устройстве.

Для включения fstrim достаточно активировать сервис fstrim.service в systemd, но лучше вместо сервиса, который будет висеть в памяти, использовать таймер fstrim.timer который будет запускать еженедельный TRIM.


Пример включения сервиса:


# Включение, старт и вывод статуса сервиса:
systemctl enable fstrim.service && \
systemctl start fstrim.service && \
systemctl status fstrim.service

Но этих мер недостаточно, если у вас файловые системы располагаются на томах LVM, а LVM в LUKS игла в яйце, яйцо в утке, утка в зайце:



Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии15

Как увлажняется кожа, и что бывает, когда вы маниакально моете руки спиртом при COVID-19

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


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

Сейчас нас начали доставать знакомые, которые узнали о пользе мытья рук. И у них сохнет кожа от мыла, средств дезинфекции и прочего. Если вы начнёте соблюдать правила ВОЗ, то разные органы будут сохнуть и у вас тоже. Поэтому давайте немного поговорим о том, как же это устроено.

Если вы польёте на руку водопроводной водой, то через некоторое время кожа на ней будет суше (особенно это заметно зимой). В этот момент люди иногда думают, что нарушаются какие-то базовые законы мироздания. На деле за счёт содержащихся в воде элементов (в основном кальция и хлора) вы нарушаете липидный слой и выносите с кожи ещё часть веществ, которые удерживали влагу. Результат — ваши руки чистые. И сухие.

Если бы вода могла проникать в кожу, то человек растворялся бы в ванне. В смысле он так делает где-то на третьи сутки (и даже может принять форму и размер ванны, что доставляет известную радость судмедэкспертам и патологам). Но обычный живой человек в достаточной степени водонерастворим.
Читать дальше →
Всего голосов 75: ↑70 и ↓5+65
Комментарии56

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность