Pull to refresh
28
0
Send message

Свой кинозал для каждого сегмента сети: уменьшаем медиатрафик в десятки раз с помощью кэширующих серверов

Level of difficultyMedium
Reading time5 min
Views1.9K

Привет, Хабр! Меня зовут Роман Кармалов, в МТС Диджитал я руковожу группой, которая поддерживает инфраструктуру, в том числе работу прокси‑серверов. В компании регулярно проводятся корпоративные онлайн‑трансляции: их смотрит от двух до пятнадцати тысяч человек. Если не предпринять необходимых мер, то это вызовет нагрузку, которая может «уронить» внутреннюю инфраструктуру компании. В нашем случае решением проблемы стали кэширующие прокси‑серверы на базе ПО Squid, сокращающие медиатрафик в десятки раз.

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

Читать далее
Total votes 6: ↑6 and ↓0+9
Comments2

Простой мини-чат на FastApi: Современный интерфейс, вебсокеты и SQLAlchemy с деплоем

Reading time40 min
Views6.7K

Привет, друзья! Сегодня я подготовил для вас увлекательную практическую статью о создании мини-чата на FastApi. Мы погрузимся в мир вебсокетов, узнаем, зачем они нужны и как применяются в реальных приложениях. Также я продемонстрирую работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.

Для создания современного интерфейса мы обратимся к интересному и бесплатному сервису Websim.ai, который за пару минут сгенерирует нам интерфейс, включая страничку для входа/регистрации и страницу самого чата.

Чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения. Для этого воспользуемся сервисом Amvera Cloud. Нам нужно будет подготовить файлы приложения, написать код, создать файл с настройками (можно сгенерировать на сайте или скопировать мой код), а затем доставить файлы на сервис. Для доставки можно использовать встроенный терминал или GIT, используя стандартные команды PUSH/PULL.

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

Читать далее
Total votes 11: ↑11 and ↓0+15
Comments4

Бесплатная open-source альтернатива Google Photos и iCloud Photos

Level of difficultyEasy
Reading time3 min
Views40K

Как-то мы лежали в кровати с нашим малышом и жена сказала, что фотографий и видео с ним стало больше и она не хочет использовать платное приложение. Примерно так начинается рассказ создателя Immich – бесплатного open-source решения для хранения фотографий и видео.

Надо сказать, в последние годы я тоже регулярно пытался найти бесплатную self-hosted альтернативу Google Photos и iCloud, однако до сегодняшнего дня функциональных и вместе с тем простых в настройке решений я не встречал. Тот же Nextcloud всегда казался чересчур громоздким. Immich же, напротив, сразу завоевал моё сердце, и вот, после нескольких недель его использования, с радостью делюсь своим рабочим примером.

Читать далее
Total votes 41: ↑36 and ↓5+42
Comments114

Кодирование с кодеком HEVC простым языком — гайд на FFmpeg. Высокое качество, но низкий вес

Level of difficultyEasy
Reading time11 min
Views13K

Казалось бы, довольно простой вопрос: «Чем сжать видео?». На ум сразу приходят Handbrake, Movavi Converter или ещё что-нибудь пострашнее. Однако когда речь заходит о более гиковском подходе с упором на максимальное качество и экономию места, такие программы сложно назвать инструментами. Равно как и для обратной ситуации, когда картинку нужно сильно сжать и сохранить в целостности большую часть полезной информации. Все эти программы только лишь предоставляют набор наиболее общих конфигов для обычной съёмки и 2D.

В этой статье мы изучим, как при помощи самого большого сборника свободных библиотек FFmpeg научиться кодировать видео самому именно под ваши задачи.
Читать дальше →
Total votes 73: ↑72 and ↓1+97
Comments99

Domain Driven Design в Go – это почти не больно

Reading time13 min
Views23K

Как выглядят паттерны DDD (Domain Driven Design) в большом проекте? А самое главное, стоит ли их вообще использовать? Рассмотрим, какими инструментами можно реализовать DDD на Go и оценим, насколько это больно.

Меня зовут Илья Сергунин, я backend-сочинитель в Авито: занимаюсь тем, что передаю смартфоны в хорошие руки. В этой статье попытаюсь объяснить, как можно натянуть DDD на Go без синтаксического сахара и магии Java-подобных языков, и без больших крутых ORM c Data mapper, которые также отсутствуют в Go.

Читать далее
Total votes 21: ↑20 and ↓1+20
Comments10

Почему не взлетели дискеты 3M?

Level of difficultyEasy
Reading time11 min
Views9.1K

Вообще у электромагнитных дискет удивительно долгая жизнь. Они появились еще в 70-х годах. И несмотря на то, что за последующие 50 лет требования к объему хранимой информации существенно изменились, дискеты продолжали использоваться. Например, только недавно министерство экономики, торговли и промышленности Японии (METI) с гордостью заявило, что отказалось от использования электромагнитных дискет в своем документообороте. Казалось бы, объем информации в 1,44 Мб — как-то маловато для современных нужд. Ан нет.

Сегодня хотим рассказать историю компании 3М. Когда-то она была на пике производства дискет — стоимость ее подразделения оценивалась в 2,3 млрд долларов. Но 28 лет назад 3М внезапно отказалась от этого «пирога» и передала производство в отдельную компанию Imation. Что заставило гиганта уйти со сцены? Давайте посмотрим.

Читать далее
Total votes 20: ↑17 and ↓3+26
Comments6

Чему может научить горилла Коко

Level of difficultyEasy
Reading time21 min
Views9.8K

4 июля 1971 года в зоопарке Сан-Франциско на свет появилась 50-я горилла, которая родилась в неволе. День рождения этой особи совпал с днём независимости США, который американцы отмечают запуском фейерверков. Поэтому обезьяну назвали Ханабико — «дитя фейерверков» по-японски. Мир знает эту удивительную гориллу под именем Коко.

В первый год жизни Коко разлучили с матерью для лечения в больнице зоопарка. Здесь на малыша впервые натолкнулась 24-летняя аспирантка Франсин Паттерсон. Во время лечения Паттерсон научила её американскому жестовому языку. Произошло удивительное, и Коко начала общаться жестами.

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

Читать далее
Total votes 58: ↑51 and ↓7+64
Comments40

Основные принципы хорошего нейминга

Level of difficultyEasy
Reading time5 min
Views6.7K

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

Читать далее
Total votes 38: ↑32 and ↓6+31
Comments17

Как устроен робот-доставщик Яндекса: от восприятия до планирования движения

Reading time15 min
Views12K

Уже пять лет по улицам Москвы колесят роботы‑курьеры Яндекса, доставляя нам еду из любимых ресторанов и магазинов быстрее, чем мы успеваем проголодаться. На пути им встречается много препятствий: от безобидной клумбы, которую можно просто объехать, до восторженных детей (и иногда взрослых), от которых порой не так просто уехать.

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

Привет, меня зовут Тая, и я ML‑разработчик в команде восприятия робота‑доставщика. Сегодня я впервые детально расскажу о технологиях, благодаря которым робот‑доставщик Яндекса успешно доставляет заказы. Разберу ключевые компоненты системы, от сенсоров до алгоритмов принятия решений, и объясню, как они взаимодействуют. Из статьи вы узнаете, что происходит «под капотом» нашего робота во время его путешествий по городу.

Готовы погрузиться в мир автономной доставки?

Поехали!
Total votes 63: ↑60 and ↓3+73
Comments41

Отечественная портативная консоль своими руками

Level of difficultyEasy
Reading time5 min
Views19K

Привет, читатель!

Как-то я отлаживал приложение для телефона на отечественной ОС «Аврора» и вдруг заскучал. Тогда я поставил на него RetroArch и скачал несколько игр. Подключив геймпад, провел за ними пару часов. Позже, листая раздел с играми в чате разработчиков «Авроры», наткнулся на идею подключения джойстиков-чехлов к телефону. Но мне не понравился их внешний вид, поэтому накидал пару концептов мобильной приставки и решил воплотить ее в жизнь.
Читать дальше →
Total votes 77: ↑71 and ↓6+86
Comments28

Мне надоело «казаться». Теперь живу в деревне, зарабатываю 15 000 и счастлив

Level of difficultyEasy
Reading time11 min
Views85K

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

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

Читать далее
Total votes 169: ↑138 and ↓31+137
Comments292

Можно ли доверять GPT-4o конфиденциальные данные?

Level of difficultyMedium
Reading time6 min
Views10K

Разбираемся в политике конфиденциальности Open AI и выясняем, почему эксперты окрестили GPT-4o «турбопылесосом данных».

Читать далее
Total votes 16: ↑15 and ↓1+21
Comments3

Как отличить хорошего врача от посредственного

Reading time8 min
Views19K
image

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

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

Рейтинг и отзывы говорят либо о качестве врача, либо о том, как маркетологи их накручивают.

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

Но если вам надо выбрать врача среди незнакомых, то существует несколько базовых принципов, которые могут помочь разобраться, насколько он востребован.
Читать дальше →
Total votes 78: ↑71 and ↓7+90
Comments89

Как мы полностью обновили VK Мессенджер: переписать нельзя рефакторить

Reading time12 min
Views11K

Случается, ты просыпаешься и осознаешь: так больше продолжаться не может и нужно что‑то менять. Разные кодовые базы, избыточное легаси и нестабильность мешают пользователям получать удовольствие от общения в твоем приложении. И эта мысль подводит тебя к развилке: один путь ведет к сложному и долгому рефакторингу легаси за почти 10 лет, второй к не менее долгому, а, порой, более сложному процессу переписывания с 0. Но какой бы путь ты ни выбрал, в любом случае начинаешь испытывать азарт — предстоит большая Задача (именно с большой буквы).

Привет Хабр, меня зовут Федор Неживой, я ведущий программист‑разработчик в команде VK Мессенджера и сегодня расскажу вам, как мы перестраивали и обновляли один из крупнейших проектов в рунете. В статье будет боль, пот, реальный код и детали, как мы шаг за шагом пришли к масштабному обновлению, а потом внедряли то, что получилось.

Читать далее
Total votes 46: ↑40 and ↓6+41
Comments61

Поездка в Японию в августе 2024 года

Level of difficultyEasy
Reading time25 min
Views8K

Всем привет! Меня зовут Анастасия, я продуктовый дизайнер в Ozon Tech. 

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

Читать далее
Total votes 19: ↑9 and ↓10+4
Comments38

Дизайн-челлендж в 30 дней

Level of difficultyMedium
Reading time3 min
Views1.5K

Всем привет! Меня зовут Настасия, я продуктовый дизайнер в Яндексе и развиваю b2b-продукт Авто.ру. Мысль о челлендже возникла из стремления к самомотивации и вдохновению. В своей работе с макетами в b2b я часто сталкиваюсь с задачами, связанными с UX-решениями. Чтобы разнообразить свою жизнь, я решила поставить перед собой, казалось бы, несложный челлендж — рисовать что-то красивое. Я была мотивирована идеей, но реализацию откладывала достаточно долго, и я решила завести телеграм-канал, куда фиксировала результат.

В качестве темы для вызова я выбрала виджеты. Рядом ставила оригинал и на глаз выполняла работу. Я установила себе правило: каждый день, даже в выходные, рисовать и выкладывать результаты своей работы. Контент я собирала из бесплатных ресурсов; как бы Пинтерест ни ругали, но лучшие и похожие идеи я находила именно там, многое подчеркнула и забрала в работу, найдя там автора. Мой любимый теперь — это yuhang. Приступала к челленджу я сразу после работы: что-то удавалось сделать прямо в офисе после работы, но чаще я бежала домой, чтобы, придя, отдохнуть и за час, набравшись сил, сделать что-то красивое. Так продолжалось 9 дней.

Читать далее
Total votes 5: ↑4 and ↓1+7
Comments5

Основы BDUI для продуктовых дизайнеров. Шпаргалка

Level of difficultyMedium
Reading time24 min
Views2.8K

Большая статья в двух частях о самом важном, что нужно знать и учитывать продуктовому дизайнеру, если проект, над которым он работает, будет реализован на BDUI: 

— в чём его суть и чем он отличается от классического подхода в разработке;
— что такое контракт экрана и контракт компонента, почему они главный источник истины в BDUI подходе, и как с ним работать дизайнеру;
— как дизайнеру читать JSON, разберём ключи и значения.

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

Читать далее
Total votes 29: ↑29 and ↓0+35
Comments2

Пользуемся Docker, не выходя из Go

Level of difficultyMedium
Reading time12 min
Views5.2K

Привет, Хабр!

Зовут меня Егор, я программирую на Go и в этой статье хочу поделиться информацией про Docker и Golang.

Кто такой Докер? Как заявляет сама компания, Докер — № 1 программа по контейнерезации для разработчиков ПО. В этой статье я не буду объяснять, что это, зачем и почему именно он, для этого есть как офиц. документация, так и хорошие статьи на Хабре. Если кратко — то Докер — это инструмент, который позволяет запускать программы в некой песочнице(контейнере) с целевой ОС — как правило линукс. Самое главное преимущество Докера — это упаковывать все нужное для твоей программы(например: зависимости) в один модуль. И ресурсов эта вещь тратит намного меньше, чем та же виртуальная машина.

Зачем нужен Docker SDK? Самая важная причина — тестирование. Можно собирать метрики, делать редирект трафика, автоподъем контейнеров, анализировать логи в реальном времени, создавать образы и еще кучу всего, что упрощает тестирование. Я постараюсь охватить эти пункты в этой статье.

Читать далее
Total votes 9: ↑4 and ↓5+3
Comments11

Обход блокировок с помощью Double…

Reading time9 min
Views52K

В статье будут рассмотрены четыре независимых варианта прохождения трафика транзитом с помощью:

1) Double openVPN

2) openVPN + vtun

3) openVPN + tun2proxy через socks5 прокси

4) GOST + openVPN

Читать далее
Total votes 35: ↑33 and ↓2+44
Comments97

Топ признаков плохого работодателя на собеседовании: личный опыт

Level of difficultyEasy
Reading time7 min
Views74K

Когда я искал работу в Германии, в августе 2023 года и ходил на интервью, были разные случаи поведения работодателя. Иногда я думал «что за дичь сейчас происходит?»

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

Читать далее
Total votes 67: ↑32 and ↓35+4
Comments115
1
23 ...

Information

Rating
Does not participate
Registered
Activity