Как стать автором
Обновить
1
0
Kirill Plotnikov @pltnk

Senior Software Engineer / Team Lead

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

Как стать профессиональным IT-коллекционером? Часть 5. Как мы базу знаний строили

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

Продолжаю свою историю о службе поддержки в GlowByte. (“Начало”, “Врываемся в DevOps”, “Ищем баги”, “Упрощаем работу в поддержке и познаем код”). Не раз я упоминала базу знаний. Пришло время рассказать, как она зародилась и чем стала сейчас. База знаний – это отдельный большой вопрос. С первых дней в GlowByte я оказалась в огромном потоке информации и боялась все забыть. А еще мне казалось странным, что коллеги передают знания из уст в уста и каждый новичок тратит большое количество времени на то, чтобы что-то узнать. Так что люди, у которых есть проблемы с коммуникацией или обучением (когда “в рот не вкладывают”), рисковали навсегда остаться на галерах. Передача знаний в моих глазах выглядела первобытной, и я подумала, что раз у других нет базы знаний, она будет у меня.

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

Создаем веб-сайт, будто на дворе 1999 год

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

Задумывались ли вы когда-нибудь о том, как жилось веб-разработчикам 20+ лет назад, когда всемирная паутина была явлением совершенно новым, а чтобы войти в неё, приходилось некоторое время слушать специфические звуковые сигналы, JavaScript и CSS воспринимались скорее как диковинка, а не как привычные средства разработки веб-сайтов, а самым популярным браузером был Internet Explorer? Что ж, вероятнее всего, нет... Но, если у вас найдется несколько свободных минут и вы захотите разобраться в очередной бесполезной штуке — эта статья вас не разочарует!

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

Делаем донаты для telegram бота, через интеграцию ЮKassa для самозанятых

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

В статье-инструкции расскажу, как начал монетизировать telegram бота, который присылает уведомления о необходимости продлить домен, тем самым делает напоминание, чтобы пользователь продлил домен во время и не потерял его. За 2 часа, добавил кнопку доната и настроил интеграцию с ЮKassa. Через 1 день уже начал принимать донаты.

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

Фигуры Matplotlib и стиль Cyberpunk: несколько строк кода — и готова красивая фигура

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


Когда мы создаем инфографику или постеры с данными, мы хотим привлечь внимание читателя: для этого изображение должно быть эстетически привлекательным и при этом убедительно доносить нашу мысль. Есть множество графических библиотек для создания графиков с помощью Python. Одна из них — это хорошо известная Matplotlib. Но графики, построенные ее стандартными средствами, часто выглядят скучными, и, чтобы оживить их, нужно потратить много времени.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии1

YandexGPT в Браузере: как мы учили модель суммаризировать статьи

Время на прочтение7 мин
Количество просмотров30K
Неделю назад на сайте 300.ya.ru мы продемонстрировали возможности языковой модели YandexGPT применительно к задаче суммаризации текстов. С тех пор многое изменилось: мы обучили новую, более качественную модель, в пересказах которой в 4 раза меньше ошибок. А сегодня мы внедрили её в Яндекс Браузер. Может показаться, что мы просто взяли ту же модель, о которой уже рассказывали сообществу на примере Алисы, и прикрутили к ней кнопку в Браузере. Но не всё так просто. Да, наша базовая модель уже понимала, что такое суммаризация в общих чертах. Но для нас было важно добиться результата в нужной нам форме и с предсказуемым качеством. И вот тут-то начинаются нюансы.

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



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

Зачем и как хранить объекты на примере MinIO

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

Наша биг дата проанализировала Telegram-чаты, форумы и разговоры в кулуарах IT-мероприятий и пометила объектные хранилища как инструмент, который ещё не все осмеливаются использовать в своих проектах. Хочу поделиться с вами своим опытом в формате статьи-воркшопа. Если вы пока не знакомы с этой технологией и паттернами её применения, надеюсь, эта статья поможет вам начать использовать её в своих проектах. 

Начать хранить файлы
Всего голосов 18: ↑16 и ↓2+24
Комментарии8

Как искать товар на всех маркетплейсах сразу?

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

Решил ты обновить себе смартфон или корм докупить для собаки/кошки или подгузники ребенку, достаешь телефон и поехали: ищешь на Ozon, потом открываешь приложение WildBerries, потом в Яндекс Маркете, затем в СберМегаМаркете, потом еще на паре сайтов, потом уже забыл где нужный товар был дешевле и пошел снова по кругу, купил, а потом выяснилось, что именно сегодня нужный смартфон был дешевле в DNS, а подгузники по акции в Детском Мире, но ты забыл там посмотреть.

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

Читать далее
Всего голосов 37: ↑32 и ↓5+33
Комментарии220

Подписываем Android-приложение внутренним ключом Google Play для публикации в сторонних магазинах (RuStore, Huawei..?)

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

В процессе публикации своего приложения в RuStore, я столкнулся с проблемой обновления сборки, первоначально-установленной из Google Play. Дело в том, что несколько лет назад, когда я размещал приложение в Google Play, я доверил управление ключами подписи Google App Signing. Это значит, что мой локальный ключ используется в качестве "загрузочного", а пользователи на устройства получают уже сборки, подписанные внутренним ключом Google. Прямого доступа к этому ключу нет, и, соответственно, я не могу подписать им сборку для RuStore для бесшовного обновления приложения.

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

Определение свободного парковочного места с помощью Computer Vision

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

Всем привет! Это моя первая статья на Хабр (поэтому не судите строго).

Дело было так: смотрел я как-то в окно и увидел, как человек сидит в машине на парковке и ждет, когда освободится парковочное место. Бывает, что и я сижу в машине и жду, когда же можно будет припарковать своего верного коня. И тут я подумал, а почему бы не подключить Компьютерное Зрение для этого? Зачем я учился разработке нейросетей, если не могу заставить компьютер работать вместо меня?

Изначально идея заключалась в следующем: Модель на базе компьютерного зрения должна через веб-камеру, установленную дома, отслеживать освободившиеся места на парковке и информировать через telegram-бота если такое место появится. Работать будем на Python.

Итак, ТЗ для меня от меня сформулировано, теперь за дело!

Первое с чем необходимо было определиться, это решить, какую модель детектирования объектов использовать. Сначала мой выбор пал на Fast R-СNN. Модель показывала хорошее качество детектирования. Однако после нескольких дней прокрастинации обдумывания реализации я решил воспользоваться более современными и интересными методами и подключить детектор от YOLO (взял не самую новую 4 версию).

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

Как сделать Криптоскам! Пошаговая инструкция. Шаг первый: Смешать кислоту и глицерин…

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

Искали работу в интернете? Находились в поиске идеального метода заработка? Перечитали тысячи материалов? Получили специальность data-scientist после курсов по рекламе с youtube? Сомневаетесь между вебкамом, и трейдингом? Хватит это терпеть! Создай свой криптоскам, и уедь наконец-то. Если повезет — на Канары. Если не повезет, то в места поближе.

Создать криптовалюту!
Всего голосов 44: ↑42 и ↓2+54
Комментарии26

Как задеплоить своего телеграм-бота (почти) бесплатно — Quickguide в облачный Serverless

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

Всем привет! Меня зовут Антон Брехов. Я инженер в Yandex Cloud. Сегодня хочу рассказать о том, как дешевле всего задеплоить своего телеграм-бота. Возможно, этот опыт пригодится и для других решений.

Готовых фреймворков для телеграм-ботов уже достаточно много на любых языках. Однако после написания кода встает вопрос: а как теперь заставить бота работать постоянно, сделать доступным 24/7?

Новички оставляют персональный компьютер работающим и опрашивают сервер телеграма с некоторой частотой. У опытных, скорее всего, есть свой VPS-сервер с reverse proxy для деплоя приложений. Первое решение не является высокодоступным, а отдельный сервер, даже в облаке, — это слишком дорого для деплоя одного бота. В статье расскажу об альтернативном решении.

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

MacOS Monterey на Linux — быстро и просто?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров48K
Что делать, если у вас возникло желание или необходимость заняться разработкой под MacOS или iOS, но под рукой нет макбука, а покупать его только чтобы открыть Xcode кажется делом сомнительным? Недавно я столкнулся с такой проблемой в одном из своих пет-проектов и решил ее достаточно просто и быстро. После выполнения нескольких достаточно примитивных шагов, мне удалось запустить MacOS Monterey как на скриншоте ниже.

image

Никакого Virtualbox, никакого Virtual Machine Manager. Из требований — только 100 Гб свободного места на диске и хотя бы 16 Гб оперативной памяти. В рунете я встречал описание похожих путей установки, вроде Docker-OSX или Sosumi. Но я бы хотел поделиться способом, который позволяет использовать актуальную версию MacOS (Sosumi — сразу минус) и не потратить уйму свободного времени на возню с конфигами и терминалом. Поехали.
Читать дальше →
Всего голосов 68: ↑64 и ↓4+75
Комментарии67

[По полочкам] Кэширование

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

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

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

Дайте крудошлепа

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

Я устроился в небольшую компанию, которая сделал круд‑приложуху на 20 таблиц типа «заметки» и активно ее продавала госорганам за невменяемый бабос.

У нас был 3(три) Т‑Р-И статуса юзера. Anonym → Logined → Phone_Confirmed. Молодой талант до меня увидел в этом граф, и написал класс на 200+ строк, реализующий алгоритм Флойда‑Уоршелла, прикрутил стейт‑машину и не найдя интересных задач, c блеском прошел собес в Яндекс и свалил.

Меня наняли сеньором, и я каюсь ничерта не понял, алгоритм прекрасно работал на первой ступени, на второй давал сбои, тоскливо погуглил этот алгоритм, стер все к черту и написал: if(status==Logined & phone!=null){status=Phone_Confirmed}.

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

Это было вступление.

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

Потому что, только я могу решить задачку, которую вы уже 10 лет решить не можете, когда прилетает пуш‑уведомление или смс и в твоем всплывающем окне написано:

«Ваш шестизначный пароль доступа в наше приложение: 123...»

Не согласен! ...
Всего голосов 395: ↑332 и ↓63+339
Комментарии731

Откуда Карты знают, когда приедет автобус

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

Раздел «Транспорт» — один из самых популярных в Яндекс Картах: там автобусы, троллейбусы и трамваи перемещаются прямо по карте в реальном времени, а для каждой остановки есть виртуальное табло. Можно посмотреть, сколько ещё ждать транспорт, или понять, когда лучше выходить из дома, чтобы его не пропустить. А если оказались в незнакомом районе — узнать, как быстрее добраться домой, и сразу найти ближайшую остановку или станцию метро.

Меня зовут Антон Овчинкин, я руководитель группы разработки пешеходной и транспортной навигации. Сегодня я расскажу, что у «Транспорта» под капотом, какие алгоритмы отвечают за то, чтобы автобусы появлялись на карте, двигались по ней плавно и реалистично, а прогноз был максимально точным.

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

Полезен ли сегодня быстрый обратный квадратный корень из Quake III?

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

В 2005 году id Software опубликовала под лицензией GPL-2 исходный код своей игры 1999 года Quake III Arena. В файле code/game/q_math.c есть функция для вычисления обратного квадратного корня числа, которая на первый взгляд выглядит очень любопытным алгоритмом:

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // зловещий хакинг чисел с плавающей запятой на уровне битов
    i  = 0x5f3759df - ( i >> 1 );               // какого чёрта?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // первая итерация
//  y  = y * ( threehalfs - ( x2 * y * y ) );   // вторая итерация, можно удалить

    return y;
}

Об этом алгоритме написано множество статей, и ему посвящена хорошая страница Википедии, где он назван fast inverse square root (быстрым обратным квадратным корнем). На самом деле, этот алгоритм упоминался на различных форумах ещё до публикации исходного кода Q3. Ryszard из Beyond3D провёл в 2004-2005 годах исследование и в конечном итоге выяснил, что первоначальным автором алгоритма был Грег Уолш из Ardent Computer, который создал его десятью годами ранее.
Читать дальше →
Всего голосов 148: ↑146 и ↓2+191
Комментарии52

Заблуждения Clean Architecture

Время на прочтение15 мин
Количество просмотров429K
Превращаем круги в блоки

­­ 


На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии203

Интегрируем Яндекс Музыку в Visual Studio Code

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

Представьте, что вы можете слушать свои любимые песни на Яндекс.Музыке, прямо из своего любимого редактора кода, не переключаясь между приложениями. Это уже не мечта, а реальность! В этой статье мы рассмотрим, как интегрировать Яндекс.Музыку в Visual Studio Code и наслаждаться любимой музыкой прямо во время работы.

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

Гасить ипотеку досрочно или инвестировать? Разбираемся, как не оказаться без денег и без квартиры

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

Кто‑то говорит, что ипотека — это жуткая переплата банку, и ее нужно закрывать всеми силами как можно скорее. А кто‑то, наоборот — что это дешевый кредит, который лучше не гасить, а направить эти деньги на инвестиции (в STONKS). В этой статье мы попробуем понять, каким образом лучше подходить к гашению ипотеки, и что там может пойти не так.

Читать далее
Всего голосов 86: ↑73 и ↓13+77
Комментарии222

Как загадочный разработчик снизил затраты на AWS на 90%, а потом исчез

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

Недавно я завершил аудит своего SaaS-клиента. Его история достойна рассказа. Это история о жадности, лжи и красоте хакинга.

Это история о том, как благодаря мой клиент снизил свои ежемесячные траты на AWS на 90 тысяч долларов благодаря таинственному разработчику, который исчез, как только работа была сделана.

Когда спустя полгода затраты на AWS снова взлетели примерно до 120 тысяч в месяц, этот клиент попросил меня разобраться, что же произошло на самом деле.

И разгадка оказалась совершенно сумасшедшей!
Читать дальше →
Всего голосов 110: ↑103 и ↓7+127
Комментарии127

Информация

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

Специализация

Backend Developer, ML Engineer
Senior