Обновить
3
0.9

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

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

Хватит кормить облака: переезд пет-проектов на старый ThinkPad с разбитым экраном

Время на прочтение4 мин
Охват и читатели7.2K

Два года я исправно заносил деньги хостерам. Сначала это были копейки за пару vps, потом захотелось управляемую базу данных, потом s3 для бекапов, и вот я уже смотрю на счет в 40 долларов ежемесячно за проекты, которыми пользуюсь я и полтора моих друга.

В какой-то момент жаба победила. Я посмотрел на полку, где пылился списанный корпоративный ноутбук с мертвой батареей, и решил: пора.

Если вы думаете, что это история про успешный успех и экономию - вы ошибаетесь. Это история про боль, перегрев и Docker на bare metal, но я ни о чем не жалею.

Вводные данные были так себе.

Ноутбук 2015 года. Core i5, 8 ГБ памяти, ssd на 256. Экран разбит, клавиатура залита кофе еще прошлым владельцем.

Главный плюс ноутбука в качестве домашнего сервера - встроенный ups. Батарея держала минут 15, но этого хватало, чтобы пережить мигание света в подъезде и корректно погасить базу, если электричество отрубили надолго.

Я накатил туда ubuntu server, кинул ноутбук под шкаф в прихожей и подключил витую пару. Сразу совет: не используйте wifi для сервера, даже если роутер стоит в метре. Пакеты будут теряться, а вы будете терять нервы при дебаге, почему ssh отваливается каждые полчаса.

Читать далее

PostgreSQL Antipatterns: отказ от агрегатных функций = кратное ускорение

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

Иногда в архиве нашего сервиса анализа планов запросов к PostgreSQL встречаются примеры не очень эффективных, мягко говоря, запросов.

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

Читать далее

Теория графов для программистов

Время на прочтение5 мин
Охват и читатели15K

Краткое введение в графы: их устройство, основные типы и способы хранения в программе. Всё изложено просто и по делу — для тех, кто хочет быстро разобраться в теме.

Погрузиться в мир графов

5 способов убить производительность в асинхронном Rust

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели9.9K

Привет, Хабр! В предыдущих статьях — «Rust без прикрас: где мы ошибаемся» и «Rust без прикрас: где мы продолжаем ошибаться» мы обсудили всякие неприятные грабли: бездумное использование unwrap(), игнорирование ошибок через let _ =, чрезмерное клонирование, проблемы с хвостовой рекурсией и прочие оплошности. Теперь пришло время взглянуть на другой пласт проблем.

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

Читать далее

Осенние будни DevOps: Debian 13 и Proxmox VE 9.0 в продакшене HOSTKEY

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

Новая версия Debian 13 и релиз Proxmox VE 9.0 пришли почти одновременно, вызвав ажиотаж у клиентов. В статье рассказываем, как команда HOSTKEY адаптировала свои процессы, автоматизировала деплой и подготовила инфраструктуру под свежие релизы.

Читать далее

Нейросети на все случаи жизни

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

Привет Хабр!

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

Я собрал подборку ИИ-сервисов и моделей для решения широкого пула задач. В сегодняшнем выпуске нейросети по направлениям: Код, Презентации, Копирайтинг, Рекламные модели, Созвоны, Видео, Картинки, Автоматизация процессов, Аудио, Дизайн, Соцесети, ИИ детекторы, WEB 3, Блог и пара нейронок для исследовательского интереса.

Читать далее

Вперёд к мечте! От JCUKEN к QWERTY на Специалисте

Время на прочтение18 мин
Охват и читатели8.9K

Когда в 19-летнем возрасте я покупал свой первый компьютер, то я очень сильно хотел купить БК-0010-01. Однако обстоятельства сложились так, что к моменту, когда у меня появилась необходимая сумма, в магазинах БК‑шек не осталось, и вообще ничего не осталось. На полке в «Электронике» лежало только невзрачное нечто с нарисованной клавиатурой и названием «ЛИК».

Читать далее

Рецензия на книгу: Изучаем eBPF: программирование ядра Linux для улучшения безопасности, сетевых функций и наблюдаемости

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели6.4K

В русском переводе вышла книга «Изучаем eBPF» (Learning eBPF) Лиз Райс, главного специалиста по открытым технологиям в компании Isovalent. В ней автор рассказала сисадминам и разработчикам, как можно успешно применять eBPF в своей работе. eBPF (Extended Berkeley Packet Filter) — это технология, позволяющая безопасно и эффективно выполнять свой код в ядре Linux. Хотя у книги небольшой объем (220 стр.), она наверняка будет полезна для сисадминов и ИТ-специалистов по управлению сетями, обеспечению безопасности и мониторингу в сложных системах. 

Читать далее

Оперативная память: исчерпывающие руководство. Часть 1 – Физическое устройство RAM от атома кремния до реальных чипов

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

Как кусок кремния и немного металла превращаются в память, способную хранить гигабайты данных и оперировать ими за наносекунды?

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

Читать далее

Обрабатываем строки в 109 раз быстрее, чем NVIDIA на H100

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

Недавно я выпустил StringZilla v4 — первый релиз с поддержкой CUDA моей библиотеки для обработки строк. нацеленной в первую очередь на SIMD. Это означает, что теперь она стала быстрой не только на CPU, но и на GPU!

• Я хотел добавить ускорение ROCm для GPU AMD
• Я хотел добавить параллельный мультипаттерновый алгоритм поиска
• Я хотел опубликовать всё это ещё в декабре 2024 года

Итак, не всё пошло по плану, но StringZilla 4 CUDA наконец-то здесь, и она добавляет 500 с лишним GigaCUPS вычислений редакторского расстояния; при этом пакет можно установить через pip install. Также в ней есть некоторые другие трюки, предназначенные для крупномасштабных систем извлечения данных, баз данных и озёр данных, а также биоинформационных задач. И всё это под разрешительной опенсорсной лицензией Apache 2.0, позволяющей свободно использовать библиотеку в коммерческих целях. В этом посте я рассмотрю самые интересные части релиза, и в том числе:

• Быструю оценку алгоритмов динамического программирования на GPU,
• Хэширование CRC32MurMurHashxxHash, aHash и не только, а также
• Фингерпринтинг биологических последовательностей 52-битными целыми числами

Читать далее

Как правильно формулировать нефункциональные требования

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели6.6K

Привет, Хабр! Я старший системный аналитик, эксперт онлайн-школы по системному анализу Ольги Пономарёвой. Материал основан на реальных кейсах из практики: мы в школе System Analyst не просто рассказываем теорию, а делимся тем, что действительно работает на проектах.

За свою карьеру я написала не одну сотню требований и поняла такую вещь – самые важные и самые незаметные, это блок нефункциональных требований. 

В этой статье я расскажу, как правильно выявлять и формулировать НФТ.

Читать далее

Визуализация управления памятью в Python: что творится внутри?

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

Python щедро раздаёт нам удобные абстракции. Создаёшь список, словарь или строку — и не думаешь, где под это выделилась память и как она потом освободится. Но внутри интерпретатора работает довольно сложный механизм, и он устроен не так, как в C или других языках.

Идея сделать приложение-визуализатор пришла после чтения книги CPython Internals. Там подробно объясняется, как устроены арены, пулы и блоки. Но пока читаешь текст, всё это воспринимается слишком абстрактно. Захотелось увидеть механику своими глазами: как память выделяется, как освобождается и почему иногда остаётся занята. Так и появился MemoryMonitorApp, а вместе с ним — эта статья.

Читать далее

Тряхнём стариной: Quake III сервер для друзей

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

В предпраздничный сокращённый день с коллегами решили, а чего бы нам немного не погонять в Quake III Arena. Игруха кроссплатформенная, легко устанавливается и можно прекрасно помеситься.

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

Читать далее

Почему SELECT FOR UPDATE считается в PostgreSQL вредным

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

Разбирая взаимоблокировки, Лоренс вспомнил, насколько опасным может быть использование SELECT FOR UPDATE при конкурентном доступе. В этом нет ничего нового, но Лоренс заметил, что многие не знают о режимах блокировки строк в PostgreSQL. Лоренс решил подробно описать, когда следует избегать SELECT FOR UPDATE.

Читать далее

Как правильно вызывать CUDA

Время на прочтение16 мин
Охват и читатели13K

Вероятно, вам уже попадались подобные руководства по CUDA: хрестоматийный пример «Hello World», в котором перемешан код для ЦП и графического процессора. Всё это сложено в один гетерогенный файл с исходниками на CUDA C++, а для запуска ядра применяется синтаксис NVCC с тройными угловыми скобками <<<>>>, который уже стал культовым:

Читать далее

PostgreSQL без боли и костылей: обзор ключевых расширений

Время на прочтение8 мин
Охват и читатели13K

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

Читать далее

7 кругов ада: практический гид по выбору стека для ML-разработки

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели9.3K

Сколько раз за последние пару-тройку вы меняли свой AI/ML стек? Если ответ «ни разу» — либо у вас железная дисциплина, либо вы просто не следите за тем, что происходит в индустрии. McKinsey Global Survey показывает, что adoption AI вырос с 50% до 72% только за последний год. Это означает, что пока вы размышляете над выбором между PyTorch и TensorFlow, ваши конкуренты уже запускают production-модели на совершенно других стеках. 

Проблема не в том, что инструментов мало — а в том, что их чертовски много. Современный ML/AI стек превратился в слоеный пирог из семи уровней: от ИИ-инфраструктуры в самом низу до слоя ИИ-решений наверху. Каждый уровень предлагает десятки вариантов, от которых глаза разбегаются даже у матерых разработчиков, но хаос поддается систематизации. В этой статье мы расскажем о любимых инструментах, препарируем популярные решения, и разберемся, как выбрать стек, который не превратится в тыкву через полгода. 

Читать далее

Про архитектуру приложений для тех, кому мало Чистой архитектуры

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

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

Лет пять назад я обнаружил для себя Чистую архитектуру Дяди Боба и на некоторое время успокоился, пока поток новых источников постепенно не начал менять мое отношение и к этой книге. Но, если вы решили для себя, что Чистая архитектура — это ваш окончательный выбор, то я точно не буду вас отговаривать, потому что, на мой взгляд, это однозначно лучше, чем, наверное, 90% того, что вам встретится на рынке.

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

Раньше мы в 3 частях [1, 2, 3] пробежались по основным идеям архитектуры систем. Поэтому, если вы ищете информацию по System Design, микросервисам и топологии команд, то вам туда. Эта же статья про архитектуру внутри кодовой базы: она посвящена концепциям программирования, влияющим на структуру приложения, поэтому описывает не только архитектурные подходы, но и иные идеи, оставляющие на дизайне свой отпечаток.

Читать далее

Решил перейти на Python и не пожалел

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

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

Я уже писал на Python, но только небольшие скрипты. К примеру, вот этот скрейпит метаданные всех видео с моего канала на YouTube. Собранные метаданные выводятся в виде файла JSON, который я использую для показа красивой статистики роликов на этой статичной странице. Как можно видеть здесь, этот скромный скрипт через GitHub Actions выполняется в соло-режиме каждый понедельник. Просто реализовать всё это на Python куда проще, чем с помощью того же Batch. И не только из-за более дружественного синтаксиса, но и потому, что его интерпретатор нативно интегрирован во все дистрибутивы Unix. Разве не круто?

Читать далее

Разбираемся, на чём делают игры: обзор 13 лучших движков для геймдева

Уровень сложностиПростой
Время на прочтение29 мин
Охват и читатели36K

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

Кратко рассказываем, как устроен каждый, чем удобен и какие есть ограничения. А в конце — таблица для сравнения, если нужно быстро сориентироваться.

Читать далее
1
23 ...

Информация

В рейтинге
1 831-й
Зарегистрирован
Активность