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

Программирование *

Искусство создания компьютерных программ

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

ElasticSearch — поиск последовательности в тексте

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

Привет! На связи Аркадий из Т-Банка, мы по прежнему делаем TQM, и в этой статье покажу, как мы решили задачу с поиском последовательностей в тексте коммуникаций. Это работает как на простых цепочках из словосочетаний по порядку, так и на сложных кейсах — со временем фразы, каналом «клиент — оператор». Мы по прежнему работаем с ElasticSearch, оставляя возможность “накрутить” на поиск по тексту такие вещи как RAG, LLM и другие модные технологии. 

Несколько ограничений для сегодняшней задачи:

- Нелинейное возрастание сложности запроса при увеличении количества фраз. Поэтому предел у нас 4.

- Шаг тайминга мы выбрали 5 секунд. После каждой фразы ставим метку времени или несколько меток, если фраза заняла больше 5 секунд. Если сделать шаг слишком мелким это позволит искать более точно, но замусорит наше поле метками времени. Кажется, это тот момент когда лучше заранее договориться о требованиях.

А теперь к самому интересному. Добро пожаловать под кат!

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

Жизнь во время ревью: как помирить Лешу и Славу и при этом не обидеть Колю…

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

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

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

Telegram вместо студии звукозаписи: как я создал бота для мобильных музыкантов

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

Привет! Я Виктор, проектный менеджер в Selectel. Последние 20 лет мое хобби — написание музыки. Выходит с переменным успехом (писать музыку, конечно), но это часть моей жизни. Сначала был Fruity Loops 3, потом Reaper, но душа всегда тянулась к «железу» и новым технологиям.

Под катом — история pet-проекта, который призван упростить жизнь мобильным музыкантам. Либо заставить технических специалистов сказать *meh* («До» малой октавы). Осторожно — внутри нейронки, музыкальное «железо» и плохой код на Python.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+44
Комментарии10

Представлена языковая модель Mistral Large 2 размером 123B. Как запускать. Локальный Сopilot. Открытый конкурент GPT-4o

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

MistralAI, вслед за LLaMA 3.1 405B, представила свою флагманскую модель с открытыми весами Mistral Large 2 (Mistral-Large-Instruct-2407). Mistral всегда отличалась очень качественными открытыми моделями, и, судя по всему, эта будет не исключением.

Веса открыты, размер контекста составляет 128k, размер модели 123B, модель была обучена на 80 языках программирования и десятках естественных языков, включая русский. Модель хорошо себя показывает как в рассуждениях, так и в математике и программировании.

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

Истории

Почему мне не понравилась нейросеть Codeium

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

Сейчас многие компании пытаются внедрять ИИ-помощники в среды разработки в надежде упростить работу программистам и повысить эффективность работы. В начале этого года у нас провели пилотное тестирование бесплатной Codeium. Нейросеть использовалась из коробки (без дообучения). В статье расскажу про использование Codeium при разработке на C# в Visual Studio 2022(продуктовый код и тесты). За месяц использования работоспособность Codeium мне не понравилась и вот почему.

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

Красота и изящество таблицы ASCII

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7.9K
Если вы программист или хотя бы немного связаны с программированием1, то без сомнения сталкивались с таблицей ASCII.

Таблица ASCII полезна. Но знали ли вы, что она ещё красива и изящна?

Сегодня даже не близкие к программированию люди могут знать об ASCII благодаря книгам и фильмам наподобие «Марсианина»2

ASCII по-прежнему с нами; даже если вы передаёте современный Unicode3, то должны знать, что самый популярный формат кодировки UTF-8 специально спроектирован как обратно совместимый с ASCII! Декодировав эту статью как ASCII, вы в целом поймёте её смысл… если закроете глаза на мусорные символы в конце предложений (прим. ред.: имеет смысл только для оригинальной статьи на английском).
Читать дальше →
Всего голосов 39: ↑38 и ↓1+54
Комментарии50

Flyway + Spring Boot: настройка и написание миграций баз данных

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

Написание скриптов миграции трудоёмкий процесс. И если есть возможность это дело автоматизировать – этим нужно пользоваться!

В этом гайде я расскажу как подключить и настроить Flyway в Spring Boot приложении, сгенерировать скрипты инициализации и миграции схемы базы данных вместе с Amplicode!

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

Я перестал использовать Copilot после 2 месяцев. И вот почему

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

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

Читать далее
Всего голосов 132: ↑114 и ↓18+121
Комментарии112

Data Science в travel-tech. Часть 1. Поиск и бронирование

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

Привет! Меня зовут Иван Елфимов, я Developer Advocate в Островке. В прошлом месяце мы опубликовали пост о том, чем занимаются ML-инженеры в Островке. В этот раз рассказываем про Machine Learning (ML) и Data Science (DS) с точки зрения продукта.

Команда Data Science появилась в Островке в 2014 году, задолго до расцвета больших языковых моделей. За это время она успела сделать десятки проектов с computer vision, NLP и сложными классическими моделями.

Ажиотаж вокруг языковых моделей заставил многих из нас забыть, что Data Science — это не только трансформеры (General Pretrained Transformers, GPT). Мы используем картинки, текстовые и табличные данные для построения моделей, которые работают в реальном времени или обрабатывают статистические данные. Они помогают нам подбирать лучшие отели для вашего следующего путешествия.

Хороший DS-продукт не заметен — он просто работает. Давайте сыграем в игру: мы показываем скриншот страницы сайта, а вы пробуете отгадать, сколько на этой странице DS-продуктов. И не забывайте, что DS-продукт — это не только нейронные сети, но и классические модели, а также различные эвристики. Надеюсь, результаты вас удивят!

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

Случайные блуждания: связь с резистивным расстоянием (часть 2)

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

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

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

Деплоим Grafana Dashboard через ArgoCD

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

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

В этой статье мы рассмотрим, как использовать ArgoCD для автоматизации деплоя дашбордов Grafana.

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

Ошибки в языке Go — это большая ошибка

Время на прочтение3 мин
Количество просмотров13K
// гофер пытается найти логику среди обработки ошибок
+-------+-------+-------+-------+-------+-------+
|       |  err  |       |  err  |       |  err  |
|  ,_,,,        |       |       |       |       |
| (◉ _ ◉)       |       |       |       |       |
|  /)  (\               |       |       |       |
|  ""  ""               |       |       |       |
+       +-------+       +-------+       +-------+
|       |  err          |  err  |       |  err  |
|       |               |       |       |       |
|       |               |       |       |       |
+-------+       +-------+       +-------+       +
|  err  |               |  err                  |
|       |               |                       |
|       |               |                       |
+       +-------+       +       +-------+       +
|       |  err  |               |  err  | logic |
|       |       |               |       |       |
|       |       |               |       |       |
+-------+-------+-------+-------+-------+-------+

Я пишу на Go несколько лет, в Каруне многие вещи сделаны на нём; язык мне нравится своей простотой, незамысловатой прямолинейностью и приличной эффективностью. На других языках я писать не хочу.


Но сорян, к бесконечным if err != nil я до конца привыкнуть так и не смог.


Да-да, я знаю все аргументы: явное лучше неявного, язык Go многословен, зато понятен, и всё такое. Но, блин, на мой взгляд Го-вэй Го-вэю рознь.

Читать дальше →
Всего голосов 41: ↑37 и ↓4+38
Комментарии76

5 удобных Телеграм-ботов с Chat GPT для написания кода

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

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

По популярности лидирует нашумевший Chat GPT, но в России сервис не работает без VPN. Как тебе такое, Илон Маск? Неудобство? — Да. Разочарование? — return false; Давно есть решение — Телеграм-боты со встроенным GPT для кода и борьбы с багами.

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

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

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

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

Каждый мечтает стать немного богаче — вернуться в 2011 год и купить биткоинов на всю стипендию, чтобы сегодня быть уважаемым человеком. Возможно ли это? Скорее всего нет. Но тем не менее, если мы хотим накопить денег на квартиру или безбедную старость, то задаемся вопросом: в какой валюте или акции хранить перспективно и безопасно? Простой ответ — ни в какой. Если оглянуться в прошлое, то любая национальная валюта теряет в цене, а акции то растут, то падают, как и криптовалюта. Точно предсказать, как будет себя вести конкретная валюта в будущем, — невозможно.

Я не буду делать свои прогнозы, так как не экономист, но покажу как сделать инструмент для подсчета своих активов между разными финансовыми инструментами. А сделал я его из Google-таблиц и AppsScript, последний мне понадобился, чтобы узнавать актуальный курс.

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

Zen of Python: история, реализация и пасхалки

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

В мире программирования на Python существует особая философия, представляющая собой специальный документ под названием Zen of Python (Дзен Python). Он включает принципы, направленные на написание ясного, простого и элегантного кода на Python. В этой статье мы поговорим об истории создания этого документа, его реализации и пасхалках, связанных с ним.

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

Как работает Python Asyncio: воссоздаем с нуля

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

Автор оригинала: Jacob Padilla

Сейчас asyncio — одна из самых модных тем в Python, и это справедливо — это отличный способ обработки программ, связанных с вводом-выводом! Когда я изучал asyncio, мне потребовалось некоторое время, чтобы понять, как это на самом деле работает. Но позже я узнал, что это по сути просто очень хороший слой поверх генераторов Python. В этой статье я собираюсь создать упрощенную версию asyncio, используя только генераторы Python. Затем я собираюсь реорганизовать пример, чтобы использовать ключевые слова async и await с помощью dunder-метода __await__, прежде чем замкнуть круг и заменить свою версию на настоящий asyncio. Надеюсь, создав простую версию asyncio в конце этой статьи, вы сможете лучше понять, как он творит свою магию!

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

Превращаем игроманию в полезное времяпрепровождение! (1-я часть)

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

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

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

Xv6: увеличим размер страниц виртуальной памяти с 4Кб до 2Мб

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

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

Пример: Пусть программа занимает 4 Мб памяти. Размер страницы - 4 Кб. Программа займет (1024 * 1024 * 4) / (1024 * 4) = 1024 страницы памяти. ОС избавит процессор от лишней работы, если увеличит размер страницы до 2 Мб - тогда программа займет 2 страницы.

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

Рекурсия в Java с примером решения задачи с LeetCode

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

Рекурсивные методы в Java — это методы, которые вызывают сами себя и требуют осторожности с их обращением.

Чтобы не увидеть «StackOverflowError» на экране, нужно помнить о двух штуках: базисе и шаге рекурсии.

Базис — это условие выхода из рекурсии, а шаг — это вызов методом самого себя с измененными параметрами.

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

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

Тестируем качественные характеристики. Как сделать сложное простым

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

Привет, Хабр! Меня зовут Юрий Заковряшин. Я занимаюсь разработкой ПО более 40 лет, преподаю курсы по технологиям разработки программного обеспечения и программированию на платформе Java в СПбПУ Петра Великого.

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

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

Вклад авторов