Disclaimer: Данный пост написан мною как частным лицом. Этот пост не имеет никакого отношения к моему текущему месту работы.
Игры достаточно важная часть моей жизни, но не слишком значимая. Очень много времени я посвятил разработке игр. Сейчас я мало отвожу времени играм и желаю употреблять лучшее. Конечно я не стесняюсь платить за то, что мне приносит удовольствие.
За последние 5 лет я просмотрел много игр, но те, за которые мне захотелось бы заплатить были в меньшинстве. Платить за игру, которая надоедает через 10 минут — бессмысленно. Такие разработчики надеяться только на рекламу и неосведомленных покупателей.
Поэтому я выделил определенный список разработчиков, которым я готов платить деньги за их труд. Потому, что он доставляет мне удовольствие. В их число входила компания Valve. Half-Life был шедевром. А Half-Life 2 тоже очень хорошим продуктом. Как только выходила новая игра от Valve я знал, что её надо покупать. Дело не в том, что я не мог скачать игру с торентов. Я мог. Но я хотел поддержать компанию. И все равно, что большинство знакомых играет в пиратки — мне игра нравится — я за неё плачу. И буду надеятся что они выпустат версию под линух;)
Чуть более года назад я перевел почти все деньги на депозиты и закрыл карточки. До этого я успел подключить Приват 24. Но с того времени пароль был утерян. Я захотел восстановить доступ, что бы мог мониторить состояние депозитов. Но тут я столкнулся с абсолютно нелогичной позицией ПриватБанка — без карточки доступ к счетам получить не могу.
Хотелось бы поделиться опытом по использованию MySQL с хранением данных в памяти, а не на диске. Это позволило нам сократить load average сервера, который из-за операций с диском стал сильно расти.
Недавно на профильном ресурсе один программист задал вопрос: «Что использовать в сервере ММО для работы с потоками?». Программист склонялся к Intel TBB, но даже не к базовым примитивам, а к кастомному планированию задач (task scheduling). Ну нравится TBB — ну и ладно. А немного позже я увидел исходники сервера ММО другого программиста, который недавно начал переписываться его с нуля для улучшения архитектуры. И там было очень много велосипедов, которые писались самим программистом вместо того что бы использовать сторонние компоненты такие как boost (к примеру класы обертки над pthread-ом, и это в 2010 году, когда boost.thread уже почти в стандарте). Была там реализована и поддержка пула потоков с планировщиком задач. Тема эта мне очень интересна и я начал копать информацию о готовых решениях планировки задач (как в TBB) и нашел boost.task, про что и решил написать.
В даном посте я описал свой опыт борьбы с одной конкретной утечкой в большом проекте. Было допущено много ошибок, но может кому то будет полезно.
Давно не сталкивался с утечками памяти, но на днях наш плюсовый демон начал течь. При чем valgrind.memcheck не показывает ничего внятного — сервер долго стартует, большую нагрузку дать не получается — watchdog, который проверяет на зависание сервера при такой нагрузке под валгриндом — резво прибивает сервер.При выходе из под маленькой нагрузке — ликов нет.
Течет сильно — 7 гигов за 3 дня. Хотя раньше в рабочем режиме больше 1 гига не требовал (был запущен и по 2 недели без перезапусков).
Недавно знакомый Андрей (совсем недавно перешел на программирование под линукс) хотел создать новую ветку в git-е, но не был уверен в параметрах и хотел посмотреть подсказку. Он выполнил комманду с логичными, как ему показалось, параметрами:
git checkout -b --help
Как думаете что сделала эта комманда? Правильно, создала ветку с именем --help=)
Задача: создать пакет для Debian для выливки демона/сайта на сервер.
Я никогда ранее не работал с deb-пакетами — так что решение может быть не оптимальным. Но оно работает и достаточно просто в использовании.