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

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

Удивительный мир бинов банковских карт

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 466

Наверняка многие знают, что первые 6 цифр номера карты называются бином, по которому можно узнать банк и платежную систему, выпустившие карты. Но как банки договариваются об использовании бинов? Чем на практике эти условные 6 цифр помогают участникам платежных систем? И какую дополнительную информацию они в себе несут? Попробуем вместе разобраться в запутанной жизни первых цифр вашей карты.

Разобраться
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Новости

Фильтр нецензурной лексики за 5 минут

Время на прочтение 5 мин
Количество просмотров 482
Привет, Хабр.

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

Анализирование


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

Увлекательный лексический анализ языка Rust

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

Давайте поговорим о лексическом анализе. Сначала я собирался назвать этот пост «Реализуем токенайзер», но ветер переменился, времена изменились… и, чтобы не утонуть в потоке комментариев вида «фыр, а где мой BPE-токенизатор LLama, который вы мне обещали», ограничимся пока лексическим анализом.

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

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

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

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

Devuan LXC + Runit native boot

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 428

Runit уже много лет пленяет пылкие сердца и умы любителей прекрасного и если вас тоже подташнивает от коричневых оттенков мэйнстримных облаков, то слушайте. Я расскажу о своём опыте использования runit в режиме native boot, который делает lightweight контейнеры по-настоящему lightweight.

Ведь как я делал раньше? Деплоил контейнер debian, отключал мерзкий бинарный лог в /etc/systemd/journald.conf, потом ставил вменяемый rsyslog, который тянул logrotage и cron, а потом выискивал свои крошечные поделки в списке процессов среди всех этих systemd, cron, rsyslogd, agetty - вот этот agetty я вообще победить не мог.

Вас бы не задолбало такое безобразие? Я-то терпеливый, но и меня тоже достало.

Devuan. Только Devuan.

А про native boot в runit вообще ни один из известных мне поисковиков ничего не может сказать, и никаких упоминаний нет на wiki всех этих gentoo, void, artix, где runit активно используется. И даже на этом сайте ни слова, хотя поиск по runit весьма познавателен, если отфильтровать весь спам про лошадиный спорт.

Я восполню этот пробел
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 0

Истории

Метод Reverse-engineering на практике: как расшифровать исходный код

Уровень сложности Сложный
Время на прочтение 11 мин
Количество просмотров 1.2K

Всем привет!
Сегодня в нашем эфире новый автор - Никита Синкевич, руководитель группы анализа и реагирования Инженерного центра Angara Security. Итак, начинаем!

Иногда в ходе расследования инцидента информационной безопасности необходимо понять, имеет ли та или иная программа вредоносное воздействие на систему. Если для данной программы у вас нет исходного кода, то приходится применять метод исследования "обратная разработка", или Reverse Engineering. Я покажу, что такое "обратная разработка" на примере задания "RE-101" с ресурса cyberdefenders.

CyberDefenders — это платформа для развития навыков blue team по обнаружению и противодействию компьютерным угрозам. В этой статье будет разбор последней, шестой подзадачи из задания "RE-101". На мой взгляд, она лучше раскрывает процесс реверс-инжиниринга, чем остальные: нам предстоит восстановить из исполняемого файла кастомный алгоритм шифрования, написать скрипт-дешифратор и расшифровать флаг.

Используемые инструменты:

1.       Detect it Easy

2.       IDA

3.       Python3

4.       Notepad++

5.       CyberChef

Задание

Описание намекает, что в предложенном файле malware201 кто-то реализовал свой собственный криптографический алгоритм.

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

Как визуализация приоритетности задач позволила нам ускорить процесс разработки и сделать его прозрачным для всех

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 681

Какое-то время назад мы столкнулись с проблемой: сроки нашей разработки и темпы реализации начали сильно стопориться. При запуске фичей команда сталкивалась с отсутствием прозрачности при отображении объема задач в спринте. У одного разработчика в работе могло находиться сразу несколько задач, поэтому было непонятно над какой из них он трудится сейчас. Кроме того, задания при переводе обратно на разработчика никак не маркировались, что повышало риск того, что они не будут замечены вовремя.  В итоге, разработчики “буксовали” на одних и тех же задачах в ожидании ценных указаний, а важные доработки терялись. Исправить ситуацию нам помог новый подход к визуализации задач на командной доске.

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

Когда мы только берём задачу в работу, она попадает в Tech Design, затем задача перемещается в Development — основной этап разработки. После того, как разработка фичи окончена, задача отправляется на Review, где мы проверяем написанный разработчиком код. Затем два этапа тестирования, и, соответственно, две колонки — QA (Quality Assurance) и UAT (User Acceptance Testing). Финальная колонка — Ready to Release, то есть, фича, попавшая в неё, уже готова к выпуску в прод.

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

О динамическом программировании на пальцах

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 2.5K

Как динамическое программирование может упростить нашу жизнь? Как можно оптимизировать решение задач?

Сегодня мы разберем динамическое программирование на пальцах с примерами на Python!

Усаживайтесь поудобнее, леди и джентльмены!

Вперед!
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 7

Как мы наладили процесс разработки внутренних приложений с помощью Appsmith

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

Привет! Меня зовут Алексей, я аналитик данных в команде BI финансового маркетплейса Банки.ру. Сегодня хочу поделиться опытом работы с Appsmith. Это low-код инструмент для автоматизации бизнес-процессов. 

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

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

Нетипичные сценарии использования BI-системы (Apache Superset)

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

Всем привет!
Сегодня поговорим о немного нетипичной для меня теме, а именно - Apache Superset. Обычно я пишу длинные "философские" статьи "на свободную тему", но в этот раз - это будет туториал. Так что кому-то может показаться банальностью, но, опять таки, вдруг кому поможет. Почему-то именно по суперсету на хабре оскорбительно мало материалов. Да, у него в целом неплохая документация, но она все же - документация, поэтому в меру сухая, в ней нет дополнительных объяснений, примеров. Попробуем хоть немного исправить эту ситуацию

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

Производительность базового поиска в Ozon как культурный феномен

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

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

Читать далее
Всего голосов 42: ↑41 и ↓1 +40
Комментарии 10

Стратегия в коммуникационной стратегии. Самое важное

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 191

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

Для построения эффективной коммуникации с аудиторией, определения болей и потребностей, нужна коммуникационная стратегия.

Рассказываем, что такое стратегия, и из чего она состоит.

Погрузиться
Всего голосов 6: ↑3 и ↓3 0
Комментарии 0

ChatGPT исполняется годик. Вспоминаем, что произошло с продуктом за это небольшое время

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 1.2K

Удивительно было сегодня обнаружить в знакомом интерфейсе ChatGPT праздничную шапочку. Я уж было подумал, что OpenAI решил украсить интерфейс к новому году. Ан нет, сегодня и правда большая веха этого замечательного продукта, повлиявшего на жизни сотен миллионов человек. И захотелось вспомнить и зафиксировать все те удивительные вещи, которые за этот год произошли у ChatGPT. В одном месте это все обнаружить не нашлось, пришлось лазить по анонсам OpenAI, а также обзорам (1 и 2). Итак, с чего всё начиналось.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 5

Перенести терабайты канбан-досок в облако: опыт команды Yandex Tracker

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 844

Привет, меня зовут Мария Карпенко, я разработчик в команде Yandex Tracker — сервиса для управления процессами и проектами. Внутри Яндекса сервис  используется для постановки задач практически во всех командах, так что общее количество событий по задачам исчисляется уже миллиардами. 

Как внутренний сервис Tracker существует с 2012 года, и старые инстансы исторически использовали базы данных on-premise. Но к 2023 году многие части даже из списка легаси должны были переехать в облако — и нам понадобилось продумать бесшовный переезд для достаточно объёмных БД.

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

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

Ближайшие события

Битва пет-проектов
Дата 25 сентября – 30 ноября
Место Онлайн
Business Code Conference
Дата 30 ноября
Время 17:30 – 00:00
Место Москва
Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн
YaTalks 2023 — главная конференция Яндекса для IT сообщества
Дата 5 – 6 декабря
Время 9:00 – 23:59
Место Москва Белград Онлайн

R&D-проекты в IT: как убедить руководителя проводить исследования и зачем это бизнесу

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 317

Привет, я Антон Смирнов, старший инженер в департаменте аналитических решений ЮMoney. Один из моих профессиональных интересов — это Research and Development (R&D, исследование и развитие) в ИТ.  Расскажу, что такое R&D-проект, зачем он бизнесу и что делать, если не получается заинтересовать руководителя проводить исследования.

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

Битва за репост: 4 неочевидные уловки, которые сделают ваш контент вирусным

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 514

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

Погрузиться
Всего голосов 14: ↑0 и ↓14 -14
Комментарии 1

Смогут ли разработчики конкурировать с нейросетями: оцениваем возможности AI и человека

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

Привет, Хабр! Меня зовут Александр Демидов, я директор по разработке департамента управления технологиями МТС. Сегодня поговорим про использование в программировании нейросетей, включая ChatGPT и конкуренцию нейросетей и программистов.

Всё чаще слышны разговоры, что вот-вот компьютер может заменить специалистов-людей, и кодерам придется искать новую работу. Так ли это на самом деле? На олимпиаде True Tech Champ я выступал с докладом по этой теме, и теперь хотелось бы обсудить этот вопрос здесь, на Хабре. Моё мнение и анализ текущей ситуации — под катом. Буду рад любым комментариям.

Читать далее
Всего голосов 8: ↑5 и ↓3 +2
Комментарии 6

3 шага на пути к сторителлингу: на что обратить внимание и стать королями драмы

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 360

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

Погрузиться
Всего голосов 9: ↑3 и ↓6 -3
Комментарии 0

nanoCAD Конструкции PS: инструменты детального армирования и сборка изделий

Время на прочтение 2 мин
Количество просмотров 258

Продолжаем серию видеоуроков, посвященных технике работы в nanoCAD Конструкции PS. Это приложение к Платформе nanoCAD – для автоматизации разработки документации разделов КЖ и КЖИ при проектировании зданий и сооружений. Видеоуроки будут особенно полезны инженерам строительных специальностей, работающим над проектами монолитных конструкций.

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

Подход, который помог нам точно оценить трудозатраты на разработку дизайн-системы

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 370

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

Меня зовут Александр Самсонов, я руководитель отдела UX в СберТехе. Вместе с командой работаю над продуктом Platform V UK Kit — дизайн-системой React-компонентов корпоративного масштаба. Расскажу, как мы начали оценивать затраты ресурсов при разработке дизайн-системы, и как метод помог нам лучше планировать работу, точно отвечать на вопросы и не выглядеть в глазах бизнеса нервными белыми воронами в чёрных толстовках.

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

Передача данных между слоями приложения

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 1.4K

Тестирование производительности различных способов передачи данных между моделями разных уровней слоёного прилолжения.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 14