Продолжаю свою историю о службе поддержки в GlowByte. (“Начало”, “Врываемся в DevOps”, “Ищем баги”, “Упрощаем работу в поддержке и познаем код”). Не раз я упоминала базу знаний. Пришло время рассказать, как она зародилась и чем стала сейчас. База знаний – это отдельный большой вопрос. С первых дней в GlowByte я оказалась в огромном потоке информации и боялась все забыть. А еще мне казалось странным, что коллеги передают знания из уст в уста и каждый новичок тратит большое количество времени на то, чтобы что-то узнать. Так что люди, у которых есть проблемы с коммуникацией или обучением (когда “в рот не вкладывают”), рисковали навсегда остаться на галерах. Передача знаний в моих глазах выглядела первобытной, и я подумала, что раз у других нет базы знаний, она будет у меня.
Senior Software Engineer / Team Lead
Создаем веб-сайт, будто на дворе 1999 год
Задумывались ли вы когда-нибудь о том, как жилось веб-разработчикам 20+ лет назад, когда всемирная паутина была явлением совершенно новым, а чтобы войти в неё, приходилось некоторое время слушать специфические звуковые сигналы, JavaScript и CSS воспринимались скорее как диковинка, а не как привычные средства разработки веб-сайтов, а самым популярным браузером был Internet Explorer? Что ж, вероятнее всего, нет... Но, если у вас найдется несколько свободных минут и вы захотите разобраться в очередной бесполезной штуке — эта статья вас не разочарует!
Делаем донаты для telegram бота, через интеграцию ЮKassa для самозанятых
В статье-инструкции расскажу, как начал монетизировать telegram бота, который присылает уведомления о необходимости продлить домен, тем самым делает напоминание, чтобы пользователь продлил домен во время и не потерял его. За 2 часа, добавил кнопку доната и настроил интеграцию с ЮKassa. Через 1 день уже начал принимать донаты.
Фигуры Matplotlib и стиль Cyberpunk: несколько строк кода — и готова красивая фигура
Когда мы создаем инфографику или постеры с данными, мы хотим привлечь внимание читателя: для этого изображение должно быть эстетически привлекательным и при этом убедительно доносить нашу мысль. Есть множество графических библиотек для создания графиков с помощью Python. Одна из них — это хорошо известная Matplotlib. Но графики, построенные ее стандартными средствами, часто выглядят скучными, и, чтобы оживить их, нужно потратить много времени.
YandexGPT в Браузере: как мы учили модель суммаризировать статьи
Сегодня поделюсь с Хабром не столько новостью, сколько нашим опытом и советами из области дообучения моделей и промпт-инжиниринга. Расскажу, через что пришлось пройти нашей команде, чтобы модель начала делать то, что от неё ожидают.
Зачем и как хранить объекты на примере MinIO
Наша биг дата проанализировала Telegram-чаты, форумы и разговоры в кулуарах IT-мероприятий и пометила объектные хранилища как инструмент, который ещё не все осмеливаются использовать в своих проектах. Хочу поделиться с вами своим опытом в формате статьи-воркшопа. Если вы пока не знакомы с этой технологией и паттернами её применения, надеюсь, эта статья поможет вам начать использовать её в своих проектах.
Как искать товар на всех маркетплейсах сразу?
Решил ты обновить себе смартфон или корм докупить для собаки/кошки или подгузники ребенку, достаешь телефон и поехали: ищешь на Ozon, потом открываешь приложение WildBerries, потом в Яндекс Маркете, затем в СберМегаМаркете, потом еще на паре сайтов, потом уже забыл где нужный товар был дешевле и пошел снова по кругу, купил, а потом выяснилось, что именно сегодня нужный смартфон был дешевле в DNS, а подгузники по акции в Детском Мире, но ты забыл там посмотреть.
Знакомая ситуация? Площадок много и каждый раз нужный товар может быть дешевле совсем не на той, где он был дешевле вчера. А искать на всех отнимает много времени и порядком надоедает.
Подписываем Android-приложение внутренним ключом Google Play для публикации в сторонних магазинах (RuStore, Huawei..?)
В процессе публикации своего приложения в RuStore, я столкнулся с проблемой обновления сборки, первоначально-установленной из Google Play. Дело в том, что несколько лет назад, когда я размещал приложение в Google Play, я доверил управление ключами подписи Google App Signing. Это значит, что мой локальный ключ используется в качестве "загрузочного", а пользователи на устройства получают уже сборки, подписанные внутренним ключом Google. Прямого доступа к этому ключу нет, и, соответственно, я не могу подписать им сборку для RuStore для бесшовного обновления приложения.
Определение свободного парковочного места с помощью Computer Vision
Всем привет! Это моя первая статья на Хабр (поэтому не судите строго).
Дело было так: смотрел я как-то в окно и увидел, как человек сидит в машине на парковке и ждет, когда освободится парковочное место. Бывает, что и я сижу в машине и жду, когда же можно будет припарковать своего верного коня. И тут я подумал, а почему бы не подключить Компьютерное Зрение для этого? Зачем я учился разработке нейросетей, если не могу заставить компьютер работать вместо меня?
Изначально идея заключалась в следующем: Модель на базе компьютерного зрения должна через веб-камеру, установленную дома, отслеживать освободившиеся места на парковке и информировать через telegram-бота если такое место появится. Работать будем на Python.
Итак, ТЗ для меня от меня сформулировано, теперь за дело!
Первое с чем необходимо было определиться, это решить, какую модель детектирования объектов использовать. Сначала мой выбор пал на Fast R-СNN. Модель показывала хорошее качество детектирования. Однако после нескольких дней прокрастинации обдумывания реализации я решил воспользоваться более современными и интересными методами и подключить детектор от YOLO (взял не самую новую 4 версию).
Как сделать Криптоскам! Пошаговая инструкция. Шаг первый: Смешать кислоту и глицерин…
Искали работу в интернете? Находились в поиске идеального метода заработка? Перечитали тысячи материалов? Получили специальность data-scientist после курсов по рекламе с youtube? Сомневаетесь между вебкамом, и трейдингом? Хватит это терпеть! Создай свой криптоскам, и уедь наконец-то. Если повезет — на Канары. Если не повезет, то в места поближе.
Как задеплоить своего телеграм-бота (почти) бесплатно — Quickguide в облачный Serverless
Всем привет! Меня зовут Антон Брехов. Я инженер в Yandex Cloud. Сегодня хочу рассказать о том, как дешевле всего задеплоить своего телеграм-бота. Возможно, этот опыт пригодится и для других решений.
Готовых фреймворков для телеграм-ботов уже достаточно много на любых языках. Однако после написания кода встает вопрос: а как теперь заставить бота работать постоянно, сделать доступным 24/7?
Новички оставляют персональный компьютер работающим и опрашивают сервер телеграма с некоторой частотой. У опытных, скорее всего, есть свой VPS-сервер с reverse proxy для деплоя приложений. Первое решение не является высокодоступным, а отдельный сервер, даже в облаке, — это слишком дорого для деплоя одного бота. В статье расскажу об альтернативном решении.
MacOS Monterey на Linux — быстро и просто?
Никакого Virtualbox, никакого Virtual Machine Manager. Из требований — только 100 Гб свободного места на диске и хотя бы 16 Гб оперативной памяти. В рунете я встречал описание похожих путей установки, вроде Docker-OSX или Sosumi. Но я бы хотел поделиться способом, который позволяет использовать актуальную версию MacOS (Sosumi — сразу минус) и не потратить уйму свободного времени на возню с конфигами и терминалом. Поехали.
[По полочкам] Кэширование
Всем привет! Меня зовут Илья Денисов, я занимаюсь backend разработкой уже более пяти лет и сейчас пишу на языке go. Сегодня я предлагаю вам поговорить о кэшировании. Постараюсь рассказать о базовых концепциях, а также затронуть ряд особенностей, неочевидных на первый взгляд.
Дайте крудошлепа
Я устроился в небольшую компанию, которая сделал круд‑приложуху на 20 таблиц типа «заметки» и активно ее продавала госорганам за невменяемый бабос.
У нас был 3(три) Т‑Р-И статуса юзера. Anonym → Logined → Phone_Confirmed. Молодой талант до меня увидел в этом граф, и написал класс на 200+ строк, реализующий алгоритм Флойда‑Уоршелла, прикрутил стейт‑машину и не найдя интересных задач, c блеском прошел собес в Яндекс и свалил.
Меня наняли сеньором, и я каюсь ничерта не понял, алгоритм прекрасно работал на первой ступени, на второй давал сбои, тоскливо погуглил этот алгоритм, стер все к черту и написал: if(status==Logined & phone!=null){status=Phone_Confirmed}.
Один коллега посмотрел на меня с немой благодарностью, а начальник офигел и сказал, что код нерасширяем и захардкожен, а тот алгоритм мог пройти за время логN через тысячу вершин и по истечению испытательного урока меня уволили нах, так как мой технический уровень не соответствовал их высоким требованиям, впрочем выдали три зарплаты и я благодарен этим людям. Мой код оставили, тот так и не смогли починить.
Это было вступление.
Уважаемый Яндекс, Сбер и прочая! Я умею быстро решать задачи и кратно увеличивать выхлоп простыми решениями. Я самый умный программист, среди всех ваших работников! Я — НадНадсеньор! Сейчас докажу.
Потому что, только я могу решить задачку, которую вы уже 10 лет решить не можете, когда прилетает пуш‑уведомление или смс и в твоем всплывающем окне написано:
«Ваш шестизначный пароль доступа в наше приложение: 123...»
Откуда Карты знают, когда приедет автобус
Раздел «Транспорт» — один из самых популярных в Яндекс Картах: там автобусы, троллейбусы и трамваи перемещаются прямо по карте в реальном времени, а для каждой остановки есть виртуальное табло. Можно посмотреть, сколько ещё ждать транспорт, или понять, когда лучше выходить из дома, чтобы его не пропустить. А если оказались в незнакомом районе — узнать, как быстрее добраться домой, и сразу найти ближайшую остановку или станцию метро.
Меня зовут Антон Овчинкин, я руководитель группы разработки пешеходной и транспортной навигации. Сегодня я расскажу, что у «Транспорта» под капотом, какие алгоритмы отвечают за то, чтобы автобусы появлялись на карте, двигались по ней плавно и реалистично, а прогноз был максимально точным.
Полезен ли сегодня быстрый обратный квадратный корень из Quake III?
В 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, который создал его десятью годами ранее.
Заблуждения Clean Architecture
На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.
Интегрируем Яндекс Музыку в Visual Studio Code
Представьте, что вы можете слушать свои любимые песни на Яндекс.Музыке, прямо из своего любимого редактора кода, не переключаясь между приложениями. Это уже не мечта, а реальность! В этой статье мы рассмотрим, как интегрировать Яндекс.Музыку в Visual Studio Code и наслаждаться любимой музыкой прямо во время работы.
Гасить ипотеку досрочно или инвестировать? Разбираемся, как не оказаться без денег и без квартиры
Кто‑то говорит, что ипотека — это жуткая переплата банку, и ее нужно закрывать всеми силами как можно скорее. А кто‑то, наоборот — что это дешевый кредит, который лучше не гасить, а направить эти деньги на инвестиции (в STONKS). В этой статье мы попробуем понять, каким образом лучше подходить к гашению ипотеки, и что там может пойти не так.
Как загадочный разработчик снизил затраты на AWS на 90%, а потом исчез
Недавно я завершил аудит своего SaaS-клиента. Его история достойна рассказа. Это история о жадности, лжи и красоте хакинга.
Это история о том, как благодаря мой клиент снизил свои ежемесячные траты на AWS на 90 тысяч долларов благодаря таинственному разработчику, который исчез, как только работа была сделана.
Когда спустя полгода затраты на AWS снова взлетели примерно до 120 тысяч в месяц, этот клиент попросил меня разобраться, что же произошло на самом деле.
И разгадка оказалась совершенно сумасшедшей!