You are viewing stasikos

Just Another Sysadmin's blog (просто еще один блог сисадмина)
System log
Recent Entries 
Оказалось, писать каждый день как-бы сложно. Если в начале идеи в голову лезли просто пачками и я не успевал их записывать, то теперь уже все, как говорят у нас, "пасочки".
Вчера я даже начал размышлять и написал какой-то пост, но выбросил его в мусорник. Не вписывался в концепцию. Но сегодня роились идеи в голове и надо бы их упорядочить. Дело в том, что пока я играл во всякие Minecraft и KSP у меня из головы не вылезала мысль - так или иначе моддеры пытаются добавить хардкорного реализма в игру. Какие-то реальные физические законы, иногда даже не совсем реальные, но в теоретически возможные технологии, в общем, добавить побольше хайтека пытаются создать. Как тот же IC2/GregTech в Minecraft или KSP Interstellar. Иногда у них хорошо получается, но все равно не исчезает ощущение, что это как-то прикручено скотчем и приклеено жвачкой, ведь монолитное ядро игры как-бы не предполагало такого геймплея. В итоге все жутко тормозит, а ведь их еще и пишут на переносимых языках с байткодом. Хотя, возможно, многие проблемы производительнсти как раз возникли из-за невозможности оптимизировать совсем неродные вещи. Так бывает.
Поэтому меня некоторое время не оставляет мысль, что надо думать над 99-м клоном Майнкрафта (ну, на самом деле я как-то смотрел, сколько есть таких игр вообще и их там насчиталось порядка 90). Чтобы все уж сразу было задумано как в жизни и с рассчетом на размашистые проекты игрока в стиле "Железного человека", который из говна и палок построил звезду смерти и улетел. Ну, точнее некототорого количества игроков, потому что масштабные проекты в одиночку это очень накладно и все-таки когда-нибудь надоет.
Это еще не значит, что его можно будет начинать писать, но концепции продумываются сильно заранее. И первое, что мне пришло на ум, это посмотреть на недостатки того, что уже есть. И, конечно, я не смотрел на 99 клонов Майнкрафта, среди которых, почему-то, оказалась и KSP. Но некоторые из них я посмотрел на уровне описания задумки.

Итак, начнем с того, чего не хватает в KSP: Все замечательно, кроме того, что, во-первых, сложные аппараты страшно тормозят, во-вторых, статическая, неизменяемая солнечная система позволяет поиграть один раз, все изучить и уйти отдыхать надолго. Кроме того, система местами обладает необъяснимыми свойствами с точки зрения здравого смысла (например, неиспаряющийся лед Минмуса, который по всем данным должен быть из льда). Выдумана она так, чтобы определенным образом создавать геймплей с прогрессирующей сложностью. Что полезно для получения представления о космических полетах в принципе, но бесполезно для более глубокого изучения темы.

Что касается Minecraft: он хорош для того, для чего придуман - для средневековых построек на плоской бесконечной карте, походов в другие измерения и убивания дракона. На него уже давно пытаются прикрутить космические полеты на Луну и Марс (хотя Overworld не является в должной степени похожим на Землю), которые являются еще одним способом телепортации. Также пытались сделать так, чтобы блоки не могли просто висеть в воздухе, добавляя гравитацию и для них тоже, чтобы шахты осыпались, а крыши домов проваливались. В какой-то ограниченной степени это получалось. В общем, там есть десятки модов, которые пытаются сделать, чтобы было "как на самом деле". Даже добываемые из под земли ресурсы переставали быть случайно размазанными по всей карте, собираясь в обширные и богатые месторождения. И постоянно чего-то не хватает. Люди пытаются сделать воздухоплавание, мореплавание, космонавтику, термоядерные реакторы, настоящее электричество, и это все на фоне меланхоличного запиливания красивых флажков в оригинальную игру. Я так подозреваю, что некоторым из них нужно Life3d, эдакий играбельный, но все-таки симулятор. Хотя ведь и магические вещи выдумывают.

Вот и стал я думать, а нельзя ли придумать такой игровой движок, который бы позволял все что угодно именно для таких вот любителей? :) Ну, чтобы там хоть и был фактор случайности, но только в такой мере, чтобы бывали неожиданности. Остальные неожиданности должны бы просто вытекать из начального "семени", как это и принято. Ведь куда ни копни - везде в этом есть интересные задачи, расширяющие вполне настоящие знания о том, как этот наш мир, собственно, устроен.
Как-то ради интереса я даже попробовал написать генератор "случайного набора звездных систем". Казалось бы, что может быть проще - делаем N случайных звезд, впуливаем вокруг них M случайных планет с K случайных спутников. И всё, типа, готово. Но получится, на самом деле, слишком много случайностей. Во-первых, количество и масса планет все-таки зависят от массы самой звезды. Во-вторых, их орбиты не могут быть совсем уж случайными, а должны оказаться такими, чтобы возникающие между ними силы не изменяли эти самые орбиты до неузнаваемости. Это я еще не касаюсь того, что это должны быть за планеты. Будет ли у них атмосфера? Из чего они будут состоять? Как быстро они будут обращаться? Какова температура на этих планетах? Будет ли там вода? Могла ли на них возникнуть какая-то жизнь? И если да, то как давно? :)

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

Решение:
Попытки решения приводили к одному и тому же - надо быть роботом. Надо вот, чтобы у тебя был список и ты без устали и перерывов должен это всё делать и делать. Робот никак не получался. Робот сопротивлялся, терял концентрацию, хотел прилечь и поспать, ровно до тех пор, пока пытался выполнять то что нужно. Если его не заставлять делать то, что положено, робот вполне был бодр и весел, ну, до определенного момента глубокой ночью. Через силу робот работать никак не хотел. Но, в то же время, робот оставался недоволен собой и невыносимо страдал душевно. В принципе, цель уменьшить паузы вполне правильная, но без изучения связи прокрастинации и перфекционизма, а также усталости (кажется, есть короткая и понятная книжка про все причины прокрастинации и я про нее вспомню) ничего не выходило. Также напрягало то, что хотелось впихнуть все 8 рабочих часов одним непрерывным куском, и это никак не получалось, так как робот видел в этом безысходность.

Единственное, что иногда помогало - это хитрая уловка с помощью техники "Помодоро", когда худо-бедно на 25-30 минут можно было все-таки включиться во что-то.

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

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

В-третьих, оказалось, что мне очень сложно в буквальном смысле решить, что задача выполнена или имеет какое-то ясное решение вообще. Это приводило к тому, что я за нее даже браться не хотел, может, неделями. Она становилась все более сложной и неподъемной (или, наоборот, пустяковой, которую вот, даже рассматривать не хочется). Такое часто касалось написания кода. Позже стало понятно, что такое божественное существо как я просто боится сделать что-то не настолько крутым, чтобы человечество начало ему поклоняться. В общем, нужно снизить планку и все-таки вовремя останавливаться, пытаясь сделать что-то идеальным. Картина висит? Окей, хватит пытаться выравнять ее до последней угловой секунды.

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

Выводы:
Инструменты: сначала, конечно, я смотрел на то что есть, искал нечто все в одном. Которое позволит и исследовать свое поведение (путем учета времени), и хранить списки задач и, даже, содержало бы в себе таймер от помидоры. В конце концов прокрастинирование не позволило такой инструмент создать, но нашлись готовые, правда, отдельные. Остановился на MyLifeOrganized, за возможность делать практически все, что хотелось и при этом еще использовать ее и на смартфоне тоже, и даже синхронизировать, там же - aTimeLogger для учета времени, и обычная Pomodroido. В целом, меня все устраивает, хотя пришлось и долгое время подбирать это все для себя. Например, "контексты" из ГТД я стал использовать так же, как и ядро ос - в смысле "процесс". Контекстами стали виды деятельности, по которым я просто бегаю с помощью фильтра и выполняю. Пока что это неплохо работает. Но все равно остаются какие-то подтеки краски и общая неряшливость.

Например: другим людям свойственно тебя отвлекать. Хорошо, если это случилось по работе и это автоматически попало в рабочее время (но все-таки сломало работу над рабочим проектом, вызвав переклчюение контекста). Но есть просто родственники, домашние и даже те ребята, которым ты когда-то согласился иногда помогать. Эти люди обычно требуют внимания здесь и сейчас.
Вторая нерешенная проблема - почему-то очень сложно психологически придерживаться этой модели, если в этот день запланировано что-то на вечер. Причина мне совершенно непонятна, и даже идей, с чем это может быть связано, у меня нету.
Третья, конечно, связана с тем, что не получается быть роботом и иногда случаются помутнения рассудка после завершения работы в каком-то контексте. Можно просто забыть, что нужно приступать к следующему, залипнув в интернеты, а потом снова становится "лень". Помогает пока перезагрузка с помощью дремоты. В итоге из 24 часов, с учетом того, что сон тоже тикает в системе учета времени, 4-5 часов все равно куда-то выпадают, как непосчитанные. И как-то не верится, что это все - походы по своим делам и перерывы. И выглядит довольно-таки объемным куском, что досаждает и не дает спать спокойно.
27th-Jun-2015 03:20 pm - Про хобби
Итак, чтобы развернуто ответить на вопросы к предыдущему посту, да так, чтобы это было всем видно, теперь мне нужно рассказать, что я имел в виду под хобби. Конечно, хобби несколько более банальные, нежели есть у многих уважаемых моих читатателей, пожалуй.
Первым среди них, так как эта тема меня пока еще больше всего волнует, хочется перечислить такую странную вещь, как попытка делать лестплеи на своем канале Youtube. Здесь, конечно, можно вообще пожурить, мол, игры, фу, как можно, взрослый мужик ведь уже. Ну, во-первых, я смотрю очень много взрослых мужиков с женами и детьми, которые делают то же самое. Во-вторых, я нашел в этом очень интересный инструмент, который позволяет не просто убивать время и энергию в компьютерных играх. Конечно, сами по себе игры могут быть пустой тратой времени, но так как я по жизни люблю чем-то заморачиваться, каждая игра, в которой я залип, позволила мне чему-то научиться. Начиная с ролевых игр, которые позволили изучать английский немного более широко, пока я еще был в школе и кончая играми, в которых можно узнать и многое об окружающем мире. Я не говорю про всякий трехмерный экшен, где можно, разве что, тренировать тактику, скорость наведения мышки и реакцию, хотя и такое было. Буквально пару лет я как-то убил на World Of Tanks, оттачивая свои навыки интуитивного понимания, под каким углом снаряд войдет вон в ту бронеплиту и прочие не очень полезные в жизни навыки. Но, конечно, некоторый интерес к бронетехнике, ее истории и конструкциям это позволило удовлетворить. Но потом стало очень уныло. Это не мешало мне записывать видео без комментариев из реплеев хороших боев, просто на память и чтобы показать одному интересующемуся темой товарищу, который играет в игры по Youtube, что становится, судя по всему, довольно модным занятием.
Потом я случайно решился скачать демку Майнкрафта и меня настолько затянуло, что я купил себе полную версию. Конечно, через пару недель ее ограниченный набор возможностей мне все-таки надоел, и все было бы хорошо, об этом можно было бы забыть, если бы интерес к каким-то идеям механизмов и игровых механик в оригинальной игре не привел меня к просмотрю летсплеев по этой игре на Youtube, где я открыл для себя невообразимое количество модов для Майнкрафта. И, как любого воспитанного на советской детской технической литературе, меня заинтересовали именно те из них, которые принято называть "индустриальными", то есть позволяли минимизировать ручной труд и строить огромные производственные цепочки, сталкиваясь с проблемами массового производства, добычи ресурсов и автоматизации. Есть и неплохие ребята, которые про это умеют снимать, и достаточно интересно, скажем, семейная пара SteamLynx или Ваня Сережкин. Это, правда, не было толчком начать делать это самому, пока мне не намекнули все-таки попробовать. Так я начал снимать свой первый опыт, на своей собственной сборке модов для Minecraft, и сделал из этого опыта ряд выводов.
Во-первых, это как-то прокачивает способность рассказывать, показывать, и как-то повышает уверенность в себе. Во-вторых, черт возьми, это снижает интерес к самой игре, как это ни странно, превращая ее не просто в развлечение, а в деятельность более осмысленную, ведь вместо простого получения удовольствия от "пофиг, как получится", мы получаем необходимость получить связанную по смыслу последовательность событий, которые было бы еще и интересно показать. А это - напряжение мозга. Пост-обработка материала это дополнительные затраты энергии и владение кое-каким программным обеспечением для работы со звуком и нелинейного видеомонтажа.
Но, конечно, через примерно полгода Майнкрафт мне начал надоедать. Один коллега уже точно знал, что мне нравятся игры в стиле песочницы с богатым набором модов для создания собственного геймплея и подкинул мне такую игру как Kerbal Space Program. Поначалу, она показалась симулятором космической программы, но, быстренько разобравшись во всем, что есть в оригинальной игре, я, конечно же, стал изучать другие летсплеи и поистине огромный набор модов самой разной направленности. Конечно, это снова кончилось обширной сборкой собственного модпака и в съемку нового летсплея. Но это уже был новый тип, который требовал совсем иного подхода. Чтобы не вырезать кучу довольно-таки затянутых игровых моментов (а ведь KSP в этом смысле ничем не лучше симуляторов, и "экшен" случается, дай боже, только в 10% игрового времени вообще) и снабжать все материалом о законах нашей вселенной, про историю космонавтики, космических технологиях, пришлось записывать видео, затем обрабатывать его, ускорять и снабжать уже пост-комментарием. И тут я понял, что я разучился быстро и качественно писать тексты. Собственно, спустя несколько месяцев этого опыта, это и привело меня назад к блоггингу. Правда, это еще приводит меня, например, к риторике и способности выразительно и живо читать, но решение этой проблемы я пока не решил.
Ну, и чтобы закончить с темой этого хобби, хочется отметить, что тщательный анализ и обработка собственного голоса производит невероятное впечатление, которое, судя по чужому опыту, намного улучшает способность говорить вообще. Так что, как по мне, не такая уж это и бесполезная затея.

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

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

Ну и последним оказалось то, чем я интересовался, наверное, года с 2005, когда впервые услышал такие модные слова как "тайм-менеджмент", "личная эффективность" и бла-бла-бла. Не сразу стало ясно, насколько большая часть материалов по этой теме являлась полной ерундой, да и работа в офисе как-то не особо располагала к использованию каких-то инструментов. Но когда большую часть времени я работаю дома, это стало актуальным. С ростом числа интересов и разных дел, которые нужно делать регулярно - еще более актуальным. Можно, конечно, было просто опустить руки и решить, что невозможно делать кучу разных вещей и при этом все успевать, но ведь... есть же люди, у которых получается! Но началось все намного прозаичнее. В один определенный момент я понял, что у меня просто не получается спокойно работать дома, особенно, если речь идет о программировании. У меня потерялась возможность концентрации на задачах, я постоянно терял нить и, по сути, бездельничал, имитируя бурную деятельность, страшно уставал и с каждым днем все сложнее было заставить себя заниматься любимым когда-то делом. И тогда появилась острая необходимость начать смотреть на происходящее как-бы со стороны, пробовать что-то менять, и кто-то может даже найти в прошлом мои идеи об инструментах, которые бы позволяли и помнить, что нужно делать, и при этом померять, что ты делал. Инструменты создавать заново не пришлось, они нашлись, но про то, что я использую теперь и как, можно рассказывать долго.

Если что-то забыл, конечно расскажу об этом отдельно в будущих постах.
26th-Jun-2015 03:47 pm - I'll be back
Я очень долго не занимался такой штукой как блоггинг, хотя в 2010 году у меня еще были планы вести тематический блог про системное администрирование. Но потом как-то это само собой умерло. Стало либо не о чем писать (ну, потому что соглашения с работодателем не подразумевало раскрытие чего-либо), либо мне казалось, что вещи настолько банальные, что профессионалы об этом не пишут, как о чем-то таком, что само по себе подразумевается. Потом я и вовсе стал не совсем чистым системным или сетевым администратором, и даже больше стал заниматься написанием кода. Делать из блога что-то вроде "всё обо всём" тогда не хотелось. А теперь есть несколько факторов, которые и вовсе, как мне кажется, свели на нет блоггинг как таковой. То ли неисписавшееся поколение уже выросло и забыло про это занятие, то ли исписалось, то ли их место заняли другие виды социальных сетей. В общем, как-то начинать снова теперь очень странно, но у меня были причины начать это делать.

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

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

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

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

Почему я считаю себя кому-то интересным? Да я так и вовсе не считаю, просто верю, что еще остались олдсукльные любители читать тексты, а не слушать их фоном на Ютубике. Правда, последним и я что-то начал увлекаться местами.

Ну и напоследок, что изменилось за послдение годы:
Не был, не привлекался, не женился.
Живу и работаю, работаю там же - в Днепропетровске. Зарабатываю деньги путем содержания некоторого количества серверов с Linux, на которых крутится самописный и проприетарный софт, который я, в том числе, пописываю. Софт никак не доступен для созерцания пользователям, просто получает из сети байты и делает из этих байтов другие байты, отчего все радуются и потирают ручки. Два года занимался бодибилдингом как получалось, сейчас некоторый перерыв. Те же два года - пытался смочь в электрогитару, пока умею только как обезьянка, по табам, издать отдаленно похожие звуки. Подсел на компьютерные игры. Правда, не шутеры и не стратегии (хотя, смотря что считать стратегиями). Пытаюсь также смочь в летсплеи, некоторые зрители увереяют, что я могу как "топ-ютуберы", но, наверное они этих топ-ютуберов не смотрели. Впрочем, обо всем я могу написать и подробнее чуть позже, не особо делая из чего-то секреты.
14th-Jul-2013 12:44 am - Pulseaudio, twitch and broadcasting
Как-то ради интереса решил постримить то, как я играю в WoT на http://www.twitch.tv/skogut. Первой проблемой было запилить, собственно, захват видео. Я нашел скриптик, и он, в общем-то работает. Но я немного его подправил под реалии wine + World Of Tanks и свои 4 ядра:
 #! /bin/bash  
 # originaly from http://tinyurl.com/twitch-linux from taladan  
 # www.youtube.com/user/taladan  
 # gist created by brodul  
 INRES=`xwininfo -name "WoT Client" | awk '/geometry/ {print $2}' | sed -e 's/\+.*//g'`  
 #INRES="1280x800" # input resolution  
 #OUTRES="1280x720" # Output resolution  
 OUTRES="640x380" # Output resolution  
 #OUTRES="$INRES" # Output resolution  
 FPS="18" # target FPS  
 QUAL="fast" # one of the many FFMPEG preset on (k)ubuntu found in /usr/share/ffmpeg  
 # If you have low bandwidth, put the qual preset on 'fast' (upload bandwidth)  
 # If you have medium bandwitch put it on normal to medium  
 CORNER=`xwininfo -name "WoT Client" | awk '/Corners/ {print $2}' | sed -re 's/\+(.*)\+(.*)/+\1,\2/'`  
 echo "INRES: $INRES CORNER: $CORNER"  
 # Write your key in a file named .twitch_key in your home directory  
 STREAM_KEY=$(cat ~/.twitch_key) # This is your streamkey generated by jtv/twitch found at: http://www.justin.tv/broadcast/adv_other  
 URL="rtmp://live-ams.twitch.tv/app/"   
 #BITRATE=2048000   
 BITRATE=1024000   
 nice taskset -c 1,2,3 avconv \  
 -f x11grab -s $INRES -r "$FPS" -i :0.0"$CORNER" \  
 -f alsa -ac 2 -i pulse \  
 -vcodec libx264 -s $OUTRES -preset $QUAL \  
 -acodec libmp3lame -ar 44100 -threads 3 -qscale 3 -b $BITRATE -bufsize 512k \  
 -f flv "${URL}${STREAM_KEY}"  

Основное изменение - это поиск окна WoT и определение его местоположения на экране.

С этим все ясно. Следующей проблемой было сделать так, чтобы можно было и говорить в микрофон и зрители стрима могли это слышать. После гугления был обнаружен хинт про module-loopback в pulse. Так я и сделал :)

 pactl load-module module-loopback latency_msec=1 sink=alsa_output.usb-Logitech_Logitech_G930_Headset-00-Headset.analog-stereo  

Однако, с таким подходом, я слышу и себя, что делает для моего мозга ужасную обратную связь, которая мешает нормально говорить.
После вдумчивого чтения документации по модулям pulseaudio, меня осенило.
В pulse есть модуль null-sink, который ничего никуда не выводит. Так вот, достаточно его загрузить, выбрать как устройство, с которого будет идти запись в стрим (через pavucontrol, например).
Далее загружаем аж два module-loopback:

 pactl load-module module-loopback latency_msec=1 sink=null  
 pactl load-module module-loopback latency_msec=1 sink=null  

После чего в том же pavucontrol источником звука для этих (для этого надо включить отображение Virtual streams в Recording) мы выбираем 1) Monitor o НашаЗвуковаяПлата для захвата звука из приложения (в данном случае World Of Tanks и любые другие звуки), для второго loopback мы выбираем, собственно, саму звуковую плату (для захвата микрофона). И вуаля - мы слышим звук из игры, мы не слышим себя, зато зритель слышит всё!

Следующим шагом, видимо, будет запиливание автоматического выбора источников звука для loopback с помощью pactl, чтобы не нужно было ничего делать руками в pavucontrol, но я так спешил поделиться радостью, что пока не сделал этого.
Network Manager - пожалуй, самая ненавистная всеми вещь, которую я, несмотря на общественное мнение, с удовольствием использую.



Так вот, в ней есть замечательная вещь - в ответ на разные события, связанные с интерфейсами, он способен запускать скрипты, которые лежат в /etc/NetworkManage/dispatcher.d, и это можно использовать, в том числе, для подгрузки правил iptables.
Самое главное, чтобы скрипт был 1) обычным файлом; 2) владельцем был root; 3) не был доступен на запись кому-то еще; 4) не был suid; 5) разрешен для исполнения владельцем (короче, права должны быть не более разрешающими, чем 755).

Все подробности о том, как этот скрипт исполняется и какие параметры получит, можно выгрести в man NetworkManager(8).

Единственная печаль - он не получает никакого имени профиля настроек для интерфейса, а только его имя.

Но уже имея это, можно сунуть пару простых скриптов для настройки IPv4 или IPv6 фильтров (просто сменив iptables на ip6tables):




1:  if [ -x /usr/bin/logger ]; then  
2:      LOGGER="/usr/bin/logger -s -p daemon.info -t FirewallHandler"  
3:  else  
4:      LOGGER=echo  
5:  fi  
6:  case "$2" in  
7:      up)  
8:          if [ ! -r /etc/iptables.rules ]; then  
9:              ${LOGGER} "No iptables rules exist to restore."  
10:              return  
11:          fi  
12:          if [ ! -x /sbin/iptables-restore ]; then  
13:              ${LOGGER} "No program exists to restore iptables rules."  
14:              return  
15:          fi  
16:          ${LOGGER} "Restoring iptables rules"  
17:          /sbin/iptables-restore -c < /etc/iptables.rules  
18:          ;;  
19:      down)  
20:          if [ ! -x /sbin/iptables-save ]; then  
21:              ${LOGGER} "No program exists to save iptables rules."  
22:              return  
23:          fi  
24:          ${LOGGER} "Saving iptables rules."  
25:          /sbin/iptables-save -c > /etc/iptables.rules  
26:          ;;  
27:      *)  
28:          ;;  
29:  esac  


Скрипт нужно назвать, например, /etc/NetworkManager/dispatcher.d/01firewall и обязательно установить разрешения 0755.
Была как-то давно мысль посмотреть на все эти фронтенды к iptables, написанные для "упрощения жизни". Да, возможно, не все могут понимать синтаксис правил iptables, всю его гибкость и мощь, так что им нужно пользоваться чем-то более простым. Итак, сейчас речь пойдет про ufw - Ubuntu-фронтенд к iptables.

Read more...Collapse )
Как и вы, наверное, буквально сегодня обнаружил, что после установки обновлений в, например, CentOS 6, в меню загрузчика появляются все новые и новые ядра, такие ненужные в большинстве случаев. И сразу стало интересно, почему так, как бы их поудобнее удалить, и как вообще сделать, чтобы там их не было.
Конечно, это легко найти в Google, но ведь мало просто решить проблему, интересно разобраться во всем этом :)
Так вот, некоторые пакетики при апдейтах могут поддерживать фичу "installonly", то есть пакет не удаляется, не заменяется, а просто устанавливается. Очевидно, при этом критически важные файлы такого пакета ни с чем конфликтовать не должны. По-умолчанию yum считает такими пакетами все, что может содержать ядра, и по-умолчанию в CentOS настроено сохранять 5 последних версий ядра.
Очевидно, связано это с потенциальными проблемами с новым ядром и необходимостью сохранять старые версии. Однако, в большинстве случаев, когда обновления делаются руками и потом делается перезагрузка, умолчательные 5 последних версий как-то слишком уж избыточно (а для случаев ежедневных апдейтов без перезагрузки - как-то слишком уж мало, ведь ядро, скажем, за год, может обновиться раз 10, последнее загруженное ядро уже давно затрется).
В таком случае идем в /etc/yum.conf и правим там installonly_limit на какое-то другое число, после чего будет заметен позитивный эффект на число одновременно установленных версий ядра.
Однако, иногда просто хочется удалить лишние ядра, ничего не меняя. Для этого в пакете yum-utils (yum install yum-utils) есть нехитрая утилита package-cleanup:
# package-cleanup --oldkernels --count=2
И останутся только 2 последних ядра.
После всего этого всем интересующимся рекомендуется почитать man 5 yum.conf, где есть множество интересных и [бес]полезных опций, например, ограничение используемой пропускной способности сети, сохранение пакетов на локальном диске после установки и т.п. Ну и ознакомиться с пакетом yum-utils поближе.
Уже не раз сталкивался с идеей сунуть конфиги на серверах в какую-то систему котроля версий. Систем этих, как известно, валом, на любой вкус. Но все популярные у программистов для такой задачи слабо подходят: отслеживают все дерево, что-то ломают и т.п. В то же время в самых древних скрижалях по администрированию UNIX можно встретить не менее древнюю систему контроля версий, с названием RCS - Revision Control System. Просто и очевидно. После прочтения маленького мануала и прочих man rcsintro rcs ci co, и нескольких замученных в усмерть текстовых файлов, я родил такой вот враппер для текстового редактора, который можно легко впихнуть в .bashrc и пользоваться:
# RCS wrapper to help make all files versioned
vim() {
	if [ ! -e `dirname $1`/RCS ] ; then
		mkdir -v `dirname $1`/RCS
	fi
	if [ -e `dirname $1`/RCS/$1.v ] ; then
		co -l $1
		/usr/bin/vim $1
		ci -u $i
	else 
		ci -u $1
		co -l $1
		/usr/bin/vim $1
		ci -u $1
	fi
}
Он почти все делает сам, делая работу с версиями довольно-таки простой, но не лишен и недостатков. Так что если кто-то поднаторел с RCS, я бы хотел чтобы мы вместе это допилили до состояния предмета искусства. Итак: если в директории файлы еще не подвергались работе с RCS - он создает каталог для хранения версий. Дело в том что в отсутсвие этого каталоге, файл с информацией об изменениях будет храниться тут же рядом, что не очень круто, и замусоривает каталог. Если каталог уже есть, но файл еще не подвергался пыткам - он вносится в систему контроля версий, затем вы его редактируете, и он заносит новую ревизию куда положено.
Итак, недостатки, а точнее один недостаток, который я совсем недавно обнаружил: При редактировании файла с владельцем user:root и правами 600, владелец почему-то сбрасывается на root. Почему, пока не разобрался. Второе что, видимо, имеет те же корни - права на файл меняются так, чтобы он был только для чтения (из соображений "дабы никто не мог поправить файл в обход системы контроля версий). Обе эти вещи могут сделать файл конфигурации непригодным для использования приложением, так что тут надо как-то придумать хороший метод исправления проблемы.
15th-Sep-2011 12:34 pm - Мы с Linux уже 7 лет :)
Только что осознал, что 7 лет назад купил на горбушке два двд с довольно-таки устаревшим на тот момент срезом Debian Sid и снес винду. И с тех пор вот как-то постоянно с Linux в контакте нахожусь. Не скажу, что это сильно отразилось на профессионализме, гг, ну да, я их админю, поддерживаю, иногда ковыряюсь глубоко внутри, много опыта, но все равно не оставляет чувство, что в нем еще огромное количество белых пятен, касающихся его применения в быту и на производстве, так сказать. Это оказало потрясающее влияние, надо сказать. Например, мне очень не хочется сталкиваться с чем-то другим, особенно Windows, потому что привычно и удобно работать все-таки в *nix системах. Нравится сама идеология и философия.
Linux сильно изменился за эти годы. XFree86 ушел, пришел Xorg, научился делать и определять почти все сам, и почти всегда делает это правильно. Появились KDE4, Gnome3, Unity, которые до сих пор не вписываются в старые привычки, PulseAudio и NetworkManager. Долгое время была привычка отрицать наличие этого всего, но постепенно понимаешь, что это все-таки прикольно, юзабельно и удобно. Появился Ubuntu, который я тоже яростно отрицал, пока не попробовал, и вот уже Debian отошел на второй план, а в IRC я узнал про много других интересных дистрибутивов. И не могу сказать что какой-то лучше другого (ну, есть такие, которые я презираю в принципе, потому что не вижу им применения), все они хороши для определенного круга задач. Так что не холиворьте, у всех свои вкусы и пожелания. Все растут, понимают больше и, я уверен, у всех ощущение что "дистрибутивов должно быть много" будет иметь место, особенно если Linux это не только OS для десктопа.
Ну и за эти 7 лет я таки прихожу к мнению что Linux готов для дескопа. Не среднестатистического, но готов. И Windows для этого же самого не среднестатистического десктопа не готов совсем. :)
This page was loaded Jun 30th 2015, 11:59 pm GMT.