Как стать автором
Обновить
31
8.8
Кирилл Белов @KirillBelovTest

Инженер по автоматизации тестирования

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

WebP — формат сжатия веб-страниц

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

Я хочу, чтобы посетители моего сайта наслаждались им, так что я забочусь об accessibility и проверяю, что даже без JavaScript тут есть, на что смотреть. Я забочусь о том, насколько быстро грузятся страницы, ведь на некоторых из них есть большие иллюстрации, поэтому я минифицирую HTML.

Вот только есть один нюанс, который ставит мне палки в колёса и не даёт сделать блог лёгким как пёрышко.

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

Разработка и деплой Slack бота

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

В этой статье мы рассмотрим процесс разработки Slack-бота на Python с использованием популярных библиотек и фреймворков, таких как Flask и Slack SDK. Мы начнем с выбора инструментов, необходимых для создания бота, и шаг за шагом пройдем через все этапы разработки: от настройки окружения и написания кода до тестирования и деплоя на сервер.

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

Как Linux создаёт и подсчитывает сокеты

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

Подробно о том, что происходит под капотом в ядре Linux, когда вы выполняете очередной системный вызов при работе с сокетами.

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

Как в разы увеличить дальность приема WiFi / BT при помощи паяльника

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

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

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

Что такое Retrieval-Augmented Generation (RAG) в языковых моделях и как оно работает?

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

В контексте разговоров о больших языковых моделях (LLM) все чаще возникает аббревиатура RAG – Retrieval-Augmented Generation, или если переводить на русский язык, то «поисковая дополненная генерация». В этом тексте попробуем в общих чертах разобраться, как работает RAG, и где он может быть применим на практических задачах.

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

Открытые инструменты для GPU-вычислений

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

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

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

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

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

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

Нейросети любой архитектуры построены на перемножении матриц. Например, трансформеры из входного вектора создают (тоже перемножением) три матрицы, Q, K и V, которые затем несколько раз перемножаются на пути к получению выходного вектора. Именно умножение матриц  с его  кубической сложностью (если не прибегать к разного рода ухищрениям) занимает большую часть вычислительных мощностей.

Поэтому возникает естественное желание облегчить эту самую массивную часть вычислений и ускорить таким образом любую архитектуру. Периодически возникают новые подходы и идеи, тут расскажем о последней громкой статье по этой теме — Scalable MatMul-free Language Modeling.

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

Автотесты: от первого автотеста до масштабного проекта. Мой набор инструментов для масштабирования

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

Привет, Хабр! Меня зовут Максим, я инженер по автоматизации тестирования в компании 1221СИСТЕМС и хотел бы поделиться своим опытом и рассказать путь настройки автотестов от минимального рабочего состояния до масштабного проекта. Поделюсь тем, какие инструменты я внедрил для улучшения процессов на нашем проекте.

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

Грепабельность — важная метрика кода

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

При работе над поддержкой незнакомой мне кодовой базы я трачу кучу времени на поиск строк при помощи grep. Даже в проектах, полностью написанных мной, мне нужно много искать: имена функций, сообщения об ошибках, имена классов и тому подобное. Если я не могу найти нужное, то я буду как минимум расстроен, а как максимум могу создать опасную ситуацию, если предположу, что какой-то элемент больше не нужен, ведь я не могу найти ссылок на него в кодовой базе. На основании этих ситуаций я выработал правила, которые позволяют повысить греппабельность кода.

Читать далее
Всего голосов 35: ↑32 и ↓3+42
Комментарии31

В ДЭГ на президентских выборах проголосовало на 211 тысяч больше, чем было избирателей. Что это значит?

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

Введение в курс дела

На мартовских выборах президента я был официальным наблюдателем за федеральным ДЭГ с доступом к ноде наблюдения. Совместно с коллегами мы обнаружили, что количество голосов в официальных протоколах на 211 тысяч больше, чем было загружено избирателей в систему электронного голосования. То есть в ДЭГ в некоторых регионах явка превышает 100 процентов. Как так получилось?

Узнать куда пропали 211к избирателей
Всего голосов 228: ↑218 и ↓10+261
Комментарии300

lnav — супернедооценённый инструмент для работы с логами

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

Доброго дня. Это мой первый пост на хабре, поэтому не будьте особо строги к нему.

В мире разработки, системного администрирования и DevOps не смотря на то, что давно существуют и заняли свою нишу инструменты, связанные с централизованным сбором, визуализацией и анализом логов (graylog, ELK/EFK, loki, loggly и другие), всё ещё существует необходимость периодически взять шашку в руки и поработать со старыми/добрыми (а может быть и не очень добрыми) текстовыми логами. За 21 год своей деятельности я успел побыть системным администратором, DevOps инженером, разработчиком, CTO и системным аналитиком, но необходимость периодической работы с логами неизменно присутствовала в том или ином виде всегда. Это может быть разбор вывода нового сервиса или контейнера на машине разработчика, что-то, что ещё не успели завести (или сознательно по каким-либо причинам не завели) на централизованную систему сбора логов или, например, сервис, временно включенный в режиме debug для поиска причин проблемы. Ситуаций бывает много и ситуации бывают разные, а текстовые логи были, есть и ещё долго будут с нами.

Все, кто как-либо связан с DevOps знают про такие утилиты как more, less, tail, head, grep, sed, awk (а кто-то и ещё десяток более специфичных) и при необходимости их используют, но из тех, с кем я общался, никто не подтвердил мне, что знает про lnav. Я и сам не знал и искал нечто подобное более десяти лет. lnav — это не просто швейцарский армейский нож в мире работы с логами, а целый космический корабль, на котором можно улететь в соседнюю галактику. Мой мир разделился на "до" и "после" знакомства с этой утилитой. Там, где раньше требовались часы, а то и десятки часов на анализ логов, теперь хватает считанных минут.

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

Мне нужна твоя одежда, сапоги и требования к проекту. Тестирование требований для начинающих

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

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

Что такое требования и какими
они бывают?

Требования – это любое условие, которому
должен соответствовать конечный продукт,
все его возможности, ограничения и логика
системы. Они создаются в процессе
проработки задания на разработку/
модернизацию программного обеспечения.
Требования делятся на функциональные и
нефункциональные, а также на явные и
неявные (самые коварные). Причем,
неявные требования необходимо
переводить в явные, так как определения
неявных требований нигде не прописаны, а
значит их наличие чревато разночтениями и
недопониманиями внутри команды, из-за
чего, в будущем разработка может
столкнуться с проблемами.
Функциональные требования описывают, что
должна делать система. Они включают в
себя:
1. Бизнес-требования;
2. Функциональные требования;
3. Пользовательские требования;
4.Системные требования.


Нефункциональные требования описывают,
как именно должна работать система и
почему. Они включают в себя:
1. Бизнес-правила;
2. Правила взаимодействия с внешними
интерфейсами;
3. Метрики качества;
4. Ограничения.

Что делать QA-специалисту,
если требований нет или почти
нет?

В случае если Вам не повезло и требования
на проекте не отвечают необходимым
критериям, а может быть их и вовсе нет, то
нам необходимо вовремя обнаружить
проблему с требованиями и взяться за ее
решение.
Требования можно искать в различных
источниках:
1. Проектная документация;
2. Заказчик и Заинтересованные лица;
3. Сегмент рынка бизнеса, схожие проекты;
4. Эксперты в отрасли;
5. Интернет и СМИ;
6. Законодательство;
7. Логика и здравый смысл;
8. Жизненный и профессиональный опыт;
9. Коллеги и профессиональное комьюнити.

Перейти к требованиям
Всего голосов 7: ↑4 и ↓3+3
Комментарии0

Два потока, одно ядро: как устроена одновременная многопоточность

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

Одновременная многопоточность (Simultaneous multithreading, SMT) — это функция, позволяющая процессору одновременно обрабатывать команды из двух разных потоков. Но задавались ли вы когда-нибудь вопросом, как это работает? Как процессор отслеживает два потока и распределяет ресурсы между ними?

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

Примечание: основная часть изложенного в статье относится к реализации SMT компании Intel, также называемой гипертредингом (hyper-threading). Она основана на научной статье компании, опубликованной в 2002 году.
Читать дальше →
Всего голосов 50: ↑48 и ↓2+71
Комментарии48

Как я создал систему поиска недооцененных американских акций, используя данные Яху Финанс: мой путь к разумному выбору

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

Хочу рассказать о своем опыте поиска ценных бумаг на американском рынке, которые торгуются на NYSE, NASDAQ и AMEX.

Из России покупать акции иностранных компаний в 2024 году сложно, но варианты до сих пор остаются: иностранный брокер, страховая или некоторые российские брокеры, которые не попали под санкции.

Обычно я покупаю индексные фонды, но иногда хочется купить конкретные акции. Акции какой конкретной компании выбрать, ведь на американском рынке на август 2024 года их торгуется 10'522 штуки? Ответ на вопрос сложен и зависит от многих факторов. Правда, часто не хочется тратить много времени на анализ, но и совсем случайную акцию покупать не хочется.

Существует популярный ресурс Яху Финанс, который предоставляет различные данные по акциям, включая фундаментальные данные, а ещё сводные рекомендации аналитиков различных инвестиционных компаний: прогнозируемую цену бумаги и рекомендацию: покупать / продавать / держать. Все эти данные представлены на Яху в структурированном виде. По одной компании может быть дано множество прогнозов, например для Apple Inc. (AAPL) в августе 2024 таких прогнозов было дано 38 от различных инвестиционных компаний.

Мне пришла идея - а почему бы не собрать эти данные по каждой бумаге, отфильтровать по потенциалу роста - проценту между текущей и прогнозируемой по мнению этих аналитиков ценой, а ещё учесть сколько компаний-аналитиков проводило анализ за два последних месяца. Обязательно фильтровать и учитывать текущую дивидендную доходностью. При практических исследованиях оказалось, что не все акции имеют такие данные о прогнозной цене, а только 4'250 из 10'522 бумаг. Оставшиеся 6'272 акции не имеют данных о прогнозируемой цене.

Акции с прогнозными ценами - можно перебирать каждую из 4'250 бумаг и если она отвечает требованиям - включать в выборку. Ну а с выборкой уже работать самому, когда механический отбор произведён.

Ищем варианты инвестиций в💲
Всего голосов 18: ↑15 и ↓3+19
Комментарии25

«Быстрое свидание» с LINQ

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

Краткое описание методов LINQ простым языком, без терминов "проекция", "предикат", "делегат" и проч.

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

Нагрузочное тестирование в разработке веб-приложений

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

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

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

Тест-дизайн в автоматизации тестирования

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

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

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

О чем вам не расскажут производители автомобилей с ДВС

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров20K
В интернете часто можно встретить критические отзывы об электромобилях особенно со стороны тех, кто их в глаза никогда не видел, а просто насмотрелся роликов на ютубе и/или начитался СМИ из тех стран, которые не способны производить не только электромобили, но и сколь-нибудь пригодную для эксплуатации технику вообще.
Читать дальше →
Всего голосов 114: ↑31 и ↓83-47
Комментарии402

Как работает протокол HLS

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

Вот уже несколько недель я разрабатываю серверную поддержку коротких видео для компании Bluesky.

Основное назначение этой фичи – обеспечивать потоковый показ небольших (максимум 90 секунд) видеороликов. Показ должен быть бесплатным и при этом не слишком накладным для нас.

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

Притом, что такая CDN – это полнофункциональный продукт, мы не хотели чрезмерно замыкаться на конкретном производителе и поэтому решили внести в нашу потоковую платформу некоторые улучшения, тем самым расширив спектр предлагаемых на ней услуг и творчески подойти к реализации протоколов потокового видео.

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

На каком языке думают языковые модели

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

Как работает ваш мозг, когда вы говорите на иностранном языке? Сначала переводит внутри на родной или сразу понимает и формулирует фразы на иностранном? Скорее всего, каждый человек ответит на это по-своему, а ответ будет зависеть и от уровня владения языком, и от того, по какой методике вас этому языку учили, и от особенностей мышления и речи вообще. Тем интереснее понять, как с этим обстоят дела у больших языковых моделей. Их обучают преимущественно на английских текстах, но как-то невзначай они вдруг начинают неплохо говорить и на других языках. Да, похуже, чем на английском, но всё-таки вполне достойно. Так что закономерно, что на общей волне интереса к интерпретируемости AI возникает запрос разобраться с этой мультиязычностью моделей. 

Интуитивно (а вообще просто по аналогии с человеком) кажется, что раз модель обучалась на английском, то он должен быть ее “родным” языком. То есть когда мы спрашиваем GPT на русском, он внутри сначала переводит на английский, там же формулирует ответ, а затем переводит обратно на русский. Если это действительно верно, то это означает, что  у модели есть некоторый уклон не только к англоязычной грамматике и лексике, но отсюда и к соответствующим метафорам, логике, поведению. То есть, к менталитету англоязычного мира. А если это неверно? Тогда еще хуже — тогда совершенно непонятно, как модель достигает такого хорошего результата на таком скромном объеме обучающих данных. 

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

Информация

В рейтинге
772-й
Откуда
Саратов, Саратовская обл., Россия
Зарегистрирован
Активность