Как стать автором
Обновить
-7
0

Пользователь

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

Nginx cache: всё новое — хорошо забытое старое

Время на прочтение12 мин
Количество просмотров104K
В жизни каждого проекта настает время, когда сервер перестает отвечать требованиям SLA и буквально начинает захлебываться количеством пришедшего трафика. После чего начинается долгий процесс поиска узких мест, тяжелых запросов, неправильно созданных индексов, не кэшированных данных, либо наоборот, слишком часто обновляемых данных в кэше и других темных сторон проекта.

Но что делать, когда ваш код “идеален”, все тяжелые запросы вынесены в фон, все, что можно, было закэшировано, а сервер все так же не дотягивает до нужных нам показателей SLA? Если есть возможность, то конечно можно докупить новых машин, распределить часть трафика и забыть о проблеме еще на некоторое время.

Но если вас не покидает чувство, что ваш сервер способен на большее, или есть магический параметр, ускоряющий работу сайта в 100 раз, то можно вспомнить о встроенной возможности nginx, позволяющей кэшировать ответы от бэкенда. Давайте разберем по порядку, что это, и как это может помочь увеличить количество обрабатываемых запросов сервером.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии27

[гайд] Как слушать аудиокниги и подкасты пока плаваешь | Обзор водонепроницаемых наушников SHOKZ OpenSwim Pro

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

Три месяца назад я, наконец, разобрался с вопросами:

1. Какие водонепроницаемые наушники выбрать для прослушивания аудио контента в бассейне (или на открытой воде) во время плавания.
2. Как подготовить аудиокнигу для прослушивания на автономном водонепроницаемом MP3 плеере, какие приложения использовать.
3. Как при прослушивании во время плавания избежать шума от пузырей воздуха и плеска воды.

Читать далее
Всего голосов 10: ↑4 и ↓60
Комментарии9

Внутренний стартап или Как и зачем мы запускаем веб-игры

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

В нашей компании есть традиция — создавать маленькие внутренние стартапы, а не только кодить на заказ. Это и отдушина для разработчиков, и шанс попробовать себя в новых нишах. Так в декабре 2023 года в Magnus Tech появился сайд-проект, выросший затем в полноценную небольшую игровую студию Сheesy Cheese, которая уже протестировала десятки гипотез и запустила три успешные веб-игры, в которые сыграли более 200 тыс. человек. 

Меня зовут Никита Аполлонов, я руковожу командой разработки. Сегодня я расскажу, откуда мы берём идеи для наших проектов, как научились работать с российскими игровыми площадками и почему веб-игры Great Again. И для начала — немного о нынешнем положении вещей в отечественном геймдеве.

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

Фармим очки в Microsoft Rewards с помощью Python

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

Не так давно в личку на Хабре мне написал "junior python backand" с предложением поработать над автоматизацией процесса накопления призовых баллов в программе Microsoft Rewards.

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

Круглосуточная трансляции своих видео на YouTube

Время на прочтение11 мин
Количество просмотров81K
Последнее время в качестве хобби снимаю на видео лекции знакомого психолога. Отснятый материал монтирую и публикую на своём сайте. Месяц назад я загорелся идеей организовать круглосуточную трансляцию этих лекций на YouTube в режиме 24/7. Этакий тематический «телеканал», посвященный личностному росту.

Как сделать обычную трансляцию я знаю. А вот как сделать так, чтобы это была трансляция именно видео-файлов? Чтобы она шла 24/7, была гибкой, максимально автономной и при этом никак не зависела от моего домашнего компьютера. Это мне и предстояло выяснить.



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

Если коротко, то итоговое решение получилось следующим: VPS + ffmeg + bash-скрипт. Под катом я описываю проделанные шаги и рассказываю про «подводные камни», которые обнаружились при организации трансляции.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+31
Комментарии20

Как я поменял профессию: из тканевой инженерии в adult-индустрию

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

Если ты DevOps, который работает с adult‑проектами, то твой типичный «взрослый контент» будет выглядеть примерно так.

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

Меня тоже можете принимать в свои ряды людей со странной сменой профессии. Как многие помнят по моим старым постам — я изначально врач, который свернул в направлении фундаментальной науки и тканевой инженерии. Все вот эти развлечения со стволовыми клетками, выращиванием органов в биореакторах и прочими нетиповыми экспериментальными задачами. И вот тут меня внезапно позвали на собеседование в крупный телеком… Короче, очнулся я уже будучи DevOps в компании, которая занимается сложными проектами, некоторые из которых про adult‑видео. Ну вот те самые специальные обучающие фильмы для взрослых, которые двигатель прогресса. С петабайтами отданного трафика, набегами миллионов пользователей и прочими радостями.

Работает у нас это примерно так — у бизнеса наступает момент, когда приходит осознание, что все. Приехали. Инфраструктура работает, вроде бы все в порядке, но построена на костылях, которые заботливо укладывали три поколения сотрудников назад. Документации нет, как все это работает — никто не помнит. Если сервер сдохнет, воскресить в случае чего никто не сможет.

И вот где‑то в этот момент обычно появляемся мы с командой WiseOps и начинаем перебирать по винтику все археологические слои кода, архитектуры и бизнес‑логики. У нас уже есть несколько десятков клиентов и три из них про видеоконтент.

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

Читать далее
Всего голосов 168: ↑159 и ↓9+197
Комментарии164

EBU R128/BS.1770-3: Пакетная нормализация громкости аудио/видео файлов

Время на прочтение2 мин
Количество просмотров17K
Всем привет!
Решил поделиться опытом автоматизации контроля громкости вещания своего СМИ. Думаю, у всех профильных технарей давно болит голова, точно продолжает болеть. Введенная Минкомсвязи рекомендация в области нормирования громкости звуковых сигналов вызвала волны возмущения.
Не было предоставлено ни средств контроля, ни средств производства. Крутитесь как хотите.
Впрочем, уже давно, задолго до того знакового события существуют различные плагины к монтажным программам.
Но как быть если уже накоплена огроменная медиабаза?
image
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии11

Легкий сокращатель ссылок на JavaScript, Cloudflare Workers и c Telegram Bot'ом

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

Что делать если нужно быстро создать короткую ссылку? Конечно – использовать сокращатель ссылок. А что если при этом еще и сделать эту ссылку читаемой? Как при этом использовать свой личный домен? А лучше было бы делать это без дополнительных серверов.. Похоже что ответ есть.

Узнать
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

KB2 — Или успеть на все платформы

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

King’s Bounty II, на первый взгляд визуально простая игра, но в ней сосредоточено огромное множество сложных и комплексных технических решений, продиктованных одновременным выходом на все платформы. Отдельным, и, пожалуй, самым сложным  испытанием для команды стало портирование на Nintendo Switch.

Осторожно, Лонгрид!
Рекомендую заготовить чай с печеньками.
Много интересной информации про очень разные технические аспекты разработки.

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

Как биткоин кошелек с мультиподписью Copay подвергла своих пользователей угрозе

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

Угроза для пользователей возникла из-за использование типа подписи Биткоина SIGHASH_SINGLE( 0x03)

SIGHASH_SINGLE( 0x03) – это тип подписи подписывает все входы и ровно один соответствующий выход транзакции монет Биткоина. Соответствующий вывод имеет тот же индекс, что и ваша подпись (т. е. если ваш ввод находится на vin 0, то вывод, который вы хотите подписать, должен иметь vout 0). По сути, это говорит: «Я согласен участвовать в этой передаче со всеми этими входами, пока это количество идет на этот один адрес».

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

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

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

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

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

Клуб анонимных PHP'ешников

Время на прочтение1 мин
Количество просмотров29K
Здравствуйте. Меня зовут Вячеслав, мне 22 года и я пхп программист. Я сижу на пхп с 18 лет.
Читать дальше →
Всего голосов 497: ↑378 и ↓119+259
Комментарии197

Есть ли жизнь на Go после C#?

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

Всем привет! На связи Пётр, Go-разработчик в команде Ozon, которая занимается управлением товарами торговой площадки. Всё, что загружают продавцы, обрабатывается нашими сервисами. Девять месяцев назад я сменил основной язык программирования с C# на новый для меня Go. В статье будут впечатления от Go, расскажу о некоторых различиях между языками, а в конце поделюсь своим опытом поиска работы на новом языке. Ведь вопрос смены стека технологий рано или поздно встаёт перед каждым разработчиком.

Читать далее
Всего голосов 50: ↑40 и ↓10+35
Комментарии50

Средние highload паттерны на Go

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

Привет, Хабр! Меня зовут Агаджанян Давид и ранее я опубликовал статью «простые highload паттерны на Go», в которой были рассмотрены простые подходы увеличения пропускной способности отдельно взятого экземпляра приложения без хардкора. Мне импонируют простые подходы, так как over engineering подходы требуются в исключительных проектах, и то чаще всего только в отдельно взятых подсистемах, в остальном можно воспользоваться давно известными лучшими практиками.

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

Простые highload паттерны на Go

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

Привет, Хабр! Меня зовут Агаджанян Давид, хочу поделиться некоторыми инженерами рекомендациями, которые часто на моем опыте помогали держать highload нагрузку не прибегая к хардкору. Примеры будут на Go. Эти подходы довольно хорошо известны, но как мне кажется они недооценены и многие этими подходами пренебрегают. Если вы впервые видите их, то рекомендую хотя бы попробовать реализовать в своих проектах и провести бенчмарки, возможно вы будете приятно удивлены..

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

Госайтишники никак не могут запилить реестр повесток, а россияне начали платить налог 43% с дивидендов из США

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

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

Читать далее
Всего голосов 46: ↑34 и ↓12+34
Комментарии94

Создание минимального Docker-контейнера для Go-приложений

Время на прочтение4 мин
Количество просмотров49K
Привет, Хабр! Предлагаю вашему вниманию перевод статьи основателя сервиса Meetspaceapp Nick Gauthier «Building Minimal Docker Containers for Go Applications».

Время чтения: 6 минут

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

Часть 1: Наше «приложение»


Для тестирования нам потребуется какое-нибудь маленькое приложение. Давайте будем фетчить google.com и выводить размер HTML.

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "os"
)

func main() {
    resp, err := http.Get("https://google.com")
    check(err)
    body, err := ioutil.ReadAll(resp.Body)
    check(err)
    fmt.Println(len(body))
}

func check(err error) {
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
}

Если мы запустимся, то получим только какое-то число. У меня вышло около 17К. Я целенаправленно решил использовать SSL, но причину объясню позднее.
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии10

Как мы сделали свое Heroku-подобное облако

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

Возможно, у вас была (или есть) потребность развернуть свой IT-проект, будь то простой бот, сайт, приложение или сложный высоконагруженный сервис. И, возможно, вы пользовались для этого AWS, MS Azure или другими провайдерами публичных облаков. 

Тогда вы знаете, что для использования таких облачных решений нужно иметь весьма «глубокие карманы». Так, чтобы развернуть обычный сервис распознавания речи на 20 потоков вы заплатите Яндексу за виртуальные машины и за СУБД 43500 руб. в месяц (расчет на основе нашего ASR). И это еще достаточно простой, пусть и требовательный к CPU сервис.  Кажется, облачные услуги должны быть более доступны с финансовой точки зрения. 

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

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

Dokku: самый маленький PaaS

Время на прочтение1 мин
Количество просмотров34K
Dokku — это мини-Heroku, сделанный на базе Docker и состоящий из менее чем 100 строк на Bash.

После установки Вы сможете публиковать свои приложения простым git push. Каждое приложение будет запущено в изолированном контейнере. В конечном итоге у Вас будет своя Heroku-подобная платформа.
Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии6

С новым годом: GPT в 500 строках на SQL

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

В минувшем году все только и говорили об ИИ и о том, как он может всё за вас сделать.

Мне нравится, когда кто-то или что-то работает за меня. Поэтому решил: попрошу-ка ChatGPT написать за меня новогодний пост:

«Эй, ChatGPT. А ты можешь реализовать большую языковую модель на SQL?»
«Нет, SQL не подходит для реализации больших языковых моделей. Язык SQL предназначен для выполнения запросов к данным, хранящимся в РСУБД и для управления этими запросами. Для реализации большой языковой модели требуются сложные алгоритмы, обширные датасеты, а зачастую — и фреймворки для глубокого обучения. SQL всеми этими возможностями не обладает.»

Что ж, лишний раз убеждаешься, что, если хочешь что‑то сделать хорошо – сделай это сам.

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

Читать далее
Всего голосов 179: ↑175 и ↓4+205
Комментарии21
1
23 ...

Информация

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